https://www.cdslab.org/paramonte/fortran/2
Current view: top level - main - pm_matrixUpdate@routines.F90 (source / functions) Hit Total Coverage
Test: ParaMonte 2.0.0 :: Serial Fortran - Code Coverage Report Lines: 40 327 12.2 %
Date: 2024-04-08 03:18:57 Functions: 37 310 11.9 %
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_matrixUpdate](@ref pm_matrixUpdate).
      19             : !>
      20             : !>  \finmain
      21             : !>
      22             : !>  \author
      23             : !>  \AmirShahmoradi, Apr 21, 2017, 1:54 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
      24             : 
      25             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      26             : 
      27             : submodule (pm_matrixUpdate) routines ! LCOV_EXCL_LINE
      28             : 
      29             : #if CHECK_ENABLED
      30             :     ! \bug Bypass Intel `ifort` 2022 compiler bug for too many use statements in submodule procedures.
      31             :     use pm_err, only: getFine
      32             :     use pm_val2str, only: getStr
      33             :     use pm_err, only: setAsserted
      34             : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
      35             : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
      36             : #else
      37             : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) continue;
      38             : #endif
      39             :     use pm_blas, only: blasSYRK, blasHERK
      40             : 
      41             :     implicit none
      42             : 
      43             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      44             : 
      45             : contains
      46             : 
      47             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      48             : 
      49             : #define setMatUpdateR1_ENABLED 1
      50             : 
      51             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      52             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      53             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      54             : 
      55             : #define Fixed_ENABLED 1
      56             : 
      57             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      58             : 
      59             : #define IK_ENABLED 1
      60             : 
      61             : #if IK5_ENABLED
      62           0 :     module procedure setMatUpdateR1F_IK5
      63             :         use pm_kind, only: TKC => IK5
      64             : #include "pm_matrixUpdate@routines.inc.F90"
      65           0 :     end procedure
      66             : #endif
      67             : 
      68             : #if IK4_ENABLED
      69           0 :     module procedure setMatUpdateR1F_IK4
      70             :         use pm_kind, only: TKC => IK4
      71             : #include "pm_matrixUpdate@routines.inc.F90"
      72           0 :     end procedure
      73             : #endif
      74             : 
      75             : #if IK3_ENABLED
      76           0 :     module procedure setMatUpdateR1F_IK3
      77             :         use pm_kind, only: TKC => IK3
      78             : #include "pm_matrixUpdate@routines.inc.F90"
      79           0 :     end procedure
      80             : #endif
      81             : 
      82             : #if IK2_ENABLED
      83           0 :     module procedure setMatUpdateR1F_IK2
      84             :         use pm_kind, only: TKC => IK2
      85             : #include "pm_matrixUpdate@routines.inc.F90"
      86           0 :     end procedure
      87             : #endif
      88             : 
      89             : #if IK1_ENABLED
      90           0 :     module procedure setMatUpdateR1F_IK1
      91             :         use pm_kind, only: TKC => IK1
      92             : #include "pm_matrixUpdate@routines.inc.F90"
      93           0 :     end procedure
      94             : #endif
      95             : 
      96             : #undef IK_ENABLED
      97             : 
      98             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      99             : 
     100             : #define CHM_ENABLED 1
     101             : #define CK_ENABLED 1
     102             : 
     103             : #if CK5_ENABLED
     104             :     module procedure setMatUpdateR1H_CK5
     105             :         use pm_kind, only: TKC => CK5
     106             : #include "pm_matrixUpdate@routines.inc.F90"
     107             :     end procedure
     108             : #endif
     109             : 
     110             : #if CK4_ENABLED
     111           0 :     module procedure setMatUpdateR1H_CK4
     112             :         use pm_kind, only: TKC => CK4
     113             : #include "pm_matrixUpdate@routines.inc.F90"
     114           0 :     end procedure
     115             : #endif
     116             : 
     117             : #if CK3_ENABLED
     118           0 :     module procedure setMatUpdateR1H_CK3
     119             :         use pm_kind, only: TKC => CK3
     120             : #include "pm_matrixUpdate@routines.inc.F90"
     121           0 :     end procedure
     122             : #endif
     123             : 
     124             : #if CK2_ENABLED
     125           0 :     module procedure setMatUpdateR1H_CK2
     126             :         use pm_kind, only: TKC => CK2
     127             : #include "pm_matrixUpdate@routines.inc.F90"
     128           0 :     end procedure
     129             : #endif
     130             : 
     131             : #if CK1_ENABLED
     132           1 :     module procedure setMatUpdateR1H_CK1
     133             :         use pm_kind, only: TKC => CK1
     134             : #include "pm_matrixUpdate@routines.inc.F90"
     135           1 :     end procedure
     136             : #endif
     137             : 
     138             : #undef CK_ENABLED
     139             : #undef CHM_ENABLED
     140             : 
     141             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     142             : 
     143             : #define CK_ENABLED 1
     144             : #define CSM_ENABLED 1
     145             : 
     146             : #if CK5_ENABLED
     147             :     module procedure setMatUpdateR1F_CK5
     148             :         use pm_kind, only: TKC => CK5
     149             : #include "pm_matrixUpdate@routines.inc.F90"
     150             :     end procedure
     151             : #endif
     152             : 
     153             : #if CK4_ENABLED
     154           0 :     module procedure setMatUpdateR1F_CK4
     155             :         use pm_kind, only: TKC => CK4
     156             : #include "pm_matrixUpdate@routines.inc.F90"
     157           0 :     end procedure
     158             : #endif
     159             : 
     160             : #if CK3_ENABLED
     161           0 :     module procedure setMatUpdateR1F_CK3
     162             :         use pm_kind, only: TKC => CK3
     163             : #include "pm_matrixUpdate@routines.inc.F90"
     164           0 :     end procedure
     165             : #endif
     166             : 
     167             : #if CK2_ENABLED
     168           0 :     module procedure setMatUpdateR1F_CK2
     169             :         use pm_kind, only: TKC => CK2
     170             : #include "pm_matrixUpdate@routines.inc.F90"
     171           0 :     end procedure
     172             : #endif
     173             : 
     174             : #if CK1_ENABLED
     175           1 :     module procedure setMatUpdateR1F_CK1
     176             :         use pm_kind, only: TKC => CK1
     177             : #include "pm_matrixUpdate@routines.inc.F90"
     178           1 :     end procedure
     179             : #endif
     180             : 
     181             : #undef CSM_ENABLED
     182             : #undef CK_ENABLED
     183             : 
     184             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     185             : 
     186             : #define RK_ENABLED 1
     187             : 
     188             : #if RK5_ENABLED
     189             :     module procedure setMatUpdateR1F_RK5
     190             :         use pm_kind, only: TKC => RK5
     191             : #include "pm_matrixUpdate@routines.inc.F90"
     192             :     end procedure
     193             : #endif
     194             : 
     195             : #if RK4_ENABLED
     196           0 :     module procedure setMatUpdateR1F_RK4
     197             :         use pm_kind, only: TKC => RK4
     198             : #include "pm_matrixUpdate@routines.inc.F90"
     199           0 :     end procedure
     200             : #endif
     201             : 
     202             : #if RK3_ENABLED
     203           0 :     module procedure setMatUpdateR1F_RK3
     204             :         use pm_kind, only: TKC => RK3
     205             : #include "pm_matrixUpdate@routines.inc.F90"
     206           0 :     end procedure
     207             : #endif
     208             : 
     209             : #if RK2_ENABLED
     210           0 :     module procedure setMatUpdateR1F_RK2
     211             :         use pm_kind, only: TKC => RK2
     212             : #include "pm_matrixUpdate@routines.inc.F90"
     213           0 :     end procedure
     214             : #endif
     215             : 
     216             : #if RK1_ENABLED
     217           3 :     module procedure setMatUpdateR1F_RK1
     218             :         use pm_kind, only: TKC => RK1
     219             : #include "pm_matrixUpdate@routines.inc.F90"
     220           3 :     end procedure
     221             : #endif
     222             : 
     223             : #undef RK_ENABLED
     224             : 
     225             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     226             : 
     227             : #undef Fixed_ENABLED
     228             : 
     229             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     230             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     231             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     232             : 
     233             : #define Alpha_ENABLED 1
     234             : 
     235             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     236             : 
     237             : #define IK_ENABLED 1
     238             : 
     239             : #if IK5_ENABLED
     240           0 :     module procedure setMatUpdateR1A_IK5
     241             :         use pm_kind, only: TKC => IK5
     242             : #include "pm_matrixUpdate@routines.inc.F90"
     243             :     end procedure
     244             : #endif
     245             : 
     246             : #if IK4_ENABLED
     247           0 :     module procedure setMatUpdateR1A_IK4
     248             :         use pm_kind, only: TKC => IK4
     249             : #include "pm_matrixUpdate@routines.inc.F90"
     250             :     end procedure
     251             : #endif
     252             : 
     253             : #if IK3_ENABLED
     254           0 :     module procedure setMatUpdateR1A_IK3
     255             :         use pm_kind, only: TKC => IK3
     256             : #include "pm_matrixUpdate@routines.inc.F90"
     257             :     end procedure
     258             : #endif
     259             : 
     260             : #if IK2_ENABLED
     261           0 :     module procedure setMatUpdateR1A_IK2
     262             :         use pm_kind, only: TKC => IK2
     263             : #include "pm_matrixUpdate@routines.inc.F90"
     264             :     end procedure
     265             : #endif
     266             : 
     267             : #if IK1_ENABLED
     268           0 :     module procedure setMatUpdateR1A_IK1
     269             :         use pm_kind, only: TKC => IK1
     270             : #include "pm_matrixUpdate@routines.inc.F90"
     271             :     end procedure
     272             : #endif
     273             : 
     274             : #undef IK_ENABLED
     275             : 
     276             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     277             : 
     278             : #define CK_ENABLED 1
     279             : #define CHM_ENABLED 1
     280             : 
     281             : #if CK5_ENABLED
     282             :     module procedure setMatUpdateR1AH_CK5
     283             :         use pm_kind, only: TKC => CK5
     284             : #include "pm_matrixUpdate@routines.inc.F90"
     285             :     end procedure
     286             : #endif
     287             : 
     288             : #if CK4_ENABLED
     289           0 :     module procedure setMatUpdateR1AH_CK4
     290             :         use pm_kind, only: TKC => CK4
     291             : #include "pm_matrixUpdate@routines.inc.F90"
     292             :     end procedure
     293             : #endif
     294             : 
     295             : #if CK3_ENABLED
     296           0 :     module procedure setMatUpdateR1AH_CK3
     297             :         use pm_kind, only: TKC => CK3
     298             : #include "pm_matrixUpdate@routines.inc.F90"
     299             :     end procedure
     300             : #endif
     301             : 
     302             : #if CK2_ENABLED
     303           0 :     module procedure setMatUpdateR1AH_CK2
     304             :         use pm_kind, only: TKC => CK2
     305             : #include "pm_matrixUpdate@routines.inc.F90"
     306             :     end procedure
     307             : #endif
     308             : 
     309             : #if CK1_ENABLED
     310           0 :     module procedure setMatUpdateR1AH_CK1
     311             :         use pm_kind, only: TKC => CK1
     312             : #include "pm_matrixUpdate@routines.inc.F90"
     313             :     end procedure
     314             : #endif
     315             : 
     316             : #undef CHM_ENABLED
     317             : #undef CK_ENABLED
     318             : 
     319             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     320             : 
     321             : #define CK_ENABLED 1
     322             : #define CSM_ENABLED 1
     323             : 
     324             : #if CK5_ENABLED
     325             :     module procedure setMatUpdateR1A_CK5
     326             :         use pm_kind, only: TKC => CK5
     327             : #include "pm_matrixUpdate@routines.inc.F90"
     328             :     end procedure
     329             : #endif
     330             : 
     331             : #if CK4_ENABLED
     332           0 :     module procedure setMatUpdateR1A_CK4
     333             :         use pm_kind, only: TKC => CK4
     334             : #include "pm_matrixUpdate@routines.inc.F90"
     335             :     end procedure
     336             : #endif
     337             : 
     338             : #if CK3_ENABLED
     339           0 :     module procedure setMatUpdateR1A_CK3
     340             :         use pm_kind, only: TKC => CK3
     341             : #include "pm_matrixUpdate@routines.inc.F90"
     342             :     end procedure
     343             : #endif
     344             : 
     345             : #if CK2_ENABLED
     346           0 :     module procedure setMatUpdateR1A_CK2
     347             :         use pm_kind, only: TKC => CK2
     348             : #include "pm_matrixUpdate@routines.inc.F90"
     349             :     end procedure
     350             : #endif
     351             : 
     352             : #if CK1_ENABLED
     353           0 :     module procedure setMatUpdateR1A_CK1
     354             :         use pm_kind, only: TKC => CK1
     355             : #include "pm_matrixUpdate@routines.inc.F90"
     356             :     end procedure
     357             : #endif
     358             : 
     359             : #undef CSM_ENABLED
     360             : #undef CK_ENABLED
     361             : 
     362             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     363             : 
     364             : #define RK_ENABLED 1
     365             : 
     366             : #if RK5_ENABLED
     367             :     module procedure setMatUpdateR1A_RK5
     368             :         use pm_kind, only: TKC => RK5
     369             : #include "pm_matrixUpdate@routines.inc.F90"
     370             :     end procedure
     371             : #endif
     372             : 
     373             : #if RK4_ENABLED
     374           0 :     module procedure setMatUpdateR1A_RK4
     375             :         use pm_kind, only: TKC => RK4
     376             : #include "pm_matrixUpdate@routines.inc.F90"
     377             :     end procedure
     378             : #endif
     379             : 
     380             : #if RK3_ENABLED
     381           0 :     module procedure setMatUpdateR1A_RK3
     382             :         use pm_kind, only: TKC => RK3
     383             : #include "pm_matrixUpdate@routines.inc.F90"
     384             :     end procedure
     385             : #endif
     386             : 
     387             : #if RK2_ENABLED
     388           0 :     module procedure setMatUpdateR1A_RK2
     389             :         use pm_kind, only: TKC => RK2
     390             : #include "pm_matrixUpdate@routines.inc.F90"
     391             :     end procedure
     392             : #endif
     393             : 
     394             : #if RK1_ENABLED
     395           1 :     module procedure setMatUpdateR1A_RK1
     396             :         use pm_kind, only: TKC => RK1
     397             : #include "pm_matrixUpdate@routines.inc.F90"
     398             :     end procedure
     399             : #endif
     400             : 
     401             : #undef RK_ENABLED
     402             : 
     403             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     404             : 
     405             : #undef Alpha_ENABLED
     406             : 
     407             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     408             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     409             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     410             : 
     411             : #undef setMatUpdateR1_ENABLED
     412             : 
     413             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     414             : 
     415             : #define setMatUpdate_ENABLED 1
     416             : 
     417             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     418             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     419             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     420             : 
     421             : #define shrk_ENABLED 1
     422             : 
     423             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     424             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     425             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     426             : 
     427             : #define ASS_ENABLED 1
     428             : 
     429             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     430             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     431             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     432             : 
     433             : #define CSM_ENABLED 1
     434             : 
     435             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     436             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     437             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     438             : 
     439             : #define SLD_ENABLED 1
     440             : 
     441             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     442             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     443             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     444             : 
     445             : #define ONO_ENABLED 1
     446             : 
     447             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     448             : 
     449             : #define IK_ENABLED 1
     450             : 
     451             : #if IK5_ENABLED
     452           0 :     module procedure shrk_ASS_CSM_SLD_ONO_IK5
     453             :         use pm_kind, only: TKC => IK5
     454             : #include "pm_matrixUpdate@routines.inc.F90"
     455             :     end procedure
     456             : #endif
     457             : 
     458             : #if IK4_ENABLED
     459           0 :     module procedure shrk_ASS_CSM_SLD_ONO_IK4
     460             :         use pm_kind, only: TKC => IK4
     461             : #include "pm_matrixUpdate@routines.inc.F90"
     462             :     end procedure
     463             : #endif
     464             : 
     465             : #if IK3_ENABLED
     466           0 :     module procedure shrk_ASS_CSM_SLD_ONO_IK3
     467             :         use pm_kind, only: TKC => IK3
     468             : #include "pm_matrixUpdate@routines.inc.F90"
     469             :     end procedure
     470             : #endif
     471             : 
     472             : #if IK2_ENABLED
     473           0 :     module procedure shrk_ASS_CSM_SLD_ONO_IK2
     474             :         use pm_kind, only: TKC => IK2
     475             : #include "pm_matrixUpdate@routines.inc.F90"
     476             :     end procedure
     477             : #endif
     478             : 
     479             : #if IK1_ENABLED
     480           0 :     module procedure shrk_ASS_CSM_SLD_ONO_IK1
     481             :         use pm_kind, only: TKC => IK1
     482             : #include "pm_matrixUpdate@routines.inc.F90"
     483             :     end procedure
     484             : #endif
     485             : 
     486             : #undef IK_ENABLED
     487             : 
     488             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     489             : 
     490             : #define CK_ENABLED 1
     491             : 
     492             : #if CK5_ENABLED
     493             :     module procedure shrk_ASS_CSM_SLD_ONO_CK5
     494             :         use pm_kind, only: TKC => CK5
     495             : #include "pm_matrixUpdate@routines.inc.F90"
     496             :     end procedure
     497             : #endif
     498             : 
     499             : #if CK4_ENABLED
     500           0 :     module procedure shrk_ASS_CSM_SLD_ONO_CK4
     501             :         use pm_kind, only: TKC => CK4
     502             : #include "pm_matrixUpdate@routines.inc.F90"
     503             :     end procedure
     504             : #endif
     505             : 
     506             : #if CK3_ENABLED
     507           0 :     module procedure shrk_ASS_CSM_SLD_ONO_CK3
     508             :         use pm_kind, only: TKC => CK3
     509             : #include "pm_matrixUpdate@routines.inc.F90"
     510             :     end procedure
     511             : #endif
     512             : 
     513             : #if CK2_ENABLED
     514           0 :     module procedure shrk_ASS_CSM_SLD_ONO_CK2
     515             :         use pm_kind, only: TKC => CK2
     516             : #define DISPATCH_ENABLED 1
     517             : #include "pm_matrixUpdate@routines.inc.F90"
     518             : #undef  DISPATCH_ENABLED
     519             :     end procedure
     520             : #endif
     521             : 
     522             : #if CK1_ENABLED
     523           0 :     module procedure shrk_ASS_CSM_SLD_ONO_CK1
     524             :         use pm_kind, only: TKC => CK1
     525             : #define DISPATCH_ENABLED 1
     526             : #include "pm_matrixUpdate@routines.inc.F90"
     527             : #undef  DISPATCH_ENABLED
     528             :     end procedure
     529             : #endif
     530             : 
     531             : #undef CK_ENABLED
     532             : 
     533             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     534             : 
     535             : #define RK_ENABLED 1
     536             : 
     537             : #if RK5_ENABLED
     538             :     module procedure shrk_ASS_CSM_SLD_ONO_RK5
     539             :         use pm_kind, only: TKC => RK5
     540             : #include "pm_matrixUpdate@routines.inc.F90"
     541             :     end procedure
     542             : #endif
     543             : 
     544             : #if RK4_ENABLED
     545           0 :     module procedure shrk_ASS_CSM_SLD_ONO_RK4
     546             :         use pm_kind, only: TKC => RK4
     547             : #include "pm_matrixUpdate@routines.inc.F90"
     548             :     end procedure
     549             : #endif
     550             : 
     551             : #if RK3_ENABLED
     552           0 :     module procedure shrk_ASS_CSM_SLD_ONO_RK3
     553             :         use pm_kind, only: TKC => RK3
     554             : #include "pm_matrixUpdate@routines.inc.F90"
     555             :     end procedure
     556             : #endif
     557             : 
     558             : #if RK2_ENABLED
     559           0 :     module procedure shrk_ASS_CSM_SLD_ONO_RK2
     560             :         use pm_kind, only: TKC => RK2
     561             : #define DISPATCH_ENABLED 1
     562             : #include "pm_matrixUpdate@routines.inc.F90"
     563             : #undef  DISPATCH_ENABLED
     564             :     end procedure
     565             : #endif
     566             : 
     567             : #if RK1_ENABLED
     568           0 :     module procedure shrk_ASS_CSM_SLD_ONO_RK1
     569             :         use pm_kind, only: TKC => RK1
     570             : #define DISPATCH_ENABLED 1
     571             : #include "pm_matrixUpdate@routines.inc.F90"
     572             : #undef  DISPATCH_ENABLED
     573             :     end procedure
     574             : #endif
     575             : 
     576             : #undef RK_ENABLED
     577             : 
     578             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     579             : 
     580             : #undef ONO_ENABLED
     581             : 
     582             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     583             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     584             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     585             : 
     586             : #define OTP_ENABLED 1
     587             : 
     588             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     589             : 
     590             : #define IK_ENABLED 1
     591             : 
     592             : #if IK5_ENABLED
     593           0 :     module procedure shrk_ASS_CSM_SLD_OTP_IK5
     594             :         use pm_kind, only: TKC => IK5
     595             : #include "pm_matrixUpdate@routines.inc.F90"
     596             :     end procedure
     597             : #endif
     598             : 
     599             : #if IK4_ENABLED
     600           0 :     module procedure shrk_ASS_CSM_SLD_OTP_IK4
     601             :         use pm_kind, only: TKC => IK4
     602             : #include "pm_matrixUpdate@routines.inc.F90"
     603             :     end procedure
     604             : #endif
     605             : 
     606             : #if IK3_ENABLED
     607           0 :     module procedure shrk_ASS_CSM_SLD_OTP_IK3
     608             :         use pm_kind, only: TKC => IK3
     609             : #include "pm_matrixUpdate@routines.inc.F90"
     610             :     end procedure
     611             : #endif
     612             : 
     613             : #if IK2_ENABLED
     614           0 :     module procedure shrk_ASS_CSM_SLD_OTP_IK2
     615             :         use pm_kind, only: TKC => IK2
     616             : #include "pm_matrixUpdate@routines.inc.F90"
     617             :     end procedure
     618             : #endif
     619             : 
     620             : #if IK1_ENABLED
     621           0 :     module procedure shrk_ASS_CSM_SLD_OTP_IK1
     622             :         use pm_kind, only: TKC => IK1
     623             : #include "pm_matrixUpdate@routines.inc.F90"
     624             :     end procedure
     625             : #endif
     626             : 
     627             : #undef IK_ENABLED
     628             : 
     629             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     630             : 
     631             : #define CK_ENABLED 1
     632             : 
     633             : #if CK5_ENABLED
     634             :     module procedure shrk_ASS_CSM_SLD_OTP_CK5
     635             :         use pm_kind, only: TKC => CK5
     636             : #include "pm_matrixUpdate@routines.inc.F90"
     637             :     end procedure
     638             : #endif
     639             : 
     640             : #if CK4_ENABLED
     641           0 :     module procedure shrk_ASS_CSM_SLD_OTP_CK4
     642             :         use pm_kind, only: TKC => CK4
     643             : #include "pm_matrixUpdate@routines.inc.F90"
     644             :     end procedure
     645             : #endif
     646             : 
     647             : #if CK3_ENABLED
     648           0 :     module procedure shrk_ASS_CSM_SLD_OTP_CK3
     649             :         use pm_kind, only: TKC => CK3
     650             : #include "pm_matrixUpdate@routines.inc.F90"
     651             :     end procedure
     652             : #endif
     653             : 
     654             : #if CK2_ENABLED
     655           0 :     module procedure shrk_ASS_CSM_SLD_OTP_CK2
     656             :         use pm_kind, only: TKC => CK2
     657             : #define DISPATCH_ENABLED 1
     658             : #include "pm_matrixUpdate@routines.inc.F90"
     659             : #undef  DISPATCH_ENABLED
     660             :     end procedure
     661             : #endif
     662             : 
     663             : #if CK1_ENABLED
     664           0 :     module procedure shrk_ASS_CSM_SLD_OTP_CK1
     665             :         use pm_kind, only: TKC => CK1
     666             : #define DISPATCH_ENABLED 1
     667             : #include "pm_matrixUpdate@routines.inc.F90"
     668             : #undef  DISPATCH_ENABLED
     669             :     end procedure
     670             : #endif
     671             : 
     672             : #undef CK_ENABLED
     673             : 
     674             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     675             : 
     676             : #define RK_ENABLED 1
     677             : 
     678             : #if RK5_ENABLED
     679             :     module procedure shrk_ASS_CSM_SLD_OTP_RK5
     680             :         use pm_kind, only: TKC => RK5
     681             : #include "pm_matrixUpdate@routines.inc.F90"
     682             :     end procedure
     683             : #endif
     684             : 
     685             : #if RK4_ENABLED
     686           0 :     module procedure shrk_ASS_CSM_SLD_OTP_RK4
     687             :         use pm_kind, only: TKC => RK4
     688             : #include "pm_matrixUpdate@routines.inc.F90"
     689             :     end procedure
     690             : #endif
     691             : 
     692             : #if RK3_ENABLED
     693           0 :     module procedure shrk_ASS_CSM_SLD_OTP_RK3
     694             :         use pm_kind, only: TKC => RK3
     695             : #include "pm_matrixUpdate@routines.inc.F90"
     696             :     end procedure
     697             : #endif
     698             : 
     699             : #if RK2_ENABLED
     700           0 :     module procedure shrk_ASS_CSM_SLD_OTP_RK2
     701             :         use pm_kind, only: TKC => RK2
     702             : #define DISPATCH_ENABLED 1
     703             : #include "pm_matrixUpdate@routines.inc.F90"
     704             : #undef  DISPATCH_ENABLED
     705             :     end procedure
     706             : #endif
     707             : 
     708             : #if RK1_ENABLED
     709           1 :     module procedure shrk_ASS_CSM_SLD_OTP_RK1
     710             :         use pm_kind, only: TKC => RK1
     711             : #define DISPATCH_ENABLED 1
     712             : #include "pm_matrixUpdate@routines.inc.F90"
     713             : #undef  DISPATCH_ENABLED
     714             :     end procedure
     715             : #endif
     716             : 
     717             : #undef RK_ENABLED
     718             : 
     719             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     720             : 
     721             : #undef OTP_ENABLED
     722             : 
     723             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     724             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     725             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     726             : 
     727             : #undef SLD_ENABLED
     728             : 
     729             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     730             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     731             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     732             : 
     733             : #define SUD_ENABLED 1
     734             : 
     735             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     736             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     737             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     738             : 
     739             : #define ONO_ENABLED 1
     740             : 
     741             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     742             : 
     743             : #define IK_ENABLED 1
     744             : 
     745             : #if IK5_ENABLED
     746           0 :     module procedure shrk_ASS_CSM_SUD_ONO_IK5
     747             :         use pm_kind, only: TKC => IK5
     748             : #include "pm_matrixUpdate@routines.inc.F90"
     749             :     end procedure
     750             : #endif
     751             : 
     752             : #if IK4_ENABLED
     753           0 :     module procedure shrk_ASS_CSM_SUD_ONO_IK4
     754             :         use pm_kind, only: TKC => IK4
     755             : #include "pm_matrixUpdate@routines.inc.F90"
     756             :     end procedure
     757             : #endif
     758             : 
     759             : #if IK3_ENABLED
     760           0 :     module procedure shrk_ASS_CSM_SUD_ONO_IK3
     761             :         use pm_kind, only: TKC => IK3
     762             : #include "pm_matrixUpdate@routines.inc.F90"
     763             :     end procedure
     764             : #endif
     765             : 
     766             : #if IK2_ENABLED
     767           0 :     module procedure shrk_ASS_CSM_SUD_ONO_IK2
     768             :         use pm_kind, only: TKC => IK2
     769             : #include "pm_matrixUpdate@routines.inc.F90"
     770             :     end procedure
     771             : #endif
     772             : 
     773             : #if IK1_ENABLED
     774           0 :     module procedure shrk_ASS_CSM_SUD_ONO_IK1
     775             :         use pm_kind, only: TKC => IK1
     776             : #include "pm_matrixUpdate@routines.inc.F90"
     777             :     end procedure
     778             : #endif
     779             : 
     780             : #undef IK_ENABLED
     781             : 
     782             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     783             : 
     784             : #define CK_ENABLED 1
     785             : 
     786             : #if CK5_ENABLED
     787             :     module procedure shrk_ASS_CSM_SUD_ONO_CK5
     788             :         use pm_kind, only: TKC => CK5
     789             : #include "pm_matrixUpdate@routines.inc.F90"
     790             :     end procedure
     791             : #endif
     792             : 
     793             : #if CK4_ENABLED
     794           0 :     module procedure shrk_ASS_CSM_SUD_ONO_CK4
     795             :         use pm_kind, only: TKC => CK4
     796             : #include "pm_matrixUpdate@routines.inc.F90"
     797             :     end procedure
     798             : #endif
     799             : 
     800             : #if CK3_ENABLED
     801           0 :     module procedure shrk_ASS_CSM_SUD_ONO_CK3
     802             :         use pm_kind, only: TKC => CK3
     803             : #include "pm_matrixUpdate@routines.inc.F90"
     804             :     end procedure
     805             : #endif
     806             : 
     807             : #if CK2_ENABLED
     808           0 :     module procedure shrk_ASS_CSM_SUD_ONO_CK2
     809             :         use pm_kind, only: TKC => CK2
     810             : #define DISPATCH_ENABLED 1
     811             : #include "pm_matrixUpdate@routines.inc.F90"
     812             : #undef  DISPATCH_ENABLED
     813             :     end procedure
     814             : #endif
     815             : 
     816             : #if CK1_ENABLED
     817           1 :     module procedure shrk_ASS_CSM_SUD_ONO_CK1
     818             :         use pm_kind, only: TKC => CK1
     819             : #define DISPATCH_ENABLED 1
     820             : #include "pm_matrixUpdate@routines.inc.F90"
     821             : #undef  DISPATCH_ENABLED
     822             :     end procedure
     823             : #endif
     824             : 
     825             : #undef CK_ENABLED
     826             : 
     827             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     828             : 
     829             : #define RK_ENABLED 1
     830             : 
     831             : #if RK5_ENABLED
     832             :     module procedure shrk_ASS_CSM_SUD_ONO_RK5
     833             :         use pm_kind, only: TKC => RK5
     834             : #include "pm_matrixUpdate@routines.inc.F90"
     835             :     end procedure
     836             : #endif
     837             : 
     838             : #if RK4_ENABLED
     839           0 :     module procedure shrk_ASS_CSM_SUD_ONO_RK4
     840             :         use pm_kind, only: TKC => RK4
     841             : #include "pm_matrixUpdate@routines.inc.F90"
     842             :     end procedure
     843             : #endif
     844             : 
     845             : #if RK3_ENABLED
     846           0 :     module procedure shrk_ASS_CSM_SUD_ONO_RK3
     847             :         use pm_kind, only: TKC => RK3
     848             : #include "pm_matrixUpdate@routines.inc.F90"
     849             :     end procedure
     850             : #endif
     851             : 
     852             : #if RK2_ENABLED
     853           0 :     module procedure shrk_ASS_CSM_SUD_ONO_RK2
     854             :         use pm_kind, only: TKC => RK2
     855             : #define DISPATCH_ENABLED 1
     856             : #include "pm_matrixUpdate@routines.inc.F90"
     857             : #undef  DISPATCH_ENABLED
     858             :     end procedure
     859             : #endif
     860             : 
     861             : #if RK1_ENABLED
     862           1 :     module procedure shrk_ASS_CSM_SUD_ONO_RK1
     863             :         use pm_kind, only: TKC => RK1
     864             : #define DISPATCH_ENABLED 1
     865             : #include "pm_matrixUpdate@routines.inc.F90"
     866             : #undef  DISPATCH_ENABLED
     867             :     end procedure
     868             : #endif
     869             : 
     870             : #undef RK_ENABLED
     871             : 
     872             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     873             : 
     874             : #undef ONO_ENABLED
     875             : 
     876             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     877             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     878             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     879             : 
     880             : #define OTP_ENABLED 1
     881             : 
     882             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     883             : 
     884             : #define IK_ENABLED 1
     885             : 
     886             : #if IK5_ENABLED
     887           0 :     module procedure shrk_ASS_CSM_SUD_OTP_IK5
     888             :         use pm_kind, only: TKC => IK5
     889             : #include "pm_matrixUpdate@routines.inc.F90"
     890             :     end procedure
     891             : #endif
     892             : 
     893             : #if IK4_ENABLED
     894           0 :     module procedure shrk_ASS_CSM_SUD_OTP_IK4
     895             :         use pm_kind, only: TKC => IK4
     896             : #include "pm_matrixUpdate@routines.inc.F90"
     897             :     end procedure
     898             : #endif
     899             : 
     900             : #if IK3_ENABLED
     901           0 :     module procedure shrk_ASS_CSM_SUD_OTP_IK3
     902             :         use pm_kind, only: TKC => IK3
     903             : #include "pm_matrixUpdate@routines.inc.F90"
     904             :     end procedure
     905             : #endif
     906             : 
     907             : #if IK2_ENABLED
     908           0 :     module procedure shrk_ASS_CSM_SUD_OTP_IK2
     909             :         use pm_kind, only: TKC => IK2
     910             : #include "pm_matrixUpdate@routines.inc.F90"
     911             :     end procedure
     912             : #endif
     913             : 
     914             : #if IK1_ENABLED
     915           0 :     module procedure shrk_ASS_CSM_SUD_OTP_IK1
     916             :         use pm_kind, only: TKC => IK1
     917             : #include "pm_matrixUpdate@routines.inc.F90"
     918             :     end procedure
     919             : #endif
     920             : 
     921             : #undef IK_ENABLED
     922             : 
     923             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     924             : 
     925             : #define CK_ENABLED 1
     926             : 
     927             : #if CK5_ENABLED
     928             :     module procedure shrk_ASS_CSM_SUD_OTP_CK5
     929             :         use pm_kind, only: TKC => CK5
     930             : #include "pm_matrixUpdate@routines.inc.F90"
     931             :     end procedure
     932             : #endif
     933             : 
     934             : #if CK4_ENABLED
     935           0 :     module procedure shrk_ASS_CSM_SUD_OTP_CK4
     936             :         use pm_kind, only: TKC => CK4
     937             : #include "pm_matrixUpdate@routines.inc.F90"
     938             :     end procedure
     939             : #endif
     940             : 
     941             : #if CK3_ENABLED
     942           0 :     module procedure shrk_ASS_CSM_SUD_OTP_CK3
     943             :         use pm_kind, only: TKC => CK3
     944             : #include "pm_matrixUpdate@routines.inc.F90"
     945             :     end procedure
     946             : #endif
     947             : 
     948             : #if CK2_ENABLED
     949           0 :     module procedure shrk_ASS_CSM_SUD_OTP_CK2
     950             :         use pm_kind, only: TKC => CK2
     951             : #define DISPATCH_ENABLED 1
     952             : #include "pm_matrixUpdate@routines.inc.F90"
     953             : #undef  DISPATCH_ENABLED
     954             :     end procedure
     955             : #endif
     956             : 
     957             : #if CK1_ENABLED
     958           0 :     module procedure shrk_ASS_CSM_SUD_OTP_CK1
     959             :         use pm_kind, only: TKC => CK1
     960             : #define DISPATCH_ENABLED 1
     961             : #include "pm_matrixUpdate@routines.inc.F90"
     962             : #undef  DISPATCH_ENABLED
     963             :     end procedure
     964             : #endif
     965             : 
     966             : #undef CK_ENABLED
     967             : 
     968             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     969             : 
     970             : #define RK_ENABLED 1
     971             : 
     972             : #if RK5_ENABLED
     973             :     module procedure shrk_ASS_CSM_SUD_OTP_RK5
     974             :         use pm_kind, only: TKC => RK5
     975             : #include "pm_matrixUpdate@routines.inc.F90"
     976             :     end procedure
     977             : #endif
     978             : 
     979             : #if RK4_ENABLED
     980           0 :     module procedure shrk_ASS_CSM_SUD_OTP_RK4
     981             :         use pm_kind, only: TKC => RK4
     982             : #include "pm_matrixUpdate@routines.inc.F90"
     983             :     end procedure
     984             : #endif
     985             : 
     986             : #if RK3_ENABLED
     987           0 :     module procedure shrk_ASS_CSM_SUD_OTP_RK3
     988             :         use pm_kind, only: TKC => RK3
     989             : #include "pm_matrixUpdate@routines.inc.F90"
     990             :     end procedure
     991             : #endif
     992             : 
     993             : #if RK2_ENABLED
     994           0 :     module procedure shrk_ASS_CSM_SUD_OTP_RK2
     995             :         use pm_kind, only: TKC => RK2
     996             : #define DISPATCH_ENABLED 1
     997             : #include "pm_matrixUpdate@routines.inc.F90"
     998             : #undef  DISPATCH_ENABLED
     999             :     end procedure
    1000             : #endif
    1001             : 
    1002             : #if RK1_ENABLED
    1003           0 :     module procedure shrk_ASS_CSM_SUD_OTP_RK1
    1004             :         use pm_kind, only: TKC => RK1
    1005             : #define DISPATCH_ENABLED 1
    1006             : #include "pm_matrixUpdate@routines.inc.F90"
    1007             : #undef  DISPATCH_ENABLED
    1008             :     end procedure
    1009             : #endif
    1010             : 
    1011             : #undef RK_ENABLED
    1012             : 
    1013             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1014             : 
    1015             : #undef OTP_ENABLED
    1016             : 
    1017             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1018             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1019             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1020             : 
    1021             : #undef SUD_ENABLED
    1022             : 
    1023             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1024             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1025             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1026             : 
    1027             : #undef CSM_ENABLED
    1028             : 
    1029             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1030             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1031             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1032             : 
    1033             : #define CHM_ENABLED 1
    1034             : 
    1035             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1036             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1037             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1038             : 
    1039             : #define SLD_ENABLED 1
    1040             : 
    1041             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1042             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1043             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1044             : 
    1045             : #define ONO_ENABLED 1
    1046             : 
    1047             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1048             : 
    1049             : #define IK_ENABLED 1
    1050             : 
    1051             : #if IK5_ENABLED
    1052           0 :     module procedure shrk_ASS_CHM_SLD_ONO_IK5
    1053             :         use pm_kind, only: TKC => IK5
    1054             : #include "pm_matrixUpdate@routines.inc.F90"
    1055             :     end procedure
    1056             : #endif
    1057             : 
    1058             : #if IK4_ENABLED
    1059           0 :     module procedure shrk_ASS_CHM_SLD_ONO_IK4
    1060             :         use pm_kind, only: TKC => IK4
    1061             : #include "pm_matrixUpdate@routines.inc.F90"
    1062             :     end procedure
    1063             : #endif
    1064             : 
    1065             : #if IK3_ENABLED
    1066           0 :     module procedure shrk_ASS_CHM_SLD_ONO_IK3
    1067             :         use pm_kind, only: TKC => IK3
    1068             : #include "pm_matrixUpdate@routines.inc.F90"
    1069             :     end procedure
    1070             : #endif
    1071             : 
    1072             : #if IK2_ENABLED
    1073           0 :     module procedure shrk_ASS_CHM_SLD_ONO_IK2
    1074             :         use pm_kind, only: TKC => IK2
    1075             : #include "pm_matrixUpdate@routines.inc.F90"
    1076             :     end procedure
    1077             : #endif
    1078             : 
    1079             : #if IK1_ENABLED
    1080           0 :     module procedure shrk_ASS_CHM_SLD_ONO_IK1
    1081             :         use pm_kind, only: TKC => IK1
    1082             : #include "pm_matrixUpdate@routines.inc.F90"
    1083             :     end procedure
    1084             : #endif
    1085             : 
    1086             : #undef IK_ENABLED
    1087             : 
    1088             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1089             : 
    1090             : #define CK_ENABLED 1
    1091             : 
    1092             : #if CK5_ENABLED
    1093             :     module procedure shrk_ASS_CHM_SLD_ONO_CK5
    1094             :         use pm_kind, only: TKC => CK5
    1095             : #include "pm_matrixUpdate@routines.inc.F90"
    1096             :     end procedure
    1097             : #endif
    1098             : 
    1099             : #if CK4_ENABLED
    1100           0 :     module procedure shrk_ASS_CHM_SLD_ONO_CK4
    1101             :         use pm_kind, only: TKC => CK4
    1102             : #include "pm_matrixUpdate@routines.inc.F90"
    1103             :     end procedure
    1104             : #endif
    1105             : 
    1106             : #if CK3_ENABLED
    1107           0 :     module procedure shrk_ASS_CHM_SLD_ONO_CK3
    1108             :         use pm_kind, only: TKC => CK3
    1109             : #include "pm_matrixUpdate@routines.inc.F90"
    1110             :     end procedure
    1111             : #endif
    1112             : 
    1113             : #if CK2_ENABLED
    1114           0 :     module procedure shrk_ASS_CHM_SLD_ONO_CK2
    1115             :         use pm_kind, only: TKC => CK2
    1116             : #define DISPATCH_ENABLED 1
    1117             : #include "pm_matrixUpdate@routines.inc.F90"
    1118             : #undef  DISPATCH_ENABLED
    1119             :     end procedure
    1120             : #endif
    1121             : 
    1122             : #if CK1_ENABLED
    1123           1 :     module procedure shrk_ASS_CHM_SLD_ONO_CK1
    1124             :         use pm_kind, only: TKC => CK1
    1125             : #define DISPATCH_ENABLED 1
    1126             : #include "pm_matrixUpdate@routines.inc.F90"
    1127             : #undef  DISPATCH_ENABLED
    1128             :     end procedure
    1129             : #endif
    1130             : 
    1131             : #undef CK_ENABLED
    1132             : 
    1133             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1134             : 
    1135             : #define RK_ENABLED 1
    1136             : 
    1137             : #if RK5_ENABLED
    1138             :     module procedure shrk_ASS_CHM_SLD_ONO_RK5
    1139             :         use pm_kind, only: TKC => RK5
    1140             : #include "pm_matrixUpdate@routines.inc.F90"
    1141             :     end procedure
    1142             : #endif
    1143             : 
    1144             : #if RK4_ENABLED
    1145           0 :     module procedure shrk_ASS_CHM_SLD_ONO_RK4
    1146             :         use pm_kind, only: TKC => RK4
    1147             : #include "pm_matrixUpdate@routines.inc.F90"
    1148             :     end procedure
    1149             : #endif
    1150             : 
    1151             : #if RK3_ENABLED
    1152           0 :     module procedure shrk_ASS_CHM_SLD_ONO_RK3
    1153             :         use pm_kind, only: TKC => RK3
    1154             : #include "pm_matrixUpdate@routines.inc.F90"
    1155             :     end procedure
    1156             : #endif
    1157             : 
    1158             : #if RK2_ENABLED
    1159           0 :     module procedure shrk_ASS_CHM_SLD_ONO_RK2
    1160             :         use pm_kind, only: TKC => RK2
    1161             : #define DISPATCH_ENABLED 1
    1162             : #include "pm_matrixUpdate@routines.inc.F90"
    1163             : #undef  DISPATCH_ENABLED
    1164             :     end procedure
    1165             : #endif
    1166             : 
    1167             : #if RK1_ENABLED
    1168           0 :     module procedure shrk_ASS_CHM_SLD_ONO_RK1
    1169             :         use pm_kind, only: TKC => RK1
    1170             : #define DISPATCH_ENABLED 1
    1171             : #include "pm_matrixUpdate@routines.inc.F90"
    1172             : #undef  DISPATCH_ENABLED
    1173             :     end procedure
    1174             : #endif
    1175             : 
    1176             : #undef RK_ENABLED
    1177             : 
    1178             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1179             : 
    1180             : #undef ONO_ENABLED
    1181             : 
    1182             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1183             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1184             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1185             : 
    1186             : #define OTP_ENABLED 1
    1187             : 
    1188             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1189             : 
    1190             : #define IK_ENABLED 1
    1191             : 
    1192             : #if IK5_ENABLED
    1193           0 :     module procedure shrk_ASS_CHM_SLD_OTP_IK5
    1194             :         use pm_kind, only: TKC => IK5
    1195             : #include "pm_matrixUpdate@routines.inc.F90"
    1196             :     end procedure
    1197             : #endif
    1198             : 
    1199             : #if IK4_ENABLED
    1200           0 :     module procedure shrk_ASS_CHM_SLD_OTP_IK4
    1201             :         use pm_kind, only: TKC => IK4
    1202             : #include "pm_matrixUpdate@routines.inc.F90"
    1203             :     end procedure
    1204             : #endif
    1205             : 
    1206             : #if IK3_ENABLED
    1207           0 :     module procedure shrk_ASS_CHM_SLD_OTP_IK3
    1208             :         use pm_kind, only: TKC => IK3
    1209             : #include "pm_matrixUpdate@routines.inc.F90"
    1210             :     end procedure
    1211             : #endif
    1212             : 
    1213             : #if IK2_ENABLED
    1214           0 :     module procedure shrk_ASS_CHM_SLD_OTP_IK2
    1215             :         use pm_kind, only: TKC => IK2
    1216             : #include "pm_matrixUpdate@routines.inc.F90"
    1217             :     end procedure
    1218             : #endif
    1219             : 
    1220             : #if IK1_ENABLED
    1221           0 :     module procedure shrk_ASS_CHM_SLD_OTP_IK1
    1222             :         use pm_kind, only: TKC => IK1
    1223             : #include "pm_matrixUpdate@routines.inc.F90"
    1224             :     end procedure
    1225             : #endif
    1226             : 
    1227             : #undef IK_ENABLED
    1228             : 
    1229             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1230             : 
    1231             : #define CK_ENABLED 1
    1232             : 
    1233             : #if CK5_ENABLED
    1234             :     module procedure shrk_ASS_CHM_SLD_OTP_CK5
    1235             :         use pm_kind, only: TKC => CK5
    1236             : #include "pm_matrixUpdate@routines.inc.F90"
    1237             :     end procedure
    1238             : #endif
    1239             : 
    1240             : #if CK4_ENABLED
    1241           0 :     module procedure shrk_ASS_CHM_SLD_OTP_CK4
    1242             :         use pm_kind, only: TKC => CK4
    1243             : #include "pm_matrixUpdate@routines.inc.F90"
    1244             :     end procedure
    1245             : #endif
    1246             : 
    1247             : #if CK3_ENABLED
    1248           0 :     module procedure shrk_ASS_CHM_SLD_OTP_CK3
    1249             :         use pm_kind, only: TKC => CK3
    1250             : #include "pm_matrixUpdate@routines.inc.F90"
    1251             :     end procedure
    1252             : #endif
    1253             : 
    1254             : #if CK2_ENABLED
    1255           0 :     module procedure shrk_ASS_CHM_SLD_OTP_CK2
    1256             :         use pm_kind, only: TKC => CK2
    1257             : #define DISPATCH_ENABLED 1
    1258             : #include "pm_matrixUpdate@routines.inc.F90"
    1259             : #undef  DISPATCH_ENABLED
    1260             :     end procedure
    1261             : #endif
    1262             : 
    1263             : #if CK1_ENABLED
    1264           1 :     module procedure shrk_ASS_CHM_SLD_OTP_CK1
    1265             :         use pm_kind, only: TKC => CK1
    1266             : #define DISPATCH_ENABLED 1
    1267             : #include "pm_matrixUpdate@routines.inc.F90"
    1268             : #undef  DISPATCH_ENABLED
    1269             :     end procedure
    1270             : #endif
    1271             : 
    1272             : #undef CK_ENABLED
    1273             : 
    1274             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1275             : 
    1276             : #define RK_ENABLED 1
    1277             : 
    1278             : #if RK5_ENABLED
    1279             :     module procedure shrk_ASS_CHM_SLD_OTP_RK5
    1280             :         use pm_kind, only: TKC => RK5
    1281             : #include "pm_matrixUpdate@routines.inc.F90"
    1282             :     end procedure
    1283             : #endif
    1284             : 
    1285             : #if RK4_ENABLED
    1286           0 :     module procedure shrk_ASS_CHM_SLD_OTP_RK4
    1287             :         use pm_kind, only: TKC => RK4
    1288             : #include "pm_matrixUpdate@routines.inc.F90"
    1289             :     end procedure
    1290             : #endif
    1291             : 
    1292             : #if RK3_ENABLED
    1293           0 :     module procedure shrk_ASS_CHM_SLD_OTP_RK3
    1294             :         use pm_kind, only: TKC => RK3
    1295             : #include "pm_matrixUpdate@routines.inc.F90"
    1296             :     end procedure
    1297             : #endif
    1298             : 
    1299             : #if RK2_ENABLED
    1300           0 :     module procedure shrk_ASS_CHM_SLD_OTP_RK2
    1301             :         use pm_kind, only: TKC => RK2
    1302             : #define DISPATCH_ENABLED 1
    1303             : #include "pm_matrixUpdate@routines.inc.F90"
    1304             : #undef  DISPATCH_ENABLED
    1305             :     end procedure
    1306             : #endif
    1307             : 
    1308             : #if RK1_ENABLED
    1309           0 :     module procedure shrk_ASS_CHM_SLD_OTP_RK1
    1310             :         use pm_kind, only: TKC => RK1
    1311             : #define DISPATCH_ENABLED 1
    1312             : #include "pm_matrixUpdate@routines.inc.F90"
    1313             : #undef  DISPATCH_ENABLED
    1314             :     end procedure
    1315             : #endif
    1316             : 
    1317             : #undef RK_ENABLED
    1318             : 
    1319             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1320             : 
    1321             : #undef OTP_ENABLED
    1322             : 
    1323             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1324             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1325             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1326             : 
    1327             : #undef SLD_ENABLED
    1328             : 
    1329             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1330             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1331             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1332             : 
    1333             : #define SUD_ENABLED 1
    1334             : 
    1335             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1336             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1337             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1338             : 
    1339             : #define ONO_ENABLED 1
    1340             : 
    1341             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1342             : 
    1343             : #define IK_ENABLED 1
    1344             : 
    1345             : #if IK5_ENABLED
    1346           0 :     module procedure shrk_ASS_CHM_SUD_ONO_IK5
    1347             :         use pm_kind, only: TKC => IK5
    1348             : #include "pm_matrixUpdate@routines.inc.F90"
    1349             :     end procedure
    1350             : #endif
    1351             : 
    1352             : #if IK4_ENABLED
    1353           0 :     module procedure shrk_ASS_CHM_SUD_ONO_IK4
    1354             :         use pm_kind, only: TKC => IK4
    1355             : #include "pm_matrixUpdate@routines.inc.F90"
    1356             :     end procedure
    1357             : #endif
    1358             : 
    1359             : #if IK3_ENABLED
    1360           0 :     module procedure shrk_ASS_CHM_SUD_ONO_IK3
    1361             :         use pm_kind, only: TKC => IK3
    1362             : #include "pm_matrixUpdate@routines.inc.F90"
    1363             :     end procedure
    1364             : #endif
    1365             : 
    1366             : #if IK2_ENABLED
    1367           0 :     module procedure shrk_ASS_CHM_SUD_ONO_IK2
    1368             :         use pm_kind, only: TKC => IK2
    1369             : #include "pm_matrixUpdate@routines.inc.F90"
    1370             :     end procedure
    1371             : #endif
    1372             : 
    1373             : #if IK1_ENABLED
    1374           0 :     module procedure shrk_ASS_CHM_SUD_ONO_IK1
    1375             :         use pm_kind, only: TKC => IK1
    1376             : #include "pm_matrixUpdate@routines.inc.F90"
    1377             :     end procedure
    1378             : #endif
    1379             : 
    1380             : #undef IK_ENABLED
    1381             : 
    1382             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1383             : 
    1384             : #define CK_ENABLED 1
    1385             : 
    1386             : #if CK5_ENABLED
    1387             :     module procedure shrk_ASS_CHM_SUD_ONO_CK5
    1388             :         use pm_kind, only: TKC => CK5
    1389             : #include "pm_matrixUpdate@routines.inc.F90"
    1390             :     end procedure
    1391             : #endif
    1392             : 
    1393             : #if CK4_ENABLED
    1394           0 :     module procedure shrk_ASS_CHM_SUD_ONO_CK4
    1395             :         use pm_kind, only: TKC => CK4
    1396             : #include "pm_matrixUpdate@routines.inc.F90"
    1397             :     end procedure
    1398             : #endif
    1399             : 
    1400             : #if CK3_ENABLED
    1401           0 :     module procedure shrk_ASS_CHM_SUD_ONO_CK3
    1402             :         use pm_kind, only: TKC => CK3
    1403             : #include "pm_matrixUpdate@routines.inc.F90"
    1404             :     end procedure
    1405             : #endif
    1406             : 
    1407             : #if CK2_ENABLED
    1408           0 :     module procedure shrk_ASS_CHM_SUD_ONO_CK2
    1409             :         use pm_kind, only: TKC => CK2
    1410             : #define DISPATCH_ENABLED 1
    1411             : #include "pm_matrixUpdate@routines.inc.F90"
    1412             : #undef  DISPATCH_ENABLED
    1413             :     end procedure
    1414             : #endif
    1415             : 
    1416             : #if CK1_ENABLED
    1417           1 :     module procedure shrk_ASS_CHM_SUD_ONO_CK1
    1418             :         use pm_kind, only: TKC => CK1
    1419             : #define DISPATCH_ENABLED 1
    1420             : #include "pm_matrixUpdate@routines.inc.F90"
    1421             : #undef  DISPATCH_ENABLED
    1422             :     end procedure
    1423             : #endif
    1424             : 
    1425             : #undef CK_ENABLED
    1426             : 
    1427             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1428             : 
    1429             : #define RK_ENABLED 1
    1430             : 
    1431             : #if RK5_ENABLED
    1432             :     module procedure shrk_ASS_CHM_SUD_ONO_RK5
    1433             :         use pm_kind, only: TKC => RK5
    1434             : #include "pm_matrixUpdate@routines.inc.F90"
    1435             :     end procedure
    1436             : #endif
    1437             : 
    1438             : #if RK4_ENABLED
    1439           0 :     module procedure shrk_ASS_CHM_SUD_ONO_RK4
    1440             :         use pm_kind, only: TKC => RK4
    1441             : #include "pm_matrixUpdate@routines.inc.F90"
    1442             :     end procedure
    1443             : #endif
    1444             : 
    1445             : #if RK3_ENABLED
    1446           0 :     module procedure shrk_ASS_CHM_SUD_ONO_RK3
    1447             :         use pm_kind, only: TKC => RK3
    1448             : #include "pm_matrixUpdate@routines.inc.F90"
    1449             :     end procedure
    1450             : #endif
    1451             : 
    1452             : #if RK2_ENABLED
    1453           0 :     module procedure shrk_ASS_CHM_SUD_ONO_RK2
    1454             :         use pm_kind, only: TKC => RK2
    1455             : #define DISPATCH_ENABLED 1
    1456             : #include "pm_matrixUpdate@routines.inc.F90"
    1457             : #undef  DISPATCH_ENABLED
    1458             :     end procedure
    1459             : #endif
    1460             : 
    1461             : #if RK1_ENABLED
    1462           0 :     module procedure shrk_ASS_CHM_SUD_ONO_RK1
    1463             :         use pm_kind, only: TKC => RK1
    1464             : #define DISPATCH_ENABLED 1
    1465             : #include "pm_matrixUpdate@routines.inc.F90"
    1466             : #undef  DISPATCH_ENABLED
    1467             :     end procedure
    1468             : #endif
    1469             : 
    1470             : #undef RK_ENABLED
    1471             : 
    1472             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1473             : 
    1474             : #undef ONO_ENABLED
    1475             : 
    1476             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1477             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1478             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1479             : 
    1480             : #define OTP_ENABLED 1
    1481             : 
    1482             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1483             : 
    1484             : #define IK_ENABLED 1
    1485             : 
    1486             : #if IK5_ENABLED
    1487           0 :     module procedure shrk_ASS_CHM_SUD_OTP_IK5
    1488             :         use pm_kind, only: TKC => IK5
    1489             : #include "pm_matrixUpdate@routines.inc.F90"
    1490             :     end procedure
    1491             : #endif
    1492             : 
    1493             : #if IK4_ENABLED
    1494           0 :     module procedure shrk_ASS_CHM_SUD_OTP_IK4
    1495             :         use pm_kind, only: TKC => IK4
    1496             : #include "pm_matrixUpdate@routines.inc.F90"
    1497             :     end procedure
    1498             : #endif
    1499             : 
    1500             : #if IK3_ENABLED
    1501           0 :     module procedure shrk_ASS_CHM_SUD_OTP_IK3
    1502             :         use pm_kind, only: TKC => IK3
    1503             : #include "pm_matrixUpdate@routines.inc.F90"
    1504             :     end procedure
    1505             : #endif
    1506             : 
    1507             : #if IK2_ENABLED
    1508           0 :     module procedure shrk_ASS_CHM_SUD_OTP_IK2
    1509             :         use pm_kind, only: TKC => IK2
    1510             : #include "pm_matrixUpdate@routines.inc.F90"
    1511             :     end procedure
    1512             : #endif
    1513             : 
    1514             : #if IK1_ENABLED
    1515           0 :     module procedure shrk_ASS_CHM_SUD_OTP_IK1
    1516             :         use pm_kind, only: TKC => IK1
    1517             : #include "pm_matrixUpdate@routines.inc.F90"
    1518             :     end procedure
    1519             : #endif
    1520             : 
    1521             : #undef IK_ENABLED
    1522             : 
    1523             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1524             : 
    1525             : #define CK_ENABLED 1
    1526             : 
    1527             : #if CK5_ENABLED
    1528             :     module procedure shrk_ASS_CHM_SUD_OTP_CK5
    1529             :         use pm_kind, only: TKC => CK5
    1530             : #include "pm_matrixUpdate@routines.inc.F90"
    1531             :     end procedure
    1532             : #endif
    1533             : 
    1534             : #if CK4_ENABLED
    1535           0 :     module procedure shrk_ASS_CHM_SUD_OTP_CK4
    1536             :         use pm_kind, only: TKC => CK4
    1537             : #include "pm_matrixUpdate@routines.inc.F90"
    1538             :     end procedure
    1539             : #endif
    1540             : 
    1541             : #if CK3_ENABLED
    1542           0 :     module procedure shrk_ASS_CHM_SUD_OTP_CK3
    1543             :         use pm_kind, only: TKC => CK3
    1544             : #include "pm_matrixUpdate@routines.inc.F90"
    1545             :     end procedure
    1546             : #endif
    1547             : 
    1548             : #if CK2_ENABLED
    1549           0 :     module procedure shrk_ASS_CHM_SUD_OTP_CK2
    1550             :         use pm_kind, only: TKC => CK2
    1551             : #define DISPATCH_ENABLED 1
    1552             : #include "pm_matrixUpdate@routines.inc.F90"
    1553             : #undef  DISPATCH_ENABLED
    1554             :     end procedure
    1555             : #endif
    1556             : 
    1557             : #if CK1_ENABLED
    1558           0 :     module procedure shrk_ASS_CHM_SUD_OTP_CK1
    1559             :         use pm_kind, only: TKC => CK1
    1560             : #define DISPATCH_ENABLED 1
    1561             : #include "pm_matrixUpdate@routines.inc.F90"
    1562             : #undef  DISPATCH_ENABLED
    1563             :     end procedure
    1564             : #endif
    1565             : 
    1566             : #undef CK_ENABLED
    1567             : 
    1568             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1569             : 
    1570             : #define RK_ENABLED 1
    1571             : 
    1572             : #if RK5_ENABLED
    1573             :     module procedure shrk_ASS_CHM_SUD_OTP_RK5
    1574             :         use pm_kind, only: TKC => RK5
    1575             : #include "pm_matrixUpdate@routines.inc.F90"
    1576             :     end procedure
    1577             : #endif
    1578             : 
    1579             : #if RK4_ENABLED
    1580           0 :     module procedure shrk_ASS_CHM_SUD_OTP_RK4
    1581             :         use pm_kind, only: TKC => RK4
    1582             : #include "pm_matrixUpdate@routines.inc.F90"
    1583             :     end procedure
    1584             : #endif
    1585             : 
    1586             : #if RK3_ENABLED
    1587           0 :     module procedure shrk_ASS_CHM_SUD_OTP_RK3
    1588             :         use pm_kind, only: TKC => RK3
    1589             : #include "pm_matrixUpdate@routines.inc.F90"
    1590             :     end procedure
    1591             : #endif
    1592             : 
    1593             : #if RK2_ENABLED
    1594           0 :     module procedure shrk_ASS_CHM_SUD_OTP_RK2
    1595             :         use pm_kind, only: TKC => RK2
    1596             : #define DISPATCH_ENABLED 1
    1597             : #include "pm_matrixUpdate@routines.inc.F90"
    1598             : #undef  DISPATCH_ENABLED
    1599             :     end procedure
    1600             : #endif
    1601             : 
    1602             : #if RK1_ENABLED
    1603           0 :     module procedure shrk_ASS_CHM_SUD_OTP_RK1
    1604             :         use pm_kind, only: TKC => RK1
    1605             : #define DISPATCH_ENABLED 1
    1606             : #include "pm_matrixUpdate@routines.inc.F90"
    1607             : #undef  DISPATCH_ENABLED
    1608             :     end procedure
    1609             : #endif
    1610             : 
    1611             : #undef RK_ENABLED
    1612             : 
    1613             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1614             : 
    1615             : #undef OTP_ENABLED
    1616             : 
    1617             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1618             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1619             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1620             : 
    1621             : #undef SUD_ENABLED
    1622             : 
    1623             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1624             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1625             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1626             : 
    1627             : #undef CHM_ENABLED
    1628             : 
    1629             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1630             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1631             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1632             : 
    1633             : #undef ASS_ENABLED
    1634             : 
    1635             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1636             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1637             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1638             : 
    1639             : #define EXP_ENABLED 1
    1640             : 
    1641             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1642             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1643             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1644             : 
    1645             : #define CSM_ENABLED 1
    1646             : 
    1647             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1648             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1649             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1650             : 
    1651             : #define SLD_ENABLED 1
    1652             : 
    1653             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1654             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1655             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1656             : 
    1657             : #define ONO_ENABLED 1
    1658             : 
    1659             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1660             : 
    1661             : #define IK_ENABLED 1
    1662             : 
    1663             : #if IK5_ENABLED
    1664           0 :     module procedure shrk_EXP_CSM_SLD_ONO_IK5
    1665             :         use pm_kind, only: TKC => IK5
    1666             : #include "pm_matrixUpdate@routines.inc.F90"
    1667             :     end procedure
    1668             : #endif
    1669             : 
    1670             : #if IK4_ENABLED
    1671           0 :     module procedure shrk_EXP_CSM_SLD_ONO_IK4
    1672             :         use pm_kind, only: TKC => IK4
    1673             : #include "pm_matrixUpdate@routines.inc.F90"
    1674             :     end procedure
    1675             : #endif
    1676             : 
    1677             : #if IK3_ENABLED
    1678           0 :     module procedure shrk_EXP_CSM_SLD_ONO_IK3
    1679             :         use pm_kind, only: TKC => IK3
    1680             : #include "pm_matrixUpdate@routines.inc.F90"
    1681             :     end procedure
    1682             : #endif
    1683             : 
    1684             : #if IK2_ENABLED
    1685           0 :     module procedure shrk_EXP_CSM_SLD_ONO_IK2
    1686             :         use pm_kind, only: TKC => IK2
    1687             : #include "pm_matrixUpdate@routines.inc.F90"
    1688             :     end procedure
    1689             : #endif
    1690             : 
    1691             : #if IK1_ENABLED
    1692           0 :     module procedure shrk_EXP_CSM_SLD_ONO_IK1
    1693             :         use pm_kind, only: TKC => IK1
    1694             : #include "pm_matrixUpdate@routines.inc.F90"
    1695             :     end procedure
    1696             : #endif
    1697             : 
    1698             : #undef IK_ENABLED
    1699             : 
    1700             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1701             : 
    1702             : #define CK_ENABLED 1
    1703             : 
    1704             : #if CK5_ENABLED
    1705             :     module procedure shrk_EXP_CSM_SLD_ONO_CK5
    1706             :         use pm_kind, only: TKC => CK5
    1707             : #include "pm_matrixUpdate@routines.inc.F90"
    1708             :     end procedure
    1709             : #endif
    1710             : 
    1711             : #if CK4_ENABLED
    1712           0 :     module procedure shrk_EXP_CSM_SLD_ONO_CK4
    1713             :         use pm_kind, only: TKC => CK4
    1714             : #include "pm_matrixUpdate@routines.inc.F90"
    1715             :     end procedure
    1716             : #endif
    1717             : 
    1718             : #if CK3_ENABLED
    1719           0 :     module procedure shrk_EXP_CSM_SLD_ONO_CK3
    1720             :         use pm_kind, only: TKC => CK3
    1721             : #include "pm_matrixUpdate@routines.inc.F90"
    1722             :     end procedure
    1723             : #endif
    1724             : 
    1725             : #if CK2_ENABLED
    1726           0 :     module procedure shrk_EXP_CSM_SLD_ONO_CK2
    1727             :         use pm_kind, only: TKC => CK2
    1728             : #define DISPATCH_ENABLED 1
    1729             : #include "pm_matrixUpdate@routines.inc.F90"
    1730             : #undef  DISPATCH_ENABLED
    1731             :     end procedure
    1732             : #endif
    1733             : 
    1734             : #if CK1_ENABLED
    1735           0 :     module procedure shrk_EXP_CSM_SLD_ONO_CK1
    1736             :         use pm_kind, only: TKC => CK1
    1737             : #define DISPATCH_ENABLED 1
    1738             : #include "pm_matrixUpdate@routines.inc.F90"
    1739             : #undef  DISPATCH_ENABLED
    1740             :     end procedure
    1741             : #endif
    1742             : 
    1743             : #undef CK_ENABLED
    1744             : 
    1745             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1746             : 
    1747             : #define RK_ENABLED 1
    1748             : 
    1749             : #if RK5_ENABLED
    1750             :     module procedure shrk_EXP_CSM_SLD_ONO_RK5
    1751             :         use pm_kind, only: TKC => RK5
    1752             : #include "pm_matrixUpdate@routines.inc.F90"
    1753             :     end procedure
    1754             : #endif
    1755             : 
    1756             : #if RK4_ENABLED
    1757           0 :     module procedure shrk_EXP_CSM_SLD_ONO_RK4
    1758             :         use pm_kind, only: TKC => RK4
    1759             : #include "pm_matrixUpdate@routines.inc.F90"
    1760             :     end procedure
    1761             : #endif
    1762             : 
    1763             : #if RK3_ENABLED
    1764           0 :     module procedure shrk_EXP_CSM_SLD_ONO_RK3
    1765             :         use pm_kind, only: TKC => RK3
    1766             : #include "pm_matrixUpdate@routines.inc.F90"
    1767             :     end procedure
    1768             : #endif
    1769             : 
    1770             : #if RK2_ENABLED
    1771           0 :     module procedure shrk_EXP_CSM_SLD_ONO_RK2
    1772             :         use pm_kind, only: TKC => RK2
    1773             : #define DISPATCH_ENABLED 1
    1774             : #include "pm_matrixUpdate@routines.inc.F90"
    1775             : #undef  DISPATCH_ENABLED
    1776             :     end procedure
    1777             : #endif
    1778             : 
    1779             : #if RK1_ENABLED
    1780           0 :     module procedure shrk_EXP_CSM_SLD_ONO_RK1
    1781             :         use pm_kind, only: TKC => RK1
    1782             : #define DISPATCH_ENABLED 1
    1783             : #include "pm_matrixUpdate@routines.inc.F90"
    1784             : #undef  DISPATCH_ENABLED
    1785             :     end procedure
    1786             : #endif
    1787             : 
    1788             : #undef RK_ENABLED
    1789             : 
    1790             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1791             : 
    1792             : #undef ONO_ENABLED
    1793             : 
    1794             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1795             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1796             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1797             : 
    1798             : #define OTP_ENABLED 1
    1799             : 
    1800             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1801             : 
    1802             : #define IK_ENABLED 1
    1803             : 
    1804             : #if IK5_ENABLED
    1805           0 :     module procedure shrk_EXP_CSM_SLD_OTP_IK5
    1806             :         use pm_kind, only: TKC => IK5
    1807             : #include "pm_matrixUpdate@routines.inc.F90"
    1808             :     end procedure
    1809             : #endif
    1810             : 
    1811             : #if IK4_ENABLED
    1812           0 :     module procedure shrk_EXP_CSM_SLD_OTP_IK4
    1813             :         use pm_kind, only: TKC => IK4
    1814             : #include "pm_matrixUpdate@routines.inc.F90"
    1815             :     end procedure
    1816             : #endif
    1817             : 
    1818             : #if IK3_ENABLED
    1819           0 :     module procedure shrk_EXP_CSM_SLD_OTP_IK3
    1820             :         use pm_kind, only: TKC => IK3
    1821             : #include "pm_matrixUpdate@routines.inc.F90"
    1822             :     end procedure
    1823             : #endif
    1824             : 
    1825             : #if IK2_ENABLED
    1826           0 :     module procedure shrk_EXP_CSM_SLD_OTP_IK2
    1827             :         use pm_kind, only: TKC => IK2
    1828             : #include "pm_matrixUpdate@routines.inc.F90"
    1829             :     end procedure
    1830             : #endif
    1831             : 
    1832             : #if IK1_ENABLED
    1833           0 :     module procedure shrk_EXP_CSM_SLD_OTP_IK1
    1834             :         use pm_kind, only: TKC => IK1
    1835             : #include "pm_matrixUpdate@routines.inc.F90"
    1836             :     end procedure
    1837             : #endif
    1838             : 
    1839             : #undef IK_ENABLED
    1840             : 
    1841             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1842             : 
    1843             : #define CK_ENABLED 1
    1844             : 
    1845             : #if CK5_ENABLED
    1846             :     module procedure shrk_EXP_CSM_SLD_OTP_CK5
    1847             :         use pm_kind, only: TKC => CK5
    1848             : #include "pm_matrixUpdate@routines.inc.F90"
    1849             :     end procedure
    1850             : #endif
    1851             : 
    1852             : #if CK4_ENABLED
    1853           0 :     module procedure shrk_EXP_CSM_SLD_OTP_CK4
    1854             :         use pm_kind, only: TKC => CK4
    1855             : #include "pm_matrixUpdate@routines.inc.F90"
    1856             :     end procedure
    1857             : #endif
    1858             : 
    1859             : #if CK3_ENABLED
    1860           0 :     module procedure shrk_EXP_CSM_SLD_OTP_CK3
    1861             :         use pm_kind, only: TKC => CK3
    1862             : #include "pm_matrixUpdate@routines.inc.F90"
    1863             :     end procedure
    1864             : #endif
    1865             : 
    1866             : #if CK2_ENABLED
    1867           0 :     module procedure shrk_EXP_CSM_SLD_OTP_CK2
    1868             :         use pm_kind, only: TKC => CK2
    1869             : #define DISPATCH_ENABLED 1
    1870             : #include "pm_matrixUpdate@routines.inc.F90"
    1871             : #undef  DISPATCH_ENABLED
    1872             :     end procedure
    1873             : #endif
    1874             : 
    1875             : #if CK1_ENABLED
    1876           0 :     module procedure shrk_EXP_CSM_SLD_OTP_CK1
    1877             :         use pm_kind, only: TKC => CK1
    1878             : #define DISPATCH_ENABLED 1
    1879             : #include "pm_matrixUpdate@routines.inc.F90"
    1880             : #undef  DISPATCH_ENABLED
    1881             :     end procedure
    1882             : #endif
    1883             : 
    1884             : #undef CK_ENABLED
    1885             : 
    1886             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1887             : 
    1888             : #define RK_ENABLED 1
    1889             : 
    1890             : #if RK5_ENABLED
    1891             :     module procedure shrk_EXP_CSM_SLD_OTP_RK5
    1892             :         use pm_kind, only: TKC => RK5
    1893             : #include "pm_matrixUpdate@routines.inc.F90"
    1894             :     end procedure
    1895             : #endif
    1896             : 
    1897             : #if RK4_ENABLED
    1898           0 :     module procedure shrk_EXP_CSM_SLD_OTP_RK4
    1899             :         use pm_kind, only: TKC => RK4
    1900             : #include "pm_matrixUpdate@routines.inc.F90"
    1901             :     end procedure
    1902             : #endif
    1903             : 
    1904             : #if RK3_ENABLED
    1905           0 :     module procedure shrk_EXP_CSM_SLD_OTP_RK3
    1906             :         use pm_kind, only: TKC => RK3
    1907             : #include "pm_matrixUpdate@routines.inc.F90"
    1908             :     end procedure
    1909             : #endif
    1910             : 
    1911             : #if RK2_ENABLED
    1912           0 :     module procedure shrk_EXP_CSM_SLD_OTP_RK2
    1913             :         use pm_kind, only: TKC => RK2
    1914             : #define DISPATCH_ENABLED 1
    1915             : #include "pm_matrixUpdate@routines.inc.F90"
    1916             : #undef  DISPATCH_ENABLED
    1917             :     end procedure
    1918             : #endif
    1919             : 
    1920             : #if RK1_ENABLED
    1921           1 :     module procedure shrk_EXP_CSM_SLD_OTP_RK1
    1922             :         use pm_kind, only: TKC => RK1
    1923             : #define DISPATCH_ENABLED 1
    1924             : #include "pm_matrixUpdate@routines.inc.F90"
    1925             : #undef  DISPATCH_ENABLED
    1926             :     end procedure
    1927             : #endif
    1928             : 
    1929             : #undef RK_ENABLED
    1930             : 
    1931             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1932             : 
    1933             : #undef OTP_ENABLED
    1934             : 
    1935             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1936             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1937             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1938             : 
    1939             : #undef SLD_ENABLED
    1940             : 
    1941             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1942             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1943             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1944             : 
    1945             : #define SUD_ENABLED 1
    1946             : 
    1947             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1948             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1949             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1950             : 
    1951             : #define ONO_ENABLED 1
    1952             : 
    1953             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1954             : 
    1955             : #define IK_ENABLED 1
    1956             : 
    1957             : #if IK5_ENABLED
    1958           0 :     module procedure shrk_EXP_CSM_SUD_ONO_IK5
    1959             :         use pm_kind, only: TKC => IK5
    1960             : #include "pm_matrixUpdate@routines.inc.F90"
    1961             :     end procedure
    1962             : #endif
    1963             : 
    1964             : #if IK4_ENABLED
    1965           0 :     module procedure shrk_EXP_CSM_SUD_ONO_IK4
    1966             :         use pm_kind, only: TKC => IK4
    1967             : #include "pm_matrixUpdate@routines.inc.F90"
    1968             :     end procedure
    1969             : #endif
    1970             : 
    1971             : #if IK3_ENABLED
    1972           0 :     module procedure shrk_EXP_CSM_SUD_ONO_IK3
    1973             :         use pm_kind, only: TKC => IK3
    1974             : #include "pm_matrixUpdate@routines.inc.F90"
    1975             :     end procedure
    1976             : #endif
    1977             : 
    1978             : #if IK2_ENABLED
    1979           0 :     module procedure shrk_EXP_CSM_SUD_ONO_IK2
    1980             :         use pm_kind, only: TKC => IK2
    1981             : #include "pm_matrixUpdate@routines.inc.F90"
    1982             :     end procedure
    1983             : #endif
    1984             : 
    1985             : #if IK1_ENABLED
    1986           0 :     module procedure shrk_EXP_CSM_SUD_ONO_IK1
    1987             :         use pm_kind, only: TKC => IK1
    1988             : #include "pm_matrixUpdate@routines.inc.F90"
    1989             :     end procedure
    1990             : #endif
    1991             : 
    1992             : #undef IK_ENABLED
    1993             : 
    1994             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1995             : 
    1996             : #define CK_ENABLED 1
    1997             : 
    1998             : #if CK5_ENABLED
    1999             :     module procedure shrk_EXP_CSM_SUD_ONO_CK5
    2000             :         use pm_kind, only: TKC => CK5
    2001             : #include "pm_matrixUpdate@routines.inc.F90"
    2002             :     end procedure
    2003             : #endif
    2004             : 
    2005             : #if CK4_ENABLED
    2006           0 :     module procedure shrk_EXP_CSM_SUD_ONO_CK4
    2007             :         use pm_kind, only: TKC => CK4
    2008             : #include "pm_matrixUpdate@routines.inc.F90"
    2009             :     end procedure
    2010             : #endif
    2011             : 
    2012             : #if CK3_ENABLED
    2013           0 :     module procedure shrk_EXP_CSM_SUD_ONO_CK3
    2014             :         use pm_kind, only: TKC => CK3
    2015             : #include "pm_matrixUpdate@routines.inc.F90"
    2016             :     end procedure
    2017             : #endif
    2018             : 
    2019             : #if CK2_ENABLED
    2020           0 :     module procedure shrk_EXP_CSM_SUD_ONO_CK2
    2021             :         use pm_kind, only: TKC => CK2
    2022             : #define DISPATCH_ENABLED 1
    2023             : #include "pm_matrixUpdate@routines.inc.F90"
    2024             : #undef  DISPATCH_ENABLED
    2025             :     end procedure
    2026             : #endif
    2027             : 
    2028             : #if CK1_ENABLED
    2029           1 :     module procedure shrk_EXP_CSM_SUD_ONO_CK1
    2030             :         use pm_kind, only: TKC => CK1
    2031             : #define DISPATCH_ENABLED 1
    2032             : #include "pm_matrixUpdate@routines.inc.F90"
    2033             : #undef  DISPATCH_ENABLED
    2034             :     end procedure
    2035             : #endif
    2036             : 
    2037             : #undef CK_ENABLED
    2038             : 
    2039             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2040             : 
    2041             : #define RK_ENABLED 1
    2042             : 
    2043             : #if RK5_ENABLED
    2044             :     module procedure shrk_EXP_CSM_SUD_ONO_RK5
    2045             :         use pm_kind, only: TKC => RK5
    2046             : #include "pm_matrixUpdate@routines.inc.F90"
    2047             :     end procedure
    2048             : #endif
    2049             : 
    2050             : #if RK4_ENABLED
    2051           0 :     module procedure shrk_EXP_CSM_SUD_ONO_RK4
    2052             :         use pm_kind, only: TKC => RK4
    2053             : #include "pm_matrixUpdate@routines.inc.F90"
    2054             :     end procedure
    2055             : #endif
    2056             : 
    2057             : #if RK3_ENABLED
    2058           0 :     module procedure shrk_EXP_CSM_SUD_ONO_RK3
    2059             :         use pm_kind, only: TKC => RK3
    2060             : #include "pm_matrixUpdate@routines.inc.F90"
    2061             :     end procedure
    2062             : #endif
    2063             : 
    2064             : #if RK2_ENABLED
    2065           0 :     module procedure shrk_EXP_CSM_SUD_ONO_RK2
    2066             :         use pm_kind, only: TKC => RK2
    2067             : #define DISPATCH_ENABLED 1
    2068             : #include "pm_matrixUpdate@routines.inc.F90"
    2069             : #undef  DISPATCH_ENABLED
    2070             :     end procedure
    2071             : #endif
    2072             : 
    2073             : #if RK1_ENABLED
    2074           1 :     module procedure shrk_EXP_CSM_SUD_ONO_RK1
    2075             :         use pm_kind, only: TKC => RK1
    2076             : #define DISPATCH_ENABLED 1
    2077             : #include "pm_matrixUpdate@routines.inc.F90"
    2078             : #undef  DISPATCH_ENABLED
    2079             :     end procedure
    2080             : #endif
    2081             : 
    2082             : #undef RK_ENABLED
    2083             : 
    2084             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2085             : 
    2086             : #undef ONO_ENABLED
    2087             : 
    2088             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2089             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2090             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2091             : 
    2092             : #define OTP_ENABLED 1
    2093             : 
    2094             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2095             : 
    2096             : #define IK_ENABLED 1
    2097             : 
    2098             : #if IK5_ENABLED
    2099           0 :     module procedure shrk_EXP_CSM_SUD_OTP_IK5
    2100             :         use pm_kind, only: TKC => IK5
    2101             : #include "pm_matrixUpdate@routines.inc.F90"
    2102             :     end procedure
    2103             : #endif
    2104             : 
    2105             : #if IK4_ENABLED
    2106           0 :     module procedure shrk_EXP_CSM_SUD_OTP_IK4
    2107             :         use pm_kind, only: TKC => IK4
    2108             : #include "pm_matrixUpdate@routines.inc.F90"
    2109             :     end procedure
    2110             : #endif
    2111             : 
    2112             : #if IK3_ENABLED
    2113           0 :     module procedure shrk_EXP_CSM_SUD_OTP_IK3
    2114             :         use pm_kind, only: TKC => IK3
    2115             : #include "pm_matrixUpdate@routines.inc.F90"
    2116             :     end procedure
    2117             : #endif
    2118             : 
    2119             : #if IK2_ENABLED
    2120           0 :     module procedure shrk_EXP_CSM_SUD_OTP_IK2
    2121             :         use pm_kind, only: TKC => IK2
    2122             : #include "pm_matrixUpdate@routines.inc.F90"
    2123             :     end procedure
    2124             : #endif
    2125             : 
    2126             : #if IK1_ENABLED
    2127           0 :     module procedure shrk_EXP_CSM_SUD_OTP_IK1
    2128             :         use pm_kind, only: TKC => IK1
    2129             : #include "pm_matrixUpdate@routines.inc.F90"
    2130             :     end procedure
    2131             : #endif
    2132             : 
    2133             : #undef IK_ENABLED
    2134             : 
    2135             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2136             : 
    2137             : #define CK_ENABLED 1
    2138             : 
    2139             : #if CK5_ENABLED
    2140             :     module procedure shrk_EXP_CSM_SUD_OTP_CK5
    2141             :         use pm_kind, only: TKC => CK5
    2142             : #include "pm_matrixUpdate@routines.inc.F90"
    2143             :     end procedure
    2144             : #endif
    2145             : 
    2146             : #if CK4_ENABLED
    2147           0 :     module procedure shrk_EXP_CSM_SUD_OTP_CK4
    2148             :         use pm_kind, only: TKC => CK4
    2149             : #include "pm_matrixUpdate@routines.inc.F90"
    2150             :     end procedure
    2151             : #endif
    2152             : 
    2153             : #if CK3_ENABLED
    2154           0 :     module procedure shrk_EXP_CSM_SUD_OTP_CK3
    2155             :         use pm_kind, only: TKC => CK3
    2156             : #include "pm_matrixUpdate@routines.inc.F90"
    2157             :     end procedure
    2158             : #endif
    2159             : 
    2160             : #if CK2_ENABLED
    2161           0 :     module procedure shrk_EXP_CSM_SUD_OTP_CK2
    2162             :         use pm_kind, only: TKC => CK2
    2163             : #define DISPATCH_ENABLED 1
    2164             : #include "pm_matrixUpdate@routines.inc.F90"
    2165             : #undef  DISPATCH_ENABLED
    2166             :     end procedure
    2167             : #endif
    2168             : 
    2169             : #if CK1_ENABLED
    2170           0 :     module procedure shrk_EXP_CSM_SUD_OTP_CK1
    2171             :         use pm_kind, only: TKC => CK1
    2172             : #define DISPATCH_ENABLED 1
    2173             : #include "pm_matrixUpdate@routines.inc.F90"
    2174             : #undef  DISPATCH_ENABLED
    2175             :     end procedure
    2176             : #endif
    2177             : 
    2178             : #undef CK_ENABLED
    2179             : 
    2180             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2181             : 
    2182             : #define RK_ENABLED 1
    2183             : 
    2184             : #if RK5_ENABLED
    2185             :     module procedure shrk_EXP_CSM_SUD_OTP_RK5
    2186             :         use pm_kind, only: TKC => RK5
    2187             : #include "pm_matrixUpdate@routines.inc.F90"
    2188             :     end procedure
    2189             : #endif
    2190             : 
    2191             : #if RK4_ENABLED
    2192           0 :     module procedure shrk_EXP_CSM_SUD_OTP_RK4
    2193             :         use pm_kind, only: TKC => RK4
    2194             : #include "pm_matrixUpdate@routines.inc.F90"
    2195             :     end procedure
    2196             : #endif
    2197             : 
    2198             : #if RK3_ENABLED
    2199           0 :     module procedure shrk_EXP_CSM_SUD_OTP_RK3
    2200             :         use pm_kind, only: TKC => RK3
    2201             : #include "pm_matrixUpdate@routines.inc.F90"
    2202             :     end procedure
    2203             : #endif
    2204             : 
    2205             : #if RK2_ENABLED
    2206           0 :     module procedure shrk_EXP_CSM_SUD_OTP_RK2
    2207             :         use pm_kind, only: TKC => RK2
    2208             : #define DISPATCH_ENABLED 1
    2209             : #include "pm_matrixUpdate@routines.inc.F90"
    2210             : #undef  DISPATCH_ENABLED
    2211             :     end procedure
    2212             : #endif
    2213             : 
    2214             : #if RK1_ENABLED
    2215           0 :     module procedure shrk_EXP_CSM_SUD_OTP_RK1
    2216             :         use pm_kind, only: TKC => RK1
    2217             : #define DISPATCH_ENABLED 1
    2218             : #include "pm_matrixUpdate@routines.inc.F90"
    2219             : #undef  DISPATCH_ENABLED
    2220             :     end procedure
    2221             : #endif
    2222             : 
    2223             : #undef RK_ENABLED
    2224             : 
    2225             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2226             : 
    2227             : #undef OTP_ENABLED
    2228             : 
    2229             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2230             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2231             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2232             : 
    2233             : #undef SUD_ENABLED
    2234             : 
    2235             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2236             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2237             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2238             : 
    2239             : #undef CSM_ENABLED
    2240             : 
    2241             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2242             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2243             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2244             : 
    2245             : #define CHM_ENABLED 1
    2246             : 
    2247             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2248             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2249             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2250             : 
    2251             : #define SLD_ENABLED 1
    2252             : 
    2253             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2254             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2255             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2256             : 
    2257             : #define ONO_ENABLED 1
    2258             : 
    2259             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2260             : 
    2261             : #define IK_ENABLED 1
    2262             : 
    2263             : #if IK5_ENABLED
    2264           0 :     module procedure shrk_EXP_CHM_SLD_ONO_IK5
    2265             :         use pm_kind, only: TKC => IK5
    2266             : #include "pm_matrixUpdate@routines.inc.F90"
    2267             :     end procedure
    2268             : #endif
    2269             : 
    2270             : #if IK4_ENABLED
    2271           0 :     module procedure shrk_EXP_CHM_SLD_ONO_IK4
    2272             :         use pm_kind, only: TKC => IK4
    2273             : #include "pm_matrixUpdate@routines.inc.F90"
    2274             :     end procedure
    2275             : #endif
    2276             : 
    2277             : #if IK3_ENABLED
    2278           0 :     module procedure shrk_EXP_CHM_SLD_ONO_IK3
    2279             :         use pm_kind, only: TKC => IK3
    2280             : #include "pm_matrixUpdate@routines.inc.F90"
    2281             :     end procedure
    2282             : #endif
    2283             : 
    2284             : #if IK2_ENABLED
    2285           0 :     module procedure shrk_EXP_CHM_SLD_ONO_IK2
    2286             :         use pm_kind, only: TKC => IK2
    2287             : #include "pm_matrixUpdate@routines.inc.F90"
    2288             :     end procedure
    2289             : #endif
    2290             : 
    2291             : #if IK1_ENABLED
    2292           0 :     module procedure shrk_EXP_CHM_SLD_ONO_IK1
    2293             :         use pm_kind, only: TKC => IK1
    2294             : #include "pm_matrixUpdate@routines.inc.F90"
    2295             :     end procedure
    2296             : #endif
    2297             : 
    2298             : #undef IK_ENABLED
    2299             : 
    2300             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2301             : 
    2302             : #define CK_ENABLED 1
    2303             : 
    2304             : #if CK5_ENABLED
    2305             :     module procedure shrk_EXP_CHM_SLD_ONO_CK5
    2306             :         use pm_kind, only: TKC => CK5
    2307             : #include "pm_matrixUpdate@routines.inc.F90"
    2308             :     end procedure
    2309             : #endif
    2310             : 
    2311             : #if CK4_ENABLED
    2312        1393 :     module procedure shrk_EXP_CHM_SLD_ONO_CK4
    2313             :         use pm_kind, only: TKC => CK4
    2314             : #include "pm_matrixUpdate@routines.inc.F90"
    2315             :     end procedure
    2316             : #endif
    2317             : 
    2318             : #if CK3_ENABLED
    2319        1487 :     module procedure shrk_EXP_CHM_SLD_ONO_CK3
    2320             :         use pm_kind, only: TKC => CK3
    2321             : #include "pm_matrixUpdate@routines.inc.F90"
    2322             :     end procedure
    2323             : #endif
    2324             : 
    2325             : #if CK2_ENABLED
    2326        1568 :     module procedure shrk_EXP_CHM_SLD_ONO_CK2
    2327             :         use pm_kind, only: TKC => CK2
    2328             : #define DISPATCH_ENABLED 1
    2329             : #include "pm_matrixUpdate@routines.inc.F90"
    2330             : #undef  DISPATCH_ENABLED
    2331             :     end procedure
    2332             : #endif
    2333             : 
    2334             : #if CK1_ENABLED
    2335        1496 :     module procedure shrk_EXP_CHM_SLD_ONO_CK1
    2336             :         use pm_kind, only: TKC => CK1
    2337             : #define DISPATCH_ENABLED 1
    2338             : #include "pm_matrixUpdate@routines.inc.F90"
    2339             : #undef  DISPATCH_ENABLED
    2340             :     end procedure
    2341             : #endif
    2342             : 
    2343             : #undef CK_ENABLED
    2344             : 
    2345             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2346             : 
    2347             : #define RK_ENABLED 1
    2348             : 
    2349             : #if RK5_ENABLED
    2350             :     module procedure shrk_EXP_CHM_SLD_ONO_RK5
    2351             :         use pm_kind, only: TKC => RK5
    2352             : #include "pm_matrixUpdate@routines.inc.F90"
    2353             :     end procedure
    2354             : #endif
    2355             : 
    2356             : #if RK4_ENABLED
    2357        1531 :     module procedure shrk_EXP_CHM_SLD_ONO_RK4
    2358             :         use pm_kind, only: TKC => RK4
    2359             : #include "pm_matrixUpdate@routines.inc.F90"
    2360             :     end procedure
    2361             : #endif
    2362             : 
    2363             : #if RK3_ENABLED
    2364        1536 :     module procedure shrk_EXP_CHM_SLD_ONO_RK3
    2365             :         use pm_kind, only: TKC => RK3
    2366             : #include "pm_matrixUpdate@routines.inc.F90"
    2367             :     end procedure
    2368             : #endif
    2369             : 
    2370             : #if RK2_ENABLED
    2371        1675 :     module procedure shrk_EXP_CHM_SLD_ONO_RK2
    2372             :         use pm_kind, only: TKC => RK2
    2373             : #define DISPATCH_ENABLED 1
    2374             : #include "pm_matrixUpdate@routines.inc.F90"
    2375             : #undef  DISPATCH_ENABLED
    2376             :     end procedure
    2377             : #endif
    2378             : 
    2379             : #if RK1_ENABLED
    2380        1677 :     module procedure shrk_EXP_CHM_SLD_ONO_RK1
    2381             :         use pm_kind, only: TKC => RK1
    2382             : #define DISPATCH_ENABLED 1
    2383             : #include "pm_matrixUpdate@routines.inc.F90"
    2384             : #undef  DISPATCH_ENABLED
    2385             :     end procedure
    2386             : #endif
    2387             : 
    2388             : #undef RK_ENABLED
    2389             : 
    2390             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2391             : 
    2392             : #undef ONO_ENABLED
    2393             : 
    2394             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2395             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2396             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2397             : 
    2398             : #define OTP_ENABLED 1
    2399             : 
    2400             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2401             : 
    2402             : #define IK_ENABLED 1
    2403             : 
    2404             : #if IK5_ENABLED
    2405           0 :     module procedure shrk_EXP_CHM_SLD_OTP_IK5
    2406             :         use pm_kind, only: TKC => IK5
    2407             : #include "pm_matrixUpdate@routines.inc.F90"
    2408             :     end procedure
    2409             : #endif
    2410             : 
    2411             : #if IK4_ENABLED
    2412           0 :     module procedure shrk_EXP_CHM_SLD_OTP_IK4
    2413             :         use pm_kind, only: TKC => IK4
    2414             : #include "pm_matrixUpdate@routines.inc.F90"
    2415             :     end procedure
    2416             : #endif
    2417             : 
    2418             : #if IK3_ENABLED
    2419           0 :     module procedure shrk_EXP_CHM_SLD_OTP_IK3
    2420             :         use pm_kind, only: TKC => IK3
    2421             : #include "pm_matrixUpdate@routines.inc.F90"
    2422             :     end procedure
    2423             : #endif
    2424             : 
    2425             : #if IK2_ENABLED
    2426           0 :     module procedure shrk_EXP_CHM_SLD_OTP_IK2
    2427             :         use pm_kind, only: TKC => IK2
    2428             : #include "pm_matrixUpdate@routines.inc.F90"
    2429             :     end procedure
    2430             : #endif
    2431             : 
    2432             : #if IK1_ENABLED
    2433           0 :     module procedure shrk_EXP_CHM_SLD_OTP_IK1
    2434             :         use pm_kind, only: TKC => IK1
    2435             : #include "pm_matrixUpdate@routines.inc.F90"
    2436             :     end procedure
    2437             : #endif
    2438             : 
    2439             : #undef IK_ENABLED
    2440             : 
    2441             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2442             : 
    2443             : #define CK_ENABLED 1
    2444             : 
    2445             : #if CK5_ENABLED
    2446             :     module procedure shrk_EXP_CHM_SLD_OTP_CK5
    2447             :         use pm_kind, only: TKC => CK5
    2448             : #include "pm_matrixUpdate@routines.inc.F90"
    2449             :     end procedure
    2450             : #endif
    2451             : 
    2452             : #if CK4_ENABLED
    2453           0 :     module procedure shrk_EXP_CHM_SLD_OTP_CK4
    2454             :         use pm_kind, only: TKC => CK4
    2455             : #include "pm_matrixUpdate@routines.inc.F90"
    2456             :     end procedure
    2457             : #endif
    2458             : 
    2459             : #if CK3_ENABLED
    2460           0 :     module procedure shrk_EXP_CHM_SLD_OTP_CK3
    2461             :         use pm_kind, only: TKC => CK3
    2462             : #include "pm_matrixUpdate@routines.inc.F90"
    2463             :     end procedure
    2464             : #endif
    2465             : 
    2466             : #if CK2_ENABLED
    2467           0 :     module procedure shrk_EXP_CHM_SLD_OTP_CK2
    2468             :         use pm_kind, only: TKC => CK2
    2469             : #define DISPATCH_ENABLED 1
    2470             : #include "pm_matrixUpdate@routines.inc.F90"
    2471             : #undef  DISPATCH_ENABLED
    2472             :     end procedure
    2473             : #endif
    2474             : 
    2475             : #if CK1_ENABLED
    2476           1 :     module procedure shrk_EXP_CHM_SLD_OTP_CK1
    2477             :         use pm_kind, only: TKC => CK1
    2478             : #define DISPATCH_ENABLED 1
    2479             : #include "pm_matrixUpdate@routines.inc.F90"
    2480             : #undef  DISPATCH_ENABLED
    2481             :     end procedure
    2482             : #endif
    2483             : 
    2484             : #undef CK_ENABLED
    2485             : 
    2486             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2487             : 
    2488             : #define RK_ENABLED 1
    2489             : 
    2490             : #if RK5_ENABLED
    2491             :     module procedure shrk_EXP_CHM_SLD_OTP_RK5
    2492             :         use pm_kind, only: TKC => RK5
    2493             : #include "pm_matrixUpdate@routines.inc.F90"
    2494             :     end procedure
    2495             : #endif
    2496             : 
    2497             : #if RK4_ENABLED
    2498           0 :     module procedure shrk_EXP_CHM_SLD_OTP_RK4
    2499             :         use pm_kind, only: TKC => RK4
    2500             : #include "pm_matrixUpdate@routines.inc.F90"
    2501             :     end procedure
    2502             : #endif
    2503             : 
    2504             : #if RK3_ENABLED
    2505           0 :     module procedure shrk_EXP_CHM_SLD_OTP_RK3
    2506             :         use pm_kind, only: TKC => RK3
    2507             : #include "pm_matrixUpdate@routines.inc.F90"
    2508             :     end procedure
    2509             : #endif
    2510             : 
    2511             : #if RK2_ENABLED
    2512           0 :     module procedure shrk_EXP_CHM_SLD_OTP_RK2
    2513             :         use pm_kind, only: TKC => RK2
    2514             : #define DISPATCH_ENABLED 1
    2515             : #include "pm_matrixUpdate@routines.inc.F90"
    2516             : #undef  DISPATCH_ENABLED
    2517             :     end procedure
    2518             : #endif
    2519             : 
    2520             : #if RK1_ENABLED
    2521           0 :     module procedure shrk_EXP_CHM_SLD_OTP_RK1
    2522             :         use pm_kind, only: TKC => RK1
    2523             : #define DISPATCH_ENABLED 1
    2524             : #include "pm_matrixUpdate@routines.inc.F90"
    2525             : #undef  DISPATCH_ENABLED
    2526             :     end procedure
    2527             : #endif
    2528             : 
    2529             : #undef RK_ENABLED
    2530             : 
    2531             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2532             : 
    2533             : #undef OTP_ENABLED
    2534             : 
    2535             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2536             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2537             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2538             : 
    2539             : #undef SLD_ENABLED
    2540             : 
    2541             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2542             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2543             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2544             : 
    2545             : #define SUD_ENABLED 1
    2546             : 
    2547             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2548             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2549             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2550             : 
    2551             : #define ONO_ENABLED 1
    2552             : 
    2553             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2554             : 
    2555             : #define IK_ENABLED 1
    2556             : 
    2557             : #if IK5_ENABLED
    2558           0 :     module procedure shrk_EXP_CHM_SUD_ONO_IK5
    2559             :         use pm_kind, only: TKC => IK5
    2560             : #include "pm_matrixUpdate@routines.inc.F90"
    2561             :     end procedure
    2562             : #endif
    2563             : 
    2564             : #if IK4_ENABLED
    2565           0 :     module procedure shrk_EXP_CHM_SUD_ONO_IK4
    2566             :         use pm_kind, only: TKC => IK4
    2567             : #include "pm_matrixUpdate@routines.inc.F90"
    2568             :     end procedure
    2569             : #endif
    2570             : 
    2571             : #if IK3_ENABLED
    2572           0 :     module procedure shrk_EXP_CHM_SUD_ONO_IK3
    2573             :         use pm_kind, only: TKC => IK3
    2574             : #include "pm_matrixUpdate@routines.inc.F90"
    2575             :     end procedure
    2576             : #endif
    2577             : 
    2578             : #if IK2_ENABLED
    2579           0 :     module procedure shrk_EXP_CHM_SUD_ONO_IK2
    2580             :         use pm_kind, only: TKC => IK2
    2581             : #include "pm_matrixUpdate@routines.inc.F90"
    2582             :     end procedure
    2583             : #endif
    2584             : 
    2585             : #if IK1_ENABLED
    2586           0 :     module procedure shrk_EXP_CHM_SUD_ONO_IK1
    2587             :         use pm_kind, only: TKC => IK1
    2588             : #include "pm_matrixUpdate@routines.inc.F90"
    2589             :     end procedure
    2590             : #endif
    2591             : 
    2592             : #undef IK_ENABLED
    2593             : 
    2594             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2595             : 
    2596             : #define CK_ENABLED 1
    2597             : 
    2598             : #if CK5_ENABLED
    2599             :     module procedure shrk_EXP_CHM_SUD_ONO_CK5
    2600             :         use pm_kind, only: TKC => CK5
    2601             : #include "pm_matrixUpdate@routines.inc.F90"
    2602             :     end procedure
    2603             : #endif
    2604             : 
    2605             : #if CK4_ENABLED
    2606           0 :     module procedure shrk_EXP_CHM_SUD_ONO_CK4
    2607             :         use pm_kind, only: TKC => CK4
    2608             : #include "pm_matrixUpdate@routines.inc.F90"
    2609             :     end procedure
    2610             : #endif
    2611             : 
    2612             : #if CK3_ENABLED
    2613           0 :     module procedure shrk_EXP_CHM_SUD_ONO_CK3
    2614             :         use pm_kind, only: TKC => CK3
    2615             : #include "pm_matrixUpdate@routines.inc.F90"
    2616             :     end procedure
    2617             : #endif
    2618             : 
    2619             : #if CK2_ENABLED
    2620           0 :     module procedure shrk_EXP_CHM_SUD_ONO_CK2
    2621             :         use pm_kind, only: TKC => CK2
    2622             : #define DISPATCH_ENABLED 1
    2623             : #include "pm_matrixUpdate@routines.inc.F90"
    2624             : #undef  DISPATCH_ENABLED
    2625             :     end procedure
    2626             : #endif
    2627             : 
    2628             : #if CK1_ENABLED
    2629           1 :     module procedure shrk_EXP_CHM_SUD_ONO_CK1
    2630             :         use pm_kind, only: TKC => CK1
    2631             : #define DISPATCH_ENABLED 1
    2632             : #include "pm_matrixUpdate@routines.inc.F90"
    2633             : #undef  DISPATCH_ENABLED
    2634             :     end procedure
    2635             : #endif
    2636             : 
    2637             : #undef CK_ENABLED
    2638             : 
    2639             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2640             : 
    2641             : #define RK_ENABLED 1
    2642             : 
    2643             : #if RK5_ENABLED
    2644             :     module procedure shrk_EXP_CHM_SUD_ONO_RK5
    2645             :         use pm_kind, only: TKC => RK5
    2646             : #include "pm_matrixUpdate@routines.inc.F90"
    2647             :     end procedure
    2648             : #endif
    2649             : 
    2650             : #if RK4_ENABLED
    2651           0 :     module procedure shrk_EXP_CHM_SUD_ONO_RK4
    2652             :         use pm_kind, only: TKC => RK4
    2653             : #include "pm_matrixUpdate@routines.inc.F90"
    2654             :     end procedure
    2655             : #endif
    2656             : 
    2657             : #if RK3_ENABLED
    2658           0 :     module procedure shrk_EXP_CHM_SUD_ONO_RK3
    2659             :         use pm_kind, only: TKC => RK3
    2660             : #include "pm_matrixUpdate@routines.inc.F90"
    2661             :     end procedure
    2662             : #endif
    2663             : 
    2664             : #if RK2_ENABLED
    2665           0 :     module procedure shrk_EXP_CHM_SUD_ONO_RK2
    2666             :         use pm_kind, only: TKC => RK2
    2667             : #define DISPATCH_ENABLED 1
    2668             : #include "pm_matrixUpdate@routines.inc.F90"
    2669             : #undef  DISPATCH_ENABLED
    2670             :     end procedure
    2671             : #endif
    2672             : 
    2673             : #if RK1_ENABLED
    2674           0 :     module procedure shrk_EXP_CHM_SUD_ONO_RK1
    2675             :         use pm_kind, only: TKC => RK1
    2676             : #define DISPATCH_ENABLED 1
    2677             : #include "pm_matrixUpdate@routines.inc.F90"
    2678             : #undef  DISPATCH_ENABLED
    2679             :     end procedure
    2680             : #endif
    2681             : 
    2682             : #undef RK_ENABLED
    2683             : 
    2684             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2685             : 
    2686             : #undef ONO_ENABLED
    2687             : 
    2688             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2689             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2690             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2691             : 
    2692             : #define OTP_ENABLED 1
    2693             : 
    2694             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2695             : 
    2696             : #define IK_ENABLED 1
    2697             : 
    2698             : #if IK5_ENABLED
    2699           0 :     module procedure shrk_EXP_CHM_SUD_OTP_IK5
    2700             :         use pm_kind, only: TKC => IK5
    2701             : #include "pm_matrixUpdate@routines.inc.F90"
    2702             :     end procedure
    2703             : #endif
    2704             : 
    2705             : #if IK4_ENABLED
    2706           0 :     module procedure shrk_EXP_CHM_SUD_OTP_IK4
    2707             :         use pm_kind, only: TKC => IK4
    2708             : #include "pm_matrixUpdate@routines.inc.F90"
    2709             :     end procedure
    2710             : #endif
    2711             : 
    2712             : #if IK3_ENABLED
    2713           0 :     module procedure shrk_EXP_CHM_SUD_OTP_IK3
    2714             :         use pm_kind, only: TKC => IK3
    2715             : #include "pm_matrixUpdate@routines.inc.F90"
    2716             :     end procedure
    2717             : #endif
    2718             : 
    2719             : #if IK2_ENABLED
    2720           0 :     module procedure shrk_EXP_CHM_SUD_OTP_IK2
    2721             :         use pm_kind, only: TKC => IK2
    2722             : #include "pm_matrixUpdate@routines.inc.F90"
    2723             :     end procedure
    2724             : #endif
    2725             : 
    2726             : #if IK1_ENABLED
    2727           0 :     module procedure shrk_EXP_CHM_SUD_OTP_IK1
    2728             :         use pm_kind, only: TKC => IK1
    2729             : #include "pm_matrixUpdate@routines.inc.F90"
    2730             :     end procedure
    2731             : #endif
    2732             : 
    2733             : #undef IK_ENABLED
    2734             : 
    2735             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2736             : 
    2737             : #define CK_ENABLED 1
    2738             : 
    2739             : #if CK5_ENABLED
    2740             :     module procedure shrk_EXP_CHM_SUD_OTP_CK5
    2741             :         use pm_kind, only: TKC => CK5
    2742             : #include "pm_matrixUpdate@routines.inc.F90"
    2743             :     end procedure
    2744             : #endif
    2745             : 
    2746             : #if CK4_ENABLED
    2747        1393 :     module procedure shrk_EXP_CHM_SUD_OTP_CK4
    2748             :         use pm_kind, only: TKC => CK4
    2749             : #include "pm_matrixUpdate@routines.inc.F90"
    2750             :     end procedure
    2751             : #endif
    2752             : 
    2753             : #if CK3_ENABLED
    2754        1487 :     module procedure shrk_EXP_CHM_SUD_OTP_CK3
    2755             :         use pm_kind, only: TKC => CK3
    2756             : #include "pm_matrixUpdate@routines.inc.F90"
    2757             :     end procedure
    2758             : #endif
    2759             : 
    2760             : #if CK2_ENABLED
    2761        1568 :     module procedure shrk_EXP_CHM_SUD_OTP_CK2
    2762             :         use pm_kind, only: TKC => CK2
    2763             : #define DISPATCH_ENABLED 1
    2764             : #include "pm_matrixUpdate@routines.inc.F90"
    2765             : #undef  DISPATCH_ENABLED
    2766             :     end procedure
    2767             : #endif
    2768             : 
    2769             : #if CK1_ENABLED
    2770        1496 :     module procedure shrk_EXP_CHM_SUD_OTP_CK1
    2771             :         use pm_kind, only: TKC => CK1
    2772             : #define DISPATCH_ENABLED 1
    2773             : #include "pm_matrixUpdate@routines.inc.F90"
    2774             : #undef  DISPATCH_ENABLED
    2775             :     end procedure
    2776             : #endif
    2777             : 
    2778             : #undef CK_ENABLED
    2779             : 
    2780             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2781             : 
    2782             : #define RK_ENABLED 1
    2783             : 
    2784             : #if RK5_ENABLED
    2785             :     module procedure shrk_EXP_CHM_SUD_OTP_RK5
    2786             :         use pm_kind, only: TKC => RK5
    2787             : #include "pm_matrixUpdate@routines.inc.F90"
    2788             :     end procedure
    2789             : #endif
    2790             : 
    2791             : #if RK4_ENABLED
    2792        1531 :     module procedure shrk_EXP_CHM_SUD_OTP_RK4
    2793             :         use pm_kind, only: TKC => RK4
    2794             : #include "pm_matrixUpdate@routines.inc.F90"
    2795             :     end procedure
    2796             : #endif
    2797             : 
    2798             : #if RK3_ENABLED
    2799        1536 :     module procedure shrk_EXP_CHM_SUD_OTP_RK3
    2800             :         use pm_kind, only: TKC => RK3
    2801             : #include "pm_matrixUpdate@routines.inc.F90"
    2802             :     end procedure
    2803             : #endif
    2804             : 
    2805             : #if RK2_ENABLED
    2806        1675 :     module procedure shrk_EXP_CHM_SUD_OTP_RK2
    2807             :         use pm_kind, only: TKC => RK2
    2808             : #define DISPATCH_ENABLED 1
    2809             : #include "pm_matrixUpdate@routines.inc.F90"
    2810             : #undef  DISPATCH_ENABLED
    2811             :     end procedure
    2812             : #endif
    2813             : 
    2814             : #if RK1_ENABLED
    2815        1677 :     module procedure shrk_EXP_CHM_SUD_OTP_RK1
    2816             :         use pm_kind, only: TKC => RK1
    2817             : #define DISPATCH_ENABLED 1
    2818             : #include "pm_matrixUpdate@routines.inc.F90"
    2819             : #undef  DISPATCH_ENABLED
    2820             :     end procedure
    2821             : #endif
    2822             : 
    2823             : #undef RK_ENABLED
    2824             : 
    2825             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2826             : 
    2827             : #undef OTP_ENABLED
    2828             : 
    2829             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2830             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2831             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2832             : 
    2833             : #undef SUD_ENABLED
    2834             : 
    2835             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2836             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2837             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2838             : 
    2839             : #undef CHM_ENABLED
    2840             : 
    2841             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2842             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2843             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2844             : 
    2845             : #undef EXP_ENABLED
    2846             : 
    2847             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2848             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2849             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2850             : 
    2851             : #undef shrk_ENABLED
    2852             : 
    2853             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2854             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2855             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2856             : 
    2857             : #undef setMatUpdate_ENABLED
    2858             : 
    2859             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2860             : 
    2861             : #define setMatUpdateTriang_ENABLED 1
    2862             : 
    2863             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2864             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2865             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2866             : 
    2867             : #define lowDiaC_ENABLED 1
    2868             : 
    2869             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2870             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2871             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2872             : 
    2873             : #define AS_ENABLED 1
    2874             : 
    2875             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2876             : 
    2877             : #define IK_ENABLED 1
    2878             : 
    2879             : #if IK5_ENABLED
    2880           0 :     module procedure setMatUpdateTriangCSOLAS_IK5
    2881             :         use pm_kind, only: TKC => IK5
    2882             : #include "pm_matrixUpdate@routines.inc.F90"
    2883             :     end procedure
    2884             : #endif
    2885             : 
    2886             : #if IK4_ENABLED
    2887           0 :     module procedure setMatUpdateTriangCSOLAS_IK4
    2888             :         use pm_kind, only: TKC => IK4
    2889             : #include "pm_matrixUpdate@routines.inc.F90"
    2890             :     end procedure
    2891             : #endif
    2892             : 
    2893             : #if IK3_ENABLED
    2894           0 :     module procedure setMatUpdateTriangCSOLAS_IK3
    2895             :         use pm_kind, only: TKC => IK3
    2896             : #include "pm_matrixUpdate@routines.inc.F90"
    2897             :     end procedure
    2898             : #endif
    2899             : 
    2900             : #if IK2_ENABLED
    2901           0 :     module procedure setMatUpdateTriangCSOLAS_IK2
    2902             :         use pm_kind, only: TKC => IK2
    2903             : #include "pm_matrixUpdate@routines.inc.F90"
    2904             :     end procedure
    2905             : #endif
    2906             : 
    2907             : #if IK1_ENABLED
    2908           0 :     module procedure setMatUpdateTriangCSOLAS_IK1
    2909             :         use pm_kind, only: TKC => IK1
    2910             : #include "pm_matrixUpdate@routines.inc.F90"
    2911             :     end procedure
    2912             : #endif
    2913             : 
    2914             : #undef IK_ENABLED
    2915             : 
    2916             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2917             : 
    2918             : #define CK_ENABLED 1
    2919             : 
    2920             : #if CK5_ENABLED
    2921             :     module procedure setMatUpdateTriangCSOLAS_CK5
    2922             :         use pm_kind, only: TKC => CK5
    2923             : #include "pm_matrixUpdate@routines.inc.F90"
    2924             :     end procedure
    2925             : #endif
    2926             : 
    2927             : #if CK4_ENABLED
    2928           0 :     module procedure setMatUpdateTriangCSOLAS_CK4
    2929             :         use pm_kind, only: TKC => CK4
    2930             : #include "pm_matrixUpdate@routines.inc.F90"
    2931             :     end procedure
    2932             : #endif
    2933             : 
    2934             : #if CK3_ENABLED
    2935           0 :     module procedure setMatUpdateTriangCSOLAS_CK3
    2936             :         use pm_kind, only: TKC => CK3
    2937             : #include "pm_matrixUpdate@routines.inc.F90"
    2938             :     end procedure
    2939             : #endif
    2940             : 
    2941             : #if CK2_ENABLED
    2942           0 :     module procedure setMatUpdateTriangCSOLAS_CK2
    2943             :         use pm_kind, only: TKC => CK2
    2944             : #include "pm_matrixUpdate@routines.inc.F90"
    2945             :     end procedure
    2946             : #endif
    2947             : 
    2948             : #if CK1_ENABLED
    2949           0 :     module procedure setMatUpdateTriangCSOLAS_CK1
    2950             :         use pm_kind, only: TKC => CK1
    2951             : #include "pm_matrixUpdate@routines.inc.F90"
    2952             :     end procedure
    2953             : #endif
    2954             : 
    2955             : #undef CK_ENABLED
    2956             : 
    2957             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2958             : 
    2959             : #define RK_ENABLED 1
    2960             : 
    2961             : #if RK5_ENABLED
    2962             :     module procedure setMatUpdateTriangCSOLAS_RK5
    2963             :         use pm_kind, only: TKC => RK5
    2964             : #include "pm_matrixUpdate@routines.inc.F90"
    2965             :     end procedure
    2966             : #endif
    2967             : 
    2968             : #if RK4_ENABLED
    2969           0 :     module procedure setMatUpdateTriangCSOLAS_RK4
    2970             :         use pm_kind, only: TKC => RK4
    2971             : #include "pm_matrixUpdate@routines.inc.F90"
    2972             :     end procedure
    2973             : #endif
    2974             : 
    2975             : #if RK3_ENABLED
    2976           0 :     module procedure setMatUpdateTriangCSOLAS_RK3
    2977             :         use pm_kind, only: TKC => RK3
    2978             : #include "pm_matrixUpdate@routines.inc.F90"
    2979             :     end procedure
    2980             : #endif
    2981             : 
    2982             : #if RK2_ENABLED
    2983           0 :     module procedure setMatUpdateTriangCSOLAS_RK2
    2984             :         use pm_kind, only: TKC => RK2
    2985             : #include "pm_matrixUpdate@routines.inc.F90"
    2986             :     end procedure
    2987             : #endif
    2988             : 
    2989             : #if RK1_ENABLED
    2990           0 :     module procedure setMatUpdateTriangCSOLAS_RK1
    2991             :         use pm_kind, only: TKC => RK1
    2992             : #include "pm_matrixUpdate@routines.inc.F90"
    2993             :     end procedure
    2994             : #endif
    2995             : 
    2996             : #undef RK_ENABLED
    2997             : 
    2998             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2999             : 
    3000             : #undef AS_ENABLED
    3001             : 
    3002             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3003             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3004             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3005             : 
    3006             : #define SA_ENABLED 1
    3007             : 
    3008             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3009             : 
    3010             : #define IK_ENABLED 1
    3011             : 
    3012             : #if IK5_ENABLED
    3013           0 :     module procedure setMatUpdateTriangCSOLSA_IK5
    3014             :         use pm_kind, only: TKC => IK5
    3015             : #include "pm_matrixUpdate@routines.inc.F90"
    3016             :     end procedure
    3017             : #endif
    3018             : 
    3019             : #if IK4_ENABLED
    3020           0 :     module procedure setMatUpdateTriangCSOLSA_IK4
    3021             :         use pm_kind, only: TKC => IK4
    3022             : #include "pm_matrixUpdate@routines.inc.F90"
    3023             :     end procedure
    3024             : #endif
    3025             : 
    3026             : #if IK3_ENABLED
    3027           0 :     module procedure setMatUpdateTriangCSOLSA_IK3
    3028             :         use pm_kind, only: TKC => IK3
    3029             : #include "pm_matrixUpdate@routines.inc.F90"
    3030             :     end procedure
    3031             : #endif
    3032             : 
    3033             : #if IK2_ENABLED
    3034           0 :     module procedure setMatUpdateTriangCSOLSA_IK2
    3035             :         use pm_kind, only: TKC => IK2
    3036             : #include "pm_matrixUpdate@routines.inc.F90"
    3037             :     end procedure
    3038             : #endif
    3039             : 
    3040             : #if IK1_ENABLED
    3041           0 :     module procedure setMatUpdateTriangCSOLSA_IK1
    3042             :         use pm_kind, only: TKC => IK1
    3043             : #include "pm_matrixUpdate@routines.inc.F90"
    3044             :     end procedure
    3045             : #endif
    3046             : 
    3047             : #undef IK_ENABLED
    3048             : 
    3049             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3050             : 
    3051             : #define CK_ENABLED 1
    3052             : 
    3053             : #if CK5_ENABLED
    3054             :     module procedure setMatUpdateTriangCSOLSA_CK5
    3055             :         use pm_kind, only: TKC => CK5
    3056             : #include "pm_matrixUpdate@routines.inc.F90"
    3057             :     end procedure
    3058             : #endif
    3059             : 
    3060             : #if CK4_ENABLED
    3061           0 :     module procedure setMatUpdateTriangCSOLSA_CK4
    3062             :         use pm_kind, only: TKC => CK4
    3063             : #include "pm_matrixUpdate@routines.inc.F90"
    3064             :     end procedure
    3065             : #endif
    3066             : 
    3067             : #if CK3_ENABLED
    3068           0 :     module procedure setMatUpdateTriangCSOLSA_CK3
    3069             :         use pm_kind, only: TKC => CK3
    3070             : #include "pm_matrixUpdate@routines.inc.F90"
    3071             :     end procedure
    3072             : #endif
    3073             : 
    3074             : #if CK2_ENABLED
    3075           0 :     module procedure setMatUpdateTriangCSOLSA_CK2
    3076             :         use pm_kind, only: TKC => CK2
    3077             : #include "pm_matrixUpdate@routines.inc.F90"
    3078             :     end procedure
    3079             : #endif
    3080             : 
    3081             : #if CK1_ENABLED
    3082           0 :     module procedure setMatUpdateTriangCSOLSA_CK1
    3083             :         use pm_kind, only: TKC => CK1
    3084             : #include "pm_matrixUpdate@routines.inc.F90"
    3085             :     end procedure
    3086             : #endif
    3087             : 
    3088             : #undef CK_ENABLED
    3089             : 
    3090             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3091             : 
    3092             : #define RK_ENABLED 1
    3093             : 
    3094             : #if RK5_ENABLED
    3095             :     module procedure setMatUpdateTriangCSOLSA_RK5
    3096             :         use pm_kind, only: TKC => RK5
    3097             : #include "pm_matrixUpdate@routines.inc.F90"
    3098             :     end procedure
    3099             : #endif
    3100             : 
    3101             : #if RK4_ENABLED
    3102           0 :     module procedure setMatUpdateTriangCSOLSA_RK4
    3103             :         use pm_kind, only: TKC => RK4
    3104             : #include "pm_matrixUpdate@routines.inc.F90"
    3105             :     end procedure
    3106             : #endif
    3107             : 
    3108             : #if RK3_ENABLED
    3109           0 :     module procedure setMatUpdateTriangCSOLSA_RK3
    3110             :         use pm_kind, only: TKC => RK3
    3111             : #include "pm_matrixUpdate@routines.inc.F90"
    3112             :     end procedure
    3113             : #endif
    3114             : 
    3115             : #if RK2_ENABLED
    3116           0 :     module procedure setMatUpdateTriangCSOLSA_RK2
    3117             :         use pm_kind, only: TKC => RK2
    3118             : #include "pm_matrixUpdate@routines.inc.F90"
    3119             :     end procedure
    3120             : #endif
    3121             : 
    3122             : #if RK1_ENABLED
    3123           1 :     module procedure setMatUpdateTriangCSOLSA_RK1
    3124             :         use pm_kind, only: TKC => RK1
    3125             : #include "pm_matrixUpdate@routines.inc.F90"
    3126             :     end procedure
    3127             : #endif
    3128             : 
    3129             : #undef RK_ENABLED
    3130             : 
    3131             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3132             : 
    3133             : #undef SA_ENABLED
    3134             : 
    3135             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3136             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3137             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3138             : 
    3139             : #define AH_ENABLED 1
    3140             : 
    3141             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3142             : 
    3143             : #define CK_ENABLED 1
    3144             : 
    3145             : #if CK5_ENABLED
    3146             :     module procedure setMatUpdateTriangCSOLAH_CK5
    3147             :         use pm_kind, only: TKC => CK5
    3148             : #include "pm_matrixUpdate@routines.inc.F90"
    3149             :     end procedure
    3150             : #endif
    3151             : 
    3152             : #if CK4_ENABLED
    3153           0 :     module procedure setMatUpdateTriangCSOLAH_CK4
    3154             :         use pm_kind, only: TKC => CK4
    3155             : #include "pm_matrixUpdate@routines.inc.F90"
    3156             :     end procedure
    3157             : #endif
    3158             : 
    3159             : #if CK3_ENABLED
    3160           0 :     module procedure setMatUpdateTriangCSOLAH_CK3
    3161             :         use pm_kind, only: TKC => CK3
    3162             : #include "pm_matrixUpdate@routines.inc.F90"
    3163             :     end procedure
    3164             : #endif
    3165             : 
    3166             : #if CK2_ENABLED
    3167           0 :     module procedure setMatUpdateTriangCSOLAH_CK2
    3168             :         use pm_kind, only: TKC => CK2
    3169             : #include "pm_matrixUpdate@routines.inc.F90"
    3170             :     end procedure
    3171             : #endif
    3172             : 
    3173             : #if CK1_ENABLED
    3174           1 :     module procedure setMatUpdateTriangCSOLAH_CK1
    3175             :         use pm_kind, only: TKC => CK1
    3176             : #include "pm_matrixUpdate@routines.inc.F90"
    3177             :     end procedure
    3178             : #endif
    3179             : 
    3180             : #undef CK_ENABLED
    3181             : 
    3182             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3183             : 
    3184             : #undef AH_ENABLED
    3185             : 
    3186             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3187             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3188             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3189             : 
    3190             : #define HA_ENABLED 1
    3191             : 
    3192             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3193             : 
    3194             : #define CK_ENABLED 1
    3195             : 
    3196             : #if CK5_ENABLED
    3197             :     module procedure setMatUpdateTriangCSOLHA_CK5
    3198             :         use pm_kind, only: TKC => CK5
    3199             : #include "pm_matrixUpdate@routines.inc.F90"
    3200             :     end procedure
    3201             : #endif
    3202             : 
    3203             : #if CK4_ENABLED
    3204           0 :     module procedure setMatUpdateTriangCSOLHA_CK4
    3205             :         use pm_kind, only: TKC => CK4
    3206             : #include "pm_matrixUpdate@routines.inc.F90"
    3207             :     end procedure
    3208             : #endif
    3209             : 
    3210             : #if CK3_ENABLED
    3211           0 :     module procedure setMatUpdateTriangCSOLHA_CK3
    3212             :         use pm_kind, only: TKC => CK3
    3213             : #include "pm_matrixUpdate@routines.inc.F90"
    3214             :     end procedure
    3215             : #endif
    3216             : 
    3217             : #if CK2_ENABLED
    3218           0 :     module procedure setMatUpdateTriangCSOLHA_CK2
    3219             :         use pm_kind, only: TKC => CK2
    3220             : #include "pm_matrixUpdate@routines.inc.F90"
    3221             :     end procedure
    3222             : #endif
    3223             : 
    3224             : #if CK1_ENABLED
    3225           1 :     module procedure setMatUpdateTriangCSOLHA_CK1
    3226             :         use pm_kind, only: TKC => CK1
    3227             : #include "pm_matrixUpdate@routines.inc.F90"
    3228             :     end procedure
    3229             : #endif
    3230             : 
    3231             : #undef CK_ENABLED
    3232             : 
    3233             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3234             : 
    3235             : #undef HA_ENABLED
    3236             : 
    3237             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3238             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3239             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3240             : 
    3241             : #undef lowDiaC_ENABLED
    3242             : 
    3243             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3244             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3245             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3246             : 
    3247             : #define uppDiaC_ENABLED 1
    3248             : 
    3249             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3250             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3251             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3252             : 
    3253             : #define AS_ENABLED 1
    3254             : 
    3255             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3256             : 
    3257             : #define IK_ENABLED 1
    3258             : 
    3259             : #if IK5_ENABLED
    3260           0 :     module procedure setMatUpdateTriangCSOUAS_IK5
    3261             :         use pm_kind, only: TKC => IK5
    3262             : #include "pm_matrixUpdate@routines.inc.F90"
    3263             :     end procedure
    3264             : #endif
    3265             : 
    3266             : #if IK4_ENABLED
    3267           0 :     module procedure setMatUpdateTriangCSOUAS_IK4
    3268             :         use pm_kind, only: TKC => IK4
    3269             : #include "pm_matrixUpdate@routines.inc.F90"
    3270             :     end procedure
    3271             : #endif
    3272             : 
    3273             : #if IK3_ENABLED
    3274           0 :     module procedure setMatUpdateTriangCSOUAS_IK3
    3275             :         use pm_kind, only: TKC => IK3
    3276             : #include "pm_matrixUpdate@routines.inc.F90"
    3277             :     end procedure
    3278             : #endif
    3279             : 
    3280             : #if IK2_ENABLED
    3281           0 :     module procedure setMatUpdateTriangCSOUAS_IK2
    3282             :         use pm_kind, only: TKC => IK2
    3283             : #include "pm_matrixUpdate@routines.inc.F90"
    3284             :     end procedure
    3285             : #endif
    3286             : 
    3287             : #if IK1_ENABLED
    3288           0 :     module procedure setMatUpdateTriangCSOUAS_IK1
    3289             :         use pm_kind, only: TKC => IK1
    3290             : #include "pm_matrixUpdate@routines.inc.F90"
    3291             :     end procedure
    3292             : #endif
    3293             : 
    3294             : #undef IK_ENABLED
    3295             : 
    3296             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3297             : 
    3298             : #define CK_ENABLED 1
    3299             : 
    3300             : #if CK5_ENABLED
    3301             :     module procedure setMatUpdateTriangCSOUAS_CK5
    3302             :         use pm_kind, only: TKC => CK5
    3303             : #include "pm_matrixUpdate@routines.inc.F90"
    3304             :     end procedure
    3305             : #endif
    3306             : 
    3307             : #if CK4_ENABLED
    3308           0 :     module procedure setMatUpdateTriangCSOUAS_CK4
    3309             :         use pm_kind, only: TKC => CK4
    3310             : #include "pm_matrixUpdate@routines.inc.F90"
    3311             :     end procedure
    3312             : #endif
    3313             : 
    3314             : #if CK3_ENABLED
    3315           0 :     module procedure setMatUpdateTriangCSOUAS_CK3
    3316             :         use pm_kind, only: TKC => CK3
    3317             : #include "pm_matrixUpdate@routines.inc.F90"
    3318             :     end procedure
    3319             : #endif
    3320             : 
    3321             : #if CK2_ENABLED
    3322           0 :     module procedure setMatUpdateTriangCSOUAS_CK2
    3323             :         use pm_kind, only: TKC => CK2
    3324             : #include "pm_matrixUpdate@routines.inc.F90"
    3325             :     end procedure
    3326             : #endif
    3327             : 
    3328             : #if CK1_ENABLED
    3329           1 :     module procedure setMatUpdateTriangCSOUAS_CK1
    3330             :         use pm_kind, only: TKC => CK1
    3331             : #include "pm_matrixUpdate@routines.inc.F90"
    3332             :     end procedure
    3333             : #endif
    3334             : 
    3335             : #undef CK_ENABLED
    3336             : 
    3337             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3338             : 
    3339             : #define RK_ENABLED 1
    3340             : 
    3341             : #if RK5_ENABLED
    3342             :     module procedure setMatUpdateTriangCSOUAS_RK5
    3343             :         use pm_kind, only: TKC => RK5
    3344             : #include "pm_matrixUpdate@routines.inc.F90"
    3345             :     end procedure
    3346             : #endif
    3347             : 
    3348             : #if RK4_ENABLED
    3349           0 :     module procedure setMatUpdateTriangCSOUAS_RK4
    3350             :         use pm_kind, only: TKC => RK4
    3351             : #include "pm_matrixUpdate@routines.inc.F90"
    3352             :     end procedure
    3353             : #endif
    3354             : 
    3355             : #if RK3_ENABLED
    3356           0 :     module procedure setMatUpdateTriangCSOUAS_RK3
    3357             :         use pm_kind, only: TKC => RK3
    3358             : #include "pm_matrixUpdate@routines.inc.F90"
    3359             :     end procedure
    3360             : #endif
    3361             : 
    3362             : #if RK2_ENABLED
    3363           0 :     module procedure setMatUpdateTriangCSOUAS_RK2
    3364             :         use pm_kind, only: TKC => RK2
    3365             : #include "pm_matrixUpdate@routines.inc.F90"
    3366             :     end procedure
    3367             : #endif
    3368             : 
    3369             : #if RK1_ENABLED
    3370           1 :     module procedure setMatUpdateTriangCSOUAS_RK1
    3371             :         use pm_kind, only: TKC => RK1
    3372             : #include "pm_matrixUpdate@routines.inc.F90"
    3373             :     end procedure
    3374             : #endif
    3375             : 
    3376             : #undef RK_ENABLED
    3377             : 
    3378             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3379             : 
    3380             : #undef AS_ENABLED
    3381             : 
    3382             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3383             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3384             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3385             : 
    3386             : #define SA_ENABLED 1
    3387             : 
    3388             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3389             : 
    3390             : #define IK_ENABLED 1
    3391             : 
    3392             : #if IK5_ENABLED
    3393           0 :     module procedure setMatUpdateTriangCSOUSA_IK5
    3394             :         use pm_kind, only: TKC => IK5
    3395             : #include "pm_matrixUpdate@routines.inc.F90"
    3396             :     end procedure
    3397             : #endif
    3398             : 
    3399             : #if IK4_ENABLED
    3400           0 :     module procedure setMatUpdateTriangCSOUSA_IK4
    3401             :         use pm_kind, only: TKC => IK4
    3402             : #include "pm_matrixUpdate@routines.inc.F90"
    3403             :     end procedure
    3404             : #endif
    3405             : 
    3406             : #if IK3_ENABLED
    3407           0 :     module procedure setMatUpdateTriangCSOUSA_IK3
    3408             :         use pm_kind, only: TKC => IK3
    3409             : #include "pm_matrixUpdate@routines.inc.F90"
    3410             :     end procedure
    3411             : #endif
    3412             : 
    3413             : #if IK2_ENABLED
    3414           0 :     module procedure setMatUpdateTriangCSOUSA_IK2
    3415             :         use pm_kind, only: TKC => IK2
    3416             : #include "pm_matrixUpdate@routines.inc.F90"
    3417             :     end procedure
    3418             : #endif
    3419             : 
    3420             : #if IK1_ENABLED
    3421           0 :     module procedure setMatUpdateTriangCSOUSA_IK1
    3422             :         use pm_kind, only: TKC => IK1
    3423             : #include "pm_matrixUpdate@routines.inc.F90"
    3424             :     end procedure
    3425             : #endif
    3426             : 
    3427             : #undef IK_ENABLED
    3428             : 
    3429             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3430             : 
    3431             : #define CK_ENABLED 1
    3432             : 
    3433             : #if CK5_ENABLED
    3434             :     module procedure setMatUpdateTriangCSOUSA_CK5
    3435             :         use pm_kind, only: TKC => CK5
    3436             : #include "pm_matrixUpdate@routines.inc.F90"
    3437             :     end procedure
    3438             : #endif
    3439             : 
    3440             : #if CK4_ENABLED
    3441           0 :     module procedure setMatUpdateTriangCSOUSA_CK4
    3442             :         use pm_kind, only: TKC => CK4
    3443             : #include "pm_matrixUpdate@routines.inc.F90"
    3444             :     end procedure
    3445             : #endif
    3446             : 
    3447             : #if CK3_ENABLED
    3448           0 :     module procedure setMatUpdateTriangCSOUSA_CK3
    3449             :         use pm_kind, only: TKC => CK3
    3450             : #include "pm_matrixUpdate@routines.inc.F90"
    3451             :     end procedure
    3452             : #endif
    3453             : 
    3454             : #if CK2_ENABLED
    3455           0 :     module procedure setMatUpdateTriangCSOUSA_CK2
    3456             :         use pm_kind, only: TKC => CK2
    3457             : #include "pm_matrixUpdate@routines.inc.F90"
    3458             :     end procedure
    3459             : #endif
    3460             : 
    3461             : #if CK1_ENABLED
    3462           0 :     module procedure setMatUpdateTriangCSOUSA_CK1
    3463             :         use pm_kind, only: TKC => CK1
    3464             : #include "pm_matrixUpdate@routines.inc.F90"
    3465             :     end procedure
    3466             : #endif
    3467             : 
    3468             : #undef CK_ENABLED
    3469             : 
    3470             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3471             : 
    3472             : #define RK_ENABLED 1
    3473             : 
    3474             : #if RK5_ENABLED
    3475             :     module procedure setMatUpdateTriangCSOUSA_RK5
    3476             :         use pm_kind, only: TKC => RK5
    3477             : #include "pm_matrixUpdate@routines.inc.F90"
    3478             :     end procedure
    3479             : #endif
    3480             : 
    3481             : #if RK4_ENABLED
    3482           0 :     module procedure setMatUpdateTriangCSOUSA_RK4
    3483             :         use pm_kind, only: TKC => RK4
    3484             : #include "pm_matrixUpdate@routines.inc.F90"
    3485             :     end procedure
    3486             : #endif
    3487             : 
    3488             : #if RK3_ENABLED
    3489           0 :     module procedure setMatUpdateTriangCSOUSA_RK3
    3490             :         use pm_kind, only: TKC => RK3
    3491             : #include "pm_matrixUpdate@routines.inc.F90"
    3492             :     end procedure
    3493             : #endif
    3494             : 
    3495             : #if RK2_ENABLED
    3496           0 :     module procedure setMatUpdateTriangCSOUSA_RK2
    3497             :         use pm_kind, only: TKC => RK2
    3498             : #include "pm_matrixUpdate@routines.inc.F90"
    3499             :     end procedure
    3500             : #endif
    3501             : 
    3502             : #if RK1_ENABLED
    3503           0 :     module procedure setMatUpdateTriangCSOUSA_RK1
    3504             :         use pm_kind, only: TKC => RK1
    3505             : #include "pm_matrixUpdate@routines.inc.F90"
    3506             :     end procedure
    3507             : #endif
    3508             : 
    3509             : #undef RK_ENABLED
    3510             : 
    3511             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3512             : 
    3513             : #undef SA_ENABLED
    3514             : 
    3515             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3516             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3517             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3518             : 
    3519             : #define AH_ENABLED 1
    3520             : 
    3521             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3522             : 
    3523             : #define CK_ENABLED 1
    3524             : 
    3525             : #if CK5_ENABLED
    3526             :     module procedure setMatUpdateTriangCSOUAH_CK5
    3527             :         use pm_kind, only: TKC => CK5
    3528             : #include "pm_matrixUpdate@routines.inc.F90"
    3529             :     end procedure
    3530             : #endif
    3531             : 
    3532             : #if CK4_ENABLED
    3533           0 :     module procedure setMatUpdateTriangCSOUAH_CK4
    3534             :         use pm_kind, only: TKC => CK4
    3535             : #include "pm_matrixUpdate@routines.inc.F90"
    3536             :     end procedure
    3537             : #endif
    3538             : 
    3539             : #if CK3_ENABLED
    3540           0 :     module procedure setMatUpdateTriangCSOUAH_CK3
    3541             :         use pm_kind, only: TKC => CK3
    3542             : #include "pm_matrixUpdate@routines.inc.F90"
    3543             :     end procedure
    3544             : #endif
    3545             : 
    3546             : #if CK2_ENABLED
    3547           0 :     module procedure setMatUpdateTriangCSOUAH_CK2
    3548             :         use pm_kind, only: TKC => CK2
    3549             : #include "pm_matrixUpdate@routines.inc.F90"
    3550             :     end procedure
    3551             : #endif
    3552             : 
    3553             : #if CK1_ENABLED
    3554           1 :     module procedure setMatUpdateTriangCSOUAH_CK1
    3555             :         use pm_kind, only: TKC => CK1
    3556             : #include "pm_matrixUpdate@routines.inc.F90"
    3557             :     end procedure
    3558             : #endif
    3559             : 
    3560             : #undef CK_ENABLED
    3561             : 
    3562             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3563             : 
    3564             : #undef AH_ENABLED
    3565             : 
    3566             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3567             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3568             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3569             : 
    3570             : #define HA_ENABLED 1
    3571             : 
    3572             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3573             : 
    3574             : #define CK_ENABLED 1
    3575             : 
    3576             : #if CK5_ENABLED
    3577             :     module procedure setMatUpdateTriangCSOUHA_CK5
    3578             :         use pm_kind, only: TKC => CK5
    3579             : #include "pm_matrixUpdate@routines.inc.F90"
    3580             :     end procedure
    3581             : #endif
    3582             : 
    3583             : #if CK4_ENABLED
    3584           0 :     module procedure setMatUpdateTriangCSOUHA_CK4
    3585             :         use pm_kind, only: TKC => CK4
    3586             : #include "pm_matrixUpdate@routines.inc.F90"
    3587             :     end procedure
    3588             : #endif
    3589             : 
    3590             : #if CK3_ENABLED
    3591           0 :     module procedure setMatUpdateTriangCSOUHA_CK3
    3592             :         use pm_kind, only: TKC => CK3
    3593             : #include "pm_matrixUpdate@routines.inc.F90"
    3594             :     end procedure
    3595             : #endif
    3596             : 
    3597             : #if CK2_ENABLED
    3598           0 :     module procedure setMatUpdateTriangCSOUHA_CK2
    3599             :         use pm_kind, only: TKC => CK2
    3600             : #include "pm_matrixUpdate@routines.inc.F90"
    3601             :     end procedure
    3602             : #endif
    3603             : 
    3604             : #if CK1_ENABLED
    3605           0 :     module procedure setMatUpdateTriangCSOUHA_CK1
    3606             :         use pm_kind, only: TKC => CK1
    3607             : #include "pm_matrixUpdate@routines.inc.F90"
    3608             :     end procedure
    3609             : #endif
    3610             : 
    3611             : #undef CK_ENABLED
    3612             : 
    3613             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3614             : 
    3615             : #undef HA_ENABLED
    3616             : 
    3617             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3618             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3619             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3620             : 
    3621             : #undef uppDiaC_ENABLED
    3622             : 
    3623             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3624             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3625             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3626             : 
    3627             : #undef setMatUpdateTriang_ENABLED
    3628             : 
    3629             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3630             : 
    3631             : #undef CHECK_ASSERTION
    3632             : 
    3633             : end submodule routines

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