https://www.cdslab.org/paramonte/fortran/2
Current view: top level - main - pm_matrixMulTri@routines.F90 (source / functions) Hit Total Coverage
Test: ParaMonte 2.0.0 :: Serial Fortran - Code Coverage Report Lines: 1152 1152 100.0 %
Date: 2024-04-08 03:18:57 Functions: 1152 1152 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       2             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       3             : !!!!                                                                                                                            !!!!
       4             : !!!!    ParaMonte: Parallel Monte Carlo and Machine Learning Library.                                                           !!!!
       5             : !!!!                                                                                                                            !!!!
       6             : !!!!    Copyright (C) 2012-present, The Computational Data Science Lab                                                          !!!!
       7             : !!!!                                                                                                                            !!!!
       8             : !!!!    This file is part of the ParaMonte library.                                                                             !!!!
       9             : !!!!                                                                                                                            !!!!
      10             : !!!!    LICENSE                                                                                                                 !!!!
      11             : !!!!                                                                                                                            !!!!
      12             : !!!!       https://github.com/cdslaborg/paramonte/blob/main/LICENSE.md                                                          !!!!
      13             : !!!!                                                                                                                            !!!!
      14             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      15             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      16             : 
      17             : !>  \brief
      18             : !>  This file contains procedure implementations of [pm_matrixMulTri](@ref pm_matrixMulTri).
      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_matrixMulTri) 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: blasTRMV, blasTRSV, blasTRMM, blasTRSM
      40             : 
      41             :     implicit none
      42             : 
      43             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      44             : 
      45             : contains
      46             : 
      47             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      48             : 
      49             : #define setMatMulTri_ENABLED 1
      50             : 
      51             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      52             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      53             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      54             : 
      55             : #define trmv_ENABLED 1
      56             : 
      57             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      58             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      59             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      60             : 
      61             : #define ASS_ENABLED 1
      62             : 
      63             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      64             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      65             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      66             : 
      67             : #define CGMB_ENABLED 1
      68             : 
      69             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      70             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      71             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      72             : 
      73             : #define ONOB_ENABLED 1
      74             : 
      75             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      76             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      77             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      78             : 
      79             : #define CLDA_ENABLED 1
      80             : 
      81             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      82             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      83             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      84             : 
      85             : #define ONOA_ENABLED 1
      86             : 
      87             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      88             : 
      89             : #define CK_ENABLED 1
      90             : 
      91             : #if CK5_ENABLED
      92             :     module procedure trmv_ASS_CLDA_ONOA_CGMB_ONOB_CK5
      93             :         use pm_kind, only: CKC => CK5
      94             : #include "pm_matrixMulTri@routines.inc.F90"
      95             :     end procedure
      96             : #endif
      97             : 
      98             : #if CK4_ENABLED
      99         100 :     module procedure trmv_ASS_CLDA_ONOA_CGMB_ONOB_CK4
     100             :         use pm_kind, only: CKC => CK4
     101             : #include "pm_matrixMulTri@routines.inc.F90"
     102             :     end procedure
     103             : #endif
     104             : 
     105             : #if CK3_ENABLED
     106         100 :     module procedure trmv_ASS_CLDA_ONOA_CGMB_ONOB_CK3
     107             :         use pm_kind, only: CKC => CK3
     108             : #include "pm_matrixMulTri@routines.inc.F90"
     109             :     end procedure
     110             : #endif
     111             : 
     112             : #if CK2_ENABLED
     113         100 :     module procedure trmv_ASS_CLDA_ONOA_CGMB_ONOB_CK2
     114             :         use pm_kind, only: CKC => CK2
     115             : #define DISPATCH_ENABLED 1
     116             : #include "pm_matrixMulTri@routines.inc.F90"
     117             : #undef  DISPATCH_ENABLED
     118             :     end procedure
     119             : #endif
     120             : 
     121             : #if CK1_ENABLED
     122         100 :     module procedure trmv_ASS_CLDA_ONOA_CGMB_ONOB_CK1
     123             :         use pm_kind, only: CKC => CK1
     124             : #define DISPATCH_ENABLED 1
     125             : #include "pm_matrixMulTri@routines.inc.F90"
     126             : #undef  DISPATCH_ENABLED
     127             :     end procedure
     128             : #endif
     129             : 
     130             : #undef CK_ENABLED
     131             : 
     132             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     133             : 
     134             : #define RK_ENABLED 1
     135             : 
     136             : #if RK5_ENABLED
     137             :     module procedure trmv_ASS_CLDA_ONOA_CGMB_ONOB_RK5
     138             :         use pm_kind, only: RKC => RK5
     139             : #include "pm_matrixMulTri@routines.inc.F90"
     140             :     end procedure
     141             : #endif
     142             : 
     143             : #if RK4_ENABLED
     144         100 :     module procedure trmv_ASS_CLDA_ONOA_CGMB_ONOB_RK4
     145             :         use pm_kind, only: RKC => RK4
     146             : #include "pm_matrixMulTri@routines.inc.F90"
     147             :     end procedure
     148             : #endif
     149             : 
     150             : #if RK3_ENABLED
     151         100 :     module procedure trmv_ASS_CLDA_ONOA_CGMB_ONOB_RK3
     152             :         use pm_kind, only: RKC => RK3
     153             : #include "pm_matrixMulTri@routines.inc.F90"
     154             :     end procedure
     155             : #endif
     156             : 
     157             : #if RK2_ENABLED
     158         100 :     module procedure trmv_ASS_CLDA_ONOA_CGMB_ONOB_RK2
     159             :         use pm_kind, only: RKC => RK2
     160             : #define DISPATCH_ENABLED 1
     161             : #include "pm_matrixMulTri@routines.inc.F90"
     162             : #undef  DISPATCH_ENABLED
     163             :     end procedure
     164             : #endif
     165             : 
     166             : #if RK1_ENABLED
     167         100 :     module procedure trmv_ASS_CLDA_ONOA_CGMB_ONOB_RK1
     168             :         use pm_kind, only: RKC => RK1
     169             : #define DISPATCH_ENABLED 1
     170             : #include "pm_matrixMulTri@routines.inc.F90"
     171             : #undef  DISPATCH_ENABLED
     172             :     end procedure
     173             : #endif
     174             : 
     175             : #undef RK_ENABLED
     176             : 
     177             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     178             : 
     179             : #undef ONOA_ENABLED
     180             : 
     181             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     182             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     183             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     184             : 
     185             : #define OTSA_ENABLED 1
     186             : 
     187             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     188             : 
     189             : #define CK_ENABLED 1
     190             : 
     191             : #if CK5_ENABLED
     192             :     module procedure trmv_ASS_CLDA_OTSA_CGMB_ONOB_CK5
     193             :         use pm_kind, only: CKC => CK5
     194             : #include "pm_matrixMulTri@routines.inc.F90"
     195             :     end procedure
     196             : #endif
     197             : 
     198             : #if CK4_ENABLED
     199         100 :     module procedure trmv_ASS_CLDA_OTSA_CGMB_ONOB_CK4
     200             :         use pm_kind, only: CKC => CK4
     201             : #include "pm_matrixMulTri@routines.inc.F90"
     202             :     end procedure
     203             : #endif
     204             : 
     205             : #if CK3_ENABLED
     206         100 :     module procedure trmv_ASS_CLDA_OTSA_CGMB_ONOB_CK3
     207             :         use pm_kind, only: CKC => CK3
     208             : #include "pm_matrixMulTri@routines.inc.F90"
     209             :     end procedure
     210             : #endif
     211             : 
     212             : #if CK2_ENABLED
     213         100 :     module procedure trmv_ASS_CLDA_OTSA_CGMB_ONOB_CK2
     214             :         use pm_kind, only: CKC => CK2
     215             : #define DISPATCH_ENABLED 1
     216             : #include "pm_matrixMulTri@routines.inc.F90"
     217             : #undef  DISPATCH_ENABLED
     218             :     end procedure
     219             : #endif
     220             : 
     221             : #if CK1_ENABLED
     222         100 :     module procedure trmv_ASS_CLDA_OTSA_CGMB_ONOB_CK1
     223             :         use pm_kind, only: CKC => CK1
     224             : #define DISPATCH_ENABLED 1
     225             : #include "pm_matrixMulTri@routines.inc.F90"
     226             : #undef  DISPATCH_ENABLED
     227             :     end procedure
     228             : #endif
     229             : 
     230             : #undef CK_ENABLED
     231             : 
     232             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     233             : 
     234             : #define RK_ENABLED 1
     235             : 
     236             : #if RK5_ENABLED
     237             :     module procedure trmv_ASS_CLDA_OTSA_CGMB_ONOB_RK5
     238             :         use pm_kind, only: RKC => RK5
     239             : #include "pm_matrixMulTri@routines.inc.F90"
     240             :     end procedure
     241             : #endif
     242             : 
     243             : #if RK4_ENABLED
     244         100 :     module procedure trmv_ASS_CLDA_OTSA_CGMB_ONOB_RK4
     245             :         use pm_kind, only: RKC => RK4
     246             : #include "pm_matrixMulTri@routines.inc.F90"
     247             :     end procedure
     248             : #endif
     249             : 
     250             : #if RK3_ENABLED
     251         100 :     module procedure trmv_ASS_CLDA_OTSA_CGMB_ONOB_RK3
     252             :         use pm_kind, only: RKC => RK3
     253             : #include "pm_matrixMulTri@routines.inc.F90"
     254             :     end procedure
     255             : #endif
     256             : 
     257             : #if RK2_ENABLED
     258         100 :     module procedure trmv_ASS_CLDA_OTSA_CGMB_ONOB_RK2
     259             :         use pm_kind, only: RKC => RK2
     260             : #define DISPATCH_ENABLED 1
     261             : #include "pm_matrixMulTri@routines.inc.F90"
     262             : #undef  DISPATCH_ENABLED
     263             :     end procedure
     264             : #endif
     265             : 
     266             : #if RK1_ENABLED
     267         100 :     module procedure trmv_ASS_CLDA_OTSA_CGMB_ONOB_RK1
     268             :         use pm_kind, only: RKC => RK1
     269             : #define DISPATCH_ENABLED 1
     270             : #include "pm_matrixMulTri@routines.inc.F90"
     271             : #undef  DISPATCH_ENABLED
     272             :     end procedure
     273             : #endif
     274             : 
     275             : #undef RK_ENABLED
     276             : 
     277             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     278             : 
     279             : #undef OTSA_ENABLED
     280             : 
     281             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     282             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     283             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     284             : 
     285             : #define OTHA_ENABLED 1
     286             : 
     287             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     288             : 
     289             : #define CK_ENABLED 1
     290             : 
     291             : #if CK5_ENABLED
     292             :     module procedure trmv_ASS_CLDA_OTHA_CGMB_ONOB_CK5
     293             :         use pm_kind, only: CKC => CK5
     294             : #include "pm_matrixMulTri@routines.inc.F90"
     295             :     end procedure
     296             : #endif
     297             : 
     298             : #if CK4_ENABLED
     299         100 :     module procedure trmv_ASS_CLDA_OTHA_CGMB_ONOB_CK4
     300             :         use pm_kind, only: CKC => CK4
     301             : #include "pm_matrixMulTri@routines.inc.F90"
     302             :     end procedure
     303             : #endif
     304             : 
     305             : #if CK3_ENABLED
     306         100 :     module procedure trmv_ASS_CLDA_OTHA_CGMB_ONOB_CK3
     307             :         use pm_kind, only: CKC => CK3
     308             : #include "pm_matrixMulTri@routines.inc.F90"
     309             :     end procedure
     310             : #endif
     311             : 
     312             : #if CK2_ENABLED
     313         100 :     module procedure trmv_ASS_CLDA_OTHA_CGMB_ONOB_CK2
     314             :         use pm_kind, only: CKC => CK2
     315             : #define DISPATCH_ENABLED 1
     316             : #include "pm_matrixMulTri@routines.inc.F90"
     317             : #undef  DISPATCH_ENABLED
     318             :     end procedure
     319             : #endif
     320             : 
     321             : #if CK1_ENABLED
     322         100 :     module procedure trmv_ASS_CLDA_OTHA_CGMB_ONOB_CK1
     323             :         use pm_kind, only: CKC => CK1
     324             : #define DISPATCH_ENABLED 1
     325             : #include "pm_matrixMulTri@routines.inc.F90"
     326             : #undef  DISPATCH_ENABLED
     327             :     end procedure
     328             : #endif
     329             : 
     330             : #undef CK_ENABLED
     331             : 
     332             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     333             : 
     334             : #define RK_ENABLED 1
     335             : 
     336             : #if RK5_ENABLED
     337             :     module procedure trmv_ASS_CLDA_OTHA_CGMB_ONOB_RK5
     338             :         use pm_kind, only: RKC => RK5
     339             : #include "pm_matrixMulTri@routines.inc.F90"
     340             :     end procedure
     341             : #endif
     342             : 
     343             : #if RK4_ENABLED
     344         100 :     module procedure trmv_ASS_CLDA_OTHA_CGMB_ONOB_RK4
     345             :         use pm_kind, only: RKC => RK4
     346             : #include "pm_matrixMulTri@routines.inc.F90"
     347             :     end procedure
     348             : #endif
     349             : 
     350             : #if RK3_ENABLED
     351         100 :     module procedure trmv_ASS_CLDA_OTHA_CGMB_ONOB_RK3
     352             :         use pm_kind, only: RKC => RK3
     353             : #include "pm_matrixMulTri@routines.inc.F90"
     354             :     end procedure
     355             : #endif
     356             : 
     357             : #if RK2_ENABLED
     358         100 :     module procedure trmv_ASS_CLDA_OTHA_CGMB_ONOB_RK2
     359             :         use pm_kind, only: RKC => RK2
     360             : #define DISPATCH_ENABLED 1
     361             : #include "pm_matrixMulTri@routines.inc.F90"
     362             : #undef  DISPATCH_ENABLED
     363             :     end procedure
     364             : #endif
     365             : 
     366             : #if RK1_ENABLED
     367         100 :     module procedure trmv_ASS_CLDA_OTHA_CGMB_ONOB_RK1
     368             :         use pm_kind, only: RKC => RK1
     369             : #define DISPATCH_ENABLED 1
     370             : #include "pm_matrixMulTri@routines.inc.F90"
     371             : #undef  DISPATCH_ENABLED
     372             :     end procedure
     373             : #endif
     374             : 
     375             : #undef RK_ENABLED
     376             : 
     377             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     378             : 
     379             : #undef OTHA_ENABLED
     380             : 
     381             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     382             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     383             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     384             : 
     385             : #undef CLDA_ENABLED
     386             : 
     387             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     388             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     389             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     390             : 
     391             : #define CUDA_ENABLED 1
     392             : 
     393             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     394             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     395             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     396             : 
     397             : #define ONOA_ENABLED 1
     398             : 
     399             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     400             : 
     401             : #define CK_ENABLED 1
     402             : 
     403             : #if CK5_ENABLED
     404             :     module procedure trmv_ASS_CUDA_ONOA_CGMB_ONOB_CK5
     405             :         use pm_kind, only: CKC => CK5
     406             : #include "pm_matrixMulTri@routines.inc.F90"
     407             :     end procedure
     408             : #endif
     409             : 
     410             : #if CK4_ENABLED
     411         100 :     module procedure trmv_ASS_CUDA_ONOA_CGMB_ONOB_CK4
     412             :         use pm_kind, only: CKC => CK4
     413             : #include "pm_matrixMulTri@routines.inc.F90"
     414             :     end procedure
     415             : #endif
     416             : 
     417             : #if CK3_ENABLED
     418         100 :     module procedure trmv_ASS_CUDA_ONOA_CGMB_ONOB_CK3
     419             :         use pm_kind, only: CKC => CK3
     420             : #include "pm_matrixMulTri@routines.inc.F90"
     421             :     end procedure
     422             : #endif
     423             : 
     424             : #if CK2_ENABLED
     425         100 :     module procedure trmv_ASS_CUDA_ONOA_CGMB_ONOB_CK2
     426             :         use pm_kind, only: CKC => CK2
     427             : #define DISPATCH_ENABLED 1
     428             : #include "pm_matrixMulTri@routines.inc.F90"
     429             : #undef  DISPATCH_ENABLED
     430             :     end procedure
     431             : #endif
     432             : 
     433             : #if CK1_ENABLED
     434         100 :     module procedure trmv_ASS_CUDA_ONOA_CGMB_ONOB_CK1
     435             :         use pm_kind, only: CKC => CK1
     436             : #define DISPATCH_ENABLED 1
     437             : #include "pm_matrixMulTri@routines.inc.F90"
     438             : #undef  DISPATCH_ENABLED
     439             :     end procedure
     440             : #endif
     441             : 
     442             : #undef CK_ENABLED
     443             : 
     444             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     445             : 
     446             : #define RK_ENABLED 1
     447             : 
     448             : #if RK5_ENABLED
     449             :     module procedure trmv_ASS_CUDA_ONOA_CGMB_ONOB_RK5
     450             :         use pm_kind, only: RKC => RK5
     451             : #include "pm_matrixMulTri@routines.inc.F90"
     452             :     end procedure
     453             : #endif
     454             : 
     455             : #if RK4_ENABLED
     456         100 :     module procedure trmv_ASS_CUDA_ONOA_CGMB_ONOB_RK4
     457             :         use pm_kind, only: RKC => RK4
     458             : #include "pm_matrixMulTri@routines.inc.F90"
     459             :     end procedure
     460             : #endif
     461             : 
     462             : #if RK3_ENABLED
     463         100 :     module procedure trmv_ASS_CUDA_ONOA_CGMB_ONOB_RK3
     464             :         use pm_kind, only: RKC => RK3
     465             : #include "pm_matrixMulTri@routines.inc.F90"
     466             :     end procedure
     467             : #endif
     468             : 
     469             : #if RK2_ENABLED
     470         100 :     module procedure trmv_ASS_CUDA_ONOA_CGMB_ONOB_RK2
     471             :         use pm_kind, only: RKC => RK2
     472             : #define DISPATCH_ENABLED 1
     473             : #include "pm_matrixMulTri@routines.inc.F90"
     474             : #undef  DISPATCH_ENABLED
     475             :     end procedure
     476             : #endif
     477             : 
     478             : #if RK1_ENABLED
     479         100 :     module procedure trmv_ASS_CUDA_ONOA_CGMB_ONOB_RK1
     480             :         use pm_kind, only: RKC => RK1
     481             : #define DISPATCH_ENABLED 1
     482             : #include "pm_matrixMulTri@routines.inc.F90"
     483             : #undef  DISPATCH_ENABLED
     484             :     end procedure
     485             : #endif
     486             : 
     487             : #undef RK_ENABLED
     488             : 
     489             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     490             : 
     491             : #undef ONOA_ENABLED
     492             : 
     493             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     494             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     495             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     496             : 
     497             : #define OTSA_ENABLED 1
     498             : 
     499             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     500             : 
     501             : #define CK_ENABLED 1
     502             : 
     503             : #if CK5_ENABLED
     504             :     module procedure trmv_ASS_CUDA_OTSA_CGMB_ONOB_CK5
     505             :         use pm_kind, only: CKC => CK5
     506             : #include "pm_matrixMulTri@routines.inc.F90"
     507             :     end procedure
     508             : #endif
     509             : 
     510             : #if CK4_ENABLED
     511         100 :     module procedure trmv_ASS_CUDA_OTSA_CGMB_ONOB_CK4
     512             :         use pm_kind, only: CKC => CK4
     513             : #include "pm_matrixMulTri@routines.inc.F90"
     514             :     end procedure
     515             : #endif
     516             : 
     517             : #if CK3_ENABLED
     518         100 :     module procedure trmv_ASS_CUDA_OTSA_CGMB_ONOB_CK3
     519             :         use pm_kind, only: CKC => CK3
     520             : #include "pm_matrixMulTri@routines.inc.F90"
     521             :     end procedure
     522             : #endif
     523             : 
     524             : #if CK2_ENABLED
     525         100 :     module procedure trmv_ASS_CUDA_OTSA_CGMB_ONOB_CK2
     526             :         use pm_kind, only: CKC => CK2
     527             : #define DISPATCH_ENABLED 1
     528             : #include "pm_matrixMulTri@routines.inc.F90"
     529             : #undef  DISPATCH_ENABLED
     530             :     end procedure
     531             : #endif
     532             : 
     533             : #if CK1_ENABLED
     534         100 :     module procedure trmv_ASS_CUDA_OTSA_CGMB_ONOB_CK1
     535             :         use pm_kind, only: CKC => CK1
     536             : #define DISPATCH_ENABLED 1
     537             : #include "pm_matrixMulTri@routines.inc.F90"
     538             : #undef  DISPATCH_ENABLED
     539             :     end procedure
     540             : #endif
     541             : 
     542             : #undef CK_ENABLED
     543             : 
     544             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     545             : 
     546             : #define RK_ENABLED 1
     547             : 
     548             : #if RK5_ENABLED
     549             :     module procedure trmv_ASS_CUDA_OTSA_CGMB_ONOB_RK5
     550             :         use pm_kind, only: RKC => RK5
     551             : #include "pm_matrixMulTri@routines.inc.F90"
     552             :     end procedure
     553             : #endif
     554             : 
     555             : #if RK4_ENABLED
     556         100 :     module procedure trmv_ASS_CUDA_OTSA_CGMB_ONOB_RK4
     557             :         use pm_kind, only: RKC => RK4
     558             : #include "pm_matrixMulTri@routines.inc.F90"
     559             :     end procedure
     560             : #endif
     561             : 
     562             : #if RK3_ENABLED
     563         100 :     module procedure trmv_ASS_CUDA_OTSA_CGMB_ONOB_RK3
     564             :         use pm_kind, only: RKC => RK3
     565             : #include "pm_matrixMulTri@routines.inc.F90"
     566             :     end procedure
     567             : #endif
     568             : 
     569             : #if RK2_ENABLED
     570         100 :     module procedure trmv_ASS_CUDA_OTSA_CGMB_ONOB_RK2
     571             :         use pm_kind, only: RKC => RK2
     572             : #define DISPATCH_ENABLED 1
     573             : #include "pm_matrixMulTri@routines.inc.F90"
     574             : #undef  DISPATCH_ENABLED
     575             :     end procedure
     576             : #endif
     577             : 
     578             : #if RK1_ENABLED
     579         101 :     module procedure trmv_ASS_CUDA_OTSA_CGMB_ONOB_RK1
     580             :         use pm_kind, only: RKC => RK1
     581             : #define DISPATCH_ENABLED 1
     582             : #include "pm_matrixMulTri@routines.inc.F90"
     583             : #undef  DISPATCH_ENABLED
     584             :     end procedure
     585             : #endif
     586             : 
     587             : #undef RK_ENABLED
     588             : 
     589             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     590             : 
     591             : #undef OTSA_ENABLED
     592             : 
     593             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     594             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     595             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     596             : 
     597             : #define OTHA_ENABLED 1
     598             : 
     599             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     600             : 
     601             : #define CK_ENABLED 1
     602             : 
     603             : #if CK5_ENABLED
     604             :     module procedure trmv_ASS_CUDA_OTHA_CGMB_ONOB_CK5
     605             :         use pm_kind, only: CKC => CK5
     606             : #include "pm_matrixMulTri@routines.inc.F90"
     607             :     end procedure
     608             : #endif
     609             : 
     610             : #if CK4_ENABLED
     611         100 :     module procedure trmv_ASS_CUDA_OTHA_CGMB_ONOB_CK4
     612             :         use pm_kind, only: CKC => CK4
     613             : #include "pm_matrixMulTri@routines.inc.F90"
     614             :     end procedure
     615             : #endif
     616             : 
     617             : #if CK3_ENABLED
     618         100 :     module procedure trmv_ASS_CUDA_OTHA_CGMB_ONOB_CK3
     619             :         use pm_kind, only: CKC => CK3
     620             : #include "pm_matrixMulTri@routines.inc.F90"
     621             :     end procedure
     622             : #endif
     623             : 
     624             : #if CK2_ENABLED
     625         100 :     module procedure trmv_ASS_CUDA_OTHA_CGMB_ONOB_CK2
     626             :         use pm_kind, only: CKC => CK2
     627             : #define DISPATCH_ENABLED 1
     628             : #include "pm_matrixMulTri@routines.inc.F90"
     629             : #undef  DISPATCH_ENABLED
     630             :     end procedure
     631             : #endif
     632             : 
     633             : #if CK1_ENABLED
     634         100 :     module procedure trmv_ASS_CUDA_OTHA_CGMB_ONOB_CK1
     635             :         use pm_kind, only: CKC => CK1
     636             : #define DISPATCH_ENABLED 1
     637             : #include "pm_matrixMulTri@routines.inc.F90"
     638             : #undef  DISPATCH_ENABLED
     639             :     end procedure
     640             : #endif
     641             : 
     642             : #undef CK_ENABLED
     643             : 
     644             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     645             : 
     646             : #define RK_ENABLED 1
     647             : 
     648             : #if RK5_ENABLED
     649             :     module procedure trmv_ASS_CUDA_OTHA_CGMB_ONOB_RK5
     650             :         use pm_kind, only: RKC => RK5
     651             : #include "pm_matrixMulTri@routines.inc.F90"
     652             :     end procedure
     653             : #endif
     654             : 
     655             : #if RK4_ENABLED
     656         100 :     module procedure trmv_ASS_CUDA_OTHA_CGMB_ONOB_RK4
     657             :         use pm_kind, only: RKC => RK4
     658             : #include "pm_matrixMulTri@routines.inc.F90"
     659             :     end procedure
     660             : #endif
     661             : 
     662             : #if RK3_ENABLED
     663         100 :     module procedure trmv_ASS_CUDA_OTHA_CGMB_ONOB_RK3
     664             :         use pm_kind, only: RKC => RK3
     665             : #include "pm_matrixMulTri@routines.inc.F90"
     666             :     end procedure
     667             : #endif
     668             : 
     669             : #if RK2_ENABLED
     670         100 :     module procedure trmv_ASS_CUDA_OTHA_CGMB_ONOB_RK2
     671             :         use pm_kind, only: RKC => RK2
     672             : #define DISPATCH_ENABLED 1
     673             : #include "pm_matrixMulTri@routines.inc.F90"
     674             : #undef  DISPATCH_ENABLED
     675             :     end procedure
     676             : #endif
     677             : 
     678             : #if RK1_ENABLED
     679         100 :     module procedure trmv_ASS_CUDA_OTHA_CGMB_ONOB_RK1
     680             :         use pm_kind, only: RKC => RK1
     681             : #define DISPATCH_ENABLED 1
     682             : #include "pm_matrixMulTri@routines.inc.F90"
     683             : #undef  DISPATCH_ENABLED
     684             :     end procedure
     685             : #endif
     686             : 
     687             : #undef RK_ENABLED
     688             : 
     689             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     690             : 
     691             : #undef OTHA_ENABLED
     692             : 
     693             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     694             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     695             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     696             : 
     697             : #undef CUDA_ENABLED
     698             : 
     699             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     700             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     701             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     702             : 
     703             : #define CLUA_ENABLED 1
     704             : 
     705             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     706             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     707             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     708             : 
     709             : #define ONOA_ENABLED 1
     710             : 
     711             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     712             : 
     713             : #define CK_ENABLED 1
     714             : 
     715             : #if CK5_ENABLED
     716             :     module procedure trmv_ASS_CLUA_ONOA_CGMB_ONOB_CK5
     717             :         use pm_kind, only: CKC => CK5
     718             : #include "pm_matrixMulTri@routines.inc.F90"
     719             :     end procedure
     720             : #endif
     721             : 
     722             : #if CK4_ENABLED
     723         100 :     module procedure trmv_ASS_CLUA_ONOA_CGMB_ONOB_CK4
     724             :         use pm_kind, only: CKC => CK4
     725             : #include "pm_matrixMulTri@routines.inc.F90"
     726             :     end procedure
     727             : #endif
     728             : 
     729             : #if CK3_ENABLED
     730         100 :     module procedure trmv_ASS_CLUA_ONOA_CGMB_ONOB_CK3
     731             :         use pm_kind, only: CKC => CK3
     732             : #include "pm_matrixMulTri@routines.inc.F90"
     733             :     end procedure
     734             : #endif
     735             : 
     736             : #if CK2_ENABLED
     737         100 :     module procedure trmv_ASS_CLUA_ONOA_CGMB_ONOB_CK2
     738             :         use pm_kind, only: CKC => CK2
     739             : #define DISPATCH_ENABLED 1
     740             : #include "pm_matrixMulTri@routines.inc.F90"
     741             : #undef  DISPATCH_ENABLED
     742             :     end procedure
     743             : #endif
     744             : 
     745             : #if CK1_ENABLED
     746         100 :     module procedure trmv_ASS_CLUA_ONOA_CGMB_ONOB_CK1
     747             :         use pm_kind, only: CKC => CK1
     748             : #define DISPATCH_ENABLED 1
     749             : #include "pm_matrixMulTri@routines.inc.F90"
     750             : #undef  DISPATCH_ENABLED
     751             :     end procedure
     752             : #endif
     753             : 
     754             : #undef CK_ENABLED
     755             : 
     756             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     757             : 
     758             : #define RK_ENABLED 1
     759             : 
     760             : #if RK5_ENABLED
     761             :     module procedure trmv_ASS_CLUA_ONOA_CGMB_ONOB_RK5
     762             :         use pm_kind, only: RKC => RK5
     763             : #include "pm_matrixMulTri@routines.inc.F90"
     764             :     end procedure
     765             : #endif
     766             : 
     767             : #if RK4_ENABLED
     768         100 :     module procedure trmv_ASS_CLUA_ONOA_CGMB_ONOB_RK4
     769             :         use pm_kind, only: RKC => RK4
     770             : #include "pm_matrixMulTri@routines.inc.F90"
     771             :     end procedure
     772             : #endif
     773             : 
     774             : #if RK3_ENABLED
     775         100 :     module procedure trmv_ASS_CLUA_ONOA_CGMB_ONOB_RK3
     776             :         use pm_kind, only: RKC => RK3
     777             : #include "pm_matrixMulTri@routines.inc.F90"
     778             :     end procedure
     779             : #endif
     780             : 
     781             : #if RK2_ENABLED
     782         100 :     module procedure trmv_ASS_CLUA_ONOA_CGMB_ONOB_RK2
     783             :         use pm_kind, only: RKC => RK2
     784             : #define DISPATCH_ENABLED 1
     785             : #include "pm_matrixMulTri@routines.inc.F90"
     786             : #undef  DISPATCH_ENABLED
     787             :     end procedure
     788             : #endif
     789             : 
     790             : #if RK1_ENABLED
     791         101 :     module procedure trmv_ASS_CLUA_ONOA_CGMB_ONOB_RK1
     792             :         use pm_kind, only: RKC => RK1
     793             : #define DISPATCH_ENABLED 1
     794             : #include "pm_matrixMulTri@routines.inc.F90"
     795             : #undef  DISPATCH_ENABLED
     796             :     end procedure
     797             : #endif
     798             : 
     799             : #undef RK_ENABLED
     800             : 
     801             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     802             : 
     803             : #undef ONOA_ENABLED
     804             : 
     805             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     806             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     807             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     808             : 
     809             : #define OTSA_ENABLED 1
     810             : 
     811             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     812             : 
     813             : #define CK_ENABLED 1
     814             : 
     815             : #if CK5_ENABLED
     816             :     module procedure trmv_ASS_CLUA_OTSA_CGMB_ONOB_CK5
     817             :         use pm_kind, only: CKC => CK5
     818             : #include "pm_matrixMulTri@routines.inc.F90"
     819             :     end procedure
     820             : #endif
     821             : 
     822             : #if CK4_ENABLED
     823         100 :     module procedure trmv_ASS_CLUA_OTSA_CGMB_ONOB_CK4
     824             :         use pm_kind, only: CKC => CK4
     825             : #include "pm_matrixMulTri@routines.inc.F90"
     826             :     end procedure
     827             : #endif
     828             : 
     829             : #if CK3_ENABLED
     830         100 :     module procedure trmv_ASS_CLUA_OTSA_CGMB_ONOB_CK3
     831             :         use pm_kind, only: CKC => CK3
     832             : #include "pm_matrixMulTri@routines.inc.F90"
     833             :     end procedure
     834             : #endif
     835             : 
     836             : #if CK2_ENABLED
     837         100 :     module procedure trmv_ASS_CLUA_OTSA_CGMB_ONOB_CK2
     838             :         use pm_kind, only: CKC => CK2
     839             : #define DISPATCH_ENABLED 1
     840             : #include "pm_matrixMulTri@routines.inc.F90"
     841             : #undef  DISPATCH_ENABLED
     842             :     end procedure
     843             : #endif
     844             : 
     845             : #if CK1_ENABLED
     846         100 :     module procedure trmv_ASS_CLUA_OTSA_CGMB_ONOB_CK1
     847             :         use pm_kind, only: CKC => CK1
     848             : #define DISPATCH_ENABLED 1
     849             : #include "pm_matrixMulTri@routines.inc.F90"
     850             : #undef  DISPATCH_ENABLED
     851             :     end procedure
     852             : #endif
     853             : 
     854             : #undef CK_ENABLED
     855             : 
     856             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     857             : 
     858             : #define RK_ENABLED 1
     859             : 
     860             : #if RK5_ENABLED
     861             :     module procedure trmv_ASS_CLUA_OTSA_CGMB_ONOB_RK5
     862             :         use pm_kind, only: RKC => RK5
     863             : #include "pm_matrixMulTri@routines.inc.F90"
     864             :     end procedure
     865             : #endif
     866             : 
     867             : #if RK4_ENABLED
     868         100 :     module procedure trmv_ASS_CLUA_OTSA_CGMB_ONOB_RK4
     869             :         use pm_kind, only: RKC => RK4
     870             : #include "pm_matrixMulTri@routines.inc.F90"
     871             :     end procedure
     872             : #endif
     873             : 
     874             : #if RK3_ENABLED
     875         100 :     module procedure trmv_ASS_CLUA_OTSA_CGMB_ONOB_RK3
     876             :         use pm_kind, only: RKC => RK3
     877             : #include "pm_matrixMulTri@routines.inc.F90"
     878             :     end procedure
     879             : #endif
     880             : 
     881             : #if RK2_ENABLED
     882         100 :     module procedure trmv_ASS_CLUA_OTSA_CGMB_ONOB_RK2
     883             :         use pm_kind, only: RKC => RK2
     884             : #define DISPATCH_ENABLED 1
     885             : #include "pm_matrixMulTri@routines.inc.F90"
     886             : #undef  DISPATCH_ENABLED
     887             :     end procedure
     888             : #endif
     889             : 
     890             : #if RK1_ENABLED
     891         100 :     module procedure trmv_ASS_CLUA_OTSA_CGMB_ONOB_RK1
     892             :         use pm_kind, only: RKC => RK1
     893             : #define DISPATCH_ENABLED 1
     894             : #include "pm_matrixMulTri@routines.inc.F90"
     895             : #undef  DISPATCH_ENABLED
     896             :     end procedure
     897             : #endif
     898             : 
     899             : #undef RK_ENABLED
     900             : 
     901             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     902             : 
     903             : #undef OTSA_ENABLED
     904             : 
     905             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     906             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     907             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     908             : 
     909             : #define OTHA_ENABLED 1
     910             : 
     911             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     912             : 
     913             : #define CK_ENABLED 1
     914             : 
     915             : #if CK5_ENABLED
     916             :     module procedure trmv_ASS_CLUA_OTHA_CGMB_ONOB_CK5
     917             :         use pm_kind, only: CKC => CK5
     918             : #include "pm_matrixMulTri@routines.inc.F90"
     919             :     end procedure
     920             : #endif
     921             : 
     922             : #if CK4_ENABLED
     923         100 :     module procedure trmv_ASS_CLUA_OTHA_CGMB_ONOB_CK4
     924             :         use pm_kind, only: CKC => CK4
     925             : #include "pm_matrixMulTri@routines.inc.F90"
     926             :     end procedure
     927             : #endif
     928             : 
     929             : #if CK3_ENABLED
     930         100 :     module procedure trmv_ASS_CLUA_OTHA_CGMB_ONOB_CK3
     931             :         use pm_kind, only: CKC => CK3
     932             : #include "pm_matrixMulTri@routines.inc.F90"
     933             :     end procedure
     934             : #endif
     935             : 
     936             : #if CK2_ENABLED
     937         100 :     module procedure trmv_ASS_CLUA_OTHA_CGMB_ONOB_CK2
     938             :         use pm_kind, only: CKC => CK2
     939             : #define DISPATCH_ENABLED 1
     940             : #include "pm_matrixMulTri@routines.inc.F90"
     941             : #undef  DISPATCH_ENABLED
     942             :     end procedure
     943             : #endif
     944             : 
     945             : #if CK1_ENABLED
     946         100 :     module procedure trmv_ASS_CLUA_OTHA_CGMB_ONOB_CK1
     947             :         use pm_kind, only: CKC => CK1
     948             : #define DISPATCH_ENABLED 1
     949             : #include "pm_matrixMulTri@routines.inc.F90"
     950             : #undef  DISPATCH_ENABLED
     951             :     end procedure
     952             : #endif
     953             : 
     954             : #undef CK_ENABLED
     955             : 
     956             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     957             : 
     958             : #define RK_ENABLED 1
     959             : 
     960             : #if RK5_ENABLED
     961             :     module procedure trmv_ASS_CLUA_OTHA_CGMB_ONOB_RK5
     962             :         use pm_kind, only: RKC => RK5
     963             : #include "pm_matrixMulTri@routines.inc.F90"
     964             :     end procedure
     965             : #endif
     966             : 
     967             : #if RK4_ENABLED
     968         100 :     module procedure trmv_ASS_CLUA_OTHA_CGMB_ONOB_RK4
     969             :         use pm_kind, only: RKC => RK4
     970             : #include "pm_matrixMulTri@routines.inc.F90"
     971             :     end procedure
     972             : #endif
     973             : 
     974             : #if RK3_ENABLED
     975         100 :     module procedure trmv_ASS_CLUA_OTHA_CGMB_ONOB_RK3
     976             :         use pm_kind, only: RKC => RK3
     977             : #include "pm_matrixMulTri@routines.inc.F90"
     978             :     end procedure
     979             : #endif
     980             : 
     981             : #if RK2_ENABLED
     982         100 :     module procedure trmv_ASS_CLUA_OTHA_CGMB_ONOB_RK2
     983             :         use pm_kind, only: RKC => RK2
     984             : #define DISPATCH_ENABLED 1
     985             : #include "pm_matrixMulTri@routines.inc.F90"
     986             : #undef  DISPATCH_ENABLED
     987             :     end procedure
     988             : #endif
     989             : 
     990             : #if RK1_ENABLED
     991         100 :     module procedure trmv_ASS_CLUA_OTHA_CGMB_ONOB_RK1
     992             :         use pm_kind, only: RKC => RK1
     993             : #define DISPATCH_ENABLED 1
     994             : #include "pm_matrixMulTri@routines.inc.F90"
     995             : #undef  DISPATCH_ENABLED
     996             :     end procedure
     997             : #endif
     998             : 
     999             : #undef RK_ENABLED
    1000             : 
    1001             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1002             : 
    1003             : #undef OTHA_ENABLED
    1004             : 
    1005             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1006             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1007             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1008             : 
    1009             : #undef CLUA_ENABLED
    1010             : 
    1011             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1012             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1013             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1014             : 
    1015             : #define CUUA_ENABLED 1
    1016             : 
    1017             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1018             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1019             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1020             : 
    1021             : #define ONOA_ENABLED 1
    1022             : 
    1023             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1024             : 
    1025             : #define CK_ENABLED 1
    1026             : 
    1027             : #if CK5_ENABLED
    1028             :     module procedure trmv_ASS_CUUA_ONOA_CGMB_ONOB_CK5
    1029             :         use pm_kind, only: CKC => CK5
    1030             : #include "pm_matrixMulTri@routines.inc.F90"
    1031             :     end procedure
    1032             : #endif
    1033             : 
    1034             : #if CK4_ENABLED
    1035         100 :     module procedure trmv_ASS_CUUA_ONOA_CGMB_ONOB_CK4
    1036             :         use pm_kind, only: CKC => CK4
    1037             : #include "pm_matrixMulTri@routines.inc.F90"
    1038             :     end procedure
    1039             : #endif
    1040             : 
    1041             : #if CK3_ENABLED
    1042         100 :     module procedure trmv_ASS_CUUA_ONOA_CGMB_ONOB_CK3
    1043             :         use pm_kind, only: CKC => CK3
    1044             : #include "pm_matrixMulTri@routines.inc.F90"
    1045             :     end procedure
    1046             : #endif
    1047             : 
    1048             : #if CK2_ENABLED
    1049         100 :     module procedure trmv_ASS_CUUA_ONOA_CGMB_ONOB_CK2
    1050             :         use pm_kind, only: CKC => CK2
    1051             : #define DISPATCH_ENABLED 1
    1052             : #include "pm_matrixMulTri@routines.inc.F90"
    1053             : #undef  DISPATCH_ENABLED
    1054             :     end procedure
    1055             : #endif
    1056             : 
    1057             : #if CK1_ENABLED
    1058         100 :     module procedure trmv_ASS_CUUA_ONOA_CGMB_ONOB_CK1
    1059             :         use pm_kind, only: CKC => CK1
    1060             : #define DISPATCH_ENABLED 1
    1061             : #include "pm_matrixMulTri@routines.inc.F90"
    1062             : #undef  DISPATCH_ENABLED
    1063             :     end procedure
    1064             : #endif
    1065             : 
    1066             : #undef CK_ENABLED
    1067             : 
    1068             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1069             : 
    1070             : #define RK_ENABLED 1
    1071             : 
    1072             : #if RK5_ENABLED
    1073             :     module procedure trmv_ASS_CUUA_ONOA_CGMB_ONOB_RK5
    1074             :         use pm_kind, only: RKC => RK5
    1075             : #include "pm_matrixMulTri@routines.inc.F90"
    1076             :     end procedure
    1077             : #endif
    1078             : 
    1079             : #if RK4_ENABLED
    1080         100 :     module procedure trmv_ASS_CUUA_ONOA_CGMB_ONOB_RK4
    1081             :         use pm_kind, only: RKC => RK4
    1082             : #include "pm_matrixMulTri@routines.inc.F90"
    1083             :     end procedure
    1084             : #endif
    1085             : 
    1086             : #if RK3_ENABLED
    1087         100 :     module procedure trmv_ASS_CUUA_ONOA_CGMB_ONOB_RK3
    1088             :         use pm_kind, only: RKC => RK3
    1089             : #include "pm_matrixMulTri@routines.inc.F90"
    1090             :     end procedure
    1091             : #endif
    1092             : 
    1093             : #if RK2_ENABLED
    1094         100 :     module procedure trmv_ASS_CUUA_ONOA_CGMB_ONOB_RK2
    1095             :         use pm_kind, only: RKC => RK2
    1096             : #define DISPATCH_ENABLED 1
    1097             : #include "pm_matrixMulTri@routines.inc.F90"
    1098             : #undef  DISPATCH_ENABLED
    1099             :     end procedure
    1100             : #endif
    1101             : 
    1102             : #if RK1_ENABLED
    1103         100 :     module procedure trmv_ASS_CUUA_ONOA_CGMB_ONOB_RK1
    1104             :         use pm_kind, only: RKC => RK1
    1105             : #define DISPATCH_ENABLED 1
    1106             : #include "pm_matrixMulTri@routines.inc.F90"
    1107             : #undef  DISPATCH_ENABLED
    1108             :     end procedure
    1109             : #endif
    1110             : 
    1111             : #undef RK_ENABLED
    1112             : 
    1113             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1114             : 
    1115             : #undef ONOA_ENABLED
    1116             : 
    1117             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1118             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1119             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1120             : 
    1121             : #define OTSA_ENABLED 1
    1122             : 
    1123             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1124             : 
    1125             : #define CK_ENABLED 1
    1126             : 
    1127             : #if CK5_ENABLED
    1128             :     module procedure trmv_ASS_CUUA_OTSA_CGMB_ONOB_CK5
    1129             :         use pm_kind, only: CKC => CK5
    1130             : #include "pm_matrixMulTri@routines.inc.F90"
    1131             :     end procedure
    1132             : #endif
    1133             : 
    1134             : #if CK4_ENABLED
    1135         100 :     module procedure trmv_ASS_CUUA_OTSA_CGMB_ONOB_CK4
    1136             :         use pm_kind, only: CKC => CK4
    1137             : #include "pm_matrixMulTri@routines.inc.F90"
    1138             :     end procedure
    1139             : #endif
    1140             : 
    1141             : #if CK3_ENABLED
    1142         100 :     module procedure trmv_ASS_CUUA_OTSA_CGMB_ONOB_CK3
    1143             :         use pm_kind, only: CKC => CK3
    1144             : #include "pm_matrixMulTri@routines.inc.F90"
    1145             :     end procedure
    1146             : #endif
    1147             : 
    1148             : #if CK2_ENABLED
    1149         100 :     module procedure trmv_ASS_CUUA_OTSA_CGMB_ONOB_CK2
    1150             :         use pm_kind, only: CKC => CK2
    1151             : #define DISPATCH_ENABLED 1
    1152             : #include "pm_matrixMulTri@routines.inc.F90"
    1153             : #undef  DISPATCH_ENABLED
    1154             :     end procedure
    1155             : #endif
    1156             : 
    1157             : #if CK1_ENABLED
    1158         100 :     module procedure trmv_ASS_CUUA_OTSA_CGMB_ONOB_CK1
    1159             :         use pm_kind, only: CKC => CK1
    1160             : #define DISPATCH_ENABLED 1
    1161             : #include "pm_matrixMulTri@routines.inc.F90"
    1162             : #undef  DISPATCH_ENABLED
    1163             :     end procedure
    1164             : #endif
    1165             : 
    1166             : #undef CK_ENABLED
    1167             : 
    1168             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1169             : 
    1170             : #define RK_ENABLED 1
    1171             : 
    1172             : #if RK5_ENABLED
    1173             :     module procedure trmv_ASS_CUUA_OTSA_CGMB_ONOB_RK5
    1174             :         use pm_kind, only: RKC => RK5
    1175             : #include "pm_matrixMulTri@routines.inc.F90"
    1176             :     end procedure
    1177             : #endif
    1178             : 
    1179             : #if RK4_ENABLED
    1180         100 :     module procedure trmv_ASS_CUUA_OTSA_CGMB_ONOB_RK4
    1181             :         use pm_kind, only: RKC => RK4
    1182             : #include "pm_matrixMulTri@routines.inc.F90"
    1183             :     end procedure
    1184             : #endif
    1185             : 
    1186             : #if RK3_ENABLED
    1187         100 :     module procedure trmv_ASS_CUUA_OTSA_CGMB_ONOB_RK3
    1188             :         use pm_kind, only: RKC => RK3
    1189             : #include "pm_matrixMulTri@routines.inc.F90"
    1190             :     end procedure
    1191             : #endif
    1192             : 
    1193             : #if RK2_ENABLED
    1194         100 :     module procedure trmv_ASS_CUUA_OTSA_CGMB_ONOB_RK2
    1195             :         use pm_kind, only: RKC => RK2
    1196             : #define DISPATCH_ENABLED 1
    1197             : #include "pm_matrixMulTri@routines.inc.F90"
    1198             : #undef  DISPATCH_ENABLED
    1199             :     end procedure
    1200             : #endif
    1201             : 
    1202             : #if RK1_ENABLED
    1203         100 :     module procedure trmv_ASS_CUUA_OTSA_CGMB_ONOB_RK1
    1204             :         use pm_kind, only: RKC => RK1
    1205             : #define DISPATCH_ENABLED 1
    1206             : #include "pm_matrixMulTri@routines.inc.F90"
    1207             : #undef  DISPATCH_ENABLED
    1208             :     end procedure
    1209             : #endif
    1210             : 
    1211             : #undef RK_ENABLED
    1212             : 
    1213             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1214             : 
    1215             : #undef OTSA_ENABLED
    1216             : 
    1217             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1218             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1219             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1220             : 
    1221             : #define OTHA_ENABLED 1
    1222             : 
    1223             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1224             : 
    1225             : #define CK_ENABLED 1
    1226             : 
    1227             : #if CK5_ENABLED
    1228             :     module procedure trmv_ASS_CUUA_OTHA_CGMB_ONOB_CK5
    1229             :         use pm_kind, only: CKC => CK5
    1230             : #include "pm_matrixMulTri@routines.inc.F90"
    1231             :     end procedure
    1232             : #endif
    1233             : 
    1234             : #if CK4_ENABLED
    1235         100 :     module procedure trmv_ASS_CUUA_OTHA_CGMB_ONOB_CK4
    1236             :         use pm_kind, only: CKC => CK4
    1237             : #include "pm_matrixMulTri@routines.inc.F90"
    1238             :     end procedure
    1239             : #endif
    1240             : 
    1241             : #if CK3_ENABLED
    1242         100 :     module procedure trmv_ASS_CUUA_OTHA_CGMB_ONOB_CK3
    1243             :         use pm_kind, only: CKC => CK3
    1244             : #include "pm_matrixMulTri@routines.inc.F90"
    1245             :     end procedure
    1246             : #endif
    1247             : 
    1248             : #if CK2_ENABLED
    1249         100 :     module procedure trmv_ASS_CUUA_OTHA_CGMB_ONOB_CK2
    1250             :         use pm_kind, only: CKC => CK2
    1251             : #define DISPATCH_ENABLED 1
    1252             : #include "pm_matrixMulTri@routines.inc.F90"
    1253             : #undef  DISPATCH_ENABLED
    1254             :     end procedure
    1255             : #endif
    1256             : 
    1257             : #if CK1_ENABLED
    1258         101 :     module procedure trmv_ASS_CUUA_OTHA_CGMB_ONOB_CK1
    1259             :         use pm_kind, only: CKC => CK1
    1260             : #define DISPATCH_ENABLED 1
    1261             : #include "pm_matrixMulTri@routines.inc.F90"
    1262             : #undef  DISPATCH_ENABLED
    1263             :     end procedure
    1264             : #endif
    1265             : 
    1266             : #undef CK_ENABLED
    1267             : 
    1268             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1269             : 
    1270             : #define RK_ENABLED 1
    1271             : 
    1272             : #if RK5_ENABLED
    1273             :     module procedure trmv_ASS_CUUA_OTHA_CGMB_ONOB_RK5
    1274             :         use pm_kind, only: RKC => RK5
    1275             : #include "pm_matrixMulTri@routines.inc.F90"
    1276             :     end procedure
    1277             : #endif
    1278             : 
    1279             : #if RK4_ENABLED
    1280         100 :     module procedure trmv_ASS_CUUA_OTHA_CGMB_ONOB_RK4
    1281             :         use pm_kind, only: RKC => RK4
    1282             : #include "pm_matrixMulTri@routines.inc.F90"
    1283             :     end procedure
    1284             : #endif
    1285             : 
    1286             : #if RK3_ENABLED
    1287         100 :     module procedure trmv_ASS_CUUA_OTHA_CGMB_ONOB_RK3
    1288             :         use pm_kind, only: RKC => RK3
    1289             : #include "pm_matrixMulTri@routines.inc.F90"
    1290             :     end procedure
    1291             : #endif
    1292             : 
    1293             : #if RK2_ENABLED
    1294         100 :     module procedure trmv_ASS_CUUA_OTHA_CGMB_ONOB_RK2
    1295             :         use pm_kind, only: RKC => RK2
    1296             : #define DISPATCH_ENABLED 1
    1297             : #include "pm_matrixMulTri@routines.inc.F90"
    1298             : #undef  DISPATCH_ENABLED
    1299             :     end procedure
    1300             : #endif
    1301             : 
    1302             : #if RK1_ENABLED
    1303         100 :     module procedure trmv_ASS_CUUA_OTHA_CGMB_ONOB_RK1
    1304             :         use pm_kind, only: RKC => RK1
    1305             : #define DISPATCH_ENABLED 1
    1306             : #include "pm_matrixMulTri@routines.inc.F90"
    1307             : #undef  DISPATCH_ENABLED
    1308             :     end procedure
    1309             : #endif
    1310             : 
    1311             : #undef RK_ENABLED
    1312             : 
    1313             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1314             : 
    1315             : #undef OTHA_ENABLED
    1316             : 
    1317             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1318             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1319             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1320             : 
    1321             : #undef CUUA_ENABLED
    1322             : 
    1323             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1324             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1325             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1326             : 
    1327             : #undef ONOB_ENABLED
    1328             : 
    1329             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1330             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1331             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1332             : 
    1333             : #undef CGMB_ENABLED
    1334             : 
    1335             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1336             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1337             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1338             : 
    1339             : #undef ASS_ENABLED
    1340             : 
    1341             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1342             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1343             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1344             : 
    1345             : #define EXP_ENABLED 1
    1346             : 
    1347             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1348             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1349             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1350             : 
    1351             : #define CGMB_ENABLED 1
    1352             : 
    1353             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1354             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1355             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1356             : 
    1357             : #define ONOB_ENABLED 1
    1358             : 
    1359             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1360             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1361             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1362             : 
    1363             : #define CLDA_ENABLED 1
    1364             : 
    1365             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1366             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1367             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1368             : 
    1369             : #define ONOA_ENABLED 1
    1370             : 
    1371             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1372             : 
    1373             : #define CK_ENABLED 1
    1374             : 
    1375             : #if CK5_ENABLED
    1376             :     module procedure trmv_EXP_CLDA_ONOA_CGMB_ONOB_CK5
    1377             :         use pm_kind, only: CKC => CK5
    1378             : #include "pm_matrixMulTri@routines.inc.F90"
    1379             :     end procedure
    1380             : #endif
    1381             : 
    1382             : #if CK4_ENABLED
    1383         100 :     module procedure trmv_EXP_CLDA_ONOA_CGMB_ONOB_CK4
    1384             :         use pm_kind, only: CKC => CK4
    1385             : #include "pm_matrixMulTri@routines.inc.F90"
    1386             :     end procedure
    1387             : #endif
    1388             : 
    1389             : #if CK3_ENABLED
    1390         100 :     module procedure trmv_EXP_CLDA_ONOA_CGMB_ONOB_CK3
    1391             :         use pm_kind, only: CKC => CK3
    1392             : #include "pm_matrixMulTri@routines.inc.F90"
    1393             :     end procedure
    1394             : #endif
    1395             : 
    1396             : #if CK2_ENABLED
    1397         100 :     module procedure trmv_EXP_CLDA_ONOA_CGMB_ONOB_CK2
    1398             :         use pm_kind, only: CKC => CK2
    1399             : #define DISPATCH_ENABLED 1
    1400             : #include "pm_matrixMulTri@routines.inc.F90"
    1401             : #undef  DISPATCH_ENABLED
    1402             :     end procedure
    1403             : #endif
    1404             : 
    1405             : #if CK1_ENABLED
    1406         100 :     module procedure trmv_EXP_CLDA_ONOA_CGMB_ONOB_CK1
    1407             :         use pm_kind, only: CKC => CK1
    1408             : #define DISPATCH_ENABLED 1
    1409             : #include "pm_matrixMulTri@routines.inc.F90"
    1410             : #undef  DISPATCH_ENABLED
    1411             :     end procedure
    1412             : #endif
    1413             : 
    1414             : #undef CK_ENABLED
    1415             : 
    1416             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1417             : 
    1418             : #define RK_ENABLED 1
    1419             : 
    1420             : #if RK5_ENABLED
    1421             :     module procedure trmv_EXP_CLDA_ONOA_CGMB_ONOB_RK5
    1422             :         use pm_kind, only: RKC => RK5
    1423             : #include "pm_matrixMulTri@routines.inc.F90"
    1424             :     end procedure
    1425             : #endif
    1426             : 
    1427             : #if RK4_ENABLED
    1428         100 :     module procedure trmv_EXP_CLDA_ONOA_CGMB_ONOB_RK4
    1429             :         use pm_kind, only: RKC => RK4
    1430             : #include "pm_matrixMulTri@routines.inc.F90"
    1431             :     end procedure
    1432             : #endif
    1433             : 
    1434             : #if RK3_ENABLED
    1435         100 :     module procedure trmv_EXP_CLDA_ONOA_CGMB_ONOB_RK3
    1436             :         use pm_kind, only: RKC => RK3
    1437             : #include "pm_matrixMulTri@routines.inc.F90"
    1438             :     end procedure
    1439             : #endif
    1440             : 
    1441             : #if RK2_ENABLED
    1442         100 :     module procedure trmv_EXP_CLDA_ONOA_CGMB_ONOB_RK2
    1443             :         use pm_kind, only: RKC => RK2
    1444             : #define DISPATCH_ENABLED 1
    1445             : #include "pm_matrixMulTri@routines.inc.F90"
    1446             : #undef  DISPATCH_ENABLED
    1447             :     end procedure
    1448             : #endif
    1449             : 
    1450             : #if RK1_ENABLED
    1451         100 :     module procedure trmv_EXP_CLDA_ONOA_CGMB_ONOB_RK1
    1452             :         use pm_kind, only: RKC => RK1
    1453             : #define DISPATCH_ENABLED 1
    1454             : #include "pm_matrixMulTri@routines.inc.F90"
    1455             : #undef  DISPATCH_ENABLED
    1456             :     end procedure
    1457             : #endif
    1458             : 
    1459             : #undef RK_ENABLED
    1460             : 
    1461             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1462             : 
    1463             : #undef ONOA_ENABLED
    1464             : 
    1465             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1466             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1467             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1468             : 
    1469             : #define OTSA_ENABLED 1
    1470             : 
    1471             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1472             : 
    1473             : #define CK_ENABLED 1
    1474             : 
    1475             : #if CK5_ENABLED
    1476             :     module procedure trmv_EXP_CLDA_OTSA_CGMB_ONOB_CK5
    1477             :         use pm_kind, only: CKC => CK5
    1478             : #include "pm_matrixMulTri@routines.inc.F90"
    1479             :     end procedure
    1480             : #endif
    1481             : 
    1482             : #if CK4_ENABLED
    1483         100 :     module procedure trmv_EXP_CLDA_OTSA_CGMB_ONOB_CK4
    1484             :         use pm_kind, only: CKC => CK4
    1485             : #include "pm_matrixMulTri@routines.inc.F90"
    1486             :     end procedure
    1487             : #endif
    1488             : 
    1489             : #if CK3_ENABLED
    1490         100 :     module procedure trmv_EXP_CLDA_OTSA_CGMB_ONOB_CK3
    1491             :         use pm_kind, only: CKC => CK3
    1492             : #include "pm_matrixMulTri@routines.inc.F90"
    1493             :     end procedure
    1494             : #endif
    1495             : 
    1496             : #if CK2_ENABLED
    1497         100 :     module procedure trmv_EXP_CLDA_OTSA_CGMB_ONOB_CK2
    1498             :         use pm_kind, only: CKC => CK2
    1499             : #define DISPATCH_ENABLED 1
    1500             : #include "pm_matrixMulTri@routines.inc.F90"
    1501             : #undef  DISPATCH_ENABLED
    1502             :     end procedure
    1503             : #endif
    1504             : 
    1505             : #if CK1_ENABLED
    1506         100 :     module procedure trmv_EXP_CLDA_OTSA_CGMB_ONOB_CK1
    1507             :         use pm_kind, only: CKC => CK1
    1508             : #define DISPATCH_ENABLED 1
    1509             : #include "pm_matrixMulTri@routines.inc.F90"
    1510             : #undef  DISPATCH_ENABLED
    1511             :     end procedure
    1512             : #endif
    1513             : 
    1514             : #undef CK_ENABLED
    1515             : 
    1516             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1517             : 
    1518             : #define RK_ENABLED 1
    1519             : 
    1520             : #if RK5_ENABLED
    1521             :     module procedure trmv_EXP_CLDA_OTSA_CGMB_ONOB_RK5
    1522             :         use pm_kind, only: RKC => RK5
    1523             : #include "pm_matrixMulTri@routines.inc.F90"
    1524             :     end procedure
    1525             : #endif
    1526             : 
    1527             : #if RK4_ENABLED
    1528         100 :     module procedure trmv_EXP_CLDA_OTSA_CGMB_ONOB_RK4
    1529             :         use pm_kind, only: RKC => RK4
    1530             : #include "pm_matrixMulTri@routines.inc.F90"
    1531             :     end procedure
    1532             : #endif
    1533             : 
    1534             : #if RK3_ENABLED
    1535         100 :     module procedure trmv_EXP_CLDA_OTSA_CGMB_ONOB_RK3
    1536             :         use pm_kind, only: RKC => RK3
    1537             : #include "pm_matrixMulTri@routines.inc.F90"
    1538             :     end procedure
    1539             : #endif
    1540             : 
    1541             : #if RK2_ENABLED
    1542         100 :     module procedure trmv_EXP_CLDA_OTSA_CGMB_ONOB_RK2
    1543             :         use pm_kind, only: RKC => RK2
    1544             : #define DISPATCH_ENABLED 1
    1545             : #include "pm_matrixMulTri@routines.inc.F90"
    1546             : #undef  DISPATCH_ENABLED
    1547             :     end procedure
    1548             : #endif
    1549             : 
    1550             : #if RK1_ENABLED
    1551         100 :     module procedure trmv_EXP_CLDA_OTSA_CGMB_ONOB_RK1
    1552             :         use pm_kind, only: RKC => RK1
    1553             : #define DISPATCH_ENABLED 1
    1554             : #include "pm_matrixMulTri@routines.inc.F90"
    1555             : #undef  DISPATCH_ENABLED
    1556             :     end procedure
    1557             : #endif
    1558             : 
    1559             : #undef RK_ENABLED
    1560             : 
    1561             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1562             : 
    1563             : #undef OTSA_ENABLED
    1564             : 
    1565             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1566             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1567             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1568             : 
    1569             : #define OTHA_ENABLED 1
    1570             : 
    1571             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1572             : 
    1573             : #define CK_ENABLED 1
    1574             : 
    1575             : #if CK5_ENABLED
    1576             :     module procedure trmv_EXP_CLDA_OTHA_CGMB_ONOB_CK5
    1577             :         use pm_kind, only: CKC => CK5
    1578             : #include "pm_matrixMulTri@routines.inc.F90"
    1579             :     end procedure
    1580             : #endif
    1581             : 
    1582             : #if CK4_ENABLED
    1583         100 :     module procedure trmv_EXP_CLDA_OTHA_CGMB_ONOB_CK4
    1584             :         use pm_kind, only: CKC => CK4
    1585             : #include "pm_matrixMulTri@routines.inc.F90"
    1586             :     end procedure
    1587             : #endif
    1588             : 
    1589             : #if CK3_ENABLED
    1590         100 :     module procedure trmv_EXP_CLDA_OTHA_CGMB_ONOB_CK3
    1591             :         use pm_kind, only: CKC => CK3
    1592             : #include "pm_matrixMulTri@routines.inc.F90"
    1593             :     end procedure
    1594             : #endif
    1595             : 
    1596             : #if CK2_ENABLED
    1597         100 :     module procedure trmv_EXP_CLDA_OTHA_CGMB_ONOB_CK2
    1598             :         use pm_kind, only: CKC => CK2
    1599             : #define DISPATCH_ENABLED 1
    1600             : #include "pm_matrixMulTri@routines.inc.F90"
    1601             : #undef  DISPATCH_ENABLED
    1602             :     end procedure
    1603             : #endif
    1604             : 
    1605             : #if CK1_ENABLED
    1606         100 :     module procedure trmv_EXP_CLDA_OTHA_CGMB_ONOB_CK1
    1607             :         use pm_kind, only: CKC => CK1
    1608             : #define DISPATCH_ENABLED 1
    1609             : #include "pm_matrixMulTri@routines.inc.F90"
    1610             : #undef  DISPATCH_ENABLED
    1611             :     end procedure
    1612             : #endif
    1613             : 
    1614             : #undef CK_ENABLED
    1615             : 
    1616             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1617             : 
    1618             : #define RK_ENABLED 1
    1619             : 
    1620             : #if RK5_ENABLED
    1621             :     module procedure trmv_EXP_CLDA_OTHA_CGMB_ONOB_RK5
    1622             :         use pm_kind, only: RKC => RK5
    1623             : #include "pm_matrixMulTri@routines.inc.F90"
    1624             :     end procedure
    1625             : #endif
    1626             : 
    1627             : #if RK4_ENABLED
    1628         100 :     module procedure trmv_EXP_CLDA_OTHA_CGMB_ONOB_RK4
    1629             :         use pm_kind, only: RKC => RK4
    1630             : #include "pm_matrixMulTri@routines.inc.F90"
    1631             :     end procedure
    1632             : #endif
    1633             : 
    1634             : #if RK3_ENABLED
    1635         100 :     module procedure trmv_EXP_CLDA_OTHA_CGMB_ONOB_RK3
    1636             :         use pm_kind, only: RKC => RK3
    1637             : #include "pm_matrixMulTri@routines.inc.F90"
    1638             :     end procedure
    1639             : #endif
    1640             : 
    1641             : #if RK2_ENABLED
    1642         100 :     module procedure trmv_EXP_CLDA_OTHA_CGMB_ONOB_RK2
    1643             :         use pm_kind, only: RKC => RK2
    1644             : #define DISPATCH_ENABLED 1
    1645             : #include "pm_matrixMulTri@routines.inc.F90"
    1646             : #undef  DISPATCH_ENABLED
    1647             :     end procedure
    1648             : #endif
    1649             : 
    1650             : #if RK1_ENABLED
    1651         100 :     module procedure trmv_EXP_CLDA_OTHA_CGMB_ONOB_RK1
    1652             :         use pm_kind, only: RKC => RK1
    1653             : #define DISPATCH_ENABLED 1
    1654             : #include "pm_matrixMulTri@routines.inc.F90"
    1655             : #undef  DISPATCH_ENABLED
    1656             :     end procedure
    1657             : #endif
    1658             : 
    1659             : #undef RK_ENABLED
    1660             : 
    1661             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1662             : 
    1663             : #undef OTHA_ENABLED
    1664             : 
    1665             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1666             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1667             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1668             : 
    1669             : #undef CLDA_ENABLED
    1670             : 
    1671             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1672             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1673             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1674             : 
    1675             : #define CUDA_ENABLED 1
    1676             : 
    1677             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1678             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1679             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1680             : 
    1681             : #define ONOA_ENABLED 1
    1682             : 
    1683             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1684             : 
    1685             : #define CK_ENABLED 1
    1686             : 
    1687             : #if CK5_ENABLED
    1688             :     module procedure trmv_EXP_CUDA_ONOA_CGMB_ONOB_CK5
    1689             :         use pm_kind, only: CKC => CK5
    1690             : #include "pm_matrixMulTri@routines.inc.F90"
    1691             :     end procedure
    1692             : #endif
    1693             : 
    1694             : #if CK4_ENABLED
    1695         100 :     module procedure trmv_EXP_CUDA_ONOA_CGMB_ONOB_CK4
    1696             :         use pm_kind, only: CKC => CK4
    1697             : #include "pm_matrixMulTri@routines.inc.F90"
    1698             :     end procedure
    1699             : #endif
    1700             : 
    1701             : #if CK3_ENABLED
    1702         100 :     module procedure trmv_EXP_CUDA_ONOA_CGMB_ONOB_CK3
    1703             :         use pm_kind, only: CKC => CK3
    1704             : #include "pm_matrixMulTri@routines.inc.F90"
    1705             :     end procedure
    1706             : #endif
    1707             : 
    1708             : #if CK2_ENABLED
    1709         100 :     module procedure trmv_EXP_CUDA_ONOA_CGMB_ONOB_CK2
    1710             :         use pm_kind, only: CKC => CK2
    1711             : #define DISPATCH_ENABLED 1
    1712             : #include "pm_matrixMulTri@routines.inc.F90"
    1713             : #undef  DISPATCH_ENABLED
    1714             :     end procedure
    1715             : #endif
    1716             : 
    1717             : #if CK1_ENABLED
    1718         100 :     module procedure trmv_EXP_CUDA_ONOA_CGMB_ONOB_CK1
    1719             :         use pm_kind, only: CKC => CK1
    1720             : #define DISPATCH_ENABLED 1
    1721             : #include "pm_matrixMulTri@routines.inc.F90"
    1722             : #undef  DISPATCH_ENABLED
    1723             :     end procedure
    1724             : #endif
    1725             : 
    1726             : #undef CK_ENABLED
    1727             : 
    1728             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1729             : 
    1730             : #define RK_ENABLED 1
    1731             : 
    1732             : #if RK5_ENABLED
    1733             :     module procedure trmv_EXP_CUDA_ONOA_CGMB_ONOB_RK5
    1734             :         use pm_kind, only: RKC => RK5
    1735             : #include "pm_matrixMulTri@routines.inc.F90"
    1736             :     end procedure
    1737             : #endif
    1738             : 
    1739             : #if RK4_ENABLED
    1740         100 :     module procedure trmv_EXP_CUDA_ONOA_CGMB_ONOB_RK4
    1741             :         use pm_kind, only: RKC => RK4
    1742             : #include "pm_matrixMulTri@routines.inc.F90"
    1743             :     end procedure
    1744             : #endif
    1745             : 
    1746             : #if RK3_ENABLED
    1747         100 :     module procedure trmv_EXP_CUDA_ONOA_CGMB_ONOB_RK3
    1748             :         use pm_kind, only: RKC => RK3
    1749             : #include "pm_matrixMulTri@routines.inc.F90"
    1750             :     end procedure
    1751             : #endif
    1752             : 
    1753             : #if RK2_ENABLED
    1754         100 :     module procedure trmv_EXP_CUDA_ONOA_CGMB_ONOB_RK2
    1755             :         use pm_kind, only: RKC => RK2
    1756             : #define DISPATCH_ENABLED 1
    1757             : #include "pm_matrixMulTri@routines.inc.F90"
    1758             : #undef  DISPATCH_ENABLED
    1759             :     end procedure
    1760             : #endif
    1761             : 
    1762             : #if RK1_ENABLED
    1763         100 :     module procedure trmv_EXP_CUDA_ONOA_CGMB_ONOB_RK1
    1764             :         use pm_kind, only: RKC => RK1
    1765             : #define DISPATCH_ENABLED 1
    1766             : #include "pm_matrixMulTri@routines.inc.F90"
    1767             : #undef  DISPATCH_ENABLED
    1768             :     end procedure
    1769             : #endif
    1770             : 
    1771             : #undef RK_ENABLED
    1772             : 
    1773             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1774             : 
    1775             : #undef ONOA_ENABLED
    1776             : 
    1777             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1778             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1779             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1780             : 
    1781             : #define OTSA_ENABLED 1
    1782             : 
    1783             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1784             : 
    1785             : #define CK_ENABLED 1
    1786             : 
    1787             : #if CK5_ENABLED
    1788             :     module procedure trmv_EXP_CUDA_OTSA_CGMB_ONOB_CK5
    1789             :         use pm_kind, only: CKC => CK5
    1790             : #include "pm_matrixMulTri@routines.inc.F90"
    1791             :     end procedure
    1792             : #endif
    1793             : 
    1794             : #if CK4_ENABLED
    1795         100 :     module procedure trmv_EXP_CUDA_OTSA_CGMB_ONOB_CK4
    1796             :         use pm_kind, only: CKC => CK4
    1797             : #include "pm_matrixMulTri@routines.inc.F90"
    1798             :     end procedure
    1799             : #endif
    1800             : 
    1801             : #if CK3_ENABLED
    1802         100 :     module procedure trmv_EXP_CUDA_OTSA_CGMB_ONOB_CK3
    1803             :         use pm_kind, only: CKC => CK3
    1804             : #include "pm_matrixMulTri@routines.inc.F90"
    1805             :     end procedure
    1806             : #endif
    1807             : 
    1808             : #if CK2_ENABLED
    1809         100 :     module procedure trmv_EXP_CUDA_OTSA_CGMB_ONOB_CK2
    1810             :         use pm_kind, only: CKC => CK2
    1811             : #define DISPATCH_ENABLED 1
    1812             : #include "pm_matrixMulTri@routines.inc.F90"
    1813             : #undef  DISPATCH_ENABLED
    1814             :     end procedure
    1815             : #endif
    1816             : 
    1817             : #if CK1_ENABLED
    1818         100 :     module procedure trmv_EXP_CUDA_OTSA_CGMB_ONOB_CK1
    1819             :         use pm_kind, only: CKC => CK1
    1820             : #define DISPATCH_ENABLED 1
    1821             : #include "pm_matrixMulTri@routines.inc.F90"
    1822             : #undef  DISPATCH_ENABLED
    1823             :     end procedure
    1824             : #endif
    1825             : 
    1826             : #undef CK_ENABLED
    1827             : 
    1828             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1829             : 
    1830             : #define RK_ENABLED 1
    1831             : 
    1832             : #if RK5_ENABLED
    1833             :     module procedure trmv_EXP_CUDA_OTSA_CGMB_ONOB_RK5
    1834             :         use pm_kind, only: RKC => RK5
    1835             : #include "pm_matrixMulTri@routines.inc.F90"
    1836             :     end procedure
    1837             : #endif
    1838             : 
    1839             : #if RK4_ENABLED
    1840         100 :     module procedure trmv_EXP_CUDA_OTSA_CGMB_ONOB_RK4
    1841             :         use pm_kind, only: RKC => RK4
    1842             : #include "pm_matrixMulTri@routines.inc.F90"
    1843             :     end procedure
    1844             : #endif
    1845             : 
    1846             : #if RK3_ENABLED
    1847         100 :     module procedure trmv_EXP_CUDA_OTSA_CGMB_ONOB_RK3
    1848             :         use pm_kind, only: RKC => RK3
    1849             : #include "pm_matrixMulTri@routines.inc.F90"
    1850             :     end procedure
    1851             : #endif
    1852             : 
    1853             : #if RK2_ENABLED
    1854         100 :     module procedure trmv_EXP_CUDA_OTSA_CGMB_ONOB_RK2
    1855             :         use pm_kind, only: RKC => RK2
    1856             : #define DISPATCH_ENABLED 1
    1857             : #include "pm_matrixMulTri@routines.inc.F90"
    1858             : #undef  DISPATCH_ENABLED
    1859             :     end procedure
    1860             : #endif
    1861             : 
    1862             : #if RK1_ENABLED
    1863         101 :     module procedure trmv_EXP_CUDA_OTSA_CGMB_ONOB_RK1
    1864             :         use pm_kind, only: RKC => RK1
    1865             : #define DISPATCH_ENABLED 1
    1866             : #include "pm_matrixMulTri@routines.inc.F90"
    1867             : #undef  DISPATCH_ENABLED
    1868             :     end procedure
    1869             : #endif
    1870             : 
    1871             : #undef RK_ENABLED
    1872             : 
    1873             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1874             : 
    1875             : #undef OTSA_ENABLED
    1876             : 
    1877             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1878             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1879             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1880             : 
    1881             : #define OTHA_ENABLED 1
    1882             : 
    1883             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1884             : 
    1885             : #define CK_ENABLED 1
    1886             : 
    1887             : #if CK5_ENABLED
    1888             :     module procedure trmv_EXP_CUDA_OTHA_CGMB_ONOB_CK5
    1889             :         use pm_kind, only: CKC => CK5
    1890             : #include "pm_matrixMulTri@routines.inc.F90"
    1891             :     end procedure
    1892             : #endif
    1893             : 
    1894             : #if CK4_ENABLED
    1895         100 :     module procedure trmv_EXP_CUDA_OTHA_CGMB_ONOB_CK4
    1896             :         use pm_kind, only: CKC => CK4
    1897             : #include "pm_matrixMulTri@routines.inc.F90"
    1898             :     end procedure
    1899             : #endif
    1900             : 
    1901             : #if CK3_ENABLED
    1902         100 :     module procedure trmv_EXP_CUDA_OTHA_CGMB_ONOB_CK3
    1903             :         use pm_kind, only: CKC => CK3
    1904             : #include "pm_matrixMulTri@routines.inc.F90"
    1905             :     end procedure
    1906             : #endif
    1907             : 
    1908             : #if CK2_ENABLED
    1909         100 :     module procedure trmv_EXP_CUDA_OTHA_CGMB_ONOB_CK2
    1910             :         use pm_kind, only: CKC => CK2
    1911             : #define DISPATCH_ENABLED 1
    1912             : #include "pm_matrixMulTri@routines.inc.F90"
    1913             : #undef  DISPATCH_ENABLED
    1914             :     end procedure
    1915             : #endif
    1916             : 
    1917             : #if CK1_ENABLED
    1918         100 :     module procedure trmv_EXP_CUDA_OTHA_CGMB_ONOB_CK1
    1919             :         use pm_kind, only: CKC => CK1
    1920             : #define DISPATCH_ENABLED 1
    1921             : #include "pm_matrixMulTri@routines.inc.F90"
    1922             : #undef  DISPATCH_ENABLED
    1923             :     end procedure
    1924             : #endif
    1925             : 
    1926             : #undef CK_ENABLED
    1927             : 
    1928             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1929             : 
    1930             : #define RK_ENABLED 1
    1931             : 
    1932             : #if RK5_ENABLED
    1933             :     module procedure trmv_EXP_CUDA_OTHA_CGMB_ONOB_RK5
    1934             :         use pm_kind, only: RKC => RK5
    1935             : #include "pm_matrixMulTri@routines.inc.F90"
    1936             :     end procedure
    1937             : #endif
    1938             : 
    1939             : #if RK4_ENABLED
    1940         100 :     module procedure trmv_EXP_CUDA_OTHA_CGMB_ONOB_RK4
    1941             :         use pm_kind, only: RKC => RK4
    1942             : #include "pm_matrixMulTri@routines.inc.F90"
    1943             :     end procedure
    1944             : #endif
    1945             : 
    1946             : #if RK3_ENABLED
    1947         100 :     module procedure trmv_EXP_CUDA_OTHA_CGMB_ONOB_RK3
    1948             :         use pm_kind, only: RKC => RK3
    1949             : #include "pm_matrixMulTri@routines.inc.F90"
    1950             :     end procedure
    1951             : #endif
    1952             : 
    1953             : #if RK2_ENABLED
    1954         100 :     module procedure trmv_EXP_CUDA_OTHA_CGMB_ONOB_RK2
    1955             :         use pm_kind, only: RKC => RK2
    1956             : #define DISPATCH_ENABLED 1
    1957             : #include "pm_matrixMulTri@routines.inc.F90"
    1958             : #undef  DISPATCH_ENABLED
    1959             :     end procedure
    1960             : #endif
    1961             : 
    1962             : #if RK1_ENABLED
    1963         100 :     module procedure trmv_EXP_CUDA_OTHA_CGMB_ONOB_RK1
    1964             :         use pm_kind, only: RKC => RK1
    1965             : #define DISPATCH_ENABLED 1
    1966             : #include "pm_matrixMulTri@routines.inc.F90"
    1967             : #undef  DISPATCH_ENABLED
    1968             :     end procedure
    1969             : #endif
    1970             : 
    1971             : #undef RK_ENABLED
    1972             : 
    1973             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1974             : 
    1975             : #undef OTHA_ENABLED
    1976             : 
    1977             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1978             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1979             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1980             : 
    1981             : #undef CUDA_ENABLED
    1982             : 
    1983             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1984             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1985             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1986             : 
    1987             : #define CLUA_ENABLED 1
    1988             : 
    1989             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1990             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1991             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1992             : 
    1993             : #define ONOA_ENABLED 1
    1994             : 
    1995             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1996             : 
    1997             : #define CK_ENABLED 1
    1998             : 
    1999             : #if CK5_ENABLED
    2000             :     module procedure trmv_EXP_CLUA_ONOA_CGMB_ONOB_CK5
    2001             :         use pm_kind, only: CKC => CK5
    2002             : #include "pm_matrixMulTri@routines.inc.F90"
    2003             :     end procedure
    2004             : #endif
    2005             : 
    2006             : #if CK4_ENABLED
    2007         100 :     module procedure trmv_EXP_CLUA_ONOA_CGMB_ONOB_CK4
    2008             :         use pm_kind, only: CKC => CK4
    2009             : #include "pm_matrixMulTri@routines.inc.F90"
    2010             :     end procedure
    2011             : #endif
    2012             : 
    2013             : #if CK3_ENABLED
    2014         100 :     module procedure trmv_EXP_CLUA_ONOA_CGMB_ONOB_CK3
    2015             :         use pm_kind, only: CKC => CK3
    2016             : #include "pm_matrixMulTri@routines.inc.F90"
    2017             :     end procedure
    2018             : #endif
    2019             : 
    2020             : #if CK2_ENABLED
    2021         100 :     module procedure trmv_EXP_CLUA_ONOA_CGMB_ONOB_CK2
    2022             :         use pm_kind, only: CKC => CK2
    2023             : #define DISPATCH_ENABLED 1
    2024             : #include "pm_matrixMulTri@routines.inc.F90"
    2025             : #undef  DISPATCH_ENABLED
    2026             :     end procedure
    2027             : #endif
    2028             : 
    2029             : #if CK1_ENABLED
    2030         100 :     module procedure trmv_EXP_CLUA_ONOA_CGMB_ONOB_CK1
    2031             :         use pm_kind, only: CKC => CK1
    2032             : #define DISPATCH_ENABLED 1
    2033             : #include "pm_matrixMulTri@routines.inc.F90"
    2034             : #undef  DISPATCH_ENABLED
    2035             :     end procedure
    2036             : #endif
    2037             : 
    2038             : #undef CK_ENABLED
    2039             : 
    2040             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2041             : 
    2042             : #define RK_ENABLED 1
    2043             : 
    2044             : #if RK5_ENABLED
    2045             :     module procedure trmv_EXP_CLUA_ONOA_CGMB_ONOB_RK5
    2046             :         use pm_kind, only: RKC => RK5
    2047             : #include "pm_matrixMulTri@routines.inc.F90"
    2048             :     end procedure
    2049             : #endif
    2050             : 
    2051             : #if RK4_ENABLED
    2052         100 :     module procedure trmv_EXP_CLUA_ONOA_CGMB_ONOB_RK4
    2053             :         use pm_kind, only: RKC => RK4
    2054             : #include "pm_matrixMulTri@routines.inc.F90"
    2055             :     end procedure
    2056             : #endif
    2057             : 
    2058             : #if RK3_ENABLED
    2059         100 :     module procedure trmv_EXP_CLUA_ONOA_CGMB_ONOB_RK3
    2060             :         use pm_kind, only: RKC => RK3
    2061             : #include "pm_matrixMulTri@routines.inc.F90"
    2062             :     end procedure
    2063             : #endif
    2064             : 
    2065             : #if RK2_ENABLED
    2066         100 :     module procedure trmv_EXP_CLUA_ONOA_CGMB_ONOB_RK2
    2067             :         use pm_kind, only: RKC => RK2
    2068             : #define DISPATCH_ENABLED 1
    2069             : #include "pm_matrixMulTri@routines.inc.F90"
    2070             : #undef  DISPATCH_ENABLED
    2071             :     end procedure
    2072             : #endif
    2073             : 
    2074             : #if RK1_ENABLED
    2075         101 :     module procedure trmv_EXP_CLUA_ONOA_CGMB_ONOB_RK1
    2076             :         use pm_kind, only: RKC => RK1
    2077             : #define DISPATCH_ENABLED 1
    2078             : #include "pm_matrixMulTri@routines.inc.F90"
    2079             : #undef  DISPATCH_ENABLED
    2080             :     end procedure
    2081             : #endif
    2082             : 
    2083             : #undef RK_ENABLED
    2084             : 
    2085             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2086             : 
    2087             : #undef ONOA_ENABLED
    2088             : 
    2089             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2090             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2091             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2092             : 
    2093             : #define OTSA_ENABLED 1
    2094             : 
    2095             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2096             : 
    2097             : #define CK_ENABLED 1
    2098             : 
    2099             : #if CK5_ENABLED
    2100             :     module procedure trmv_EXP_CLUA_OTSA_CGMB_ONOB_CK5
    2101             :         use pm_kind, only: CKC => CK5
    2102             : #include "pm_matrixMulTri@routines.inc.F90"
    2103             :     end procedure
    2104             : #endif
    2105             : 
    2106             : #if CK4_ENABLED
    2107         100 :     module procedure trmv_EXP_CLUA_OTSA_CGMB_ONOB_CK4
    2108             :         use pm_kind, only: CKC => CK4
    2109             : #include "pm_matrixMulTri@routines.inc.F90"
    2110             :     end procedure
    2111             : #endif
    2112             : 
    2113             : #if CK3_ENABLED
    2114         100 :     module procedure trmv_EXP_CLUA_OTSA_CGMB_ONOB_CK3
    2115             :         use pm_kind, only: CKC => CK3
    2116             : #include "pm_matrixMulTri@routines.inc.F90"
    2117             :     end procedure
    2118             : #endif
    2119             : 
    2120             : #if CK2_ENABLED
    2121         100 :     module procedure trmv_EXP_CLUA_OTSA_CGMB_ONOB_CK2
    2122             :         use pm_kind, only: CKC => CK2
    2123             : #define DISPATCH_ENABLED 1
    2124             : #include "pm_matrixMulTri@routines.inc.F90"
    2125             : #undef  DISPATCH_ENABLED
    2126             :     end procedure
    2127             : #endif
    2128             : 
    2129             : #if CK1_ENABLED
    2130         100 :     module procedure trmv_EXP_CLUA_OTSA_CGMB_ONOB_CK1
    2131             :         use pm_kind, only: CKC => CK1
    2132             : #define DISPATCH_ENABLED 1
    2133             : #include "pm_matrixMulTri@routines.inc.F90"
    2134             : #undef  DISPATCH_ENABLED
    2135             :     end procedure
    2136             : #endif
    2137             : 
    2138             : #undef CK_ENABLED
    2139             : 
    2140             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2141             : 
    2142             : #define RK_ENABLED 1
    2143             : 
    2144             : #if RK5_ENABLED
    2145             :     module procedure trmv_EXP_CLUA_OTSA_CGMB_ONOB_RK5
    2146             :         use pm_kind, only: RKC => RK5
    2147             : #include "pm_matrixMulTri@routines.inc.F90"
    2148             :     end procedure
    2149             : #endif
    2150             : 
    2151             : #if RK4_ENABLED
    2152         100 :     module procedure trmv_EXP_CLUA_OTSA_CGMB_ONOB_RK4
    2153             :         use pm_kind, only: RKC => RK4
    2154             : #include "pm_matrixMulTri@routines.inc.F90"
    2155             :     end procedure
    2156             : #endif
    2157             : 
    2158             : #if RK3_ENABLED
    2159         100 :     module procedure trmv_EXP_CLUA_OTSA_CGMB_ONOB_RK3
    2160             :         use pm_kind, only: RKC => RK3
    2161             : #include "pm_matrixMulTri@routines.inc.F90"
    2162             :     end procedure
    2163             : #endif
    2164             : 
    2165             : #if RK2_ENABLED
    2166         100 :     module procedure trmv_EXP_CLUA_OTSA_CGMB_ONOB_RK2
    2167             :         use pm_kind, only: RKC => RK2
    2168             : #define DISPATCH_ENABLED 1
    2169             : #include "pm_matrixMulTri@routines.inc.F90"
    2170             : #undef  DISPATCH_ENABLED
    2171             :     end procedure
    2172             : #endif
    2173             : 
    2174             : #if RK1_ENABLED
    2175         100 :     module procedure trmv_EXP_CLUA_OTSA_CGMB_ONOB_RK1
    2176             :         use pm_kind, only: RKC => RK1
    2177             : #define DISPATCH_ENABLED 1
    2178             : #include "pm_matrixMulTri@routines.inc.F90"
    2179             : #undef  DISPATCH_ENABLED
    2180             :     end procedure
    2181             : #endif
    2182             : 
    2183             : #undef RK_ENABLED
    2184             : 
    2185             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2186             : 
    2187             : #undef OTSA_ENABLED
    2188             : 
    2189             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2190             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2191             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2192             : 
    2193             : #define OTHA_ENABLED 1
    2194             : 
    2195             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2196             : 
    2197             : #define CK_ENABLED 1
    2198             : 
    2199             : #if CK5_ENABLED
    2200             :     module procedure trmv_EXP_CLUA_OTHA_CGMB_ONOB_CK5
    2201             :         use pm_kind, only: CKC => CK5
    2202             : #include "pm_matrixMulTri@routines.inc.F90"
    2203             :     end procedure
    2204             : #endif
    2205             : 
    2206             : #if CK4_ENABLED
    2207         100 :     module procedure trmv_EXP_CLUA_OTHA_CGMB_ONOB_CK4
    2208             :         use pm_kind, only: CKC => CK4
    2209             : #include "pm_matrixMulTri@routines.inc.F90"
    2210             :     end procedure
    2211             : #endif
    2212             : 
    2213             : #if CK3_ENABLED
    2214         100 :     module procedure trmv_EXP_CLUA_OTHA_CGMB_ONOB_CK3
    2215             :         use pm_kind, only: CKC => CK3
    2216             : #include "pm_matrixMulTri@routines.inc.F90"
    2217             :     end procedure
    2218             : #endif
    2219             : 
    2220             : #if CK2_ENABLED
    2221         100 :     module procedure trmv_EXP_CLUA_OTHA_CGMB_ONOB_CK2
    2222             :         use pm_kind, only: CKC => CK2
    2223             : #define DISPATCH_ENABLED 1
    2224             : #include "pm_matrixMulTri@routines.inc.F90"
    2225             : #undef  DISPATCH_ENABLED
    2226             :     end procedure
    2227             : #endif
    2228             : 
    2229             : #if CK1_ENABLED
    2230         100 :     module procedure trmv_EXP_CLUA_OTHA_CGMB_ONOB_CK1
    2231             :         use pm_kind, only: CKC => CK1
    2232             : #define DISPATCH_ENABLED 1
    2233             : #include "pm_matrixMulTri@routines.inc.F90"
    2234             : #undef  DISPATCH_ENABLED
    2235             :     end procedure
    2236             : #endif
    2237             : 
    2238             : #undef CK_ENABLED
    2239             : 
    2240             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2241             : 
    2242             : #define RK_ENABLED 1
    2243             : 
    2244             : #if RK5_ENABLED
    2245             :     module procedure trmv_EXP_CLUA_OTHA_CGMB_ONOB_RK5
    2246             :         use pm_kind, only: RKC => RK5
    2247             : #include "pm_matrixMulTri@routines.inc.F90"
    2248             :     end procedure
    2249             : #endif
    2250             : 
    2251             : #if RK4_ENABLED
    2252         100 :     module procedure trmv_EXP_CLUA_OTHA_CGMB_ONOB_RK4
    2253             :         use pm_kind, only: RKC => RK4
    2254             : #include "pm_matrixMulTri@routines.inc.F90"
    2255             :     end procedure
    2256             : #endif
    2257             : 
    2258             : #if RK3_ENABLED
    2259         100 :     module procedure trmv_EXP_CLUA_OTHA_CGMB_ONOB_RK3
    2260             :         use pm_kind, only: RKC => RK3
    2261             : #include "pm_matrixMulTri@routines.inc.F90"
    2262             :     end procedure
    2263             : #endif
    2264             : 
    2265             : #if RK2_ENABLED
    2266         100 :     module procedure trmv_EXP_CLUA_OTHA_CGMB_ONOB_RK2
    2267             :         use pm_kind, only: RKC => RK2
    2268             : #define DISPATCH_ENABLED 1
    2269             : #include "pm_matrixMulTri@routines.inc.F90"
    2270             : #undef  DISPATCH_ENABLED
    2271             :     end procedure
    2272             : #endif
    2273             : 
    2274             : #if RK1_ENABLED
    2275         100 :     module procedure trmv_EXP_CLUA_OTHA_CGMB_ONOB_RK1
    2276             :         use pm_kind, only: RKC => RK1
    2277             : #define DISPATCH_ENABLED 1
    2278             : #include "pm_matrixMulTri@routines.inc.F90"
    2279             : #undef  DISPATCH_ENABLED
    2280             :     end procedure
    2281             : #endif
    2282             : 
    2283             : #undef RK_ENABLED
    2284             : 
    2285             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2286             : 
    2287             : #undef OTHA_ENABLED
    2288             : 
    2289             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2290             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2291             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2292             : 
    2293             : #undef CLUA_ENABLED
    2294             : 
    2295             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2296             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2297             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2298             : 
    2299             : #define CUUA_ENABLED 1
    2300             : 
    2301             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2302             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2303             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2304             : 
    2305             : #define ONOA_ENABLED 1
    2306             : 
    2307             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2308             : 
    2309             : #define CK_ENABLED 1
    2310             : 
    2311             : #if CK5_ENABLED
    2312             :     module procedure trmv_EXP_CUUA_ONOA_CGMB_ONOB_CK5
    2313             :         use pm_kind, only: CKC => CK5
    2314             : #include "pm_matrixMulTri@routines.inc.F90"
    2315             :     end procedure
    2316             : #endif
    2317             : 
    2318             : #if CK4_ENABLED
    2319         100 :     module procedure trmv_EXP_CUUA_ONOA_CGMB_ONOB_CK4
    2320             :         use pm_kind, only: CKC => CK4
    2321             : #include "pm_matrixMulTri@routines.inc.F90"
    2322             :     end procedure
    2323             : #endif
    2324             : 
    2325             : #if CK3_ENABLED
    2326         100 :     module procedure trmv_EXP_CUUA_ONOA_CGMB_ONOB_CK3
    2327             :         use pm_kind, only: CKC => CK3
    2328             : #include "pm_matrixMulTri@routines.inc.F90"
    2329             :     end procedure
    2330             : #endif
    2331             : 
    2332             : #if CK2_ENABLED
    2333         100 :     module procedure trmv_EXP_CUUA_ONOA_CGMB_ONOB_CK2
    2334             :         use pm_kind, only: CKC => CK2
    2335             : #define DISPATCH_ENABLED 1
    2336             : #include "pm_matrixMulTri@routines.inc.F90"
    2337             : #undef  DISPATCH_ENABLED
    2338             :     end procedure
    2339             : #endif
    2340             : 
    2341             : #if CK1_ENABLED
    2342         100 :     module procedure trmv_EXP_CUUA_ONOA_CGMB_ONOB_CK1
    2343             :         use pm_kind, only: CKC => CK1
    2344             : #define DISPATCH_ENABLED 1
    2345             : #include "pm_matrixMulTri@routines.inc.F90"
    2346             : #undef  DISPATCH_ENABLED
    2347             :     end procedure
    2348             : #endif
    2349             : 
    2350             : #undef CK_ENABLED
    2351             : 
    2352             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2353             : 
    2354             : #define RK_ENABLED 1
    2355             : 
    2356             : #if RK5_ENABLED
    2357             :     module procedure trmv_EXP_CUUA_ONOA_CGMB_ONOB_RK5
    2358             :         use pm_kind, only: RKC => RK5
    2359             : #include "pm_matrixMulTri@routines.inc.F90"
    2360             :     end procedure
    2361             : #endif
    2362             : 
    2363             : #if RK4_ENABLED
    2364         100 :     module procedure trmv_EXP_CUUA_ONOA_CGMB_ONOB_RK4
    2365             :         use pm_kind, only: RKC => RK4
    2366             : #include "pm_matrixMulTri@routines.inc.F90"
    2367             :     end procedure
    2368             : #endif
    2369             : 
    2370             : #if RK3_ENABLED
    2371         100 :     module procedure trmv_EXP_CUUA_ONOA_CGMB_ONOB_RK3
    2372             :         use pm_kind, only: RKC => RK3
    2373             : #include "pm_matrixMulTri@routines.inc.F90"
    2374             :     end procedure
    2375             : #endif
    2376             : 
    2377             : #if RK2_ENABLED
    2378         100 :     module procedure trmv_EXP_CUUA_ONOA_CGMB_ONOB_RK2
    2379             :         use pm_kind, only: RKC => RK2
    2380             : #define DISPATCH_ENABLED 1
    2381             : #include "pm_matrixMulTri@routines.inc.F90"
    2382             : #undef  DISPATCH_ENABLED
    2383             :     end procedure
    2384             : #endif
    2385             : 
    2386             : #if RK1_ENABLED
    2387         100 :     module procedure trmv_EXP_CUUA_ONOA_CGMB_ONOB_RK1
    2388             :         use pm_kind, only: RKC => RK1
    2389             : #define DISPATCH_ENABLED 1
    2390             : #include "pm_matrixMulTri@routines.inc.F90"
    2391             : #undef  DISPATCH_ENABLED
    2392             :     end procedure
    2393             : #endif
    2394             : 
    2395             : #undef RK_ENABLED
    2396             : 
    2397             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2398             : 
    2399             : #undef ONOA_ENABLED
    2400             : 
    2401             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2402             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2403             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2404             : 
    2405             : #define OTSA_ENABLED 1
    2406             : 
    2407             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2408             : 
    2409             : #define CK_ENABLED 1
    2410             : 
    2411             : #if CK5_ENABLED
    2412             :     module procedure trmv_EXP_CUUA_OTSA_CGMB_ONOB_CK5
    2413             :         use pm_kind, only: CKC => CK5
    2414             : #include "pm_matrixMulTri@routines.inc.F90"
    2415             :     end procedure
    2416             : #endif
    2417             : 
    2418             : #if CK4_ENABLED
    2419         100 :     module procedure trmv_EXP_CUUA_OTSA_CGMB_ONOB_CK4
    2420             :         use pm_kind, only: CKC => CK4
    2421             : #include "pm_matrixMulTri@routines.inc.F90"
    2422             :     end procedure
    2423             : #endif
    2424             : 
    2425             : #if CK3_ENABLED
    2426         100 :     module procedure trmv_EXP_CUUA_OTSA_CGMB_ONOB_CK3
    2427             :         use pm_kind, only: CKC => CK3
    2428             : #include "pm_matrixMulTri@routines.inc.F90"
    2429             :     end procedure
    2430             : #endif
    2431             : 
    2432             : #if CK2_ENABLED
    2433         100 :     module procedure trmv_EXP_CUUA_OTSA_CGMB_ONOB_CK2
    2434             :         use pm_kind, only: CKC => CK2
    2435             : #define DISPATCH_ENABLED 1
    2436             : #include "pm_matrixMulTri@routines.inc.F90"
    2437             : #undef  DISPATCH_ENABLED
    2438             :     end procedure
    2439             : #endif
    2440             : 
    2441             : #if CK1_ENABLED
    2442         100 :     module procedure trmv_EXP_CUUA_OTSA_CGMB_ONOB_CK1
    2443             :         use pm_kind, only: CKC => CK1
    2444             : #define DISPATCH_ENABLED 1
    2445             : #include "pm_matrixMulTri@routines.inc.F90"
    2446             : #undef  DISPATCH_ENABLED
    2447             :     end procedure
    2448             : #endif
    2449             : 
    2450             : #undef CK_ENABLED
    2451             : 
    2452             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2453             : 
    2454             : #define RK_ENABLED 1
    2455             : 
    2456             : #if RK5_ENABLED
    2457             :     module procedure trmv_EXP_CUUA_OTSA_CGMB_ONOB_RK5
    2458             :         use pm_kind, only: RKC => RK5
    2459             : #include "pm_matrixMulTri@routines.inc.F90"
    2460             :     end procedure
    2461             : #endif
    2462             : 
    2463             : #if RK4_ENABLED
    2464         100 :     module procedure trmv_EXP_CUUA_OTSA_CGMB_ONOB_RK4
    2465             :         use pm_kind, only: RKC => RK4
    2466             : #include "pm_matrixMulTri@routines.inc.F90"
    2467             :     end procedure
    2468             : #endif
    2469             : 
    2470             : #if RK3_ENABLED
    2471         100 :     module procedure trmv_EXP_CUUA_OTSA_CGMB_ONOB_RK3
    2472             :         use pm_kind, only: RKC => RK3
    2473             : #include "pm_matrixMulTri@routines.inc.F90"
    2474             :     end procedure
    2475             : #endif
    2476             : 
    2477             : #if RK2_ENABLED
    2478         100 :     module procedure trmv_EXP_CUUA_OTSA_CGMB_ONOB_RK2
    2479             :         use pm_kind, only: RKC => RK2
    2480             : #define DISPATCH_ENABLED 1
    2481             : #include "pm_matrixMulTri@routines.inc.F90"
    2482             : #undef  DISPATCH_ENABLED
    2483             :     end procedure
    2484             : #endif
    2485             : 
    2486             : #if RK1_ENABLED
    2487         100 :     module procedure trmv_EXP_CUUA_OTSA_CGMB_ONOB_RK1
    2488             :         use pm_kind, only: RKC => RK1
    2489             : #define DISPATCH_ENABLED 1
    2490             : #include "pm_matrixMulTri@routines.inc.F90"
    2491             : #undef  DISPATCH_ENABLED
    2492             :     end procedure
    2493             : #endif
    2494             : 
    2495             : #undef RK_ENABLED
    2496             : 
    2497             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2498             : 
    2499             : #undef OTSA_ENABLED
    2500             : 
    2501             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2502             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2503             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2504             : 
    2505             : #define OTHA_ENABLED 1
    2506             : 
    2507             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2508             : 
    2509             : #define CK_ENABLED 1
    2510             : 
    2511             : #if CK5_ENABLED
    2512             :     module procedure trmv_EXP_CUUA_OTHA_CGMB_ONOB_CK5
    2513             :         use pm_kind, only: CKC => CK5
    2514             : #include "pm_matrixMulTri@routines.inc.F90"
    2515             :     end procedure
    2516             : #endif
    2517             : 
    2518             : #if CK4_ENABLED
    2519         100 :     module procedure trmv_EXP_CUUA_OTHA_CGMB_ONOB_CK4
    2520             :         use pm_kind, only: CKC => CK4
    2521             : #include "pm_matrixMulTri@routines.inc.F90"
    2522             :     end procedure
    2523             : #endif
    2524             : 
    2525             : #if CK3_ENABLED
    2526         100 :     module procedure trmv_EXP_CUUA_OTHA_CGMB_ONOB_CK3
    2527             :         use pm_kind, only: CKC => CK3
    2528             : #include "pm_matrixMulTri@routines.inc.F90"
    2529             :     end procedure
    2530             : #endif
    2531             : 
    2532             : #if CK2_ENABLED
    2533         100 :     module procedure trmv_EXP_CUUA_OTHA_CGMB_ONOB_CK2
    2534             :         use pm_kind, only: CKC => CK2
    2535             : #define DISPATCH_ENABLED 1
    2536             : #include "pm_matrixMulTri@routines.inc.F90"
    2537             : #undef  DISPATCH_ENABLED
    2538             :     end procedure
    2539             : #endif
    2540             : 
    2541             : #if CK1_ENABLED
    2542         101 :     module procedure trmv_EXP_CUUA_OTHA_CGMB_ONOB_CK1
    2543             :         use pm_kind, only: CKC => CK1
    2544             : #define DISPATCH_ENABLED 1
    2545             : #include "pm_matrixMulTri@routines.inc.F90"
    2546             : #undef  DISPATCH_ENABLED
    2547             :     end procedure
    2548             : #endif
    2549             : 
    2550             : #undef CK_ENABLED
    2551             : 
    2552             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2553             : 
    2554             : #define RK_ENABLED 1
    2555             : 
    2556             : #if RK5_ENABLED
    2557             :     module procedure trmv_EXP_CUUA_OTHA_CGMB_ONOB_RK5
    2558             :         use pm_kind, only: RKC => RK5
    2559             : #include "pm_matrixMulTri@routines.inc.F90"
    2560             :     end procedure
    2561             : #endif
    2562             : 
    2563             : #if RK4_ENABLED
    2564         100 :     module procedure trmv_EXP_CUUA_OTHA_CGMB_ONOB_RK4
    2565             :         use pm_kind, only: RKC => RK4
    2566             : #include "pm_matrixMulTri@routines.inc.F90"
    2567             :     end procedure
    2568             : #endif
    2569             : 
    2570             : #if RK3_ENABLED
    2571         100 :     module procedure trmv_EXP_CUUA_OTHA_CGMB_ONOB_RK3
    2572             :         use pm_kind, only: RKC => RK3
    2573             : #include "pm_matrixMulTri@routines.inc.F90"
    2574             :     end procedure
    2575             : #endif
    2576             : 
    2577             : #if RK2_ENABLED
    2578         100 :     module procedure trmv_EXP_CUUA_OTHA_CGMB_ONOB_RK2
    2579             :         use pm_kind, only: RKC => RK2
    2580             : #define DISPATCH_ENABLED 1
    2581             : #include "pm_matrixMulTri@routines.inc.F90"
    2582             : #undef  DISPATCH_ENABLED
    2583             :     end procedure
    2584             : #endif
    2585             : 
    2586             : #if RK1_ENABLED
    2587         100 :     module procedure trmv_EXP_CUUA_OTHA_CGMB_ONOB_RK1
    2588             :         use pm_kind, only: RKC => RK1
    2589             : #define DISPATCH_ENABLED 1
    2590             : #include "pm_matrixMulTri@routines.inc.F90"
    2591             : #undef  DISPATCH_ENABLED
    2592             :     end procedure
    2593             : #endif
    2594             : 
    2595             : #undef RK_ENABLED
    2596             : 
    2597             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2598             : 
    2599             : #undef OTHA_ENABLED
    2600             : 
    2601             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2602             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2603             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2604             : 
    2605             : #undef CUUA_ENABLED
    2606             : 
    2607             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2608             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2609             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2610             : 
    2611             : #undef ONOB_ENABLED
    2612             : 
    2613             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2614             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2615             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2616             : 
    2617             : #undef CGMB_ENABLED
    2618             : 
    2619             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2620             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2621             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2622             : 
    2623             : #undef EXP_ENABLED
    2624             : 
    2625             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2626             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2627             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2628             : 
    2629             : #undef trmv_ENABLED
    2630             : 
    2631             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2632             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2633             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2634             : 
    2635             : #undef setMatMulTri_ENABLED
    2636             : 
    2637             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2638             : 
    2639             : #define setMatMulTri_ENABLED 1
    2640             : 
    2641             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2642             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2643             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2644             : 
    2645             : #define trsv_ENABLED 1
    2646             : 
    2647             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2648             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2649             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2650             : 
    2651             : #define ASS_ENABLED 1
    2652             : 
    2653             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2654             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2655             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2656             : 
    2657             : #define CGMB_ENABLED 1
    2658             : 
    2659             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2660             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2661             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2662             : 
    2663             : #define ONOB_ENABLED 1
    2664             : 
    2665             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2666             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2667             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2668             : 
    2669             : #define CLDA_ENABLED 1
    2670             : 
    2671             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2672             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2673             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2674             : 
    2675             : #define INVA_ENABLED 1
    2676             : 
    2677             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2678             : 
    2679             : #define CK_ENABLED 1
    2680             : 
    2681             : #if CK5_ENABLED
    2682             :     module procedure trsv_ASS_CLDA_INVA_CGMB_ONOB_CK5
    2683             :         use pm_kind, only: CKC => CK5
    2684             : #include "pm_matrixMulTri@routines.inc.F90"
    2685             :     end procedure
    2686             : #endif
    2687             : 
    2688             : #if CK4_ENABLED
    2689         100 :     module procedure trsv_ASS_CLDA_INVA_CGMB_ONOB_CK4
    2690             :         use pm_kind, only: CKC => CK4
    2691             : #include "pm_matrixMulTri@routines.inc.F90"
    2692             :     end procedure
    2693             : #endif
    2694             : 
    2695             : #if CK3_ENABLED
    2696         100 :     module procedure trsv_ASS_CLDA_INVA_CGMB_ONOB_CK3
    2697             :         use pm_kind, only: CKC => CK3
    2698             : #include "pm_matrixMulTri@routines.inc.F90"
    2699             :     end procedure
    2700             : #endif
    2701             : 
    2702             : #if CK2_ENABLED
    2703         100 :     module procedure trsv_ASS_CLDA_INVA_CGMB_ONOB_CK2
    2704             :         use pm_kind, only: CKC => CK2
    2705             : #define DISPATCH_ENABLED 1
    2706             : #include "pm_matrixMulTri@routines.inc.F90"
    2707             : #undef  DISPATCH_ENABLED
    2708             :     end procedure
    2709             : #endif
    2710             : 
    2711             : #if CK1_ENABLED
    2712         100 :     module procedure trsv_ASS_CLDA_INVA_CGMB_ONOB_CK1
    2713             :         use pm_kind, only: CKC => CK1
    2714             : #define DISPATCH_ENABLED 1
    2715             : #include "pm_matrixMulTri@routines.inc.F90"
    2716             : #undef  DISPATCH_ENABLED
    2717             :     end procedure
    2718             : #endif
    2719             : 
    2720             : #undef CK_ENABLED
    2721             : 
    2722             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2723             : 
    2724             : #define RK_ENABLED 1
    2725             : 
    2726             : #if RK5_ENABLED
    2727             :     module procedure trsv_ASS_CLDA_INVA_CGMB_ONOB_RK5
    2728             :         use pm_kind, only: RKC => RK5
    2729             : #include "pm_matrixMulTri@routines.inc.F90"
    2730             :     end procedure
    2731             : #endif
    2732             : 
    2733             : #if RK4_ENABLED
    2734         100 :     module procedure trsv_ASS_CLDA_INVA_CGMB_ONOB_RK4
    2735             :         use pm_kind, only: RKC => RK4
    2736             : #include "pm_matrixMulTri@routines.inc.F90"
    2737             :     end procedure
    2738             : #endif
    2739             : 
    2740             : #if RK3_ENABLED
    2741         100 :     module procedure trsv_ASS_CLDA_INVA_CGMB_ONOB_RK3
    2742             :         use pm_kind, only: RKC => RK3
    2743             : #include "pm_matrixMulTri@routines.inc.F90"
    2744             :     end procedure
    2745             : #endif
    2746             : 
    2747             : #if RK2_ENABLED
    2748         100 :     module procedure trsv_ASS_CLDA_INVA_CGMB_ONOB_RK2
    2749             :         use pm_kind, only: RKC => RK2
    2750             : #define DISPATCH_ENABLED 1
    2751             : #include "pm_matrixMulTri@routines.inc.F90"
    2752             : #undef  DISPATCH_ENABLED
    2753             :     end procedure
    2754             : #endif
    2755             : 
    2756             : #if RK1_ENABLED
    2757         100 :     module procedure trsv_ASS_CLDA_INVA_CGMB_ONOB_RK1
    2758             :         use pm_kind, only: RKC => RK1
    2759             : #define DISPATCH_ENABLED 1
    2760             : #include "pm_matrixMulTri@routines.inc.F90"
    2761             : #undef  DISPATCH_ENABLED
    2762             :     end procedure
    2763             : #endif
    2764             : 
    2765             : #undef RK_ENABLED
    2766             : 
    2767             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2768             : 
    2769             : #undef INVA_ENABLED
    2770             : 
    2771             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2772             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2773             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2774             : 
    2775             : #define OTOA_ENABLED 1
    2776             : 
    2777             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2778             : 
    2779             : #define CK_ENABLED 1
    2780             : 
    2781             : #if CK5_ENABLED
    2782             :     module procedure trsv_ASS_CLDA_OTOA_CGMB_ONOB_CK5
    2783             :         use pm_kind, only: CKC => CK5
    2784             : #include "pm_matrixMulTri@routines.inc.F90"
    2785             :     end procedure
    2786             : #endif
    2787             : 
    2788             : #if CK4_ENABLED
    2789         100 :     module procedure trsv_ASS_CLDA_OTOA_CGMB_ONOB_CK4
    2790             :         use pm_kind, only: CKC => CK4
    2791             : #include "pm_matrixMulTri@routines.inc.F90"
    2792             :     end procedure
    2793             : #endif
    2794             : 
    2795             : #if CK3_ENABLED
    2796         100 :     module procedure trsv_ASS_CLDA_OTOA_CGMB_ONOB_CK3
    2797             :         use pm_kind, only: CKC => CK3
    2798             : #include "pm_matrixMulTri@routines.inc.F90"
    2799             :     end procedure
    2800             : #endif
    2801             : 
    2802             : #if CK2_ENABLED
    2803         100 :     module procedure trsv_ASS_CLDA_OTOA_CGMB_ONOB_CK2
    2804             :         use pm_kind, only: CKC => CK2
    2805             : #define DISPATCH_ENABLED 1
    2806             : #include "pm_matrixMulTri@routines.inc.F90"
    2807             : #undef  DISPATCH_ENABLED
    2808             :     end procedure
    2809             : #endif
    2810             : 
    2811             : #if CK1_ENABLED
    2812         100 :     module procedure trsv_ASS_CLDA_OTOA_CGMB_ONOB_CK1
    2813             :         use pm_kind, only: CKC => CK1
    2814             : #define DISPATCH_ENABLED 1
    2815             : #include "pm_matrixMulTri@routines.inc.F90"
    2816             : #undef  DISPATCH_ENABLED
    2817             :     end procedure
    2818             : #endif
    2819             : 
    2820             : #undef CK_ENABLED
    2821             : 
    2822             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2823             : 
    2824             : #define RK_ENABLED 1
    2825             : 
    2826             : #if RK5_ENABLED
    2827             :     module procedure trsv_ASS_CLDA_OTOA_CGMB_ONOB_RK5
    2828             :         use pm_kind, only: RKC => RK5
    2829             : #include "pm_matrixMulTri@routines.inc.F90"
    2830             :     end procedure
    2831             : #endif
    2832             : 
    2833             : #if RK4_ENABLED
    2834         100 :     module procedure trsv_ASS_CLDA_OTOA_CGMB_ONOB_RK4
    2835             :         use pm_kind, only: RKC => RK4
    2836             : #include "pm_matrixMulTri@routines.inc.F90"
    2837             :     end procedure
    2838             : #endif
    2839             : 
    2840             : #if RK3_ENABLED
    2841         100 :     module procedure trsv_ASS_CLDA_OTOA_CGMB_ONOB_RK3
    2842             :         use pm_kind, only: RKC => RK3
    2843             : #include "pm_matrixMulTri@routines.inc.F90"
    2844             :     end procedure
    2845             : #endif
    2846             : 
    2847             : #if RK2_ENABLED
    2848         100 :     module procedure trsv_ASS_CLDA_OTOA_CGMB_ONOB_RK2
    2849             :         use pm_kind, only: RKC => RK2
    2850             : #define DISPATCH_ENABLED 1
    2851             : #include "pm_matrixMulTri@routines.inc.F90"
    2852             : #undef  DISPATCH_ENABLED
    2853             :     end procedure
    2854             : #endif
    2855             : 
    2856             : #if RK1_ENABLED
    2857         100 :     module procedure trsv_ASS_CLDA_OTOA_CGMB_ONOB_RK1
    2858             :         use pm_kind, only: RKC => RK1
    2859             : #define DISPATCH_ENABLED 1
    2860             : #include "pm_matrixMulTri@routines.inc.F90"
    2861             : #undef  DISPATCH_ENABLED
    2862             :     end procedure
    2863             : #endif
    2864             : 
    2865             : #undef RK_ENABLED
    2866             : 
    2867             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2868             : 
    2869             : #undef OTOA_ENABLED
    2870             : 
    2871             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2872             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2873             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2874             : 
    2875             : #define OTUA_ENABLED 1
    2876             : 
    2877             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2878             : 
    2879             : #define CK_ENABLED 1
    2880             : 
    2881             : #if CK5_ENABLED
    2882             :     module procedure trsv_ASS_CLDA_OTUA_CGMB_ONOB_CK5
    2883             :         use pm_kind, only: CKC => CK5
    2884             : #include "pm_matrixMulTri@routines.inc.F90"
    2885             :     end procedure
    2886             : #endif
    2887             : 
    2888             : #if CK4_ENABLED
    2889         100 :     module procedure trsv_ASS_CLDA_OTUA_CGMB_ONOB_CK4
    2890             :         use pm_kind, only: CKC => CK4
    2891             : #include "pm_matrixMulTri@routines.inc.F90"
    2892             :     end procedure
    2893             : #endif
    2894             : 
    2895             : #if CK3_ENABLED
    2896         100 :     module procedure trsv_ASS_CLDA_OTUA_CGMB_ONOB_CK3
    2897             :         use pm_kind, only: CKC => CK3
    2898             : #include "pm_matrixMulTri@routines.inc.F90"
    2899             :     end procedure
    2900             : #endif
    2901             : 
    2902             : #if CK2_ENABLED
    2903         100 :     module procedure trsv_ASS_CLDA_OTUA_CGMB_ONOB_CK2
    2904             :         use pm_kind, only: CKC => CK2
    2905             : #define DISPATCH_ENABLED 1
    2906             : #include "pm_matrixMulTri@routines.inc.F90"
    2907             : #undef  DISPATCH_ENABLED
    2908             :     end procedure
    2909             : #endif
    2910             : 
    2911             : #if CK1_ENABLED
    2912         100 :     module procedure trsv_ASS_CLDA_OTUA_CGMB_ONOB_CK1
    2913             :         use pm_kind, only: CKC => CK1
    2914             : #define DISPATCH_ENABLED 1
    2915             : #include "pm_matrixMulTri@routines.inc.F90"
    2916             : #undef  DISPATCH_ENABLED
    2917             :     end procedure
    2918             : #endif
    2919             : 
    2920             : #undef CK_ENABLED
    2921             : 
    2922             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2923             : 
    2924             : #define RK_ENABLED 1
    2925             : 
    2926             : #if RK5_ENABLED
    2927             :     module procedure trsv_ASS_CLDA_OTUA_CGMB_ONOB_RK5
    2928             :         use pm_kind, only: RKC => RK5
    2929             : #include "pm_matrixMulTri@routines.inc.F90"
    2930             :     end procedure
    2931             : #endif
    2932             : 
    2933             : #if RK4_ENABLED
    2934         100 :     module procedure trsv_ASS_CLDA_OTUA_CGMB_ONOB_RK4
    2935             :         use pm_kind, only: RKC => RK4
    2936             : #include "pm_matrixMulTri@routines.inc.F90"
    2937             :     end procedure
    2938             : #endif
    2939             : 
    2940             : #if RK3_ENABLED
    2941         100 :     module procedure trsv_ASS_CLDA_OTUA_CGMB_ONOB_RK3
    2942             :         use pm_kind, only: RKC => RK3
    2943             : #include "pm_matrixMulTri@routines.inc.F90"
    2944             :     end procedure
    2945             : #endif
    2946             : 
    2947             : #if RK2_ENABLED
    2948         100 :     module procedure trsv_ASS_CLDA_OTUA_CGMB_ONOB_RK2
    2949             :         use pm_kind, only: RKC => RK2
    2950             : #define DISPATCH_ENABLED 1
    2951             : #include "pm_matrixMulTri@routines.inc.F90"
    2952             : #undef  DISPATCH_ENABLED
    2953             :     end procedure
    2954             : #endif
    2955             : 
    2956             : #if RK1_ENABLED
    2957         100 :     module procedure trsv_ASS_CLDA_OTUA_CGMB_ONOB_RK1
    2958             :         use pm_kind, only: RKC => RK1
    2959             : #define DISPATCH_ENABLED 1
    2960             : #include "pm_matrixMulTri@routines.inc.F90"
    2961             : #undef  DISPATCH_ENABLED
    2962             :     end procedure
    2963             : #endif
    2964             : 
    2965             : #undef RK_ENABLED
    2966             : 
    2967             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2968             : 
    2969             : #undef OTUA_ENABLED
    2970             : 
    2971             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2972             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2973             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2974             : 
    2975             : #undef CLDA_ENABLED
    2976             : 
    2977             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2978             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2979             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2980             : 
    2981             : #define CUDA_ENABLED 1
    2982             : 
    2983             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2984             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2985             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2986             : 
    2987             : #define INVA_ENABLED 1
    2988             : 
    2989             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2990             : 
    2991             : #define CK_ENABLED 1
    2992             : 
    2993             : #if CK5_ENABLED
    2994             :     module procedure trsv_ASS_CUDA_INVA_CGMB_ONOB_CK5
    2995             :         use pm_kind, only: CKC => CK5
    2996             : #include "pm_matrixMulTri@routines.inc.F90"
    2997             :     end procedure
    2998             : #endif
    2999             : 
    3000             : #if CK4_ENABLED
    3001         100 :     module procedure trsv_ASS_CUDA_INVA_CGMB_ONOB_CK4
    3002             :         use pm_kind, only: CKC => CK4
    3003             : #include "pm_matrixMulTri@routines.inc.F90"
    3004             :     end procedure
    3005             : #endif
    3006             : 
    3007             : #if CK3_ENABLED
    3008         100 :     module procedure trsv_ASS_CUDA_INVA_CGMB_ONOB_CK3
    3009             :         use pm_kind, only: CKC => CK3
    3010             : #include "pm_matrixMulTri@routines.inc.F90"
    3011             :     end procedure
    3012             : #endif
    3013             : 
    3014             : #if CK2_ENABLED
    3015         100 :     module procedure trsv_ASS_CUDA_INVA_CGMB_ONOB_CK2
    3016             :         use pm_kind, only: CKC => CK2
    3017             : #define DISPATCH_ENABLED 1
    3018             : #include "pm_matrixMulTri@routines.inc.F90"
    3019             : #undef  DISPATCH_ENABLED
    3020             :     end procedure
    3021             : #endif
    3022             : 
    3023             : #if CK1_ENABLED
    3024         100 :     module procedure trsv_ASS_CUDA_INVA_CGMB_ONOB_CK1
    3025             :         use pm_kind, only: CKC => CK1
    3026             : #define DISPATCH_ENABLED 1
    3027             : #include "pm_matrixMulTri@routines.inc.F90"
    3028             : #undef  DISPATCH_ENABLED
    3029             :     end procedure
    3030             : #endif
    3031             : 
    3032             : #undef CK_ENABLED
    3033             : 
    3034             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3035             : 
    3036             : #define RK_ENABLED 1
    3037             : 
    3038             : #if RK5_ENABLED
    3039             :     module procedure trsv_ASS_CUDA_INVA_CGMB_ONOB_RK5
    3040             :         use pm_kind, only: RKC => RK5
    3041             : #include "pm_matrixMulTri@routines.inc.F90"
    3042             :     end procedure
    3043             : #endif
    3044             : 
    3045             : #if RK4_ENABLED
    3046         100 :     module procedure trsv_ASS_CUDA_INVA_CGMB_ONOB_RK4
    3047             :         use pm_kind, only: RKC => RK4
    3048             : #include "pm_matrixMulTri@routines.inc.F90"
    3049             :     end procedure
    3050             : #endif
    3051             : 
    3052             : #if RK3_ENABLED
    3053         100 :     module procedure trsv_ASS_CUDA_INVA_CGMB_ONOB_RK3
    3054             :         use pm_kind, only: RKC => RK3
    3055             : #include "pm_matrixMulTri@routines.inc.F90"
    3056             :     end procedure
    3057             : #endif
    3058             : 
    3059             : #if RK2_ENABLED
    3060         100 :     module procedure trsv_ASS_CUDA_INVA_CGMB_ONOB_RK2
    3061             :         use pm_kind, only: RKC => RK2
    3062             : #define DISPATCH_ENABLED 1
    3063             : #include "pm_matrixMulTri@routines.inc.F90"
    3064             : #undef  DISPATCH_ENABLED
    3065             :     end procedure
    3066             : #endif
    3067             : 
    3068             : #if RK1_ENABLED
    3069         100 :     module procedure trsv_ASS_CUDA_INVA_CGMB_ONOB_RK1
    3070             :         use pm_kind, only: RKC => RK1
    3071             : #define DISPATCH_ENABLED 1
    3072             : #include "pm_matrixMulTri@routines.inc.F90"
    3073             : #undef  DISPATCH_ENABLED
    3074             :     end procedure
    3075             : #endif
    3076             : 
    3077             : #undef RK_ENABLED
    3078             : 
    3079             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3080             : 
    3081             : #undef INVA_ENABLED
    3082             : 
    3083             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3084             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3085             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3086             : 
    3087             : #define OTOA_ENABLED 1
    3088             : 
    3089             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3090             : 
    3091             : #define CK_ENABLED 1
    3092             : 
    3093             : #if CK5_ENABLED
    3094             :     module procedure trsv_ASS_CUDA_OTOA_CGMB_ONOB_CK5
    3095             :         use pm_kind, only: CKC => CK5
    3096             : #include "pm_matrixMulTri@routines.inc.F90"
    3097             :     end procedure
    3098             : #endif
    3099             : 
    3100             : #if CK4_ENABLED
    3101         100 :     module procedure trsv_ASS_CUDA_OTOA_CGMB_ONOB_CK4
    3102             :         use pm_kind, only: CKC => CK4
    3103             : #include "pm_matrixMulTri@routines.inc.F90"
    3104             :     end procedure
    3105             : #endif
    3106             : 
    3107             : #if CK3_ENABLED
    3108         100 :     module procedure trsv_ASS_CUDA_OTOA_CGMB_ONOB_CK3
    3109             :         use pm_kind, only: CKC => CK3
    3110             : #include "pm_matrixMulTri@routines.inc.F90"
    3111             :     end procedure
    3112             : #endif
    3113             : 
    3114             : #if CK2_ENABLED
    3115         100 :     module procedure trsv_ASS_CUDA_OTOA_CGMB_ONOB_CK2
    3116             :         use pm_kind, only: CKC => CK2
    3117             : #define DISPATCH_ENABLED 1
    3118             : #include "pm_matrixMulTri@routines.inc.F90"
    3119             : #undef  DISPATCH_ENABLED
    3120             :     end procedure
    3121             : #endif
    3122             : 
    3123             : #if CK1_ENABLED
    3124         100 :     module procedure trsv_ASS_CUDA_OTOA_CGMB_ONOB_CK1
    3125             :         use pm_kind, only: CKC => CK1
    3126             : #define DISPATCH_ENABLED 1
    3127             : #include "pm_matrixMulTri@routines.inc.F90"
    3128             : #undef  DISPATCH_ENABLED
    3129             :     end procedure
    3130             : #endif
    3131             : 
    3132             : #undef CK_ENABLED
    3133             : 
    3134             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3135             : 
    3136             : #define RK_ENABLED 1
    3137             : 
    3138             : #if RK5_ENABLED
    3139             :     module procedure trsv_ASS_CUDA_OTOA_CGMB_ONOB_RK5
    3140             :         use pm_kind, only: RKC => RK5
    3141             : #include "pm_matrixMulTri@routines.inc.F90"
    3142             :     end procedure
    3143             : #endif
    3144             : 
    3145             : #if RK4_ENABLED
    3146         100 :     module procedure trsv_ASS_CUDA_OTOA_CGMB_ONOB_RK4
    3147             :         use pm_kind, only: RKC => RK4
    3148             : #include "pm_matrixMulTri@routines.inc.F90"
    3149             :     end procedure
    3150             : #endif
    3151             : 
    3152             : #if RK3_ENABLED
    3153         100 :     module procedure trsv_ASS_CUDA_OTOA_CGMB_ONOB_RK3
    3154             :         use pm_kind, only: RKC => RK3
    3155             : #include "pm_matrixMulTri@routines.inc.F90"
    3156             :     end procedure
    3157             : #endif
    3158             : 
    3159             : #if RK2_ENABLED
    3160         100 :     module procedure trsv_ASS_CUDA_OTOA_CGMB_ONOB_RK2
    3161             :         use pm_kind, only: RKC => RK2
    3162             : #define DISPATCH_ENABLED 1
    3163             : #include "pm_matrixMulTri@routines.inc.F90"
    3164             : #undef  DISPATCH_ENABLED
    3165             :     end procedure
    3166             : #endif
    3167             : 
    3168             : #if RK1_ENABLED
    3169         101 :     module procedure trsv_ASS_CUDA_OTOA_CGMB_ONOB_RK1
    3170             :         use pm_kind, only: RKC => RK1
    3171             : #define DISPATCH_ENABLED 1
    3172             : #include "pm_matrixMulTri@routines.inc.F90"
    3173             : #undef  DISPATCH_ENABLED
    3174             :     end procedure
    3175             : #endif
    3176             : 
    3177             : #undef RK_ENABLED
    3178             : 
    3179             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3180             : 
    3181             : #undef OTOA_ENABLED
    3182             : 
    3183             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3184             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3185             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3186             : 
    3187             : #define OTUA_ENABLED 1
    3188             : 
    3189             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3190             : 
    3191             : #define CK_ENABLED 1
    3192             : 
    3193             : #if CK5_ENABLED
    3194             :     module procedure trsv_ASS_CUDA_OTUA_CGMB_ONOB_CK5
    3195             :         use pm_kind, only: CKC => CK5
    3196             : #include "pm_matrixMulTri@routines.inc.F90"
    3197             :     end procedure
    3198             : #endif
    3199             : 
    3200             : #if CK4_ENABLED
    3201         100 :     module procedure trsv_ASS_CUDA_OTUA_CGMB_ONOB_CK4
    3202             :         use pm_kind, only: CKC => CK4
    3203             : #include "pm_matrixMulTri@routines.inc.F90"
    3204             :     end procedure
    3205             : #endif
    3206             : 
    3207             : #if CK3_ENABLED
    3208         100 :     module procedure trsv_ASS_CUDA_OTUA_CGMB_ONOB_CK3
    3209             :         use pm_kind, only: CKC => CK3
    3210             : #include "pm_matrixMulTri@routines.inc.F90"
    3211             :     end procedure
    3212             : #endif
    3213             : 
    3214             : #if CK2_ENABLED
    3215         100 :     module procedure trsv_ASS_CUDA_OTUA_CGMB_ONOB_CK2
    3216             :         use pm_kind, only: CKC => CK2
    3217             : #define DISPATCH_ENABLED 1
    3218             : #include "pm_matrixMulTri@routines.inc.F90"
    3219             : #undef  DISPATCH_ENABLED
    3220             :     end procedure
    3221             : #endif
    3222             : 
    3223             : #if CK1_ENABLED
    3224         100 :     module procedure trsv_ASS_CUDA_OTUA_CGMB_ONOB_CK1
    3225             :         use pm_kind, only: CKC => CK1
    3226             : #define DISPATCH_ENABLED 1
    3227             : #include "pm_matrixMulTri@routines.inc.F90"
    3228             : #undef  DISPATCH_ENABLED
    3229             :     end procedure
    3230             : #endif
    3231             : 
    3232             : #undef CK_ENABLED
    3233             : 
    3234             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3235             : 
    3236             : #define RK_ENABLED 1
    3237             : 
    3238             : #if RK5_ENABLED
    3239             :     module procedure trsv_ASS_CUDA_OTUA_CGMB_ONOB_RK5
    3240             :         use pm_kind, only: RKC => RK5
    3241             : #include "pm_matrixMulTri@routines.inc.F90"
    3242             :     end procedure
    3243             : #endif
    3244             : 
    3245             : #if RK4_ENABLED
    3246         100 :     module procedure trsv_ASS_CUDA_OTUA_CGMB_ONOB_RK4
    3247             :         use pm_kind, only: RKC => RK4
    3248             : #include "pm_matrixMulTri@routines.inc.F90"
    3249             :     end procedure
    3250             : #endif
    3251             : 
    3252             : #if RK3_ENABLED
    3253         100 :     module procedure trsv_ASS_CUDA_OTUA_CGMB_ONOB_RK3
    3254             :         use pm_kind, only: RKC => RK3
    3255             : #include "pm_matrixMulTri@routines.inc.F90"
    3256             :     end procedure
    3257             : #endif
    3258             : 
    3259             : #if RK2_ENABLED
    3260         100 :     module procedure trsv_ASS_CUDA_OTUA_CGMB_ONOB_RK2
    3261             :         use pm_kind, only: RKC => RK2
    3262             : #define DISPATCH_ENABLED 1
    3263             : #include "pm_matrixMulTri@routines.inc.F90"
    3264             : #undef  DISPATCH_ENABLED
    3265             :     end procedure
    3266             : #endif
    3267             : 
    3268             : #if RK1_ENABLED
    3269         100 :     module procedure trsv_ASS_CUDA_OTUA_CGMB_ONOB_RK1
    3270             :         use pm_kind, only: RKC => RK1
    3271             : #define DISPATCH_ENABLED 1
    3272             : #include "pm_matrixMulTri@routines.inc.F90"
    3273             : #undef  DISPATCH_ENABLED
    3274             :     end procedure
    3275             : #endif
    3276             : 
    3277             : #undef RK_ENABLED
    3278             : 
    3279             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3280             : 
    3281             : #undef OTUA_ENABLED
    3282             : 
    3283             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3284             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3285             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3286             : 
    3287             : #undef CUDA_ENABLED
    3288             : 
    3289             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3290             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3291             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3292             : 
    3293             : #define CLUA_ENABLED 1
    3294             : 
    3295             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3296             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3297             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3298             : 
    3299             : #define INVA_ENABLED 1
    3300             : 
    3301             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3302             : 
    3303             : #define CK_ENABLED 1
    3304             : 
    3305             : #if CK5_ENABLED
    3306             :     module procedure trsv_ASS_CLUA_INVA_CGMB_ONOB_CK5
    3307             :         use pm_kind, only: CKC => CK5
    3308             : #include "pm_matrixMulTri@routines.inc.F90"
    3309             :     end procedure
    3310             : #endif
    3311             : 
    3312             : #if CK4_ENABLED
    3313         100 :     module procedure trsv_ASS_CLUA_INVA_CGMB_ONOB_CK4
    3314             :         use pm_kind, only: CKC => CK4
    3315             : #include "pm_matrixMulTri@routines.inc.F90"
    3316             :     end procedure
    3317             : #endif
    3318             : 
    3319             : #if CK3_ENABLED
    3320         100 :     module procedure trsv_ASS_CLUA_INVA_CGMB_ONOB_CK3
    3321             :         use pm_kind, only: CKC => CK3
    3322             : #include "pm_matrixMulTri@routines.inc.F90"
    3323             :     end procedure
    3324             : #endif
    3325             : 
    3326             : #if CK2_ENABLED
    3327         100 :     module procedure trsv_ASS_CLUA_INVA_CGMB_ONOB_CK2
    3328             :         use pm_kind, only: CKC => CK2
    3329             : #define DISPATCH_ENABLED 1
    3330             : #include "pm_matrixMulTri@routines.inc.F90"
    3331             : #undef  DISPATCH_ENABLED
    3332             :     end procedure
    3333             : #endif
    3334             : 
    3335             : #if CK1_ENABLED
    3336         100 :     module procedure trsv_ASS_CLUA_INVA_CGMB_ONOB_CK1
    3337             :         use pm_kind, only: CKC => CK1
    3338             : #define DISPATCH_ENABLED 1
    3339             : #include "pm_matrixMulTri@routines.inc.F90"
    3340             : #undef  DISPATCH_ENABLED
    3341             :     end procedure
    3342             : #endif
    3343             : 
    3344             : #undef CK_ENABLED
    3345             : 
    3346             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3347             : 
    3348             : #define RK_ENABLED 1
    3349             : 
    3350             : #if RK5_ENABLED
    3351             :     module procedure trsv_ASS_CLUA_INVA_CGMB_ONOB_RK5
    3352             :         use pm_kind, only: RKC => RK5
    3353             : #include "pm_matrixMulTri@routines.inc.F90"
    3354             :     end procedure
    3355             : #endif
    3356             : 
    3357             : #if RK4_ENABLED
    3358         100 :     module procedure trsv_ASS_CLUA_INVA_CGMB_ONOB_RK4
    3359             :         use pm_kind, only: RKC => RK4
    3360             : #include "pm_matrixMulTri@routines.inc.F90"
    3361             :     end procedure
    3362             : #endif
    3363             : 
    3364             : #if RK3_ENABLED
    3365         100 :     module procedure trsv_ASS_CLUA_INVA_CGMB_ONOB_RK3
    3366             :         use pm_kind, only: RKC => RK3
    3367             : #include "pm_matrixMulTri@routines.inc.F90"
    3368             :     end procedure
    3369             : #endif
    3370             : 
    3371             : #if RK2_ENABLED
    3372         100 :     module procedure trsv_ASS_CLUA_INVA_CGMB_ONOB_RK2
    3373             :         use pm_kind, only: RKC => RK2
    3374             : #define DISPATCH_ENABLED 1
    3375             : #include "pm_matrixMulTri@routines.inc.F90"
    3376             : #undef  DISPATCH_ENABLED
    3377             :     end procedure
    3378             : #endif
    3379             : 
    3380             : #if RK1_ENABLED
    3381         101 :     module procedure trsv_ASS_CLUA_INVA_CGMB_ONOB_RK1
    3382             :         use pm_kind, only: RKC => RK1
    3383             : #define DISPATCH_ENABLED 1
    3384             : #include "pm_matrixMulTri@routines.inc.F90"
    3385             : #undef  DISPATCH_ENABLED
    3386             :     end procedure
    3387             : #endif
    3388             : 
    3389             : #undef RK_ENABLED
    3390             : 
    3391             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3392             : 
    3393             : #undef INVA_ENABLED
    3394             : 
    3395             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3396             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3397             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3398             : 
    3399             : #define OTOA_ENABLED 1
    3400             : 
    3401             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3402             : 
    3403             : #define CK_ENABLED 1
    3404             : 
    3405             : #if CK5_ENABLED
    3406             :     module procedure trsv_ASS_CLUA_OTOA_CGMB_ONOB_CK5
    3407             :         use pm_kind, only: CKC => CK5
    3408             : #include "pm_matrixMulTri@routines.inc.F90"
    3409             :     end procedure
    3410             : #endif
    3411             : 
    3412             : #if CK4_ENABLED
    3413         100 :     module procedure trsv_ASS_CLUA_OTOA_CGMB_ONOB_CK4
    3414             :         use pm_kind, only: CKC => CK4
    3415             : #include "pm_matrixMulTri@routines.inc.F90"
    3416             :     end procedure
    3417             : #endif
    3418             : 
    3419             : #if CK3_ENABLED
    3420         100 :     module procedure trsv_ASS_CLUA_OTOA_CGMB_ONOB_CK3
    3421             :         use pm_kind, only: CKC => CK3
    3422             : #include "pm_matrixMulTri@routines.inc.F90"
    3423             :     end procedure
    3424             : #endif
    3425             : 
    3426             : #if CK2_ENABLED
    3427         100 :     module procedure trsv_ASS_CLUA_OTOA_CGMB_ONOB_CK2
    3428             :         use pm_kind, only: CKC => CK2
    3429             : #define DISPATCH_ENABLED 1
    3430             : #include "pm_matrixMulTri@routines.inc.F90"
    3431             : #undef  DISPATCH_ENABLED
    3432             :     end procedure
    3433             : #endif
    3434             : 
    3435             : #if CK1_ENABLED
    3436         100 :     module procedure trsv_ASS_CLUA_OTOA_CGMB_ONOB_CK1
    3437             :         use pm_kind, only: CKC => CK1
    3438             : #define DISPATCH_ENABLED 1
    3439             : #include "pm_matrixMulTri@routines.inc.F90"
    3440             : #undef  DISPATCH_ENABLED
    3441             :     end procedure
    3442             : #endif
    3443             : 
    3444             : #undef CK_ENABLED
    3445             : 
    3446             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3447             : 
    3448             : #define RK_ENABLED 1
    3449             : 
    3450             : #if RK5_ENABLED
    3451             :     module procedure trsv_ASS_CLUA_OTOA_CGMB_ONOB_RK5
    3452             :         use pm_kind, only: RKC => RK5
    3453             : #include "pm_matrixMulTri@routines.inc.F90"
    3454             :     end procedure
    3455             : #endif
    3456             : 
    3457             : #if RK4_ENABLED
    3458         100 :     module procedure trsv_ASS_CLUA_OTOA_CGMB_ONOB_RK4
    3459             :         use pm_kind, only: RKC => RK4
    3460             : #include "pm_matrixMulTri@routines.inc.F90"
    3461             :     end procedure
    3462             : #endif
    3463             : 
    3464             : #if RK3_ENABLED
    3465         100 :     module procedure trsv_ASS_CLUA_OTOA_CGMB_ONOB_RK3
    3466             :         use pm_kind, only: RKC => RK3
    3467             : #include "pm_matrixMulTri@routines.inc.F90"
    3468             :     end procedure
    3469             : #endif
    3470             : 
    3471             : #if RK2_ENABLED
    3472         100 :     module procedure trsv_ASS_CLUA_OTOA_CGMB_ONOB_RK2
    3473             :         use pm_kind, only: RKC => RK2
    3474             : #define DISPATCH_ENABLED 1
    3475             : #include "pm_matrixMulTri@routines.inc.F90"
    3476             : #undef  DISPATCH_ENABLED
    3477             :     end procedure
    3478             : #endif
    3479             : 
    3480             : #if RK1_ENABLED
    3481         100 :     module procedure trsv_ASS_CLUA_OTOA_CGMB_ONOB_RK1
    3482             :         use pm_kind, only: RKC => RK1
    3483             : #define DISPATCH_ENABLED 1
    3484             : #include "pm_matrixMulTri@routines.inc.F90"
    3485             : #undef  DISPATCH_ENABLED
    3486             :     end procedure
    3487             : #endif
    3488             : 
    3489             : #undef RK_ENABLED
    3490             : 
    3491             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3492             : 
    3493             : #undef OTOA_ENABLED
    3494             : 
    3495             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3496             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3497             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3498             : 
    3499             : #define OTUA_ENABLED 1
    3500             : 
    3501             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3502             : 
    3503             : #define CK_ENABLED 1
    3504             : 
    3505             : #if CK5_ENABLED
    3506             :     module procedure trsv_ASS_CLUA_OTUA_CGMB_ONOB_CK5
    3507             :         use pm_kind, only: CKC => CK5
    3508             : #include "pm_matrixMulTri@routines.inc.F90"
    3509             :     end procedure
    3510             : #endif
    3511             : 
    3512             : #if CK4_ENABLED
    3513         100 :     module procedure trsv_ASS_CLUA_OTUA_CGMB_ONOB_CK4
    3514             :         use pm_kind, only: CKC => CK4
    3515             : #include "pm_matrixMulTri@routines.inc.F90"
    3516             :     end procedure
    3517             : #endif
    3518             : 
    3519             : #if CK3_ENABLED
    3520         100 :     module procedure trsv_ASS_CLUA_OTUA_CGMB_ONOB_CK3
    3521             :         use pm_kind, only: CKC => CK3
    3522             : #include "pm_matrixMulTri@routines.inc.F90"
    3523             :     end procedure
    3524             : #endif
    3525             : 
    3526             : #if CK2_ENABLED
    3527         100 :     module procedure trsv_ASS_CLUA_OTUA_CGMB_ONOB_CK2
    3528             :         use pm_kind, only: CKC => CK2
    3529             : #define DISPATCH_ENABLED 1
    3530             : #include "pm_matrixMulTri@routines.inc.F90"
    3531             : #undef  DISPATCH_ENABLED
    3532             :     end procedure
    3533             : #endif
    3534             : 
    3535             : #if CK1_ENABLED
    3536         100 :     module procedure trsv_ASS_CLUA_OTUA_CGMB_ONOB_CK1
    3537             :         use pm_kind, only: CKC => CK1
    3538             : #define DISPATCH_ENABLED 1
    3539             : #include "pm_matrixMulTri@routines.inc.F90"
    3540             : #undef  DISPATCH_ENABLED
    3541             :     end procedure
    3542             : #endif
    3543             : 
    3544             : #undef CK_ENABLED
    3545             : 
    3546             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3547             : 
    3548             : #define RK_ENABLED 1
    3549             : 
    3550             : #if RK5_ENABLED
    3551             :     module procedure trsv_ASS_CLUA_OTUA_CGMB_ONOB_RK5
    3552             :         use pm_kind, only: RKC => RK5
    3553             : #include "pm_matrixMulTri@routines.inc.F90"
    3554             :     end procedure
    3555             : #endif
    3556             : 
    3557             : #if RK4_ENABLED
    3558         100 :     module procedure trsv_ASS_CLUA_OTUA_CGMB_ONOB_RK4
    3559             :         use pm_kind, only: RKC => RK4
    3560             : #include "pm_matrixMulTri@routines.inc.F90"
    3561             :     end procedure
    3562             : #endif
    3563             : 
    3564             : #if RK3_ENABLED
    3565         100 :     module procedure trsv_ASS_CLUA_OTUA_CGMB_ONOB_RK3
    3566             :         use pm_kind, only: RKC => RK3
    3567             : #include "pm_matrixMulTri@routines.inc.F90"
    3568             :     end procedure
    3569             : #endif
    3570             : 
    3571             : #if RK2_ENABLED
    3572         100 :     module procedure trsv_ASS_CLUA_OTUA_CGMB_ONOB_RK2
    3573             :         use pm_kind, only: RKC => RK2
    3574             : #define DISPATCH_ENABLED 1
    3575             : #include "pm_matrixMulTri@routines.inc.F90"
    3576             : #undef  DISPATCH_ENABLED
    3577             :     end procedure
    3578             : #endif
    3579             : 
    3580             : #if RK1_ENABLED
    3581         100 :     module procedure trsv_ASS_CLUA_OTUA_CGMB_ONOB_RK1
    3582             :         use pm_kind, only: RKC => RK1
    3583             : #define DISPATCH_ENABLED 1
    3584             : #include "pm_matrixMulTri@routines.inc.F90"
    3585             : #undef  DISPATCH_ENABLED
    3586             :     end procedure
    3587             : #endif
    3588             : 
    3589             : #undef RK_ENABLED
    3590             : 
    3591             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3592             : 
    3593             : #undef OTUA_ENABLED
    3594             : 
    3595             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3596             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3597             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3598             : 
    3599             : #undef CLUA_ENABLED
    3600             : 
    3601             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3602             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3603             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3604             : 
    3605             : #define CUUA_ENABLED 1
    3606             : 
    3607             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3608             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3609             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3610             : 
    3611             : #define INVA_ENABLED 1
    3612             : 
    3613             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3614             : 
    3615             : #define CK_ENABLED 1
    3616             : 
    3617             : #if CK5_ENABLED
    3618             :     module procedure trsv_ASS_CUUA_INVA_CGMB_ONOB_CK5
    3619             :         use pm_kind, only: CKC => CK5
    3620             : #include "pm_matrixMulTri@routines.inc.F90"
    3621             :     end procedure
    3622             : #endif
    3623             : 
    3624             : #if CK4_ENABLED
    3625         100 :     module procedure trsv_ASS_CUUA_INVA_CGMB_ONOB_CK4
    3626             :         use pm_kind, only: CKC => CK4
    3627             : #include "pm_matrixMulTri@routines.inc.F90"
    3628             :     end procedure
    3629             : #endif
    3630             : 
    3631             : #if CK3_ENABLED
    3632         100 :     module procedure trsv_ASS_CUUA_INVA_CGMB_ONOB_CK3
    3633             :         use pm_kind, only: CKC => CK3
    3634             : #include "pm_matrixMulTri@routines.inc.F90"
    3635             :     end procedure
    3636             : #endif
    3637             : 
    3638             : #if CK2_ENABLED
    3639         100 :     module procedure trsv_ASS_CUUA_INVA_CGMB_ONOB_CK2
    3640             :         use pm_kind, only: CKC => CK2
    3641             : #define DISPATCH_ENABLED 1
    3642             : #include "pm_matrixMulTri@routines.inc.F90"
    3643             : #undef  DISPATCH_ENABLED
    3644             :     end procedure
    3645             : #endif
    3646             : 
    3647             : #if CK1_ENABLED
    3648         100 :     module procedure trsv_ASS_CUUA_INVA_CGMB_ONOB_CK1
    3649             :         use pm_kind, only: CKC => CK1
    3650             : #define DISPATCH_ENABLED 1
    3651             : #include "pm_matrixMulTri@routines.inc.F90"
    3652             : #undef  DISPATCH_ENABLED
    3653             :     end procedure
    3654             : #endif
    3655             : 
    3656             : #undef CK_ENABLED
    3657             : 
    3658             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3659             : 
    3660             : #define RK_ENABLED 1
    3661             : 
    3662             : #if RK5_ENABLED
    3663             :     module procedure trsv_ASS_CUUA_INVA_CGMB_ONOB_RK5
    3664             :         use pm_kind, only: RKC => RK5
    3665             : #include "pm_matrixMulTri@routines.inc.F90"
    3666             :     end procedure
    3667             : #endif
    3668             : 
    3669             : #if RK4_ENABLED
    3670         100 :     module procedure trsv_ASS_CUUA_INVA_CGMB_ONOB_RK4
    3671             :         use pm_kind, only: RKC => RK4
    3672             : #include "pm_matrixMulTri@routines.inc.F90"
    3673             :     end procedure
    3674             : #endif
    3675             : 
    3676             : #if RK3_ENABLED
    3677         100 :     module procedure trsv_ASS_CUUA_INVA_CGMB_ONOB_RK3
    3678             :         use pm_kind, only: RKC => RK3
    3679             : #include "pm_matrixMulTri@routines.inc.F90"
    3680             :     end procedure
    3681             : #endif
    3682             : 
    3683             : #if RK2_ENABLED
    3684         100 :     module procedure trsv_ASS_CUUA_INVA_CGMB_ONOB_RK2
    3685             :         use pm_kind, only: RKC => RK2
    3686             : #define DISPATCH_ENABLED 1
    3687             : #include "pm_matrixMulTri@routines.inc.F90"
    3688             : #undef  DISPATCH_ENABLED
    3689             :     end procedure
    3690             : #endif
    3691             : 
    3692             : #if RK1_ENABLED
    3693         100 :     module procedure trsv_ASS_CUUA_INVA_CGMB_ONOB_RK1
    3694             :         use pm_kind, only: RKC => RK1
    3695             : #define DISPATCH_ENABLED 1
    3696             : #include "pm_matrixMulTri@routines.inc.F90"
    3697             : #undef  DISPATCH_ENABLED
    3698             :     end procedure
    3699             : #endif
    3700             : 
    3701             : #undef RK_ENABLED
    3702             : 
    3703             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3704             : 
    3705             : #undef INVA_ENABLED
    3706             : 
    3707             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3708             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3709             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3710             : 
    3711             : #define OTOA_ENABLED 1
    3712             : 
    3713             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3714             : 
    3715             : #define CK_ENABLED 1
    3716             : 
    3717             : #if CK5_ENABLED
    3718             :     module procedure trsv_ASS_CUUA_OTOA_CGMB_ONOB_CK5
    3719             :         use pm_kind, only: CKC => CK5
    3720             : #include "pm_matrixMulTri@routines.inc.F90"
    3721             :     end procedure
    3722             : #endif
    3723             : 
    3724             : #if CK4_ENABLED
    3725         100 :     module procedure trsv_ASS_CUUA_OTOA_CGMB_ONOB_CK4
    3726             :         use pm_kind, only: CKC => CK4
    3727             : #include "pm_matrixMulTri@routines.inc.F90"
    3728             :     end procedure
    3729             : #endif
    3730             : 
    3731             : #if CK3_ENABLED
    3732         100 :     module procedure trsv_ASS_CUUA_OTOA_CGMB_ONOB_CK3
    3733             :         use pm_kind, only: CKC => CK3
    3734             : #include "pm_matrixMulTri@routines.inc.F90"
    3735             :     end procedure
    3736             : #endif
    3737             : 
    3738             : #if CK2_ENABLED
    3739         100 :     module procedure trsv_ASS_CUUA_OTOA_CGMB_ONOB_CK2
    3740             :         use pm_kind, only: CKC => CK2
    3741             : #define DISPATCH_ENABLED 1
    3742             : #include "pm_matrixMulTri@routines.inc.F90"
    3743             : #undef  DISPATCH_ENABLED
    3744             :     end procedure
    3745             : #endif
    3746             : 
    3747             : #if CK1_ENABLED
    3748         100 :     module procedure trsv_ASS_CUUA_OTOA_CGMB_ONOB_CK1
    3749             :         use pm_kind, only: CKC => CK1
    3750             : #define DISPATCH_ENABLED 1
    3751             : #include "pm_matrixMulTri@routines.inc.F90"
    3752             : #undef  DISPATCH_ENABLED
    3753             :     end procedure
    3754             : #endif
    3755             : 
    3756             : #undef CK_ENABLED
    3757             : 
    3758             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3759             : 
    3760             : #define RK_ENABLED 1
    3761             : 
    3762             : #if RK5_ENABLED
    3763             :     module procedure trsv_ASS_CUUA_OTOA_CGMB_ONOB_RK5
    3764             :         use pm_kind, only: RKC => RK5
    3765             : #include "pm_matrixMulTri@routines.inc.F90"
    3766             :     end procedure
    3767             : #endif
    3768             : 
    3769             : #if RK4_ENABLED
    3770         100 :     module procedure trsv_ASS_CUUA_OTOA_CGMB_ONOB_RK4
    3771             :         use pm_kind, only: RKC => RK4
    3772             : #include "pm_matrixMulTri@routines.inc.F90"
    3773             :     end procedure
    3774             : #endif
    3775             : 
    3776             : #if RK3_ENABLED
    3777         100 :     module procedure trsv_ASS_CUUA_OTOA_CGMB_ONOB_RK3
    3778             :         use pm_kind, only: RKC => RK3
    3779             : #include "pm_matrixMulTri@routines.inc.F90"
    3780             :     end procedure
    3781             : #endif
    3782             : 
    3783             : #if RK2_ENABLED
    3784         100 :     module procedure trsv_ASS_CUUA_OTOA_CGMB_ONOB_RK2
    3785             :         use pm_kind, only: RKC => RK2
    3786             : #define DISPATCH_ENABLED 1
    3787             : #include "pm_matrixMulTri@routines.inc.F90"
    3788             : #undef  DISPATCH_ENABLED
    3789             :     end procedure
    3790             : #endif
    3791             : 
    3792             : #if RK1_ENABLED
    3793         100 :     module procedure trsv_ASS_CUUA_OTOA_CGMB_ONOB_RK1
    3794             :         use pm_kind, only: RKC => RK1
    3795             : #define DISPATCH_ENABLED 1
    3796             : #include "pm_matrixMulTri@routines.inc.F90"
    3797             : #undef  DISPATCH_ENABLED
    3798             :     end procedure
    3799             : #endif
    3800             : 
    3801             : #undef RK_ENABLED
    3802             : 
    3803             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3804             : 
    3805             : #undef OTOA_ENABLED
    3806             : 
    3807             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3808             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3809             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3810             : 
    3811             : #define OTUA_ENABLED 1
    3812             : 
    3813             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3814             : 
    3815             : #define CK_ENABLED 1
    3816             : 
    3817             : #if CK5_ENABLED
    3818             :     module procedure trsv_ASS_CUUA_OTUA_CGMB_ONOB_CK5
    3819             :         use pm_kind, only: CKC => CK5
    3820             : #include "pm_matrixMulTri@routines.inc.F90"
    3821             :     end procedure
    3822             : #endif
    3823             : 
    3824             : #if CK4_ENABLED
    3825         100 :     module procedure trsv_ASS_CUUA_OTUA_CGMB_ONOB_CK4
    3826             :         use pm_kind, only: CKC => CK4
    3827             : #include "pm_matrixMulTri@routines.inc.F90"
    3828             :     end procedure
    3829             : #endif
    3830             : 
    3831             : #if CK3_ENABLED
    3832         100 :     module procedure trsv_ASS_CUUA_OTUA_CGMB_ONOB_CK3
    3833             :         use pm_kind, only: CKC => CK3
    3834             : #include "pm_matrixMulTri@routines.inc.F90"
    3835             :     end procedure
    3836             : #endif
    3837             : 
    3838             : #if CK2_ENABLED
    3839         100 :     module procedure trsv_ASS_CUUA_OTUA_CGMB_ONOB_CK2
    3840             :         use pm_kind, only: CKC => CK2
    3841             : #define DISPATCH_ENABLED 1
    3842             : #include "pm_matrixMulTri@routines.inc.F90"
    3843             : #undef  DISPATCH_ENABLED
    3844             :     end procedure
    3845             : #endif
    3846             : 
    3847             : #if CK1_ENABLED
    3848         101 :     module procedure trsv_ASS_CUUA_OTUA_CGMB_ONOB_CK1
    3849             :         use pm_kind, only: CKC => CK1
    3850             : #define DISPATCH_ENABLED 1
    3851             : #include "pm_matrixMulTri@routines.inc.F90"
    3852             : #undef  DISPATCH_ENABLED
    3853             :     end procedure
    3854             : #endif
    3855             : 
    3856             : #undef CK_ENABLED
    3857             : 
    3858             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3859             : 
    3860             : #define RK_ENABLED 1
    3861             : 
    3862             : #if RK5_ENABLED
    3863             :     module procedure trsv_ASS_CUUA_OTUA_CGMB_ONOB_RK5
    3864             :         use pm_kind, only: RKC => RK5
    3865             : #include "pm_matrixMulTri@routines.inc.F90"
    3866             :     end procedure
    3867             : #endif
    3868             : 
    3869             : #if RK4_ENABLED
    3870         100 :     module procedure trsv_ASS_CUUA_OTUA_CGMB_ONOB_RK4
    3871             :         use pm_kind, only: RKC => RK4
    3872             : #include "pm_matrixMulTri@routines.inc.F90"
    3873             :     end procedure
    3874             : #endif
    3875             : 
    3876             : #if RK3_ENABLED
    3877         100 :     module procedure trsv_ASS_CUUA_OTUA_CGMB_ONOB_RK3
    3878             :         use pm_kind, only: RKC => RK3
    3879             : #include "pm_matrixMulTri@routines.inc.F90"
    3880             :     end procedure
    3881             : #endif
    3882             : 
    3883             : #if RK2_ENABLED
    3884         100 :     module procedure trsv_ASS_CUUA_OTUA_CGMB_ONOB_RK2
    3885             :         use pm_kind, only: RKC => RK2
    3886             : #define DISPATCH_ENABLED 1
    3887             : #include "pm_matrixMulTri@routines.inc.F90"
    3888             : #undef  DISPATCH_ENABLED
    3889             :     end procedure
    3890             : #endif
    3891             : 
    3892             : #if RK1_ENABLED
    3893         100 :     module procedure trsv_ASS_CUUA_OTUA_CGMB_ONOB_RK1
    3894             :         use pm_kind, only: RKC => RK1
    3895             : #define DISPATCH_ENABLED 1
    3896             : #include "pm_matrixMulTri@routines.inc.F90"
    3897             : #undef  DISPATCH_ENABLED
    3898             :     end procedure
    3899             : #endif
    3900             : 
    3901             : #undef RK_ENABLED
    3902             : 
    3903             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3904             : 
    3905             : #undef OTUA_ENABLED
    3906             : 
    3907             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3908             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3909             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3910             : 
    3911             : #undef CUUA_ENABLED
    3912             : 
    3913             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3914             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3915             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3916             : 
    3917             : #undef ONOB_ENABLED
    3918             : 
    3919             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3920             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3921             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3922             : 
    3923             : #undef CGMB_ENABLED
    3924             : 
    3925             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3926             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3927             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3928             : 
    3929             : #undef ASS_ENABLED
    3930             : 
    3931             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3932             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3933             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3934             : 
    3935             : #define EXP_ENABLED 1
    3936             : 
    3937             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3938             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3939             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3940             : 
    3941             : #define CGMB_ENABLED 1
    3942             : 
    3943             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3944             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3945             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3946             : 
    3947             : #define ONOB_ENABLED 1
    3948             : 
    3949             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3950             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3951             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3952             : 
    3953             : #define CLDA_ENABLED 1
    3954             : 
    3955             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3956             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3957             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3958             : 
    3959             : #define INVA_ENABLED 1
    3960             : 
    3961             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3962             : 
    3963             : #define CK_ENABLED 1
    3964             : 
    3965             : #if CK5_ENABLED
    3966             :     module procedure trsv_EXP_CLDA_INVA_CGMB_ONOB_CK5
    3967             :         use pm_kind, only: CKC => CK5
    3968             : #include "pm_matrixMulTri@routines.inc.F90"
    3969             :     end procedure
    3970             : #endif
    3971             : 
    3972             : #if CK4_ENABLED
    3973         100 :     module procedure trsv_EXP_CLDA_INVA_CGMB_ONOB_CK4
    3974             :         use pm_kind, only: CKC => CK4
    3975             : #include "pm_matrixMulTri@routines.inc.F90"
    3976             :     end procedure
    3977             : #endif
    3978             : 
    3979             : #if CK3_ENABLED
    3980         100 :     module procedure trsv_EXP_CLDA_INVA_CGMB_ONOB_CK3
    3981             :         use pm_kind, only: CKC => CK3
    3982             : #include "pm_matrixMulTri@routines.inc.F90"
    3983             :     end procedure
    3984             : #endif
    3985             : 
    3986             : #if CK2_ENABLED
    3987         100 :     module procedure trsv_EXP_CLDA_INVA_CGMB_ONOB_CK2
    3988             :         use pm_kind, only: CKC => CK2
    3989             : #define DISPATCH_ENABLED 1
    3990             : #include "pm_matrixMulTri@routines.inc.F90"
    3991             : #undef  DISPATCH_ENABLED
    3992             :     end procedure
    3993             : #endif
    3994             : 
    3995             : #if CK1_ENABLED
    3996         100 :     module procedure trsv_EXP_CLDA_INVA_CGMB_ONOB_CK1
    3997             :         use pm_kind, only: CKC => CK1
    3998             : #define DISPATCH_ENABLED 1
    3999             : #include "pm_matrixMulTri@routines.inc.F90"
    4000             : #undef  DISPATCH_ENABLED
    4001             :     end procedure
    4002             : #endif
    4003             : 
    4004             : #undef CK_ENABLED
    4005             : 
    4006             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4007             : 
    4008             : #define RK_ENABLED 1
    4009             : 
    4010             : #if RK5_ENABLED
    4011             :     module procedure trsv_EXP_CLDA_INVA_CGMB_ONOB_RK5
    4012             :         use pm_kind, only: RKC => RK5
    4013             : #include "pm_matrixMulTri@routines.inc.F90"
    4014             :     end procedure
    4015             : #endif
    4016             : 
    4017             : #if RK4_ENABLED
    4018         100 :     module procedure trsv_EXP_CLDA_INVA_CGMB_ONOB_RK4
    4019             :         use pm_kind, only: RKC => RK4
    4020             : #include "pm_matrixMulTri@routines.inc.F90"
    4021             :     end procedure
    4022             : #endif
    4023             : 
    4024             : #if RK3_ENABLED
    4025         100 :     module procedure trsv_EXP_CLDA_INVA_CGMB_ONOB_RK3
    4026             :         use pm_kind, only: RKC => RK3
    4027             : #include "pm_matrixMulTri@routines.inc.F90"
    4028             :     end procedure
    4029             : #endif
    4030             : 
    4031             : #if RK2_ENABLED
    4032         100 :     module procedure trsv_EXP_CLDA_INVA_CGMB_ONOB_RK2
    4033             :         use pm_kind, only: RKC => RK2
    4034             : #define DISPATCH_ENABLED 1
    4035             : #include "pm_matrixMulTri@routines.inc.F90"
    4036             : #undef  DISPATCH_ENABLED
    4037             :     end procedure
    4038             : #endif
    4039             : 
    4040             : #if RK1_ENABLED
    4041         100 :     module procedure trsv_EXP_CLDA_INVA_CGMB_ONOB_RK1
    4042             :         use pm_kind, only: RKC => RK1
    4043             : #define DISPATCH_ENABLED 1
    4044             : #include "pm_matrixMulTri@routines.inc.F90"
    4045             : #undef  DISPATCH_ENABLED
    4046             :     end procedure
    4047             : #endif
    4048             : 
    4049             : #undef RK_ENABLED
    4050             : 
    4051             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4052             : 
    4053             : #undef INVA_ENABLED
    4054             : 
    4055             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4056             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4057             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4058             : 
    4059             : #define OTOA_ENABLED 1
    4060             : 
    4061             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4062             : 
    4063             : #define CK_ENABLED 1
    4064             : 
    4065             : #if CK5_ENABLED
    4066             :     module procedure trsv_EXP_CLDA_OTOA_CGMB_ONOB_CK5
    4067             :         use pm_kind, only: CKC => CK5
    4068             : #include "pm_matrixMulTri@routines.inc.F90"
    4069             :     end procedure
    4070             : #endif
    4071             : 
    4072             : #if CK4_ENABLED
    4073         100 :     module procedure trsv_EXP_CLDA_OTOA_CGMB_ONOB_CK4
    4074             :         use pm_kind, only: CKC => CK4
    4075             : #include "pm_matrixMulTri@routines.inc.F90"
    4076             :     end procedure
    4077             : #endif
    4078             : 
    4079             : #if CK3_ENABLED
    4080         100 :     module procedure trsv_EXP_CLDA_OTOA_CGMB_ONOB_CK3
    4081             :         use pm_kind, only: CKC => CK3
    4082             : #include "pm_matrixMulTri@routines.inc.F90"
    4083             :     end procedure
    4084             : #endif
    4085             : 
    4086             : #if CK2_ENABLED
    4087         100 :     module procedure trsv_EXP_CLDA_OTOA_CGMB_ONOB_CK2
    4088             :         use pm_kind, only: CKC => CK2
    4089             : #define DISPATCH_ENABLED 1
    4090             : #include "pm_matrixMulTri@routines.inc.F90"
    4091             : #undef  DISPATCH_ENABLED
    4092             :     end procedure
    4093             : #endif
    4094             : 
    4095             : #if CK1_ENABLED
    4096         100 :     module procedure trsv_EXP_CLDA_OTOA_CGMB_ONOB_CK1
    4097             :         use pm_kind, only: CKC => CK1
    4098             : #define DISPATCH_ENABLED 1
    4099             : #include "pm_matrixMulTri@routines.inc.F90"
    4100             : #undef  DISPATCH_ENABLED
    4101             :     end procedure
    4102             : #endif
    4103             : 
    4104             : #undef CK_ENABLED
    4105             : 
    4106             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4107             : 
    4108             : #define RK_ENABLED 1
    4109             : 
    4110             : #if RK5_ENABLED
    4111             :     module procedure trsv_EXP_CLDA_OTOA_CGMB_ONOB_RK5
    4112             :         use pm_kind, only: RKC => RK5
    4113             : #include "pm_matrixMulTri@routines.inc.F90"
    4114             :     end procedure
    4115             : #endif
    4116             : 
    4117             : #if RK4_ENABLED
    4118         100 :     module procedure trsv_EXP_CLDA_OTOA_CGMB_ONOB_RK4
    4119             :         use pm_kind, only: RKC => RK4
    4120             : #include "pm_matrixMulTri@routines.inc.F90"
    4121             :     end procedure
    4122             : #endif
    4123             : 
    4124             : #if RK3_ENABLED
    4125         100 :     module procedure trsv_EXP_CLDA_OTOA_CGMB_ONOB_RK3
    4126             :         use pm_kind, only: RKC => RK3
    4127             : #include "pm_matrixMulTri@routines.inc.F90"
    4128             :     end procedure
    4129             : #endif
    4130             : 
    4131             : #if RK2_ENABLED
    4132         100 :     module procedure trsv_EXP_CLDA_OTOA_CGMB_ONOB_RK2
    4133             :         use pm_kind, only: RKC => RK2
    4134             : #define DISPATCH_ENABLED 1
    4135             : #include "pm_matrixMulTri@routines.inc.F90"
    4136             : #undef  DISPATCH_ENABLED
    4137             :     end procedure
    4138             : #endif
    4139             : 
    4140             : #if RK1_ENABLED
    4141         100 :     module procedure trsv_EXP_CLDA_OTOA_CGMB_ONOB_RK1
    4142             :         use pm_kind, only: RKC => RK1
    4143             : #define DISPATCH_ENABLED 1
    4144             : #include "pm_matrixMulTri@routines.inc.F90"
    4145             : #undef  DISPATCH_ENABLED
    4146             :     end procedure
    4147             : #endif
    4148             : 
    4149             : #undef RK_ENABLED
    4150             : 
    4151             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4152             : 
    4153             : #undef OTOA_ENABLED
    4154             : 
    4155             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4156             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4157             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4158             : 
    4159             : #define OTUA_ENABLED 1
    4160             : 
    4161             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4162             : 
    4163             : #define CK_ENABLED 1
    4164             : 
    4165             : #if CK5_ENABLED
    4166             :     module procedure trsv_EXP_CLDA_OTUA_CGMB_ONOB_CK5
    4167             :         use pm_kind, only: CKC => CK5
    4168             : #include "pm_matrixMulTri@routines.inc.F90"
    4169             :     end procedure
    4170             : #endif
    4171             : 
    4172             : #if CK4_ENABLED
    4173         100 :     module procedure trsv_EXP_CLDA_OTUA_CGMB_ONOB_CK4
    4174             :         use pm_kind, only: CKC => CK4
    4175             : #include "pm_matrixMulTri@routines.inc.F90"
    4176             :     end procedure
    4177             : #endif
    4178             : 
    4179             : #if CK3_ENABLED
    4180         100 :     module procedure trsv_EXP_CLDA_OTUA_CGMB_ONOB_CK3
    4181             :         use pm_kind, only: CKC => CK3
    4182             : #include "pm_matrixMulTri@routines.inc.F90"
    4183             :     end procedure
    4184             : #endif
    4185             : 
    4186             : #if CK2_ENABLED
    4187         100 :     module procedure trsv_EXP_CLDA_OTUA_CGMB_ONOB_CK2
    4188             :         use pm_kind, only: CKC => CK2
    4189             : #define DISPATCH_ENABLED 1
    4190             : #include "pm_matrixMulTri@routines.inc.F90"
    4191             : #undef  DISPATCH_ENABLED
    4192             :     end procedure
    4193             : #endif
    4194             : 
    4195             : #if CK1_ENABLED
    4196         100 :     module procedure trsv_EXP_CLDA_OTUA_CGMB_ONOB_CK1
    4197             :         use pm_kind, only: CKC => CK1
    4198             : #define DISPATCH_ENABLED 1
    4199             : #include "pm_matrixMulTri@routines.inc.F90"
    4200             : #undef  DISPATCH_ENABLED
    4201             :     end procedure
    4202             : #endif
    4203             : 
    4204             : #undef CK_ENABLED
    4205             : 
    4206             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4207             : 
    4208             : #define RK_ENABLED 1
    4209             : 
    4210             : #if RK5_ENABLED
    4211             :     module procedure trsv_EXP_CLDA_OTUA_CGMB_ONOB_RK5
    4212             :         use pm_kind, only: RKC => RK5
    4213             : #include "pm_matrixMulTri@routines.inc.F90"
    4214             :     end procedure
    4215             : #endif
    4216             : 
    4217             : #if RK4_ENABLED
    4218         100 :     module procedure trsv_EXP_CLDA_OTUA_CGMB_ONOB_RK4
    4219             :         use pm_kind, only: RKC => RK4
    4220             : #include "pm_matrixMulTri@routines.inc.F90"
    4221             :     end procedure
    4222             : #endif
    4223             : 
    4224             : #if RK3_ENABLED
    4225         100 :     module procedure trsv_EXP_CLDA_OTUA_CGMB_ONOB_RK3
    4226             :         use pm_kind, only: RKC => RK3
    4227             : #include "pm_matrixMulTri@routines.inc.F90"
    4228             :     end procedure
    4229             : #endif
    4230             : 
    4231             : #if RK2_ENABLED
    4232         100 :     module procedure trsv_EXP_CLDA_OTUA_CGMB_ONOB_RK2
    4233             :         use pm_kind, only: RKC => RK2
    4234             : #define DISPATCH_ENABLED 1
    4235             : #include "pm_matrixMulTri@routines.inc.F90"
    4236             : #undef  DISPATCH_ENABLED
    4237             :     end procedure
    4238             : #endif
    4239             : 
    4240             : #if RK1_ENABLED
    4241         100 :     module procedure trsv_EXP_CLDA_OTUA_CGMB_ONOB_RK1
    4242             :         use pm_kind, only: RKC => RK1
    4243             : #define DISPATCH_ENABLED 1
    4244             : #include "pm_matrixMulTri@routines.inc.F90"
    4245             : #undef  DISPATCH_ENABLED
    4246             :     end procedure
    4247             : #endif
    4248             : 
    4249             : #undef RK_ENABLED
    4250             : 
    4251             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4252             : 
    4253             : #undef OTUA_ENABLED
    4254             : 
    4255             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4256             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4257             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4258             : 
    4259             : #undef CLDA_ENABLED
    4260             : 
    4261             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4262             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4263             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4264             : 
    4265             : #define CUDA_ENABLED 1
    4266             : 
    4267             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4268             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4269             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4270             : 
    4271             : #define INVA_ENABLED 1
    4272             : 
    4273             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4274             : 
    4275             : #define CK_ENABLED 1
    4276             : 
    4277             : #if CK5_ENABLED
    4278             :     module procedure trsv_EXP_CUDA_INVA_CGMB_ONOB_CK5
    4279             :         use pm_kind, only: CKC => CK5
    4280             : #include "pm_matrixMulTri@routines.inc.F90"
    4281             :     end procedure
    4282             : #endif
    4283             : 
    4284             : #if CK4_ENABLED
    4285         100 :     module procedure trsv_EXP_CUDA_INVA_CGMB_ONOB_CK4
    4286             :         use pm_kind, only: CKC => CK4
    4287             : #include "pm_matrixMulTri@routines.inc.F90"
    4288             :     end procedure
    4289             : #endif
    4290             : 
    4291             : #if CK3_ENABLED
    4292         100 :     module procedure trsv_EXP_CUDA_INVA_CGMB_ONOB_CK3
    4293             :         use pm_kind, only: CKC => CK3
    4294             : #include "pm_matrixMulTri@routines.inc.F90"
    4295             :     end procedure
    4296             : #endif
    4297             : 
    4298             : #if CK2_ENABLED
    4299         100 :     module procedure trsv_EXP_CUDA_INVA_CGMB_ONOB_CK2
    4300             :         use pm_kind, only: CKC => CK2
    4301             : #define DISPATCH_ENABLED 1
    4302             : #include "pm_matrixMulTri@routines.inc.F90"
    4303             : #undef  DISPATCH_ENABLED
    4304             :     end procedure
    4305             : #endif
    4306             : 
    4307             : #if CK1_ENABLED
    4308         100 :     module procedure trsv_EXP_CUDA_INVA_CGMB_ONOB_CK1
    4309             :         use pm_kind, only: CKC => CK1
    4310             : #define DISPATCH_ENABLED 1
    4311             : #include "pm_matrixMulTri@routines.inc.F90"
    4312             : #undef  DISPATCH_ENABLED
    4313             :     end procedure
    4314             : #endif
    4315             : 
    4316             : #undef CK_ENABLED
    4317             : 
    4318             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4319             : 
    4320             : #define RK_ENABLED 1
    4321             : 
    4322             : #if RK5_ENABLED
    4323             :     module procedure trsv_EXP_CUDA_INVA_CGMB_ONOB_RK5
    4324             :         use pm_kind, only: RKC => RK5
    4325             : #include "pm_matrixMulTri@routines.inc.F90"
    4326             :     end procedure
    4327             : #endif
    4328             : 
    4329             : #if RK4_ENABLED
    4330         100 :     module procedure trsv_EXP_CUDA_INVA_CGMB_ONOB_RK4
    4331             :         use pm_kind, only: RKC => RK4
    4332             : #include "pm_matrixMulTri@routines.inc.F90"
    4333             :     end procedure
    4334             : #endif
    4335             : 
    4336             : #if RK3_ENABLED
    4337         100 :     module procedure trsv_EXP_CUDA_INVA_CGMB_ONOB_RK3
    4338             :         use pm_kind, only: RKC => RK3
    4339             : #include "pm_matrixMulTri@routines.inc.F90"
    4340             :     end procedure
    4341             : #endif
    4342             : 
    4343             : #if RK2_ENABLED
    4344         100 :     module procedure trsv_EXP_CUDA_INVA_CGMB_ONOB_RK2
    4345             :         use pm_kind, only: RKC => RK2
    4346             : #define DISPATCH_ENABLED 1
    4347             : #include "pm_matrixMulTri@routines.inc.F90"
    4348             : #undef  DISPATCH_ENABLED
    4349             :     end procedure
    4350             : #endif
    4351             : 
    4352             : #if RK1_ENABLED
    4353         100 :     module procedure trsv_EXP_CUDA_INVA_CGMB_ONOB_RK1
    4354             :         use pm_kind, only: RKC => RK1
    4355             : #define DISPATCH_ENABLED 1
    4356             : #include "pm_matrixMulTri@routines.inc.F90"
    4357             : #undef  DISPATCH_ENABLED
    4358             :     end procedure
    4359             : #endif
    4360             : 
    4361             : #undef RK_ENABLED
    4362             : 
    4363             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4364             : 
    4365             : #undef INVA_ENABLED
    4366             : 
    4367             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4368             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4369             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4370             : 
    4371             : #define OTOA_ENABLED 1
    4372             : 
    4373             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4374             : 
    4375             : #define CK_ENABLED 1
    4376             : 
    4377             : #if CK5_ENABLED
    4378             :     module procedure trsv_EXP_CUDA_OTOA_CGMB_ONOB_CK5
    4379             :         use pm_kind, only: CKC => CK5
    4380             : #include "pm_matrixMulTri@routines.inc.F90"
    4381             :     end procedure
    4382             : #endif
    4383             : 
    4384             : #if CK4_ENABLED
    4385         100 :     module procedure trsv_EXP_CUDA_OTOA_CGMB_ONOB_CK4
    4386             :         use pm_kind, only: CKC => CK4
    4387             : #include "pm_matrixMulTri@routines.inc.F90"
    4388             :     end procedure
    4389             : #endif
    4390             : 
    4391             : #if CK3_ENABLED
    4392         100 :     module procedure trsv_EXP_CUDA_OTOA_CGMB_ONOB_CK3
    4393             :         use pm_kind, only: CKC => CK3
    4394             : #include "pm_matrixMulTri@routines.inc.F90"
    4395             :     end procedure
    4396             : #endif
    4397             : 
    4398             : #if CK2_ENABLED
    4399         100 :     module procedure trsv_EXP_CUDA_OTOA_CGMB_ONOB_CK2
    4400             :         use pm_kind, only: CKC => CK2
    4401             : #define DISPATCH_ENABLED 1
    4402             : #include "pm_matrixMulTri@routines.inc.F90"
    4403             : #undef  DISPATCH_ENABLED
    4404             :     end procedure
    4405             : #endif
    4406             : 
    4407             : #if CK1_ENABLED
    4408         100 :     module procedure trsv_EXP_CUDA_OTOA_CGMB_ONOB_CK1
    4409             :         use pm_kind, only: CKC => CK1
    4410             : #define DISPATCH_ENABLED 1
    4411             : #include "pm_matrixMulTri@routines.inc.F90"
    4412             : #undef  DISPATCH_ENABLED
    4413             :     end procedure
    4414             : #endif
    4415             : 
    4416             : #undef CK_ENABLED
    4417             : 
    4418             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4419             : 
    4420             : #define RK_ENABLED 1
    4421             : 
    4422             : #if RK5_ENABLED
    4423             :     module procedure trsv_EXP_CUDA_OTOA_CGMB_ONOB_RK5
    4424             :         use pm_kind, only: RKC => RK5
    4425             : #include "pm_matrixMulTri@routines.inc.F90"
    4426             :     end procedure
    4427             : #endif
    4428             : 
    4429             : #if RK4_ENABLED
    4430         100 :     module procedure trsv_EXP_CUDA_OTOA_CGMB_ONOB_RK4
    4431             :         use pm_kind, only: RKC => RK4
    4432             : #include "pm_matrixMulTri@routines.inc.F90"
    4433             :     end procedure
    4434             : #endif
    4435             : 
    4436             : #if RK3_ENABLED
    4437         100 :     module procedure trsv_EXP_CUDA_OTOA_CGMB_ONOB_RK3
    4438             :         use pm_kind, only: RKC => RK3
    4439             : #include "pm_matrixMulTri@routines.inc.F90"
    4440             :     end procedure
    4441             : #endif
    4442             : 
    4443             : #if RK2_ENABLED
    4444         100 :     module procedure trsv_EXP_CUDA_OTOA_CGMB_ONOB_RK2
    4445             :         use pm_kind, only: RKC => RK2
    4446             : #define DISPATCH_ENABLED 1
    4447             : #include "pm_matrixMulTri@routines.inc.F90"
    4448             : #undef  DISPATCH_ENABLED
    4449             :     end procedure
    4450             : #endif
    4451             : 
    4452             : #if RK1_ENABLED
    4453         101 :     module procedure trsv_EXP_CUDA_OTOA_CGMB_ONOB_RK1
    4454             :         use pm_kind, only: RKC => RK1
    4455             : #define DISPATCH_ENABLED 1
    4456             : #include "pm_matrixMulTri@routines.inc.F90"
    4457             : #undef  DISPATCH_ENABLED
    4458             :     end procedure
    4459             : #endif
    4460             : 
    4461             : #undef RK_ENABLED
    4462             : 
    4463             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4464             : 
    4465             : #undef OTOA_ENABLED
    4466             : 
    4467             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4468             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4469             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4470             : 
    4471             : #define OTUA_ENABLED 1
    4472             : 
    4473             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4474             : 
    4475             : #define CK_ENABLED 1
    4476             : 
    4477             : #if CK5_ENABLED
    4478             :     module procedure trsv_EXP_CUDA_OTUA_CGMB_ONOB_CK5
    4479             :         use pm_kind, only: CKC => CK5
    4480             : #include "pm_matrixMulTri@routines.inc.F90"
    4481             :     end procedure
    4482             : #endif
    4483             : 
    4484             : #if CK4_ENABLED
    4485         100 :     module procedure trsv_EXP_CUDA_OTUA_CGMB_ONOB_CK4
    4486             :         use pm_kind, only: CKC => CK4
    4487             : #include "pm_matrixMulTri@routines.inc.F90"
    4488             :     end procedure
    4489             : #endif
    4490             : 
    4491             : #if CK3_ENABLED
    4492         100 :     module procedure trsv_EXP_CUDA_OTUA_CGMB_ONOB_CK3
    4493             :         use pm_kind, only: CKC => CK3
    4494             : #include "pm_matrixMulTri@routines.inc.F90"
    4495             :     end procedure
    4496             : #endif
    4497             : 
    4498             : #if CK2_ENABLED
    4499         100 :     module procedure trsv_EXP_CUDA_OTUA_CGMB_ONOB_CK2
    4500             :         use pm_kind, only: CKC => CK2
    4501             : #define DISPATCH_ENABLED 1
    4502             : #include "pm_matrixMulTri@routines.inc.F90"
    4503             : #undef  DISPATCH_ENABLED
    4504             :     end procedure
    4505             : #endif
    4506             : 
    4507             : #if CK1_ENABLED
    4508         100 :     module procedure trsv_EXP_CUDA_OTUA_CGMB_ONOB_CK1
    4509             :         use pm_kind, only: CKC => CK1
    4510             : #define DISPATCH_ENABLED 1
    4511             : #include "pm_matrixMulTri@routines.inc.F90"
    4512             : #undef  DISPATCH_ENABLED
    4513             :     end procedure
    4514             : #endif
    4515             : 
    4516             : #undef CK_ENABLED
    4517             : 
    4518             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4519             : 
    4520             : #define RK_ENABLED 1
    4521             : 
    4522             : #if RK5_ENABLED
    4523             :     module procedure trsv_EXP_CUDA_OTUA_CGMB_ONOB_RK5
    4524             :         use pm_kind, only: RKC => RK5
    4525             : #include "pm_matrixMulTri@routines.inc.F90"
    4526             :     end procedure
    4527             : #endif
    4528             : 
    4529             : #if RK4_ENABLED
    4530         100 :     module procedure trsv_EXP_CUDA_OTUA_CGMB_ONOB_RK4
    4531             :         use pm_kind, only: RKC => RK4
    4532             : #include "pm_matrixMulTri@routines.inc.F90"
    4533             :     end procedure
    4534             : #endif
    4535             : 
    4536             : #if RK3_ENABLED
    4537         100 :     module procedure trsv_EXP_CUDA_OTUA_CGMB_ONOB_RK3
    4538             :         use pm_kind, only: RKC => RK3
    4539             : #include "pm_matrixMulTri@routines.inc.F90"
    4540             :     end procedure
    4541             : #endif
    4542             : 
    4543             : #if RK2_ENABLED
    4544         100 :     module procedure trsv_EXP_CUDA_OTUA_CGMB_ONOB_RK2
    4545             :         use pm_kind, only: RKC => RK2
    4546             : #define DISPATCH_ENABLED 1
    4547             : #include "pm_matrixMulTri@routines.inc.F90"
    4548             : #undef  DISPATCH_ENABLED
    4549             :     end procedure
    4550             : #endif
    4551             : 
    4552             : #if RK1_ENABLED
    4553         100 :     module procedure trsv_EXP_CUDA_OTUA_CGMB_ONOB_RK1
    4554             :         use pm_kind, only: RKC => RK1
    4555             : #define DISPATCH_ENABLED 1
    4556             : #include "pm_matrixMulTri@routines.inc.F90"
    4557             : #undef  DISPATCH_ENABLED
    4558             :     end procedure
    4559             : #endif
    4560             : 
    4561             : #undef RK_ENABLED
    4562             : 
    4563             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4564             : 
    4565             : #undef OTUA_ENABLED
    4566             : 
    4567             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4568             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4569             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4570             : 
    4571             : #undef CUDA_ENABLED
    4572             : 
    4573             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4574             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4575             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4576             : 
    4577             : #define CLUA_ENABLED 1
    4578             : 
    4579             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4580             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4581             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4582             : 
    4583             : #define INVA_ENABLED 1
    4584             : 
    4585             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4586             : 
    4587             : #define CK_ENABLED 1
    4588             : 
    4589             : #if CK5_ENABLED
    4590             :     module procedure trsv_EXP_CLUA_INVA_CGMB_ONOB_CK5
    4591             :         use pm_kind, only: CKC => CK5
    4592             : #include "pm_matrixMulTri@routines.inc.F90"
    4593             :     end procedure
    4594             : #endif
    4595             : 
    4596             : #if CK4_ENABLED
    4597         100 :     module procedure trsv_EXP_CLUA_INVA_CGMB_ONOB_CK4
    4598             :         use pm_kind, only: CKC => CK4
    4599             : #include "pm_matrixMulTri@routines.inc.F90"
    4600             :     end procedure
    4601             : #endif
    4602             : 
    4603             : #if CK3_ENABLED
    4604         100 :     module procedure trsv_EXP_CLUA_INVA_CGMB_ONOB_CK3
    4605             :         use pm_kind, only: CKC => CK3
    4606             : #include "pm_matrixMulTri@routines.inc.F90"
    4607             :     end procedure
    4608             : #endif
    4609             : 
    4610             : #if CK2_ENABLED
    4611         100 :     module procedure trsv_EXP_CLUA_INVA_CGMB_ONOB_CK2
    4612             :         use pm_kind, only: CKC => CK2
    4613             : #define DISPATCH_ENABLED 1
    4614             : #include "pm_matrixMulTri@routines.inc.F90"
    4615             : #undef  DISPATCH_ENABLED
    4616             :     end procedure
    4617             : #endif
    4618             : 
    4619             : #if CK1_ENABLED
    4620         100 :     module procedure trsv_EXP_CLUA_INVA_CGMB_ONOB_CK1
    4621             :         use pm_kind, only: CKC => CK1
    4622             : #define DISPATCH_ENABLED 1
    4623             : #include "pm_matrixMulTri@routines.inc.F90"
    4624             : #undef  DISPATCH_ENABLED
    4625             :     end procedure
    4626             : #endif
    4627             : 
    4628             : #undef CK_ENABLED
    4629             : 
    4630             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4631             : 
    4632             : #define RK_ENABLED 1
    4633             : 
    4634             : #if RK5_ENABLED
    4635             :     module procedure trsv_EXP_CLUA_INVA_CGMB_ONOB_RK5
    4636             :         use pm_kind, only: RKC => RK5
    4637             : #include "pm_matrixMulTri@routines.inc.F90"
    4638             :     end procedure
    4639             : #endif
    4640             : 
    4641             : #if RK4_ENABLED
    4642         100 :     module procedure trsv_EXP_CLUA_INVA_CGMB_ONOB_RK4
    4643             :         use pm_kind, only: RKC => RK4
    4644             : #include "pm_matrixMulTri@routines.inc.F90"
    4645             :     end procedure
    4646             : #endif
    4647             : 
    4648             : #if RK3_ENABLED
    4649         100 :     module procedure trsv_EXP_CLUA_INVA_CGMB_ONOB_RK3
    4650             :         use pm_kind, only: RKC => RK3
    4651             : #include "pm_matrixMulTri@routines.inc.F90"
    4652             :     end procedure
    4653             : #endif
    4654             : 
    4655             : #if RK2_ENABLED
    4656         100 :     module procedure trsv_EXP_CLUA_INVA_CGMB_ONOB_RK2
    4657             :         use pm_kind, only: RKC => RK2
    4658             : #define DISPATCH_ENABLED 1
    4659             : #include "pm_matrixMulTri@routines.inc.F90"
    4660             : #undef  DISPATCH_ENABLED
    4661             :     end procedure
    4662             : #endif
    4663             : 
    4664             : #if RK1_ENABLED
    4665         101 :     module procedure trsv_EXP_CLUA_INVA_CGMB_ONOB_RK1
    4666             :         use pm_kind, only: RKC => RK1
    4667             : #define DISPATCH_ENABLED 1
    4668             : #include "pm_matrixMulTri@routines.inc.F90"
    4669             : #undef  DISPATCH_ENABLED
    4670             :     end procedure
    4671             : #endif
    4672             : 
    4673             : #undef RK_ENABLED
    4674             : 
    4675             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4676             : 
    4677             : #undef INVA_ENABLED
    4678             : 
    4679             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4680             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4681             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4682             : 
    4683             : #define OTOA_ENABLED 1
    4684             : 
    4685             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4686             : 
    4687             : #define CK_ENABLED 1
    4688             : 
    4689             : #if CK5_ENABLED
    4690             :     module procedure trsv_EXP_CLUA_OTOA_CGMB_ONOB_CK5
    4691             :         use pm_kind, only: CKC => CK5
    4692             : #include "pm_matrixMulTri@routines.inc.F90"
    4693             :     end procedure
    4694             : #endif
    4695             : 
    4696             : #if CK4_ENABLED
    4697         100 :     module procedure trsv_EXP_CLUA_OTOA_CGMB_ONOB_CK4
    4698             :         use pm_kind, only: CKC => CK4
    4699             : #include "pm_matrixMulTri@routines.inc.F90"
    4700             :     end procedure
    4701             : #endif
    4702             : 
    4703             : #if CK3_ENABLED
    4704         100 :     module procedure trsv_EXP_CLUA_OTOA_CGMB_ONOB_CK3
    4705             :         use pm_kind, only: CKC => CK3
    4706             : #include "pm_matrixMulTri@routines.inc.F90"
    4707             :     end procedure
    4708             : #endif
    4709             : 
    4710             : #if CK2_ENABLED
    4711         100 :     module procedure trsv_EXP_CLUA_OTOA_CGMB_ONOB_CK2
    4712             :         use pm_kind, only: CKC => CK2
    4713             : #define DISPATCH_ENABLED 1
    4714             : #include "pm_matrixMulTri@routines.inc.F90"
    4715             : #undef  DISPATCH_ENABLED
    4716             :     end procedure
    4717             : #endif
    4718             : 
    4719             : #if CK1_ENABLED
    4720         100 :     module procedure trsv_EXP_CLUA_OTOA_CGMB_ONOB_CK1
    4721             :         use pm_kind, only: CKC => CK1
    4722             : #define DISPATCH_ENABLED 1
    4723             : #include "pm_matrixMulTri@routines.inc.F90"
    4724             : #undef  DISPATCH_ENABLED
    4725             :     end procedure
    4726             : #endif
    4727             : 
    4728             : #undef CK_ENABLED
    4729             : 
    4730             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4731             : 
    4732             : #define RK_ENABLED 1
    4733             : 
    4734             : #if RK5_ENABLED
    4735             :     module procedure trsv_EXP_CLUA_OTOA_CGMB_ONOB_RK5
    4736             :         use pm_kind, only: RKC => RK5
    4737             : #include "pm_matrixMulTri@routines.inc.F90"
    4738             :     end procedure
    4739             : #endif
    4740             : 
    4741             : #if RK4_ENABLED
    4742         100 :     module procedure trsv_EXP_CLUA_OTOA_CGMB_ONOB_RK4
    4743             :         use pm_kind, only: RKC => RK4
    4744             : #include "pm_matrixMulTri@routines.inc.F90"
    4745             :     end procedure
    4746             : #endif
    4747             : 
    4748             : #if RK3_ENABLED
    4749         100 :     module procedure trsv_EXP_CLUA_OTOA_CGMB_ONOB_RK3
    4750             :         use pm_kind, only: RKC => RK3
    4751             : #include "pm_matrixMulTri@routines.inc.F90"
    4752             :     end procedure
    4753             : #endif
    4754             : 
    4755             : #if RK2_ENABLED
    4756         100 :     module procedure trsv_EXP_CLUA_OTOA_CGMB_ONOB_RK2
    4757             :         use pm_kind, only: RKC => RK2
    4758             : #define DISPATCH_ENABLED 1
    4759             : #include "pm_matrixMulTri@routines.inc.F90"
    4760             : #undef  DISPATCH_ENABLED
    4761             :     end procedure
    4762             : #endif
    4763             : 
    4764             : #if RK1_ENABLED
    4765         100 :     module procedure trsv_EXP_CLUA_OTOA_CGMB_ONOB_RK1
    4766             :         use pm_kind, only: RKC => RK1
    4767             : #define DISPATCH_ENABLED 1
    4768             : #include "pm_matrixMulTri@routines.inc.F90"
    4769             : #undef  DISPATCH_ENABLED
    4770             :     end procedure
    4771             : #endif
    4772             : 
    4773             : #undef RK_ENABLED
    4774             : 
    4775             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4776             : 
    4777             : #undef OTOA_ENABLED
    4778             : 
    4779             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4780             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4781             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4782             : 
    4783             : #define OTUA_ENABLED 1
    4784             : 
    4785             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4786             : 
    4787             : #define CK_ENABLED 1
    4788             : 
    4789             : #if CK5_ENABLED
    4790             :     module procedure trsv_EXP_CLUA_OTUA_CGMB_ONOB_CK5
    4791             :         use pm_kind, only: CKC => CK5
    4792             : #include "pm_matrixMulTri@routines.inc.F90"
    4793             :     end procedure
    4794             : #endif
    4795             : 
    4796             : #if CK4_ENABLED
    4797         100 :     module procedure trsv_EXP_CLUA_OTUA_CGMB_ONOB_CK4
    4798             :         use pm_kind, only: CKC => CK4
    4799             : #include "pm_matrixMulTri@routines.inc.F90"
    4800             :     end procedure
    4801             : #endif
    4802             : 
    4803             : #if CK3_ENABLED
    4804         100 :     module procedure trsv_EXP_CLUA_OTUA_CGMB_ONOB_CK3
    4805             :         use pm_kind, only: CKC => CK3
    4806             : #include "pm_matrixMulTri@routines.inc.F90"
    4807             :     end procedure
    4808             : #endif
    4809             : 
    4810             : #if CK2_ENABLED
    4811         100 :     module procedure trsv_EXP_CLUA_OTUA_CGMB_ONOB_CK2
    4812             :         use pm_kind, only: CKC => CK2
    4813             : #define DISPATCH_ENABLED 1
    4814             : #include "pm_matrixMulTri@routines.inc.F90"
    4815             : #undef  DISPATCH_ENABLED
    4816             :     end procedure
    4817             : #endif
    4818             : 
    4819             : #if CK1_ENABLED
    4820         100 :     module procedure trsv_EXP_CLUA_OTUA_CGMB_ONOB_CK1
    4821             :         use pm_kind, only: CKC => CK1
    4822             : #define DISPATCH_ENABLED 1
    4823             : #include "pm_matrixMulTri@routines.inc.F90"
    4824             : #undef  DISPATCH_ENABLED
    4825             :     end procedure
    4826             : #endif
    4827             : 
    4828             : #undef CK_ENABLED
    4829             : 
    4830             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4831             : 
    4832             : #define RK_ENABLED 1
    4833             : 
    4834             : #if RK5_ENABLED
    4835             :     module procedure trsv_EXP_CLUA_OTUA_CGMB_ONOB_RK5
    4836             :         use pm_kind, only: RKC => RK5
    4837             : #include "pm_matrixMulTri@routines.inc.F90"
    4838             :     end procedure
    4839             : #endif
    4840             : 
    4841             : #if RK4_ENABLED
    4842         100 :     module procedure trsv_EXP_CLUA_OTUA_CGMB_ONOB_RK4
    4843             :         use pm_kind, only: RKC => RK4
    4844             : #include "pm_matrixMulTri@routines.inc.F90"
    4845             :     end procedure
    4846             : #endif
    4847             : 
    4848             : #if RK3_ENABLED
    4849         100 :     module procedure trsv_EXP_CLUA_OTUA_CGMB_ONOB_RK3
    4850             :         use pm_kind, only: RKC => RK3
    4851             : #include "pm_matrixMulTri@routines.inc.F90"
    4852             :     end procedure
    4853             : #endif
    4854             : 
    4855             : #if RK2_ENABLED
    4856         100 :     module procedure trsv_EXP_CLUA_OTUA_CGMB_ONOB_RK2
    4857             :         use pm_kind, only: RKC => RK2
    4858             : #define DISPATCH_ENABLED 1
    4859             : #include "pm_matrixMulTri@routines.inc.F90"
    4860             : #undef  DISPATCH_ENABLED
    4861             :     end procedure
    4862             : #endif
    4863             : 
    4864             : #if RK1_ENABLED
    4865         100 :     module procedure trsv_EXP_CLUA_OTUA_CGMB_ONOB_RK1
    4866             :         use pm_kind, only: RKC => RK1
    4867             : #define DISPATCH_ENABLED 1
    4868             : #include "pm_matrixMulTri@routines.inc.F90"
    4869             : #undef  DISPATCH_ENABLED
    4870             :     end procedure
    4871             : #endif
    4872             : 
    4873             : #undef RK_ENABLED
    4874             : 
    4875             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4876             : 
    4877             : #undef OTUA_ENABLED
    4878             : 
    4879             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4880             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4881             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4882             : 
    4883             : #undef CLUA_ENABLED
    4884             : 
    4885             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4886             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4887             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4888             : 
    4889             : #define CUUA_ENABLED 1
    4890             : 
    4891             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4892             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4893             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4894             : 
    4895             : #define INVA_ENABLED 1
    4896             : 
    4897             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4898             : 
    4899             : #define CK_ENABLED 1
    4900             : 
    4901             : #if CK5_ENABLED
    4902             :     module procedure trsv_EXP_CUUA_INVA_CGMB_ONOB_CK5
    4903             :         use pm_kind, only: CKC => CK5
    4904             : #include "pm_matrixMulTri@routines.inc.F90"
    4905             :     end procedure
    4906             : #endif
    4907             : 
    4908             : #if CK4_ENABLED
    4909         100 :     module procedure trsv_EXP_CUUA_INVA_CGMB_ONOB_CK4
    4910             :         use pm_kind, only: CKC => CK4
    4911             : #include "pm_matrixMulTri@routines.inc.F90"
    4912             :     end procedure
    4913             : #endif
    4914             : 
    4915             : #if CK3_ENABLED
    4916         100 :     module procedure trsv_EXP_CUUA_INVA_CGMB_ONOB_CK3
    4917             :         use pm_kind, only: CKC => CK3
    4918             : #include "pm_matrixMulTri@routines.inc.F90"
    4919             :     end procedure
    4920             : #endif
    4921             : 
    4922             : #if CK2_ENABLED
    4923         100 :     module procedure trsv_EXP_CUUA_INVA_CGMB_ONOB_CK2
    4924             :         use pm_kind, only: CKC => CK2
    4925             : #define DISPATCH_ENABLED 1
    4926             : #include "pm_matrixMulTri@routines.inc.F90"
    4927             : #undef  DISPATCH_ENABLED
    4928             :     end procedure
    4929             : #endif
    4930             : 
    4931             : #if CK1_ENABLED
    4932         100 :     module procedure trsv_EXP_CUUA_INVA_CGMB_ONOB_CK1
    4933             :         use pm_kind, only: CKC => CK1
    4934             : #define DISPATCH_ENABLED 1
    4935             : #include "pm_matrixMulTri@routines.inc.F90"
    4936             : #undef  DISPATCH_ENABLED
    4937             :     end procedure
    4938             : #endif
    4939             : 
    4940             : #undef CK_ENABLED
    4941             : 
    4942             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4943             : 
    4944             : #define RK_ENABLED 1
    4945             : 
    4946             : #if RK5_ENABLED
    4947             :     module procedure trsv_EXP_CUUA_INVA_CGMB_ONOB_RK5
    4948             :         use pm_kind, only: RKC => RK5
    4949             : #include "pm_matrixMulTri@routines.inc.F90"
    4950             :     end procedure
    4951             : #endif
    4952             : 
    4953             : #if RK4_ENABLED
    4954         100 :     module procedure trsv_EXP_CUUA_INVA_CGMB_ONOB_RK4
    4955             :         use pm_kind, only: RKC => RK4
    4956             : #include "pm_matrixMulTri@routines.inc.F90"
    4957             :     end procedure
    4958             : #endif
    4959             : 
    4960             : #if RK3_ENABLED
    4961         100 :     module procedure trsv_EXP_CUUA_INVA_CGMB_ONOB_RK3
    4962             :         use pm_kind, only: RKC => RK3
    4963             : #include "pm_matrixMulTri@routines.inc.F90"
    4964             :     end procedure
    4965             : #endif
    4966             : 
    4967             : #if RK2_ENABLED
    4968         100 :     module procedure trsv_EXP_CUUA_INVA_CGMB_ONOB_RK2
    4969             :         use pm_kind, only: RKC => RK2
    4970             : #define DISPATCH_ENABLED 1
    4971             : #include "pm_matrixMulTri@routines.inc.F90"
    4972             : #undef  DISPATCH_ENABLED
    4973             :     end procedure
    4974             : #endif
    4975             : 
    4976             : #if RK1_ENABLED
    4977         100 :     module procedure trsv_EXP_CUUA_INVA_CGMB_ONOB_RK1
    4978             :         use pm_kind, only: RKC => RK1
    4979             : #define DISPATCH_ENABLED 1
    4980             : #include "pm_matrixMulTri@routines.inc.F90"
    4981             : #undef  DISPATCH_ENABLED
    4982             :     end procedure
    4983             : #endif
    4984             : 
    4985             : #undef RK_ENABLED
    4986             : 
    4987             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4988             : 
    4989             : #undef INVA_ENABLED
    4990             : 
    4991             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4992             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4993             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4994             : 
    4995             : #define OTOA_ENABLED 1
    4996             : 
    4997             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4998             : 
    4999             : #define CK_ENABLED 1
    5000             : 
    5001             : #if CK5_ENABLED
    5002             :     module procedure trsv_EXP_CUUA_OTOA_CGMB_ONOB_CK5
    5003             :         use pm_kind, only: CKC => CK5
    5004             : #include "pm_matrixMulTri@routines.inc.F90"
    5005             :     end procedure
    5006             : #endif
    5007             : 
    5008             : #if CK4_ENABLED
    5009         100 :     module procedure trsv_EXP_CUUA_OTOA_CGMB_ONOB_CK4
    5010             :         use pm_kind, only: CKC => CK4
    5011             : #include "pm_matrixMulTri@routines.inc.F90"
    5012             :     end procedure
    5013             : #endif
    5014             : 
    5015             : #if CK3_ENABLED
    5016         100 :     module procedure trsv_EXP_CUUA_OTOA_CGMB_ONOB_CK3
    5017             :         use pm_kind, only: CKC => CK3
    5018             : #include "pm_matrixMulTri@routines.inc.F90"
    5019             :     end procedure
    5020             : #endif
    5021             : 
    5022             : #if CK2_ENABLED
    5023         100 :     module procedure trsv_EXP_CUUA_OTOA_CGMB_ONOB_CK2
    5024             :         use pm_kind, only: CKC => CK2
    5025             : #define DISPATCH_ENABLED 1
    5026             : #include "pm_matrixMulTri@routines.inc.F90"
    5027             : #undef  DISPATCH_ENABLED
    5028             :     end procedure
    5029             : #endif
    5030             : 
    5031             : #if CK1_ENABLED
    5032         100 :     module procedure trsv_EXP_CUUA_OTOA_CGMB_ONOB_CK1
    5033             :         use pm_kind, only: CKC => CK1
    5034             : #define DISPATCH_ENABLED 1
    5035             : #include "pm_matrixMulTri@routines.inc.F90"
    5036             : #undef  DISPATCH_ENABLED
    5037             :     end procedure
    5038             : #endif
    5039             : 
    5040             : #undef CK_ENABLED
    5041             : 
    5042             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5043             : 
    5044             : #define RK_ENABLED 1
    5045             : 
    5046             : #if RK5_ENABLED
    5047             :     module procedure trsv_EXP_CUUA_OTOA_CGMB_ONOB_RK5
    5048             :         use pm_kind, only: RKC => RK5
    5049             : #include "pm_matrixMulTri@routines.inc.F90"
    5050             :     end procedure
    5051             : #endif
    5052             : 
    5053             : #if RK4_ENABLED
    5054         100 :     module procedure trsv_EXP_CUUA_OTOA_CGMB_ONOB_RK4
    5055             :         use pm_kind, only: RKC => RK4
    5056             : #include "pm_matrixMulTri@routines.inc.F90"
    5057             :     end procedure
    5058             : #endif
    5059             : 
    5060             : #if RK3_ENABLED
    5061         100 :     module procedure trsv_EXP_CUUA_OTOA_CGMB_ONOB_RK3
    5062             :         use pm_kind, only: RKC => RK3
    5063             : #include "pm_matrixMulTri@routines.inc.F90"
    5064             :     end procedure
    5065             : #endif
    5066             : 
    5067             : #if RK2_ENABLED
    5068         100 :     module procedure trsv_EXP_CUUA_OTOA_CGMB_ONOB_RK2
    5069             :         use pm_kind, only: RKC => RK2
    5070             : #define DISPATCH_ENABLED 1
    5071             : #include "pm_matrixMulTri@routines.inc.F90"
    5072             : #undef  DISPATCH_ENABLED
    5073             :     end procedure
    5074             : #endif
    5075             : 
    5076             : #if RK1_ENABLED
    5077         100 :     module procedure trsv_EXP_CUUA_OTOA_CGMB_ONOB_RK1
    5078             :         use pm_kind, only: RKC => RK1
    5079             : #define DISPATCH_ENABLED 1
    5080             : #include "pm_matrixMulTri@routines.inc.F90"
    5081             : #undef  DISPATCH_ENABLED
    5082             :     end procedure
    5083             : #endif
    5084             : 
    5085             : #undef RK_ENABLED
    5086             : 
    5087             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5088             : 
    5089             : #undef OTOA_ENABLED
    5090             : 
    5091             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5092             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5093             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5094             : 
    5095             : #define OTUA_ENABLED 1
    5096             : 
    5097             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5098             : 
    5099             : #define CK_ENABLED 1
    5100             : 
    5101             : #if CK5_ENABLED
    5102             :     module procedure trsv_EXP_CUUA_OTUA_CGMB_ONOB_CK5
    5103             :         use pm_kind, only: CKC => CK5
    5104             : #include "pm_matrixMulTri@routines.inc.F90"
    5105             :     end procedure
    5106             : #endif
    5107             : 
    5108             : #if CK4_ENABLED
    5109         100 :     module procedure trsv_EXP_CUUA_OTUA_CGMB_ONOB_CK4
    5110             :         use pm_kind, only: CKC => CK4
    5111             : #include "pm_matrixMulTri@routines.inc.F90"
    5112             :     end procedure
    5113             : #endif
    5114             : 
    5115             : #if CK3_ENABLED
    5116         100 :     module procedure trsv_EXP_CUUA_OTUA_CGMB_ONOB_CK3
    5117             :         use pm_kind, only: CKC => CK3
    5118             : #include "pm_matrixMulTri@routines.inc.F90"
    5119             :     end procedure
    5120             : #endif
    5121             : 
    5122             : #if CK2_ENABLED
    5123         100 :     module procedure trsv_EXP_CUUA_OTUA_CGMB_ONOB_CK2
    5124             :         use pm_kind, only: CKC => CK2
    5125             : #define DISPATCH_ENABLED 1
    5126             : #include "pm_matrixMulTri@routines.inc.F90"
    5127             : #undef  DISPATCH_ENABLED
    5128             :     end procedure
    5129             : #endif
    5130             : 
    5131             : #if CK1_ENABLED
    5132         101 :     module procedure trsv_EXP_CUUA_OTUA_CGMB_ONOB_CK1
    5133             :         use pm_kind, only: CKC => CK1
    5134             : #define DISPATCH_ENABLED 1
    5135             : #include "pm_matrixMulTri@routines.inc.F90"
    5136             : #undef  DISPATCH_ENABLED
    5137             :     end procedure
    5138             : #endif
    5139             : 
    5140             : #undef CK_ENABLED
    5141             : 
    5142             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5143             : 
    5144             : #define RK_ENABLED 1
    5145             : 
    5146             : #if RK5_ENABLED
    5147             :     module procedure trsv_EXP_CUUA_OTUA_CGMB_ONOB_RK5
    5148             :         use pm_kind, only: RKC => RK5
    5149             : #include "pm_matrixMulTri@routines.inc.F90"
    5150             :     end procedure
    5151             : #endif
    5152             : 
    5153             : #if RK4_ENABLED
    5154         100 :     module procedure trsv_EXP_CUUA_OTUA_CGMB_ONOB_RK4
    5155             :         use pm_kind, only: RKC => RK4
    5156             : #include "pm_matrixMulTri@routines.inc.F90"
    5157             :     end procedure
    5158             : #endif
    5159             : 
    5160             : #if RK3_ENABLED
    5161         100 :     module procedure trsv_EXP_CUUA_OTUA_CGMB_ONOB_RK3
    5162             :         use pm_kind, only: RKC => RK3
    5163             : #include "pm_matrixMulTri@routines.inc.F90"
    5164             :     end procedure
    5165             : #endif
    5166             : 
    5167             : #if RK2_ENABLED
    5168         100 :     module procedure trsv_EXP_CUUA_OTUA_CGMB_ONOB_RK2
    5169             :         use pm_kind, only: RKC => RK2
    5170             : #define DISPATCH_ENABLED 1
    5171             : #include "pm_matrixMulTri@routines.inc.F90"
    5172             : #undef  DISPATCH_ENABLED
    5173             :     end procedure
    5174             : #endif
    5175             : 
    5176             : #if RK1_ENABLED
    5177         100 :     module procedure trsv_EXP_CUUA_OTUA_CGMB_ONOB_RK1
    5178             :         use pm_kind, only: RKC => RK1
    5179             : #define DISPATCH_ENABLED 1
    5180             : #include "pm_matrixMulTri@routines.inc.F90"
    5181             : #undef  DISPATCH_ENABLED
    5182             :     end procedure
    5183             : #endif
    5184             : 
    5185             : #undef RK_ENABLED
    5186             : 
    5187             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5188             : 
    5189             : #undef OTUA_ENABLED
    5190             : 
    5191             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5192             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5193             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5194             : 
    5195             : #undef CUUA_ENABLED
    5196             : 
    5197             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5198             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5199             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5200             : 
    5201             : #undef ONOB_ENABLED
    5202             : 
    5203             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5204             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5205             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5206             : 
    5207             : #undef CGMB_ENABLED
    5208             : 
    5209             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5210             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5211             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5212             : 
    5213             : #undef EXP_ENABLED
    5214             : 
    5215             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5216             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5217             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5218             : 
    5219             : #undef trsv_ENABLED
    5220             : 
    5221             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5222             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5223             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5224             : 
    5225             : #undef setMatMulTri_ENABLED
    5226             : 
    5227             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5228             : 
    5229             : #define setMatMulTri_ENABLED 1
    5230             : 
    5231             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5232             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5233             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5234             : 
    5235             : #define trmm_ENABLED 1
    5236             : 
    5237             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5238             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5239             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5240             : 
    5241             : #define ASS_ENABLED 1
    5242             : 
    5243             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5244             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5245             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5246             : 
    5247             : #define CGMB_ENABLED 1
    5248             : 
    5249             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5250             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5251             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5252             : 
    5253             : #define ONOB_ENABLED 1
    5254             : 
    5255             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5256             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5257             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5258             : 
    5259             : #define CLDA_ENABLED 1
    5260             : 
    5261             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5262             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5263             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5264             : 
    5265             : #define ONOA_ENABLED 1
    5266             : 
    5267             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5268             : 
    5269             : #define CK_ENABLED 1
    5270             : 
    5271             : #if CK5_ENABLED
    5272             :     module procedure trmm_ASS_CLDA_ONOA_CGMB_ONOB_CK5
    5273             :         use pm_kind, only: CKC => CK5
    5274             : #include "pm_matrixMulTri@routines.inc.F90"
    5275             :     end procedure
    5276             : #endif
    5277             : 
    5278             : #if CK4_ENABLED
    5279         200 :     module procedure trmm_ASS_CLDA_ONOA_CGMB_ONOB_CK4
    5280             :         use pm_kind, only: CKC => CK4
    5281             : #include "pm_matrixMulTri@routines.inc.F90"
    5282             :     end procedure
    5283             : #endif
    5284             : 
    5285             : #if CK3_ENABLED
    5286         200 :     module procedure trmm_ASS_CLDA_ONOA_CGMB_ONOB_CK3
    5287             :         use pm_kind, only: CKC => CK3
    5288             : #include "pm_matrixMulTri@routines.inc.F90"
    5289             :     end procedure
    5290             : #endif
    5291             : 
    5292             : #if CK2_ENABLED
    5293         200 :     module procedure trmm_ASS_CLDA_ONOA_CGMB_ONOB_CK2
    5294             :         use pm_kind, only: CKC => CK2
    5295             : #define DISPATCH_ENABLED 1
    5296             : #include "pm_matrixMulTri@routines.inc.F90"
    5297             : #undef  DISPATCH_ENABLED
    5298             :     end procedure
    5299             : #endif
    5300             : 
    5301             : #if CK1_ENABLED
    5302         200 :     module procedure trmm_ASS_CLDA_ONOA_CGMB_ONOB_CK1
    5303             :         use pm_kind, only: CKC => CK1
    5304             : #define DISPATCH_ENABLED 1
    5305             : #include "pm_matrixMulTri@routines.inc.F90"
    5306             : #undef  DISPATCH_ENABLED
    5307             :     end procedure
    5308             : #endif
    5309             : 
    5310             : #undef CK_ENABLED
    5311             : 
    5312             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5313             : 
    5314             : #define RK_ENABLED 1
    5315             : 
    5316             : #if RK5_ENABLED
    5317             :     module procedure trmm_ASS_CLDA_ONOA_CGMB_ONOB_RK5
    5318             :         use pm_kind, only: RKC => RK5
    5319             : #include "pm_matrixMulTri@routines.inc.F90"
    5320             :     end procedure
    5321             : #endif
    5322             : 
    5323             : #if RK4_ENABLED
    5324         200 :     module procedure trmm_ASS_CLDA_ONOA_CGMB_ONOB_RK4
    5325             :         use pm_kind, only: RKC => RK4
    5326             : #include "pm_matrixMulTri@routines.inc.F90"
    5327             :     end procedure
    5328             : #endif
    5329             : 
    5330             : #if RK3_ENABLED
    5331         200 :     module procedure trmm_ASS_CLDA_ONOA_CGMB_ONOB_RK3
    5332             :         use pm_kind, only: RKC => RK3
    5333             : #include "pm_matrixMulTri@routines.inc.F90"
    5334             :     end procedure
    5335             : #endif
    5336             : 
    5337             : #if RK2_ENABLED
    5338         200 :     module procedure trmm_ASS_CLDA_ONOA_CGMB_ONOB_RK2
    5339             :         use pm_kind, only: RKC => RK2
    5340             : #define DISPATCH_ENABLED 1
    5341             : #include "pm_matrixMulTri@routines.inc.F90"
    5342             : #undef  DISPATCH_ENABLED
    5343             :     end procedure
    5344             : #endif
    5345             : 
    5346             : #if RK1_ENABLED
    5347         200 :     module procedure trmm_ASS_CLDA_ONOA_CGMB_ONOB_RK1
    5348             :         use pm_kind, only: RKC => RK1
    5349             : #define DISPATCH_ENABLED 1
    5350             : #include "pm_matrixMulTri@routines.inc.F90"
    5351             : #undef  DISPATCH_ENABLED
    5352             :     end procedure
    5353             : #endif
    5354             : 
    5355             : #undef RK_ENABLED
    5356             : 
    5357             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5358             : 
    5359             : #undef ONOA_ENABLED
    5360             : 
    5361             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5362             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5363             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5364             : 
    5365             : #define OTSA_ENABLED 1
    5366             : 
    5367             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5368             : 
    5369             : #define CK_ENABLED 1
    5370             : 
    5371             : #if CK5_ENABLED
    5372             :     module procedure trmm_ASS_CLDA_OTSA_CGMB_ONOB_CK5
    5373             :         use pm_kind, only: CKC => CK5
    5374             : #include "pm_matrixMulTri@routines.inc.F90"
    5375             :     end procedure
    5376             : #endif
    5377             : 
    5378             : #if CK4_ENABLED
    5379         200 :     module procedure trmm_ASS_CLDA_OTSA_CGMB_ONOB_CK4
    5380             :         use pm_kind, only: CKC => CK4
    5381             : #include "pm_matrixMulTri@routines.inc.F90"
    5382             :     end procedure
    5383             : #endif
    5384             : 
    5385             : #if CK3_ENABLED
    5386         200 :     module procedure trmm_ASS_CLDA_OTSA_CGMB_ONOB_CK3
    5387             :         use pm_kind, only: CKC => CK3
    5388             : #include "pm_matrixMulTri@routines.inc.F90"
    5389             :     end procedure
    5390             : #endif
    5391             : 
    5392             : #if CK2_ENABLED
    5393         200 :     module procedure trmm_ASS_CLDA_OTSA_CGMB_ONOB_CK2
    5394             :         use pm_kind, only: CKC => CK2
    5395             : #define DISPATCH_ENABLED 1
    5396             : #include "pm_matrixMulTri@routines.inc.F90"
    5397             : #undef  DISPATCH_ENABLED
    5398             :     end procedure
    5399             : #endif
    5400             : 
    5401             : #if CK1_ENABLED
    5402         200 :     module procedure trmm_ASS_CLDA_OTSA_CGMB_ONOB_CK1
    5403             :         use pm_kind, only: CKC => CK1
    5404             : #define DISPATCH_ENABLED 1
    5405             : #include "pm_matrixMulTri@routines.inc.F90"
    5406             : #undef  DISPATCH_ENABLED
    5407             :     end procedure
    5408             : #endif
    5409             : 
    5410             : #undef CK_ENABLED
    5411             : 
    5412             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5413             : 
    5414             : #define RK_ENABLED 1
    5415             : 
    5416             : #if RK5_ENABLED
    5417             :     module procedure trmm_ASS_CLDA_OTSA_CGMB_ONOB_RK5
    5418             :         use pm_kind, only: RKC => RK5
    5419             : #include "pm_matrixMulTri@routines.inc.F90"
    5420             :     end procedure
    5421             : #endif
    5422             : 
    5423             : #if RK4_ENABLED
    5424         200 :     module procedure trmm_ASS_CLDA_OTSA_CGMB_ONOB_RK4
    5425             :         use pm_kind, only: RKC => RK4
    5426             : #include "pm_matrixMulTri@routines.inc.F90"
    5427             :     end procedure
    5428             : #endif
    5429             : 
    5430             : #if RK3_ENABLED
    5431         200 :     module procedure trmm_ASS_CLDA_OTSA_CGMB_ONOB_RK3
    5432             :         use pm_kind, only: RKC => RK3
    5433             : #include "pm_matrixMulTri@routines.inc.F90"
    5434             :     end procedure
    5435             : #endif
    5436             : 
    5437             : #if RK2_ENABLED
    5438         200 :     module procedure trmm_ASS_CLDA_OTSA_CGMB_ONOB_RK2
    5439             :         use pm_kind, only: RKC => RK2
    5440             : #define DISPATCH_ENABLED 1
    5441             : #include "pm_matrixMulTri@routines.inc.F90"
    5442             : #undef  DISPATCH_ENABLED
    5443             :     end procedure
    5444             : #endif
    5445             : 
    5446             : #if RK1_ENABLED
    5447         200 :     module procedure trmm_ASS_CLDA_OTSA_CGMB_ONOB_RK1
    5448             :         use pm_kind, only: RKC => RK1
    5449             : #define DISPATCH_ENABLED 1
    5450             : #include "pm_matrixMulTri@routines.inc.F90"
    5451             : #undef  DISPATCH_ENABLED
    5452             :     end procedure
    5453             : #endif
    5454             : 
    5455             : #undef RK_ENABLED
    5456             : 
    5457             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5458             : 
    5459             : #undef OTSA_ENABLED
    5460             : 
    5461             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5462             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5463             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5464             : 
    5465             : #define OTHA_ENABLED 1
    5466             : 
    5467             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5468             : 
    5469             : #define CK_ENABLED 1
    5470             : 
    5471             : #if CK5_ENABLED
    5472             :     module procedure trmm_ASS_CLDA_OTHA_CGMB_ONOB_CK5
    5473             :         use pm_kind, only: CKC => CK5
    5474             : #include "pm_matrixMulTri@routines.inc.F90"
    5475             :     end procedure
    5476             : #endif
    5477             : 
    5478             : #if CK4_ENABLED
    5479         200 :     module procedure trmm_ASS_CLDA_OTHA_CGMB_ONOB_CK4
    5480             :         use pm_kind, only: CKC => CK4
    5481             : #include "pm_matrixMulTri@routines.inc.F90"
    5482             :     end procedure
    5483             : #endif
    5484             : 
    5485             : #if CK3_ENABLED
    5486         200 :     module procedure trmm_ASS_CLDA_OTHA_CGMB_ONOB_CK3
    5487             :         use pm_kind, only: CKC => CK3
    5488             : #include "pm_matrixMulTri@routines.inc.F90"
    5489             :     end procedure
    5490             : #endif
    5491             : 
    5492             : #if CK2_ENABLED
    5493         200 :     module procedure trmm_ASS_CLDA_OTHA_CGMB_ONOB_CK2
    5494             :         use pm_kind, only: CKC => CK2
    5495             : #define DISPATCH_ENABLED 1
    5496             : #include "pm_matrixMulTri@routines.inc.F90"
    5497             : #undef  DISPATCH_ENABLED
    5498             :     end procedure
    5499             : #endif
    5500             : 
    5501             : #if CK1_ENABLED
    5502         200 :     module procedure trmm_ASS_CLDA_OTHA_CGMB_ONOB_CK1
    5503             :         use pm_kind, only: CKC => CK1
    5504             : #define DISPATCH_ENABLED 1
    5505             : #include "pm_matrixMulTri@routines.inc.F90"
    5506             : #undef  DISPATCH_ENABLED
    5507             :     end procedure
    5508             : #endif
    5509             : 
    5510             : #undef CK_ENABLED
    5511             : 
    5512             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5513             : 
    5514             : #define RK_ENABLED 1
    5515             : 
    5516             : #if RK5_ENABLED
    5517             :     module procedure trmm_ASS_CLDA_OTHA_CGMB_ONOB_RK5
    5518             :         use pm_kind, only: RKC => RK5
    5519             : #include "pm_matrixMulTri@routines.inc.F90"
    5520             :     end procedure
    5521             : #endif
    5522             : 
    5523             : #if RK4_ENABLED
    5524         200 :     module procedure trmm_ASS_CLDA_OTHA_CGMB_ONOB_RK4
    5525             :         use pm_kind, only: RKC => RK4
    5526             : #include "pm_matrixMulTri@routines.inc.F90"
    5527             :     end procedure
    5528             : #endif
    5529             : 
    5530             : #if RK3_ENABLED
    5531         200 :     module procedure trmm_ASS_CLDA_OTHA_CGMB_ONOB_RK3
    5532             :         use pm_kind, only: RKC => RK3
    5533             : #include "pm_matrixMulTri@routines.inc.F90"
    5534             :     end procedure
    5535             : #endif
    5536             : 
    5537             : #if RK2_ENABLED
    5538         200 :     module procedure trmm_ASS_CLDA_OTHA_CGMB_ONOB_RK2
    5539             :         use pm_kind, only: RKC => RK2
    5540             : #define DISPATCH_ENABLED 1
    5541             : #include "pm_matrixMulTri@routines.inc.F90"
    5542             : #undef  DISPATCH_ENABLED
    5543             :     end procedure
    5544             : #endif
    5545             : 
    5546             : #if RK1_ENABLED
    5547         200 :     module procedure trmm_ASS_CLDA_OTHA_CGMB_ONOB_RK1
    5548             :         use pm_kind, only: RKC => RK1
    5549             : #define DISPATCH_ENABLED 1
    5550             : #include "pm_matrixMulTri@routines.inc.F90"
    5551             : #undef  DISPATCH_ENABLED
    5552             :     end procedure
    5553             : #endif
    5554             : 
    5555             : #undef RK_ENABLED
    5556             : 
    5557             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5558             : 
    5559             : #undef OTHA_ENABLED
    5560             : 
    5561             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5562             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5563             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5564             : 
    5565             : #undef CLDA_ENABLED
    5566             : 
    5567             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5568             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5569             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5570             : 
    5571             : #define CUDA_ENABLED 1
    5572             : 
    5573             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5574             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5575             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5576             : 
    5577             : #define ONOA_ENABLED 1
    5578             : 
    5579             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5580             : 
    5581             : #define CK_ENABLED 1
    5582             : 
    5583             : #if CK5_ENABLED
    5584             :     module procedure trmm_ASS_CUDA_ONOA_CGMB_ONOB_CK5
    5585             :         use pm_kind, only: CKC => CK5
    5586             : #include "pm_matrixMulTri@routines.inc.F90"
    5587             :     end procedure
    5588             : #endif
    5589             : 
    5590             : #if CK4_ENABLED
    5591         200 :     module procedure trmm_ASS_CUDA_ONOA_CGMB_ONOB_CK4
    5592             :         use pm_kind, only: CKC => CK4
    5593             : #include "pm_matrixMulTri@routines.inc.F90"
    5594             :     end procedure
    5595             : #endif
    5596             : 
    5597             : #if CK3_ENABLED
    5598         200 :     module procedure trmm_ASS_CUDA_ONOA_CGMB_ONOB_CK3
    5599             :         use pm_kind, only: CKC => CK3
    5600             : #include "pm_matrixMulTri@routines.inc.F90"
    5601             :     end procedure
    5602             : #endif
    5603             : 
    5604             : #if CK2_ENABLED
    5605         200 :     module procedure trmm_ASS_CUDA_ONOA_CGMB_ONOB_CK2
    5606             :         use pm_kind, only: CKC => CK2
    5607             : #define DISPATCH_ENABLED 1
    5608             : #include "pm_matrixMulTri@routines.inc.F90"
    5609             : #undef  DISPATCH_ENABLED
    5610             :     end procedure
    5611             : #endif
    5612             : 
    5613             : #if CK1_ENABLED
    5614         200 :     module procedure trmm_ASS_CUDA_ONOA_CGMB_ONOB_CK1
    5615             :         use pm_kind, only: CKC => CK1
    5616             : #define DISPATCH_ENABLED 1
    5617             : #include "pm_matrixMulTri@routines.inc.F90"
    5618             : #undef  DISPATCH_ENABLED
    5619             :     end procedure
    5620             : #endif
    5621             : 
    5622             : #undef CK_ENABLED
    5623             : 
    5624             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5625             : 
    5626             : #define RK_ENABLED 1
    5627             : 
    5628             : #if RK5_ENABLED
    5629             :     module procedure trmm_ASS_CUDA_ONOA_CGMB_ONOB_RK5
    5630             :         use pm_kind, only: RKC => RK5
    5631             : #include "pm_matrixMulTri@routines.inc.F90"
    5632             :     end procedure
    5633             : #endif
    5634             : 
    5635             : #if RK4_ENABLED
    5636         200 :     module procedure trmm_ASS_CUDA_ONOA_CGMB_ONOB_RK4
    5637             :         use pm_kind, only: RKC => RK4
    5638             : #include "pm_matrixMulTri@routines.inc.F90"
    5639             :     end procedure
    5640             : #endif
    5641             : 
    5642             : #if RK3_ENABLED
    5643         200 :     module procedure trmm_ASS_CUDA_ONOA_CGMB_ONOB_RK3
    5644             :         use pm_kind, only: RKC => RK3
    5645             : #include "pm_matrixMulTri@routines.inc.F90"
    5646             :     end procedure
    5647             : #endif
    5648             : 
    5649             : #if RK2_ENABLED
    5650         200 :     module procedure trmm_ASS_CUDA_ONOA_CGMB_ONOB_RK2
    5651             :         use pm_kind, only: RKC => RK2
    5652             : #define DISPATCH_ENABLED 1
    5653             : #include "pm_matrixMulTri@routines.inc.F90"
    5654             : #undef  DISPATCH_ENABLED
    5655             :     end procedure
    5656             : #endif
    5657             : 
    5658             : #if RK1_ENABLED
    5659         201 :     module procedure trmm_ASS_CUDA_ONOA_CGMB_ONOB_RK1
    5660             :         use pm_kind, only: RKC => RK1
    5661             : #define DISPATCH_ENABLED 1
    5662             : #include "pm_matrixMulTri@routines.inc.F90"
    5663             : #undef  DISPATCH_ENABLED
    5664             :     end procedure
    5665             : #endif
    5666             : 
    5667             : #undef RK_ENABLED
    5668             : 
    5669             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5670             : 
    5671             : #undef ONOA_ENABLED
    5672             : 
    5673             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5674             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5675             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5676             : 
    5677             : #define OTSA_ENABLED 1
    5678             : 
    5679             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5680             : 
    5681             : #define CK_ENABLED 1
    5682             : 
    5683             : #if CK5_ENABLED
    5684             :     module procedure trmm_ASS_CUDA_OTSA_CGMB_ONOB_CK5
    5685             :         use pm_kind, only: CKC => CK5
    5686             : #include "pm_matrixMulTri@routines.inc.F90"
    5687             :     end procedure
    5688             : #endif
    5689             : 
    5690             : #if CK4_ENABLED
    5691         200 :     module procedure trmm_ASS_CUDA_OTSA_CGMB_ONOB_CK4
    5692             :         use pm_kind, only: CKC => CK4
    5693             : #include "pm_matrixMulTri@routines.inc.F90"
    5694             :     end procedure
    5695             : #endif
    5696             : 
    5697             : #if CK3_ENABLED
    5698         200 :     module procedure trmm_ASS_CUDA_OTSA_CGMB_ONOB_CK3
    5699             :         use pm_kind, only: CKC => CK3
    5700             : #include "pm_matrixMulTri@routines.inc.F90"
    5701             :     end procedure
    5702             : #endif
    5703             : 
    5704             : #if CK2_ENABLED
    5705         200 :     module procedure trmm_ASS_CUDA_OTSA_CGMB_ONOB_CK2
    5706             :         use pm_kind, only: CKC => CK2
    5707             : #define DISPATCH_ENABLED 1
    5708             : #include "pm_matrixMulTri@routines.inc.F90"
    5709             : #undef  DISPATCH_ENABLED
    5710             :     end procedure
    5711             : #endif
    5712             : 
    5713             : #if CK1_ENABLED
    5714         200 :     module procedure trmm_ASS_CUDA_OTSA_CGMB_ONOB_CK1
    5715             :         use pm_kind, only: CKC => CK1
    5716             : #define DISPATCH_ENABLED 1
    5717             : #include "pm_matrixMulTri@routines.inc.F90"
    5718             : #undef  DISPATCH_ENABLED
    5719             :     end procedure
    5720             : #endif
    5721             : 
    5722             : #undef CK_ENABLED
    5723             : 
    5724             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5725             : 
    5726             : #define RK_ENABLED 1
    5727             : 
    5728             : #if RK5_ENABLED
    5729             :     module procedure trmm_ASS_CUDA_OTSA_CGMB_ONOB_RK5
    5730             :         use pm_kind, only: RKC => RK5
    5731             : #include "pm_matrixMulTri@routines.inc.F90"
    5732             :     end procedure
    5733             : #endif
    5734             : 
    5735             : #if RK4_ENABLED
    5736         200 :     module procedure trmm_ASS_CUDA_OTSA_CGMB_ONOB_RK4
    5737             :         use pm_kind, only: RKC => RK4
    5738             : #include "pm_matrixMulTri@routines.inc.F90"
    5739             :     end procedure
    5740             : #endif
    5741             : 
    5742             : #if RK3_ENABLED
    5743         200 :     module procedure trmm_ASS_CUDA_OTSA_CGMB_ONOB_RK3
    5744             :         use pm_kind, only: RKC => RK3
    5745             : #include "pm_matrixMulTri@routines.inc.F90"
    5746             :     end procedure
    5747             : #endif
    5748             : 
    5749             : #if RK2_ENABLED
    5750         200 :     module procedure trmm_ASS_CUDA_OTSA_CGMB_ONOB_RK2
    5751             :         use pm_kind, only: RKC => RK2
    5752             : #define DISPATCH_ENABLED 1
    5753             : #include "pm_matrixMulTri@routines.inc.F90"
    5754             : #undef  DISPATCH_ENABLED
    5755             :     end procedure
    5756             : #endif
    5757             : 
    5758             : #if RK1_ENABLED
    5759         201 :     module procedure trmm_ASS_CUDA_OTSA_CGMB_ONOB_RK1
    5760             :         use pm_kind, only: RKC => RK1
    5761             : #define DISPATCH_ENABLED 1
    5762             : #include "pm_matrixMulTri@routines.inc.F90"
    5763             : #undef  DISPATCH_ENABLED
    5764             :     end procedure
    5765             : #endif
    5766             : 
    5767             : #undef RK_ENABLED
    5768             : 
    5769             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5770             : 
    5771             : #undef OTSA_ENABLED
    5772             : 
    5773             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5774             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5775             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5776             : 
    5777             : #define OTHA_ENABLED 1
    5778             : 
    5779             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5780             : 
    5781             : #define CK_ENABLED 1
    5782             : 
    5783             : #if CK5_ENABLED
    5784             :     module procedure trmm_ASS_CUDA_OTHA_CGMB_ONOB_CK5
    5785             :         use pm_kind, only: CKC => CK5
    5786             : #include "pm_matrixMulTri@routines.inc.F90"
    5787             :     end procedure
    5788             : #endif
    5789             : 
    5790             : #if CK4_ENABLED
    5791         200 :     module procedure trmm_ASS_CUDA_OTHA_CGMB_ONOB_CK4
    5792             :         use pm_kind, only: CKC => CK4
    5793             : #include "pm_matrixMulTri@routines.inc.F90"
    5794             :     end procedure
    5795             : #endif
    5796             : 
    5797             : #if CK3_ENABLED
    5798         200 :     module procedure trmm_ASS_CUDA_OTHA_CGMB_ONOB_CK3
    5799             :         use pm_kind, only: CKC => CK3
    5800             : #include "pm_matrixMulTri@routines.inc.F90"
    5801             :     end procedure
    5802             : #endif
    5803             : 
    5804             : #if CK2_ENABLED
    5805         200 :     module procedure trmm_ASS_CUDA_OTHA_CGMB_ONOB_CK2
    5806             :         use pm_kind, only: CKC => CK2
    5807             : #define DISPATCH_ENABLED 1
    5808             : #include "pm_matrixMulTri@routines.inc.F90"
    5809             : #undef  DISPATCH_ENABLED
    5810             :     end procedure
    5811             : #endif
    5812             : 
    5813             : #if CK1_ENABLED
    5814         200 :     module procedure trmm_ASS_CUDA_OTHA_CGMB_ONOB_CK1
    5815             :         use pm_kind, only: CKC => CK1
    5816             : #define DISPATCH_ENABLED 1
    5817             : #include "pm_matrixMulTri@routines.inc.F90"
    5818             : #undef  DISPATCH_ENABLED
    5819             :     end procedure
    5820             : #endif
    5821             : 
    5822             : #undef CK_ENABLED
    5823             : 
    5824             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5825             : 
    5826             : #define RK_ENABLED 1
    5827             : 
    5828             : #if RK5_ENABLED
    5829             :     module procedure trmm_ASS_CUDA_OTHA_CGMB_ONOB_RK5
    5830             :         use pm_kind, only: RKC => RK5
    5831             : #include "pm_matrixMulTri@routines.inc.F90"
    5832             :     end procedure
    5833             : #endif
    5834             : 
    5835             : #if RK4_ENABLED
    5836         200 :     module procedure trmm_ASS_CUDA_OTHA_CGMB_ONOB_RK4
    5837             :         use pm_kind, only: RKC => RK4
    5838             : #include "pm_matrixMulTri@routines.inc.F90"
    5839             :     end procedure
    5840             : #endif
    5841             : 
    5842             : #if RK3_ENABLED
    5843         200 :     module procedure trmm_ASS_CUDA_OTHA_CGMB_ONOB_RK3
    5844             :         use pm_kind, only: RKC => RK3
    5845             : #include "pm_matrixMulTri@routines.inc.F90"
    5846             :     end procedure
    5847             : #endif
    5848             : 
    5849             : #if RK2_ENABLED
    5850         200 :     module procedure trmm_ASS_CUDA_OTHA_CGMB_ONOB_RK2
    5851             :         use pm_kind, only: RKC => RK2
    5852             : #define DISPATCH_ENABLED 1
    5853             : #include "pm_matrixMulTri@routines.inc.F90"
    5854             : #undef  DISPATCH_ENABLED
    5855             :     end procedure
    5856             : #endif
    5857             : 
    5858             : #if RK1_ENABLED
    5859         200 :     module procedure trmm_ASS_CUDA_OTHA_CGMB_ONOB_RK1
    5860             :         use pm_kind, only: RKC => RK1
    5861             : #define DISPATCH_ENABLED 1
    5862             : #include "pm_matrixMulTri@routines.inc.F90"
    5863             : #undef  DISPATCH_ENABLED
    5864             :     end procedure
    5865             : #endif
    5866             : 
    5867             : #undef RK_ENABLED
    5868             : 
    5869             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5870             : 
    5871             : #undef OTHA_ENABLED
    5872             : 
    5873             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5874             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5875             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5876             : 
    5877             : #undef CUDA_ENABLED
    5878             : 
    5879             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5880             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5881             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5882             : 
    5883             : #define CLUA_ENABLED 1
    5884             : 
    5885             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5886             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5887             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5888             : 
    5889             : #define ONOA_ENABLED 1
    5890             : 
    5891             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5892             : 
    5893             : #define CK_ENABLED 1
    5894             : 
    5895             : #if CK5_ENABLED
    5896             :     module procedure trmm_ASS_CLUA_ONOA_CGMB_ONOB_CK5
    5897             :         use pm_kind, only: CKC => CK5
    5898             : #include "pm_matrixMulTri@routines.inc.F90"
    5899             :     end procedure
    5900             : #endif
    5901             : 
    5902             : #if CK4_ENABLED
    5903         200 :     module procedure trmm_ASS_CLUA_ONOA_CGMB_ONOB_CK4
    5904             :         use pm_kind, only: CKC => CK4
    5905             : #include "pm_matrixMulTri@routines.inc.F90"
    5906             :     end procedure
    5907             : #endif
    5908             : 
    5909             : #if CK3_ENABLED
    5910         200 :     module procedure trmm_ASS_CLUA_ONOA_CGMB_ONOB_CK3
    5911             :         use pm_kind, only: CKC => CK3
    5912             : #include "pm_matrixMulTri@routines.inc.F90"
    5913             :     end procedure
    5914             : #endif
    5915             : 
    5916             : #if CK2_ENABLED
    5917         200 :     module procedure trmm_ASS_CLUA_ONOA_CGMB_ONOB_CK2
    5918             :         use pm_kind, only: CKC => CK2
    5919             : #define DISPATCH_ENABLED 1
    5920             : #include "pm_matrixMulTri@routines.inc.F90"
    5921             : #undef  DISPATCH_ENABLED
    5922             :     end procedure
    5923             : #endif
    5924             : 
    5925             : #if CK1_ENABLED
    5926         200 :     module procedure trmm_ASS_CLUA_ONOA_CGMB_ONOB_CK1
    5927             :         use pm_kind, only: CKC => CK1
    5928             : #define DISPATCH_ENABLED 1
    5929             : #include "pm_matrixMulTri@routines.inc.F90"
    5930             : #undef  DISPATCH_ENABLED
    5931             :     end procedure
    5932             : #endif
    5933             : 
    5934             : #undef CK_ENABLED
    5935             : 
    5936             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5937             : 
    5938             : #define RK_ENABLED 1
    5939             : 
    5940             : #if RK5_ENABLED
    5941             :     module procedure trmm_ASS_CLUA_ONOA_CGMB_ONOB_RK5
    5942             :         use pm_kind, only: RKC => RK5
    5943             : #include "pm_matrixMulTri@routines.inc.F90"
    5944             :     end procedure
    5945             : #endif
    5946             : 
    5947             : #if RK4_ENABLED
    5948         200 :     module procedure trmm_ASS_CLUA_ONOA_CGMB_ONOB_RK4
    5949             :         use pm_kind, only: RKC => RK4
    5950             : #include "pm_matrixMulTri@routines.inc.F90"
    5951             :     end procedure
    5952             : #endif
    5953             : 
    5954             : #if RK3_ENABLED
    5955         200 :     module procedure trmm_ASS_CLUA_ONOA_CGMB_ONOB_RK3
    5956             :         use pm_kind, only: RKC => RK3
    5957             : #include "pm_matrixMulTri@routines.inc.F90"
    5958             :     end procedure
    5959             : #endif
    5960             : 
    5961             : #if RK2_ENABLED
    5962         200 :     module procedure trmm_ASS_CLUA_ONOA_CGMB_ONOB_RK2
    5963             :         use pm_kind, only: RKC => RK2
    5964             : #define DISPATCH_ENABLED 1
    5965             : #include "pm_matrixMulTri@routines.inc.F90"
    5966             : #undef  DISPATCH_ENABLED
    5967             :     end procedure
    5968             : #endif
    5969             : 
    5970             : #if RK1_ENABLED
    5971         200 :     module procedure trmm_ASS_CLUA_ONOA_CGMB_ONOB_RK1
    5972             :         use pm_kind, only: RKC => RK1
    5973             : #define DISPATCH_ENABLED 1
    5974             : #include "pm_matrixMulTri@routines.inc.F90"
    5975             : #undef  DISPATCH_ENABLED
    5976             :     end procedure
    5977             : #endif
    5978             : 
    5979             : #undef RK_ENABLED
    5980             : 
    5981             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5982             : 
    5983             : #undef ONOA_ENABLED
    5984             : 
    5985             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5986             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5987             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5988             : 
    5989             : #define OTSA_ENABLED 1
    5990             : 
    5991             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5992             : 
    5993             : #define CK_ENABLED 1
    5994             : 
    5995             : #if CK5_ENABLED
    5996             :     module procedure trmm_ASS_CLUA_OTSA_CGMB_ONOB_CK5
    5997             :         use pm_kind, only: CKC => CK5
    5998             : #include "pm_matrixMulTri@routines.inc.F90"
    5999             :     end procedure
    6000             : #endif
    6001             : 
    6002             : #if CK4_ENABLED
    6003         200 :     module procedure trmm_ASS_CLUA_OTSA_CGMB_ONOB_CK4
    6004             :         use pm_kind, only: CKC => CK4
    6005             : #include "pm_matrixMulTri@routines.inc.F90"
    6006             :     end procedure
    6007             : #endif
    6008             : 
    6009             : #if CK3_ENABLED
    6010         200 :     module procedure trmm_ASS_CLUA_OTSA_CGMB_ONOB_CK3
    6011             :         use pm_kind, only: CKC => CK3
    6012             : #include "pm_matrixMulTri@routines.inc.F90"
    6013             :     end procedure
    6014             : #endif
    6015             : 
    6016             : #if CK2_ENABLED
    6017         200 :     module procedure trmm_ASS_CLUA_OTSA_CGMB_ONOB_CK2
    6018             :         use pm_kind, only: CKC => CK2
    6019             : #define DISPATCH_ENABLED 1
    6020             : #include "pm_matrixMulTri@routines.inc.F90"
    6021             : #undef  DISPATCH_ENABLED
    6022             :     end procedure
    6023             : #endif
    6024             : 
    6025             : #if CK1_ENABLED
    6026         200 :     module procedure trmm_ASS_CLUA_OTSA_CGMB_ONOB_CK1
    6027             :         use pm_kind, only: CKC => CK1
    6028             : #define DISPATCH_ENABLED 1
    6029             : #include "pm_matrixMulTri@routines.inc.F90"
    6030             : #undef  DISPATCH_ENABLED
    6031             :     end procedure
    6032             : #endif
    6033             : 
    6034             : #undef CK_ENABLED
    6035             : 
    6036             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6037             : 
    6038             : #define RK_ENABLED 1
    6039             : 
    6040             : #if RK5_ENABLED
    6041             :     module procedure trmm_ASS_CLUA_OTSA_CGMB_ONOB_RK5
    6042             :         use pm_kind, only: RKC => RK5
    6043             : #include "pm_matrixMulTri@routines.inc.F90"
    6044             :     end procedure
    6045             : #endif
    6046             : 
    6047             : #if RK4_ENABLED
    6048         200 :     module procedure trmm_ASS_CLUA_OTSA_CGMB_ONOB_RK4
    6049             :         use pm_kind, only: RKC => RK4
    6050             : #include "pm_matrixMulTri@routines.inc.F90"
    6051             :     end procedure
    6052             : #endif
    6053             : 
    6054             : #if RK3_ENABLED
    6055         200 :     module procedure trmm_ASS_CLUA_OTSA_CGMB_ONOB_RK3
    6056             :         use pm_kind, only: RKC => RK3
    6057             : #include "pm_matrixMulTri@routines.inc.F90"
    6058             :     end procedure
    6059             : #endif
    6060             : 
    6061             : #if RK2_ENABLED
    6062         200 :     module procedure trmm_ASS_CLUA_OTSA_CGMB_ONOB_RK2
    6063             :         use pm_kind, only: RKC => RK2
    6064             : #define DISPATCH_ENABLED 1
    6065             : #include "pm_matrixMulTri@routines.inc.F90"
    6066             : #undef  DISPATCH_ENABLED
    6067             :     end procedure
    6068             : #endif
    6069             : 
    6070             : #if RK1_ENABLED
    6071         200 :     module procedure trmm_ASS_CLUA_OTSA_CGMB_ONOB_RK1
    6072             :         use pm_kind, only: RKC => RK1
    6073             : #define DISPATCH_ENABLED 1
    6074             : #include "pm_matrixMulTri@routines.inc.F90"
    6075             : #undef  DISPATCH_ENABLED
    6076             :     end procedure
    6077             : #endif
    6078             : 
    6079             : #undef RK_ENABLED
    6080             : 
    6081             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6082             : 
    6083             : #undef OTSA_ENABLED
    6084             : 
    6085             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6086             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6087             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6088             : 
    6089             : #define OTHA_ENABLED 1
    6090             : 
    6091             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6092             : 
    6093             : #define CK_ENABLED 1
    6094             : 
    6095             : #if CK5_ENABLED
    6096             :     module procedure trmm_ASS_CLUA_OTHA_CGMB_ONOB_CK5
    6097             :         use pm_kind, only: CKC => CK5
    6098             : #include "pm_matrixMulTri@routines.inc.F90"
    6099             :     end procedure
    6100             : #endif
    6101             : 
    6102             : #if CK4_ENABLED
    6103         200 :     module procedure trmm_ASS_CLUA_OTHA_CGMB_ONOB_CK4
    6104             :         use pm_kind, only: CKC => CK4
    6105             : #include "pm_matrixMulTri@routines.inc.F90"
    6106             :     end procedure
    6107             : #endif
    6108             : 
    6109             : #if CK3_ENABLED
    6110         200 :     module procedure trmm_ASS_CLUA_OTHA_CGMB_ONOB_CK3
    6111             :         use pm_kind, only: CKC => CK3
    6112             : #include "pm_matrixMulTri@routines.inc.F90"
    6113             :     end procedure
    6114             : #endif
    6115             : 
    6116             : #if CK2_ENABLED
    6117         200 :     module procedure trmm_ASS_CLUA_OTHA_CGMB_ONOB_CK2
    6118             :         use pm_kind, only: CKC => CK2
    6119             : #define DISPATCH_ENABLED 1
    6120             : #include "pm_matrixMulTri@routines.inc.F90"
    6121             : #undef  DISPATCH_ENABLED
    6122             :     end procedure
    6123             : #endif
    6124             : 
    6125             : #if CK1_ENABLED
    6126         200 :     module procedure trmm_ASS_CLUA_OTHA_CGMB_ONOB_CK1
    6127             :         use pm_kind, only: CKC => CK1
    6128             : #define DISPATCH_ENABLED 1
    6129             : #include "pm_matrixMulTri@routines.inc.F90"
    6130             : #undef  DISPATCH_ENABLED
    6131             :     end procedure
    6132             : #endif
    6133             : 
    6134             : #undef CK_ENABLED
    6135             : 
    6136             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6137             : 
    6138             : #define RK_ENABLED 1
    6139             : 
    6140             : #if RK5_ENABLED
    6141             :     module procedure trmm_ASS_CLUA_OTHA_CGMB_ONOB_RK5
    6142             :         use pm_kind, only: RKC => RK5
    6143             : #include "pm_matrixMulTri@routines.inc.F90"
    6144             :     end procedure
    6145             : #endif
    6146             : 
    6147             : #if RK4_ENABLED
    6148         200 :     module procedure trmm_ASS_CLUA_OTHA_CGMB_ONOB_RK4
    6149             :         use pm_kind, only: RKC => RK4
    6150             : #include "pm_matrixMulTri@routines.inc.F90"
    6151             :     end procedure
    6152             : #endif
    6153             : 
    6154             : #if RK3_ENABLED
    6155         200 :     module procedure trmm_ASS_CLUA_OTHA_CGMB_ONOB_RK3
    6156             :         use pm_kind, only: RKC => RK3
    6157             : #include "pm_matrixMulTri@routines.inc.F90"
    6158             :     end procedure
    6159             : #endif
    6160             : 
    6161             : #if RK2_ENABLED
    6162         200 :     module procedure trmm_ASS_CLUA_OTHA_CGMB_ONOB_RK2
    6163             :         use pm_kind, only: RKC => RK2
    6164             : #define DISPATCH_ENABLED 1
    6165             : #include "pm_matrixMulTri@routines.inc.F90"
    6166             : #undef  DISPATCH_ENABLED
    6167             :     end procedure
    6168             : #endif
    6169             : 
    6170             : #if RK1_ENABLED
    6171         200 :     module procedure trmm_ASS_CLUA_OTHA_CGMB_ONOB_RK1
    6172             :         use pm_kind, only: RKC => RK1
    6173             : #define DISPATCH_ENABLED 1
    6174             : #include "pm_matrixMulTri@routines.inc.F90"
    6175             : #undef  DISPATCH_ENABLED
    6176             :     end procedure
    6177             : #endif
    6178             : 
    6179             : #undef RK_ENABLED
    6180             : 
    6181             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6182             : 
    6183             : #undef OTHA_ENABLED
    6184             : 
    6185             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6186             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6187             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6188             : 
    6189             : #undef CLUA_ENABLED
    6190             : 
    6191             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6192             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6193             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6194             : 
    6195             : #define CUUA_ENABLED 1
    6196             : 
    6197             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6198             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6199             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6200             : 
    6201             : #define ONOA_ENABLED 1
    6202             : 
    6203             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6204             : 
    6205             : #define CK_ENABLED 1
    6206             : 
    6207             : #if CK5_ENABLED
    6208             :     module procedure trmm_ASS_CUUA_ONOA_CGMB_ONOB_CK5
    6209             :         use pm_kind, only: CKC => CK5
    6210             : #include "pm_matrixMulTri@routines.inc.F90"
    6211             :     end procedure
    6212             : #endif
    6213             : 
    6214             : #if CK4_ENABLED
    6215         200 :     module procedure trmm_ASS_CUUA_ONOA_CGMB_ONOB_CK4
    6216             :         use pm_kind, only: CKC => CK4
    6217             : #include "pm_matrixMulTri@routines.inc.F90"
    6218             :     end procedure
    6219             : #endif
    6220             : 
    6221             : #if CK3_ENABLED
    6222         200 :     module procedure trmm_ASS_CUUA_ONOA_CGMB_ONOB_CK3
    6223             :         use pm_kind, only: CKC => CK3
    6224             : #include "pm_matrixMulTri@routines.inc.F90"
    6225             :     end procedure
    6226             : #endif
    6227             : 
    6228             : #if CK2_ENABLED
    6229         200 :     module procedure trmm_ASS_CUUA_ONOA_CGMB_ONOB_CK2
    6230             :         use pm_kind, only: CKC => CK2
    6231             : #define DISPATCH_ENABLED 1
    6232             : #include "pm_matrixMulTri@routines.inc.F90"
    6233             : #undef  DISPATCH_ENABLED
    6234             :     end procedure
    6235             : #endif
    6236             : 
    6237             : #if CK1_ENABLED
    6238         200 :     module procedure trmm_ASS_CUUA_ONOA_CGMB_ONOB_CK1
    6239             :         use pm_kind, only: CKC => CK1
    6240             : #define DISPATCH_ENABLED 1
    6241             : #include "pm_matrixMulTri@routines.inc.F90"
    6242             : #undef  DISPATCH_ENABLED
    6243             :     end procedure
    6244             : #endif
    6245             : 
    6246             : #undef CK_ENABLED
    6247             : 
    6248             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6249             : 
    6250             : #define RK_ENABLED 1
    6251             : 
    6252             : #if RK5_ENABLED
    6253             :     module procedure trmm_ASS_CUUA_ONOA_CGMB_ONOB_RK5
    6254             :         use pm_kind, only: RKC => RK5
    6255             : #include "pm_matrixMulTri@routines.inc.F90"
    6256             :     end procedure
    6257             : #endif
    6258             : 
    6259             : #if RK4_ENABLED
    6260         200 :     module procedure trmm_ASS_CUUA_ONOA_CGMB_ONOB_RK4
    6261             :         use pm_kind, only: RKC => RK4
    6262             : #include "pm_matrixMulTri@routines.inc.F90"
    6263             :     end procedure
    6264             : #endif
    6265             : 
    6266             : #if RK3_ENABLED
    6267         200 :     module procedure trmm_ASS_CUUA_ONOA_CGMB_ONOB_RK3
    6268             :         use pm_kind, only: RKC => RK3
    6269             : #include "pm_matrixMulTri@routines.inc.F90"
    6270             :     end procedure
    6271             : #endif
    6272             : 
    6273             : #if RK2_ENABLED
    6274         200 :     module procedure trmm_ASS_CUUA_ONOA_CGMB_ONOB_RK2
    6275             :         use pm_kind, only: RKC => RK2
    6276             : #define DISPATCH_ENABLED 1
    6277             : #include "pm_matrixMulTri@routines.inc.F90"
    6278             : #undef  DISPATCH_ENABLED
    6279             :     end procedure
    6280             : #endif
    6281             : 
    6282             : #if RK1_ENABLED
    6283         200 :     module procedure trmm_ASS_CUUA_ONOA_CGMB_ONOB_RK1
    6284             :         use pm_kind, only: RKC => RK1
    6285             : #define DISPATCH_ENABLED 1
    6286             : #include "pm_matrixMulTri@routines.inc.F90"
    6287             : #undef  DISPATCH_ENABLED
    6288             :     end procedure
    6289             : #endif
    6290             : 
    6291             : #undef RK_ENABLED
    6292             : 
    6293             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6294             : 
    6295             : #undef ONOA_ENABLED
    6296             : 
    6297             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6298             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6299             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6300             : 
    6301             : #define OTSA_ENABLED 1
    6302             : 
    6303             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6304             : 
    6305             : #define CK_ENABLED 1
    6306             : 
    6307             : #if CK5_ENABLED
    6308             :     module procedure trmm_ASS_CUUA_OTSA_CGMB_ONOB_CK5
    6309             :         use pm_kind, only: CKC => CK5
    6310             : #include "pm_matrixMulTri@routines.inc.F90"
    6311             :     end procedure
    6312             : #endif
    6313             : 
    6314             : #if CK4_ENABLED
    6315         200 :     module procedure trmm_ASS_CUUA_OTSA_CGMB_ONOB_CK4
    6316             :         use pm_kind, only: CKC => CK4
    6317             : #include "pm_matrixMulTri@routines.inc.F90"
    6318             :     end procedure
    6319             : #endif
    6320             : 
    6321             : #if CK3_ENABLED
    6322         200 :     module procedure trmm_ASS_CUUA_OTSA_CGMB_ONOB_CK3
    6323             :         use pm_kind, only: CKC => CK3
    6324             : #include "pm_matrixMulTri@routines.inc.F90"
    6325             :     end procedure
    6326             : #endif
    6327             : 
    6328             : #if CK2_ENABLED
    6329         200 :     module procedure trmm_ASS_CUUA_OTSA_CGMB_ONOB_CK2
    6330             :         use pm_kind, only: CKC => CK2
    6331             : #define DISPATCH_ENABLED 1
    6332             : #include "pm_matrixMulTri@routines.inc.F90"
    6333             : #undef  DISPATCH_ENABLED
    6334             :     end procedure
    6335             : #endif
    6336             : 
    6337             : #if CK1_ENABLED
    6338         200 :     module procedure trmm_ASS_CUUA_OTSA_CGMB_ONOB_CK1
    6339             :         use pm_kind, only: CKC => CK1
    6340             : #define DISPATCH_ENABLED 1
    6341             : #include "pm_matrixMulTri@routines.inc.F90"
    6342             : #undef  DISPATCH_ENABLED
    6343             :     end procedure
    6344             : #endif
    6345             : 
    6346             : #undef CK_ENABLED
    6347             : 
    6348             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6349             : 
    6350             : #define RK_ENABLED 1
    6351             : 
    6352             : #if RK5_ENABLED
    6353             :     module procedure trmm_ASS_CUUA_OTSA_CGMB_ONOB_RK5
    6354             :         use pm_kind, only: RKC => RK5
    6355             : #include "pm_matrixMulTri@routines.inc.F90"
    6356             :     end procedure
    6357             : #endif
    6358             : 
    6359             : #if RK4_ENABLED
    6360         200 :     module procedure trmm_ASS_CUUA_OTSA_CGMB_ONOB_RK4
    6361             :         use pm_kind, only: RKC => RK4
    6362             : #include "pm_matrixMulTri@routines.inc.F90"
    6363             :     end procedure
    6364             : #endif
    6365             : 
    6366             : #if RK3_ENABLED
    6367         200 :     module procedure trmm_ASS_CUUA_OTSA_CGMB_ONOB_RK3
    6368             :         use pm_kind, only: RKC => RK3
    6369             : #include "pm_matrixMulTri@routines.inc.F90"
    6370             :     end procedure
    6371             : #endif
    6372             : 
    6373             : #if RK2_ENABLED
    6374         200 :     module procedure trmm_ASS_CUUA_OTSA_CGMB_ONOB_RK2
    6375             :         use pm_kind, only: RKC => RK2
    6376             : #define DISPATCH_ENABLED 1
    6377             : #include "pm_matrixMulTri@routines.inc.F90"
    6378             : #undef  DISPATCH_ENABLED
    6379             :     end procedure
    6380             : #endif
    6381             : 
    6382             : #if RK1_ENABLED
    6383         200 :     module procedure trmm_ASS_CUUA_OTSA_CGMB_ONOB_RK1
    6384             :         use pm_kind, only: RKC => RK1
    6385             : #define DISPATCH_ENABLED 1
    6386             : #include "pm_matrixMulTri@routines.inc.F90"
    6387             : #undef  DISPATCH_ENABLED
    6388             :     end procedure
    6389             : #endif
    6390             : 
    6391             : #undef RK_ENABLED
    6392             : 
    6393             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6394             : 
    6395             : #undef OTSA_ENABLED
    6396             : 
    6397             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6398             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6399             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6400             : 
    6401             : #define OTHA_ENABLED 1
    6402             : 
    6403             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6404             : 
    6405             : #define CK_ENABLED 1
    6406             : 
    6407             : #if CK5_ENABLED
    6408             :     module procedure trmm_ASS_CUUA_OTHA_CGMB_ONOB_CK5
    6409             :         use pm_kind, only: CKC => CK5
    6410             : #include "pm_matrixMulTri@routines.inc.F90"
    6411             :     end procedure
    6412             : #endif
    6413             : 
    6414             : #if CK4_ENABLED
    6415         200 :     module procedure trmm_ASS_CUUA_OTHA_CGMB_ONOB_CK4
    6416             :         use pm_kind, only: CKC => CK4
    6417             : #include "pm_matrixMulTri@routines.inc.F90"
    6418             :     end procedure
    6419             : #endif
    6420             : 
    6421             : #if CK3_ENABLED
    6422         200 :     module procedure trmm_ASS_CUUA_OTHA_CGMB_ONOB_CK3
    6423             :         use pm_kind, only: CKC => CK3
    6424             : #include "pm_matrixMulTri@routines.inc.F90"
    6425             :     end procedure
    6426             : #endif
    6427             : 
    6428             : #if CK2_ENABLED
    6429         200 :     module procedure trmm_ASS_CUUA_OTHA_CGMB_ONOB_CK2
    6430             :         use pm_kind, only: CKC => CK2
    6431             : #define DISPATCH_ENABLED 1
    6432             : #include "pm_matrixMulTri@routines.inc.F90"
    6433             : #undef  DISPATCH_ENABLED
    6434             :     end procedure
    6435             : #endif
    6436             : 
    6437             : #if CK1_ENABLED
    6438         200 :     module procedure trmm_ASS_CUUA_OTHA_CGMB_ONOB_CK1
    6439             :         use pm_kind, only: CKC => CK1
    6440             : #define DISPATCH_ENABLED 1
    6441             : #include "pm_matrixMulTri@routines.inc.F90"
    6442             : #undef  DISPATCH_ENABLED
    6443             :     end procedure
    6444             : #endif
    6445             : 
    6446             : #undef CK_ENABLED
    6447             : 
    6448             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6449             : 
    6450             : #define RK_ENABLED 1
    6451             : 
    6452             : #if RK5_ENABLED
    6453             :     module procedure trmm_ASS_CUUA_OTHA_CGMB_ONOB_RK5
    6454             :         use pm_kind, only: RKC => RK5
    6455             : #include "pm_matrixMulTri@routines.inc.F90"
    6456             :     end procedure
    6457             : #endif
    6458             : 
    6459             : #if RK4_ENABLED
    6460         200 :     module procedure trmm_ASS_CUUA_OTHA_CGMB_ONOB_RK4
    6461             :         use pm_kind, only: RKC => RK4
    6462             : #include "pm_matrixMulTri@routines.inc.F90"
    6463             :     end procedure
    6464             : #endif
    6465             : 
    6466             : #if RK3_ENABLED
    6467         200 :     module procedure trmm_ASS_CUUA_OTHA_CGMB_ONOB_RK3
    6468             :         use pm_kind, only: RKC => RK3
    6469             : #include "pm_matrixMulTri@routines.inc.F90"
    6470             :     end procedure
    6471             : #endif
    6472             : 
    6473             : #if RK2_ENABLED
    6474         200 :     module procedure trmm_ASS_CUUA_OTHA_CGMB_ONOB_RK2
    6475             :         use pm_kind, only: RKC => RK2
    6476             : #define DISPATCH_ENABLED 1
    6477             : #include "pm_matrixMulTri@routines.inc.F90"
    6478             : #undef  DISPATCH_ENABLED
    6479             :     end procedure
    6480             : #endif
    6481             : 
    6482             : #if RK1_ENABLED
    6483         200 :     module procedure trmm_ASS_CUUA_OTHA_CGMB_ONOB_RK1
    6484             :         use pm_kind, only: RKC => RK1
    6485             : #define DISPATCH_ENABLED 1
    6486             : #include "pm_matrixMulTri@routines.inc.F90"
    6487             : #undef  DISPATCH_ENABLED
    6488             :     end procedure
    6489             : #endif
    6490             : 
    6491             : #undef RK_ENABLED
    6492             : 
    6493             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6494             : 
    6495             : #undef OTHA_ENABLED
    6496             : 
    6497             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6498             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6499             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6500             : 
    6501             : #undef CUUA_ENABLED
    6502             : 
    6503             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6504             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6505             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6506             : 
    6507             : #undef ONOB_ENABLED
    6508             : 
    6509             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6510             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6511             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6512             : 
    6513             : #undef CGMB_ENABLED
    6514             : 
    6515             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6516             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6517             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6518             : 
    6519             : #define CGMA_ENABLED 1
    6520             : 
    6521             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6522             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6523             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6524             : 
    6525             : #define ONOA_ENABLED 1
    6526             : 
    6527             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6528             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6529             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6530             : 
    6531             : #define CLDB_ENABLED 1
    6532             : 
    6533             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6534             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6535             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6536             : 
    6537             : #define ONOB_ENABLED 1
    6538             : 
    6539             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6540             : 
    6541             : #define CK_ENABLED 1
    6542             : 
    6543             : #if CK5_ENABLED
    6544             :     module procedure trmm_ASS_CGMA_ONOA_CLDB_ONOB_CK5
    6545             :         use pm_kind, only: CKC => CK5
    6546             : #include "pm_matrixMulTri@routines.inc.F90"
    6547             :     end procedure
    6548             : #endif
    6549             : 
    6550             : #if CK4_ENABLED
    6551         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_ONOB_CK4
    6552             :         use pm_kind, only: CKC => CK4
    6553             : #include "pm_matrixMulTri@routines.inc.F90"
    6554             :     end procedure
    6555             : #endif
    6556             : 
    6557             : #if CK3_ENABLED
    6558         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_ONOB_CK3
    6559             :         use pm_kind, only: CKC => CK3
    6560             : #include "pm_matrixMulTri@routines.inc.F90"
    6561             :     end procedure
    6562             : #endif
    6563             : 
    6564             : #if CK2_ENABLED
    6565         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_ONOB_CK2
    6566             :         use pm_kind, only: CKC => CK2
    6567             : #define DISPATCH_ENABLED 1
    6568             : #include "pm_matrixMulTri@routines.inc.F90"
    6569             : #undef  DISPATCH_ENABLED
    6570             :     end procedure
    6571             : #endif
    6572             : 
    6573             : #if CK1_ENABLED
    6574         201 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_ONOB_CK1
    6575             :         use pm_kind, only: CKC => CK1
    6576             : #define DISPATCH_ENABLED 1
    6577             : #include "pm_matrixMulTri@routines.inc.F90"
    6578             : #undef  DISPATCH_ENABLED
    6579             :     end procedure
    6580             : #endif
    6581             : 
    6582             : #undef CK_ENABLED
    6583             : 
    6584             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6585             : 
    6586             : #define RK_ENABLED 1
    6587             : 
    6588             : #if RK5_ENABLED
    6589             :     module procedure trmm_ASS_CGMA_ONOA_CLDB_ONOB_RK5
    6590             :         use pm_kind, only: RKC => RK5
    6591             : #include "pm_matrixMulTri@routines.inc.F90"
    6592             :     end procedure
    6593             : #endif
    6594             : 
    6595             : #if RK4_ENABLED
    6596         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_ONOB_RK4
    6597             :         use pm_kind, only: RKC => RK4
    6598             : #include "pm_matrixMulTri@routines.inc.F90"
    6599             :     end procedure
    6600             : #endif
    6601             : 
    6602             : #if RK3_ENABLED
    6603         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_ONOB_RK3
    6604             :         use pm_kind, only: RKC => RK3
    6605             : #include "pm_matrixMulTri@routines.inc.F90"
    6606             :     end procedure
    6607             : #endif
    6608             : 
    6609             : #if RK2_ENABLED
    6610         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_ONOB_RK2
    6611             :         use pm_kind, only: RKC => RK2
    6612             : #define DISPATCH_ENABLED 1
    6613             : #include "pm_matrixMulTri@routines.inc.F90"
    6614             : #undef  DISPATCH_ENABLED
    6615             :     end procedure
    6616             : #endif
    6617             : 
    6618             : #if RK1_ENABLED
    6619         201 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_ONOB_RK1
    6620             :         use pm_kind, only: RKC => RK1
    6621             : #define DISPATCH_ENABLED 1
    6622             : #include "pm_matrixMulTri@routines.inc.F90"
    6623             : #undef  DISPATCH_ENABLED
    6624             :     end procedure
    6625             : #endif
    6626             : 
    6627             : #undef RK_ENABLED
    6628             : 
    6629             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6630             : 
    6631             : #undef ONOB_ENABLED
    6632             : 
    6633             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6634             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6635             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6636             : 
    6637             : #define OTSB_ENABLED 1
    6638             : 
    6639             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6640             : 
    6641             : #define CK_ENABLED 1
    6642             : 
    6643             : #if CK5_ENABLED
    6644             :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTSB_CK5
    6645             :         use pm_kind, only: CKC => CK5
    6646             : #include "pm_matrixMulTri@routines.inc.F90"
    6647             :     end procedure
    6648             : #endif
    6649             : 
    6650             : #if CK4_ENABLED
    6651         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTSB_CK4
    6652             :         use pm_kind, only: CKC => CK4
    6653             : #include "pm_matrixMulTri@routines.inc.F90"
    6654             :     end procedure
    6655             : #endif
    6656             : 
    6657             : #if CK3_ENABLED
    6658         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTSB_CK3
    6659             :         use pm_kind, only: CKC => CK3
    6660             : #include "pm_matrixMulTri@routines.inc.F90"
    6661             :     end procedure
    6662             : #endif
    6663             : 
    6664             : #if CK2_ENABLED
    6665         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTSB_CK2
    6666             :         use pm_kind, only: CKC => CK2
    6667             : #define DISPATCH_ENABLED 1
    6668             : #include "pm_matrixMulTri@routines.inc.F90"
    6669             : #undef  DISPATCH_ENABLED
    6670             :     end procedure
    6671             : #endif
    6672             : 
    6673             : #if CK1_ENABLED
    6674         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTSB_CK1
    6675             :         use pm_kind, only: CKC => CK1
    6676             : #define DISPATCH_ENABLED 1
    6677             : #include "pm_matrixMulTri@routines.inc.F90"
    6678             : #undef  DISPATCH_ENABLED
    6679             :     end procedure
    6680             : #endif
    6681             : 
    6682             : #undef CK_ENABLED
    6683             : 
    6684             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6685             : 
    6686             : #define RK_ENABLED 1
    6687             : 
    6688             : #if RK5_ENABLED
    6689             :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTSB_RK5
    6690             :         use pm_kind, only: RKC => RK5
    6691             : #include "pm_matrixMulTri@routines.inc.F90"
    6692             :     end procedure
    6693             : #endif
    6694             : 
    6695             : #if RK4_ENABLED
    6696         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTSB_RK4
    6697             :         use pm_kind, only: RKC => RK4
    6698             : #include "pm_matrixMulTri@routines.inc.F90"
    6699             :     end procedure
    6700             : #endif
    6701             : 
    6702             : #if RK3_ENABLED
    6703         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTSB_RK3
    6704             :         use pm_kind, only: RKC => RK3
    6705             : #include "pm_matrixMulTri@routines.inc.F90"
    6706             :     end procedure
    6707             : #endif
    6708             : 
    6709             : #if RK2_ENABLED
    6710         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTSB_RK2
    6711             :         use pm_kind, only: RKC => RK2
    6712             : #define DISPATCH_ENABLED 1
    6713             : #include "pm_matrixMulTri@routines.inc.F90"
    6714             : #undef  DISPATCH_ENABLED
    6715             :     end procedure
    6716             : #endif
    6717             : 
    6718             : #if RK1_ENABLED
    6719         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTSB_RK1
    6720             :         use pm_kind, only: RKC => RK1
    6721             : #define DISPATCH_ENABLED 1
    6722             : #include "pm_matrixMulTri@routines.inc.F90"
    6723             : #undef  DISPATCH_ENABLED
    6724             :     end procedure
    6725             : #endif
    6726             : 
    6727             : #undef RK_ENABLED
    6728             : 
    6729             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6730             : 
    6731             : #undef OTSB_ENABLED
    6732             : 
    6733             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6734             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6735             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6736             : 
    6737             : #define OTHB_ENABLED 1
    6738             : 
    6739             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6740             : 
    6741             : #define CK_ENABLED 1
    6742             : 
    6743             : #if CK5_ENABLED
    6744             :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTHB_CK5
    6745             :         use pm_kind, only: CKC => CK5
    6746             : #include "pm_matrixMulTri@routines.inc.F90"
    6747             :     end procedure
    6748             : #endif
    6749             : 
    6750             : #if CK4_ENABLED
    6751         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTHB_CK4
    6752             :         use pm_kind, only: CKC => CK4
    6753             : #include "pm_matrixMulTri@routines.inc.F90"
    6754             :     end procedure
    6755             : #endif
    6756             : 
    6757             : #if CK3_ENABLED
    6758         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTHB_CK3
    6759             :         use pm_kind, only: CKC => CK3
    6760             : #include "pm_matrixMulTri@routines.inc.F90"
    6761             :     end procedure
    6762             : #endif
    6763             : 
    6764             : #if CK2_ENABLED
    6765         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTHB_CK2
    6766             :         use pm_kind, only: CKC => CK2
    6767             : #define DISPATCH_ENABLED 1
    6768             : #include "pm_matrixMulTri@routines.inc.F90"
    6769             : #undef  DISPATCH_ENABLED
    6770             :     end procedure
    6771             : #endif
    6772             : 
    6773             : #if CK1_ENABLED
    6774         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTHB_CK1
    6775             :         use pm_kind, only: CKC => CK1
    6776             : #define DISPATCH_ENABLED 1
    6777             : #include "pm_matrixMulTri@routines.inc.F90"
    6778             : #undef  DISPATCH_ENABLED
    6779             :     end procedure
    6780             : #endif
    6781             : 
    6782             : #undef CK_ENABLED
    6783             : 
    6784             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6785             : 
    6786             : #define RK_ENABLED 1
    6787             : 
    6788             : #if RK5_ENABLED
    6789             :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTHB_RK5
    6790             :         use pm_kind, only: RKC => RK5
    6791             : #include "pm_matrixMulTri@routines.inc.F90"
    6792             :     end procedure
    6793             : #endif
    6794             : 
    6795             : #if RK4_ENABLED
    6796         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTHB_RK4
    6797             :         use pm_kind, only: RKC => RK4
    6798             : #include "pm_matrixMulTri@routines.inc.F90"
    6799             :     end procedure
    6800             : #endif
    6801             : 
    6802             : #if RK3_ENABLED
    6803         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTHB_RK3
    6804             :         use pm_kind, only: RKC => RK3
    6805             : #include "pm_matrixMulTri@routines.inc.F90"
    6806             :     end procedure
    6807             : #endif
    6808             : 
    6809             : #if RK2_ENABLED
    6810         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTHB_RK2
    6811             :         use pm_kind, only: RKC => RK2
    6812             : #define DISPATCH_ENABLED 1
    6813             : #include "pm_matrixMulTri@routines.inc.F90"
    6814             : #undef  DISPATCH_ENABLED
    6815             :     end procedure
    6816             : #endif
    6817             : 
    6818             : #if RK1_ENABLED
    6819         200 :     module procedure trmm_ASS_CGMA_ONOA_CLDB_OTHB_RK1
    6820             :         use pm_kind, only: RKC => RK1
    6821             : #define DISPATCH_ENABLED 1
    6822             : #include "pm_matrixMulTri@routines.inc.F90"
    6823             : #undef  DISPATCH_ENABLED
    6824             :     end procedure
    6825             : #endif
    6826             : 
    6827             : #undef RK_ENABLED
    6828             : 
    6829             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6830             : 
    6831             : #undef OTHB_ENABLED
    6832             : 
    6833             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6834             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6835             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6836             : 
    6837             : #undef CLDB_ENABLED
    6838             : 
    6839             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6840             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6841             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6842             : 
    6843             : #define CUDB_ENABLED 1
    6844             : 
    6845             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6846             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6847             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6848             : 
    6849             : #define ONOB_ENABLED 1
    6850             : 
    6851             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6852             : 
    6853             : #define CK_ENABLED 1
    6854             : 
    6855             : #if CK5_ENABLED
    6856             :     module procedure trmm_ASS_CGMA_ONOA_CUDB_ONOB_CK5
    6857             :         use pm_kind, only: CKC => CK5
    6858             : #include "pm_matrixMulTri@routines.inc.F90"
    6859             :     end procedure
    6860             : #endif
    6861             : 
    6862             : #if CK4_ENABLED
    6863         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_ONOB_CK4
    6864             :         use pm_kind, only: CKC => CK4
    6865             : #include "pm_matrixMulTri@routines.inc.F90"
    6866             :     end procedure
    6867             : #endif
    6868             : 
    6869             : #if CK3_ENABLED
    6870         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_ONOB_CK3
    6871             :         use pm_kind, only: CKC => CK3
    6872             : #include "pm_matrixMulTri@routines.inc.F90"
    6873             :     end procedure
    6874             : #endif
    6875             : 
    6876             : #if CK2_ENABLED
    6877         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_ONOB_CK2
    6878             :         use pm_kind, only: CKC => CK2
    6879             : #define DISPATCH_ENABLED 1
    6880             : #include "pm_matrixMulTri@routines.inc.F90"
    6881             : #undef  DISPATCH_ENABLED
    6882             :     end procedure
    6883             : #endif
    6884             : 
    6885             : #if CK1_ENABLED
    6886         201 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_ONOB_CK1
    6887             :         use pm_kind, only: CKC => CK1
    6888             : #define DISPATCH_ENABLED 1
    6889             : #include "pm_matrixMulTri@routines.inc.F90"
    6890             : #undef  DISPATCH_ENABLED
    6891             :     end procedure
    6892             : #endif
    6893             : 
    6894             : #undef CK_ENABLED
    6895             : 
    6896             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6897             : 
    6898             : #define RK_ENABLED 1
    6899             : 
    6900             : #if RK5_ENABLED
    6901             :     module procedure trmm_ASS_CGMA_ONOA_CUDB_ONOB_RK5
    6902             :         use pm_kind, only: RKC => RK5
    6903             : #include "pm_matrixMulTri@routines.inc.F90"
    6904             :     end procedure
    6905             : #endif
    6906             : 
    6907             : #if RK4_ENABLED
    6908         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_ONOB_RK4
    6909             :         use pm_kind, only: RKC => RK4
    6910             : #include "pm_matrixMulTri@routines.inc.F90"
    6911             :     end procedure
    6912             : #endif
    6913             : 
    6914             : #if RK3_ENABLED
    6915         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_ONOB_RK3
    6916             :         use pm_kind, only: RKC => RK3
    6917             : #include "pm_matrixMulTri@routines.inc.F90"
    6918             :     end procedure
    6919             : #endif
    6920             : 
    6921             : #if RK2_ENABLED
    6922         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_ONOB_RK2
    6923             :         use pm_kind, only: RKC => RK2
    6924             : #define DISPATCH_ENABLED 1
    6925             : #include "pm_matrixMulTri@routines.inc.F90"
    6926             : #undef  DISPATCH_ENABLED
    6927             :     end procedure
    6928             : #endif
    6929             : 
    6930             : #if RK1_ENABLED
    6931         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_ONOB_RK1
    6932             :         use pm_kind, only: RKC => RK1
    6933             : #define DISPATCH_ENABLED 1
    6934             : #include "pm_matrixMulTri@routines.inc.F90"
    6935             : #undef  DISPATCH_ENABLED
    6936             :     end procedure
    6937             : #endif
    6938             : 
    6939             : #undef RK_ENABLED
    6940             : 
    6941             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6942             : 
    6943             : #undef ONOB_ENABLED
    6944             : 
    6945             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6946             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6947             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6948             : 
    6949             : #define OTSB_ENABLED 1
    6950             : 
    6951             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6952             : 
    6953             : #define CK_ENABLED 1
    6954             : 
    6955             : #if CK5_ENABLED
    6956             :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTSB_CK5
    6957             :         use pm_kind, only: CKC => CK5
    6958             : #include "pm_matrixMulTri@routines.inc.F90"
    6959             :     end procedure
    6960             : #endif
    6961             : 
    6962             : #if CK4_ENABLED
    6963         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTSB_CK4
    6964             :         use pm_kind, only: CKC => CK4
    6965             : #include "pm_matrixMulTri@routines.inc.F90"
    6966             :     end procedure
    6967             : #endif
    6968             : 
    6969             : #if CK3_ENABLED
    6970         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTSB_CK3
    6971             :         use pm_kind, only: CKC => CK3
    6972             : #include "pm_matrixMulTri@routines.inc.F90"
    6973             :     end procedure
    6974             : #endif
    6975             : 
    6976             : #if CK2_ENABLED
    6977         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTSB_CK2
    6978             :         use pm_kind, only: CKC => CK2
    6979             : #define DISPATCH_ENABLED 1
    6980             : #include "pm_matrixMulTri@routines.inc.F90"
    6981             : #undef  DISPATCH_ENABLED
    6982             :     end procedure
    6983             : #endif
    6984             : 
    6985             : #if CK1_ENABLED
    6986         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTSB_CK1
    6987             :         use pm_kind, only: CKC => CK1
    6988             : #define DISPATCH_ENABLED 1
    6989             : #include "pm_matrixMulTri@routines.inc.F90"
    6990             : #undef  DISPATCH_ENABLED
    6991             :     end procedure
    6992             : #endif
    6993             : 
    6994             : #undef CK_ENABLED
    6995             : 
    6996             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6997             : 
    6998             : #define RK_ENABLED 1
    6999             : 
    7000             : #if RK5_ENABLED
    7001             :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTSB_RK5
    7002             :         use pm_kind, only: RKC => RK5
    7003             : #include "pm_matrixMulTri@routines.inc.F90"
    7004             :     end procedure
    7005             : #endif
    7006             : 
    7007             : #if RK4_ENABLED
    7008         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTSB_RK4
    7009             :         use pm_kind, only: RKC => RK4
    7010             : #include "pm_matrixMulTri@routines.inc.F90"
    7011             :     end procedure
    7012             : #endif
    7013             : 
    7014             : #if RK3_ENABLED
    7015         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTSB_RK3
    7016             :         use pm_kind, only: RKC => RK3
    7017             : #include "pm_matrixMulTri@routines.inc.F90"
    7018             :     end procedure
    7019             : #endif
    7020             : 
    7021             : #if RK2_ENABLED
    7022         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTSB_RK2
    7023             :         use pm_kind, only: RKC => RK2
    7024             : #define DISPATCH_ENABLED 1
    7025             : #include "pm_matrixMulTri@routines.inc.F90"
    7026             : #undef  DISPATCH_ENABLED
    7027             :     end procedure
    7028             : #endif
    7029             : 
    7030             : #if RK1_ENABLED
    7031         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTSB_RK1
    7032             :         use pm_kind, only: RKC => RK1
    7033             : #define DISPATCH_ENABLED 1
    7034             : #include "pm_matrixMulTri@routines.inc.F90"
    7035             : #undef  DISPATCH_ENABLED
    7036             :     end procedure
    7037             : #endif
    7038             : 
    7039             : #undef RK_ENABLED
    7040             : 
    7041             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7042             : 
    7043             : #undef OTSB_ENABLED
    7044             : 
    7045             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7046             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7047             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7048             : 
    7049             : #define OTHB_ENABLED 1
    7050             : 
    7051             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7052             : 
    7053             : #define CK_ENABLED 1
    7054             : 
    7055             : #if CK5_ENABLED
    7056             :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTHB_CK5
    7057             :         use pm_kind, only: CKC => CK5
    7058             : #include "pm_matrixMulTri@routines.inc.F90"
    7059             :     end procedure
    7060             : #endif
    7061             : 
    7062             : #if CK4_ENABLED
    7063         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTHB_CK4
    7064             :         use pm_kind, only: CKC => CK4
    7065             : #include "pm_matrixMulTri@routines.inc.F90"
    7066             :     end procedure
    7067             : #endif
    7068             : 
    7069             : #if CK3_ENABLED
    7070         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTHB_CK3
    7071             :         use pm_kind, only: CKC => CK3
    7072             : #include "pm_matrixMulTri@routines.inc.F90"
    7073             :     end procedure
    7074             : #endif
    7075             : 
    7076             : #if CK2_ENABLED
    7077         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTHB_CK2
    7078             :         use pm_kind, only: CKC => CK2
    7079             : #define DISPATCH_ENABLED 1
    7080             : #include "pm_matrixMulTri@routines.inc.F90"
    7081             : #undef  DISPATCH_ENABLED
    7082             :     end procedure
    7083             : #endif
    7084             : 
    7085             : #if CK1_ENABLED
    7086         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTHB_CK1
    7087             :         use pm_kind, only: CKC => CK1
    7088             : #define DISPATCH_ENABLED 1
    7089             : #include "pm_matrixMulTri@routines.inc.F90"
    7090             : #undef  DISPATCH_ENABLED
    7091             :     end procedure
    7092             : #endif
    7093             : 
    7094             : #undef CK_ENABLED
    7095             : 
    7096             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7097             : 
    7098             : #define RK_ENABLED 1
    7099             : 
    7100             : #if RK5_ENABLED
    7101             :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTHB_RK5
    7102             :         use pm_kind, only: RKC => RK5
    7103             : #include "pm_matrixMulTri@routines.inc.F90"
    7104             :     end procedure
    7105             : #endif
    7106             : 
    7107             : #if RK4_ENABLED
    7108         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTHB_RK4
    7109             :         use pm_kind, only: RKC => RK4
    7110             : #include "pm_matrixMulTri@routines.inc.F90"
    7111             :     end procedure
    7112             : #endif
    7113             : 
    7114             : #if RK3_ENABLED
    7115         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTHB_RK3
    7116             :         use pm_kind, only: RKC => RK3
    7117             : #include "pm_matrixMulTri@routines.inc.F90"
    7118             :     end procedure
    7119             : #endif
    7120             : 
    7121             : #if RK2_ENABLED
    7122         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTHB_RK2
    7123             :         use pm_kind, only: RKC => RK2
    7124             : #define DISPATCH_ENABLED 1
    7125             : #include "pm_matrixMulTri@routines.inc.F90"
    7126             : #undef  DISPATCH_ENABLED
    7127             :     end procedure
    7128             : #endif
    7129             : 
    7130             : #if RK1_ENABLED
    7131         200 :     module procedure trmm_ASS_CGMA_ONOA_CUDB_OTHB_RK1
    7132             :         use pm_kind, only: RKC => RK1
    7133             : #define DISPATCH_ENABLED 1
    7134             : #include "pm_matrixMulTri@routines.inc.F90"
    7135             : #undef  DISPATCH_ENABLED
    7136             :     end procedure
    7137             : #endif
    7138             : 
    7139             : #undef RK_ENABLED
    7140             : 
    7141             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7142             : 
    7143             : #undef OTHB_ENABLED
    7144             : 
    7145             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7146             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7147             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7148             : 
    7149             : #undef CUDB_ENABLED
    7150             : 
    7151             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7152             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7153             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7154             : 
    7155             : #define CLUB_ENABLED 1
    7156             : 
    7157             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7158             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7159             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7160             : 
    7161             : #define ONOB_ENABLED 1
    7162             : 
    7163             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7164             : 
    7165             : #define CK_ENABLED 1
    7166             : 
    7167             : #if CK5_ENABLED
    7168             :     module procedure trmm_ASS_CGMA_ONOA_CLUB_ONOB_CK5
    7169             :         use pm_kind, only: CKC => CK5
    7170             : #include "pm_matrixMulTri@routines.inc.F90"
    7171             :     end procedure
    7172             : #endif
    7173             : 
    7174             : #if CK4_ENABLED
    7175         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_ONOB_CK4
    7176             :         use pm_kind, only: CKC => CK4
    7177             : #include "pm_matrixMulTri@routines.inc.F90"
    7178             :     end procedure
    7179             : #endif
    7180             : 
    7181             : #if CK3_ENABLED
    7182         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_ONOB_CK3
    7183             :         use pm_kind, only: CKC => CK3
    7184             : #include "pm_matrixMulTri@routines.inc.F90"
    7185             :     end procedure
    7186             : #endif
    7187             : 
    7188             : #if CK2_ENABLED
    7189         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_ONOB_CK2
    7190             :         use pm_kind, only: CKC => CK2
    7191             : #define DISPATCH_ENABLED 1
    7192             : #include "pm_matrixMulTri@routines.inc.F90"
    7193             : #undef  DISPATCH_ENABLED
    7194             :     end procedure
    7195             : #endif
    7196             : 
    7197             : #if CK1_ENABLED
    7198         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_ONOB_CK1
    7199             :         use pm_kind, only: CKC => CK1
    7200             : #define DISPATCH_ENABLED 1
    7201             : #include "pm_matrixMulTri@routines.inc.F90"
    7202             : #undef  DISPATCH_ENABLED
    7203             :     end procedure
    7204             : #endif
    7205             : 
    7206             : #undef CK_ENABLED
    7207             : 
    7208             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7209             : 
    7210             : #define RK_ENABLED 1
    7211             : 
    7212             : #if RK5_ENABLED
    7213             :     module procedure trmm_ASS_CGMA_ONOA_CLUB_ONOB_RK5
    7214             :         use pm_kind, only: RKC => RK5
    7215             : #include "pm_matrixMulTri@routines.inc.F90"
    7216             :     end procedure
    7217             : #endif
    7218             : 
    7219             : #if RK4_ENABLED
    7220         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_ONOB_RK4
    7221             :         use pm_kind, only: RKC => RK4
    7222             : #include "pm_matrixMulTri@routines.inc.F90"
    7223             :     end procedure
    7224             : #endif
    7225             : 
    7226             : #if RK3_ENABLED
    7227         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_ONOB_RK3
    7228             :         use pm_kind, only: RKC => RK3
    7229             : #include "pm_matrixMulTri@routines.inc.F90"
    7230             :     end procedure
    7231             : #endif
    7232             : 
    7233             : #if RK2_ENABLED
    7234         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_ONOB_RK2
    7235             :         use pm_kind, only: RKC => RK2
    7236             : #define DISPATCH_ENABLED 1
    7237             : #include "pm_matrixMulTri@routines.inc.F90"
    7238             : #undef  DISPATCH_ENABLED
    7239             :     end procedure
    7240             : #endif
    7241             : 
    7242             : #if RK1_ENABLED
    7243         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_ONOB_RK1
    7244             :         use pm_kind, only: RKC => RK1
    7245             : #define DISPATCH_ENABLED 1
    7246             : #include "pm_matrixMulTri@routines.inc.F90"
    7247             : #undef  DISPATCH_ENABLED
    7248             :     end procedure
    7249             : #endif
    7250             : 
    7251             : #undef RK_ENABLED
    7252             : 
    7253             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7254             : 
    7255             : #undef ONOB_ENABLED
    7256             : 
    7257             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7258             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7259             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7260             : 
    7261             : #define OTSB_ENABLED 1
    7262             : 
    7263             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7264             : 
    7265             : #define CK_ENABLED 1
    7266             : 
    7267             : #if CK5_ENABLED
    7268             :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTSB_CK5
    7269             :         use pm_kind, only: CKC => CK5
    7270             : #include "pm_matrixMulTri@routines.inc.F90"
    7271             :     end procedure
    7272             : #endif
    7273             : 
    7274             : #if CK4_ENABLED
    7275         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTSB_CK4
    7276             :         use pm_kind, only: CKC => CK4
    7277             : #include "pm_matrixMulTri@routines.inc.F90"
    7278             :     end procedure
    7279             : #endif
    7280             : 
    7281             : #if CK3_ENABLED
    7282         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTSB_CK3
    7283             :         use pm_kind, only: CKC => CK3
    7284             : #include "pm_matrixMulTri@routines.inc.F90"
    7285             :     end procedure
    7286             : #endif
    7287             : 
    7288             : #if CK2_ENABLED
    7289         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTSB_CK2
    7290             :         use pm_kind, only: CKC => CK2
    7291             : #define DISPATCH_ENABLED 1
    7292             : #include "pm_matrixMulTri@routines.inc.F90"
    7293             : #undef  DISPATCH_ENABLED
    7294             :     end procedure
    7295             : #endif
    7296             : 
    7297             : #if CK1_ENABLED
    7298         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTSB_CK1
    7299             :         use pm_kind, only: CKC => CK1
    7300             : #define DISPATCH_ENABLED 1
    7301             : #include "pm_matrixMulTri@routines.inc.F90"
    7302             : #undef  DISPATCH_ENABLED
    7303             :     end procedure
    7304             : #endif
    7305             : 
    7306             : #undef CK_ENABLED
    7307             : 
    7308             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7309             : 
    7310             : #define RK_ENABLED 1
    7311             : 
    7312             : #if RK5_ENABLED
    7313             :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTSB_RK5
    7314             :         use pm_kind, only: RKC => RK5
    7315             : #include "pm_matrixMulTri@routines.inc.F90"
    7316             :     end procedure
    7317             : #endif
    7318             : 
    7319             : #if RK4_ENABLED
    7320         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTSB_RK4
    7321             :         use pm_kind, only: RKC => RK4
    7322             : #include "pm_matrixMulTri@routines.inc.F90"
    7323             :     end procedure
    7324             : #endif
    7325             : 
    7326             : #if RK3_ENABLED
    7327         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTSB_RK3
    7328             :         use pm_kind, only: RKC => RK3
    7329             : #include "pm_matrixMulTri@routines.inc.F90"
    7330             :     end procedure
    7331             : #endif
    7332             : 
    7333             : #if RK2_ENABLED
    7334         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTSB_RK2
    7335             :         use pm_kind, only: RKC => RK2
    7336             : #define DISPATCH_ENABLED 1
    7337             : #include "pm_matrixMulTri@routines.inc.F90"
    7338             : #undef  DISPATCH_ENABLED
    7339             :     end procedure
    7340             : #endif
    7341             : 
    7342             : #if RK1_ENABLED
    7343         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTSB_RK1
    7344             :         use pm_kind, only: RKC => RK1
    7345             : #define DISPATCH_ENABLED 1
    7346             : #include "pm_matrixMulTri@routines.inc.F90"
    7347             : #undef  DISPATCH_ENABLED
    7348             :     end procedure
    7349             : #endif
    7350             : 
    7351             : #undef RK_ENABLED
    7352             : 
    7353             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7354             : 
    7355             : #undef OTSB_ENABLED
    7356             : 
    7357             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7358             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7359             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7360             : 
    7361             : #define OTHB_ENABLED 1
    7362             : 
    7363             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7364             : 
    7365             : #define CK_ENABLED 1
    7366             : 
    7367             : #if CK5_ENABLED
    7368             :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTHB_CK5
    7369             :         use pm_kind, only: CKC => CK5
    7370             : #include "pm_matrixMulTri@routines.inc.F90"
    7371             :     end procedure
    7372             : #endif
    7373             : 
    7374             : #if CK4_ENABLED
    7375         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTHB_CK4
    7376             :         use pm_kind, only: CKC => CK4
    7377             : #include "pm_matrixMulTri@routines.inc.F90"
    7378             :     end procedure
    7379             : #endif
    7380             : 
    7381             : #if CK3_ENABLED
    7382         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTHB_CK3
    7383             :         use pm_kind, only: CKC => CK3
    7384             : #include "pm_matrixMulTri@routines.inc.F90"
    7385             :     end procedure
    7386             : #endif
    7387             : 
    7388             : #if CK2_ENABLED
    7389         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTHB_CK2
    7390             :         use pm_kind, only: CKC => CK2
    7391             : #define DISPATCH_ENABLED 1
    7392             : #include "pm_matrixMulTri@routines.inc.F90"
    7393             : #undef  DISPATCH_ENABLED
    7394             :     end procedure
    7395             : #endif
    7396             : 
    7397             : #if CK1_ENABLED
    7398         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTHB_CK1
    7399             :         use pm_kind, only: CKC => CK1
    7400             : #define DISPATCH_ENABLED 1
    7401             : #include "pm_matrixMulTri@routines.inc.F90"
    7402             : #undef  DISPATCH_ENABLED
    7403             :     end procedure
    7404             : #endif
    7405             : 
    7406             : #undef CK_ENABLED
    7407             : 
    7408             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7409             : 
    7410             : #define RK_ENABLED 1
    7411             : 
    7412             : #if RK5_ENABLED
    7413             :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTHB_RK5
    7414             :         use pm_kind, only: RKC => RK5
    7415             : #include "pm_matrixMulTri@routines.inc.F90"
    7416             :     end procedure
    7417             : #endif
    7418             : 
    7419             : #if RK4_ENABLED
    7420         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTHB_RK4
    7421             :         use pm_kind, only: RKC => RK4
    7422             : #include "pm_matrixMulTri@routines.inc.F90"
    7423             :     end procedure
    7424             : #endif
    7425             : 
    7426             : #if RK3_ENABLED
    7427         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTHB_RK3
    7428             :         use pm_kind, only: RKC => RK3
    7429             : #include "pm_matrixMulTri@routines.inc.F90"
    7430             :     end procedure
    7431             : #endif
    7432             : 
    7433             : #if RK2_ENABLED
    7434         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTHB_RK2
    7435             :         use pm_kind, only: RKC => RK2
    7436             : #define DISPATCH_ENABLED 1
    7437             : #include "pm_matrixMulTri@routines.inc.F90"
    7438             : #undef  DISPATCH_ENABLED
    7439             :     end procedure
    7440             : #endif
    7441             : 
    7442             : #if RK1_ENABLED
    7443         200 :     module procedure trmm_ASS_CGMA_ONOA_CLUB_OTHB_RK1
    7444             :         use pm_kind, only: RKC => RK1
    7445             : #define DISPATCH_ENABLED 1
    7446             : #include "pm_matrixMulTri@routines.inc.F90"
    7447             : #undef  DISPATCH_ENABLED
    7448             :     end procedure
    7449             : #endif
    7450             : 
    7451             : #undef RK_ENABLED
    7452             : 
    7453             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7454             : 
    7455             : #undef OTHB_ENABLED
    7456             : 
    7457             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7458             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7459             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7460             : 
    7461             : #undef CLUB_ENABLED
    7462             : 
    7463             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7464             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7465             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7466             : 
    7467             : #define CUUB_ENABLED 1
    7468             : 
    7469             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7470             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7471             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7472             : 
    7473             : #define ONOB_ENABLED 1
    7474             : 
    7475             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7476             : 
    7477             : #define CK_ENABLED 1
    7478             : 
    7479             : #if CK5_ENABLED
    7480             :     module procedure trmm_ASS_CGMA_ONOA_CUUB_ONOB_CK5
    7481             :         use pm_kind, only: CKC => CK5
    7482             : #include "pm_matrixMulTri@routines.inc.F90"
    7483             :     end procedure
    7484             : #endif
    7485             : 
    7486             : #if CK4_ENABLED
    7487         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_ONOB_CK4
    7488             :         use pm_kind, only: CKC => CK4
    7489             : #include "pm_matrixMulTri@routines.inc.F90"
    7490             :     end procedure
    7491             : #endif
    7492             : 
    7493             : #if CK3_ENABLED
    7494         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_ONOB_CK3
    7495             :         use pm_kind, only: CKC => CK3
    7496             : #include "pm_matrixMulTri@routines.inc.F90"
    7497             :     end procedure
    7498             : #endif
    7499             : 
    7500             : #if CK2_ENABLED
    7501         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_ONOB_CK2
    7502             :         use pm_kind, only: CKC => CK2
    7503             : #define DISPATCH_ENABLED 1
    7504             : #include "pm_matrixMulTri@routines.inc.F90"
    7505             : #undef  DISPATCH_ENABLED
    7506             :     end procedure
    7507             : #endif
    7508             : 
    7509             : #if CK1_ENABLED
    7510         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_ONOB_CK1
    7511             :         use pm_kind, only: CKC => CK1
    7512             : #define DISPATCH_ENABLED 1
    7513             : #include "pm_matrixMulTri@routines.inc.F90"
    7514             : #undef  DISPATCH_ENABLED
    7515             :     end procedure
    7516             : #endif
    7517             : 
    7518             : #undef CK_ENABLED
    7519             : 
    7520             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7521             : 
    7522             : #define RK_ENABLED 1
    7523             : 
    7524             : #if RK5_ENABLED
    7525             :     module procedure trmm_ASS_CGMA_ONOA_CUUB_ONOB_RK5
    7526             :         use pm_kind, only: RKC => RK5
    7527             : #include "pm_matrixMulTri@routines.inc.F90"
    7528             :     end procedure
    7529             : #endif
    7530             : 
    7531             : #if RK4_ENABLED
    7532         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_ONOB_RK4
    7533             :         use pm_kind, only: RKC => RK4
    7534             : #include "pm_matrixMulTri@routines.inc.F90"
    7535             :     end procedure
    7536             : #endif
    7537             : 
    7538             : #if RK3_ENABLED
    7539         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_ONOB_RK3
    7540             :         use pm_kind, only: RKC => RK3
    7541             : #include "pm_matrixMulTri@routines.inc.F90"
    7542             :     end procedure
    7543             : #endif
    7544             : 
    7545             : #if RK2_ENABLED
    7546         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_ONOB_RK2
    7547             :         use pm_kind, only: RKC => RK2
    7548             : #define DISPATCH_ENABLED 1
    7549             : #include "pm_matrixMulTri@routines.inc.F90"
    7550             : #undef  DISPATCH_ENABLED
    7551             :     end procedure
    7552             : #endif
    7553             : 
    7554             : #if RK1_ENABLED
    7555         201 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_ONOB_RK1
    7556             :         use pm_kind, only: RKC => RK1
    7557             : #define DISPATCH_ENABLED 1
    7558             : #include "pm_matrixMulTri@routines.inc.F90"
    7559             : #undef  DISPATCH_ENABLED
    7560             :     end procedure
    7561             : #endif
    7562             : 
    7563             : #undef RK_ENABLED
    7564             : 
    7565             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7566             : 
    7567             : #undef ONOB_ENABLED
    7568             : 
    7569             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7570             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7571             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7572             : 
    7573             : #define OTSB_ENABLED 1
    7574             : 
    7575             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7576             : 
    7577             : #define CK_ENABLED 1
    7578             : 
    7579             : #if CK5_ENABLED
    7580             :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTSB_CK5
    7581             :         use pm_kind, only: CKC => CK5
    7582             : #include "pm_matrixMulTri@routines.inc.F90"
    7583             :     end procedure
    7584             : #endif
    7585             : 
    7586             : #if CK4_ENABLED
    7587         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTSB_CK4
    7588             :         use pm_kind, only: CKC => CK4
    7589             : #include "pm_matrixMulTri@routines.inc.F90"
    7590             :     end procedure
    7591             : #endif
    7592             : 
    7593             : #if CK3_ENABLED
    7594         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTSB_CK3
    7595             :         use pm_kind, only: CKC => CK3
    7596             : #include "pm_matrixMulTri@routines.inc.F90"
    7597             :     end procedure
    7598             : #endif
    7599             : 
    7600             : #if CK2_ENABLED
    7601         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTSB_CK2
    7602             :         use pm_kind, only: CKC => CK2
    7603             : #define DISPATCH_ENABLED 1
    7604             : #include "pm_matrixMulTri@routines.inc.F90"
    7605             : #undef  DISPATCH_ENABLED
    7606             :     end procedure
    7607             : #endif
    7608             : 
    7609             : #if CK1_ENABLED
    7610         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTSB_CK1
    7611             :         use pm_kind, only: CKC => CK1
    7612             : #define DISPATCH_ENABLED 1
    7613             : #include "pm_matrixMulTri@routines.inc.F90"
    7614             : #undef  DISPATCH_ENABLED
    7615             :     end procedure
    7616             : #endif
    7617             : 
    7618             : #undef CK_ENABLED
    7619             : 
    7620             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7621             : 
    7622             : #define RK_ENABLED 1
    7623             : 
    7624             : #if RK5_ENABLED
    7625             :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTSB_RK5
    7626             :         use pm_kind, only: RKC => RK5
    7627             : #include "pm_matrixMulTri@routines.inc.F90"
    7628             :     end procedure
    7629             : #endif
    7630             : 
    7631             : #if RK4_ENABLED
    7632         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTSB_RK4
    7633             :         use pm_kind, only: RKC => RK4
    7634             : #include "pm_matrixMulTri@routines.inc.F90"
    7635             :     end procedure
    7636             : #endif
    7637             : 
    7638             : #if RK3_ENABLED
    7639         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTSB_RK3
    7640             :         use pm_kind, only: RKC => RK3
    7641             : #include "pm_matrixMulTri@routines.inc.F90"
    7642             :     end procedure
    7643             : #endif
    7644             : 
    7645             : #if RK2_ENABLED
    7646         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTSB_RK2
    7647             :         use pm_kind, only: RKC => RK2
    7648             : #define DISPATCH_ENABLED 1
    7649             : #include "pm_matrixMulTri@routines.inc.F90"
    7650             : #undef  DISPATCH_ENABLED
    7651             :     end procedure
    7652             : #endif
    7653             : 
    7654             : #if RK1_ENABLED
    7655         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTSB_RK1
    7656             :         use pm_kind, only: RKC => RK1
    7657             : #define DISPATCH_ENABLED 1
    7658             : #include "pm_matrixMulTri@routines.inc.F90"
    7659             : #undef  DISPATCH_ENABLED
    7660             :     end procedure
    7661             : #endif
    7662             : 
    7663             : #undef RK_ENABLED
    7664             : 
    7665             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7666             : 
    7667             : #undef OTSB_ENABLED
    7668             : 
    7669             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7670             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7671             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7672             : 
    7673             : #define OTHB_ENABLED 1
    7674             : 
    7675             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7676             : 
    7677             : #define CK_ENABLED 1
    7678             : 
    7679             : #if CK5_ENABLED
    7680             :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTHB_CK5
    7681             :         use pm_kind, only: CKC => CK5
    7682             : #include "pm_matrixMulTri@routines.inc.F90"
    7683             :     end procedure
    7684             : #endif
    7685             : 
    7686             : #if CK4_ENABLED
    7687         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTHB_CK4
    7688             :         use pm_kind, only: CKC => CK4
    7689             : #include "pm_matrixMulTri@routines.inc.F90"
    7690             :     end procedure
    7691             : #endif
    7692             : 
    7693             : #if CK3_ENABLED
    7694         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTHB_CK3
    7695             :         use pm_kind, only: CKC => CK3
    7696             : #include "pm_matrixMulTri@routines.inc.F90"
    7697             :     end procedure
    7698             : #endif
    7699             : 
    7700             : #if CK2_ENABLED
    7701         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTHB_CK2
    7702             :         use pm_kind, only: CKC => CK2
    7703             : #define DISPATCH_ENABLED 1
    7704             : #include "pm_matrixMulTri@routines.inc.F90"
    7705             : #undef  DISPATCH_ENABLED
    7706             :     end procedure
    7707             : #endif
    7708             : 
    7709             : #if CK1_ENABLED
    7710         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTHB_CK1
    7711             :         use pm_kind, only: CKC => CK1
    7712             : #define DISPATCH_ENABLED 1
    7713             : #include "pm_matrixMulTri@routines.inc.F90"
    7714             : #undef  DISPATCH_ENABLED
    7715             :     end procedure
    7716             : #endif
    7717             : 
    7718             : #undef CK_ENABLED
    7719             : 
    7720             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7721             : 
    7722             : #define RK_ENABLED 1
    7723             : 
    7724             : #if RK5_ENABLED
    7725             :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTHB_RK5
    7726             :         use pm_kind, only: RKC => RK5
    7727             : #include "pm_matrixMulTri@routines.inc.F90"
    7728             :     end procedure
    7729             : #endif
    7730             : 
    7731             : #if RK4_ENABLED
    7732         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTHB_RK4
    7733             :         use pm_kind, only: RKC => RK4
    7734             : #include "pm_matrixMulTri@routines.inc.F90"
    7735             :     end procedure
    7736             : #endif
    7737             : 
    7738             : #if RK3_ENABLED
    7739         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTHB_RK3
    7740             :         use pm_kind, only: RKC => RK3
    7741             : #include "pm_matrixMulTri@routines.inc.F90"
    7742             :     end procedure
    7743             : #endif
    7744             : 
    7745             : #if RK2_ENABLED
    7746         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTHB_RK2
    7747             :         use pm_kind, only: RKC => RK2
    7748             : #define DISPATCH_ENABLED 1
    7749             : #include "pm_matrixMulTri@routines.inc.F90"
    7750             : #undef  DISPATCH_ENABLED
    7751             :     end procedure
    7752             : #endif
    7753             : 
    7754             : #if RK1_ENABLED
    7755         200 :     module procedure trmm_ASS_CGMA_ONOA_CUUB_OTHB_RK1
    7756             :         use pm_kind, only: RKC => RK1
    7757             : #define DISPATCH_ENABLED 1
    7758             : #include "pm_matrixMulTri@routines.inc.F90"
    7759             : #undef  DISPATCH_ENABLED
    7760             :     end procedure
    7761             : #endif
    7762             : 
    7763             : #undef RK_ENABLED
    7764             : 
    7765             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7766             : 
    7767             : #undef OTHB_ENABLED
    7768             : 
    7769             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7770             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7771             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7772             : 
    7773             : #undef CUUB_ENABLED
    7774             : 
    7775             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7776             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7777             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7778             : 
    7779             : #undef ONOA_ENABLED
    7780             : 
    7781             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7782             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7783             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7784             : 
    7785             : #undef CGMA_ENABLED
    7786             : 
    7787             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7788             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7789             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7790             : 
    7791             : #undef ASS_ENABLED
    7792             : 
    7793             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7794             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7795             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7796             : 
    7797             : #define EXP_ENABLED 1
    7798             : 
    7799             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7800             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7801             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7802             : 
    7803             : #define CGMB_ENABLED 1
    7804             : 
    7805             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7806             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7807             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7808             : 
    7809             : #define ONOB_ENABLED 1
    7810             : 
    7811             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7812             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7813             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7814             : 
    7815             : #define CLDA_ENABLED 1
    7816             : 
    7817             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7818             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7819             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7820             : 
    7821             : #define ONOA_ENABLED 1
    7822             : 
    7823             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7824             : 
    7825             : #define CK_ENABLED 1
    7826             : 
    7827             : #if CK5_ENABLED
    7828             :     module procedure trmm_EXP_CLDA_ONOA_CGMB_ONOB_CK5
    7829             :         use pm_kind, only: CKC => CK5
    7830             : #include "pm_matrixMulTri@routines.inc.F90"
    7831             :     end procedure
    7832             : #endif
    7833             : 
    7834             : #if CK4_ENABLED
    7835         100 :     module procedure trmm_EXP_CLDA_ONOA_CGMB_ONOB_CK4
    7836             :         use pm_kind, only: CKC => CK4
    7837             : #include "pm_matrixMulTri@routines.inc.F90"
    7838             :     end procedure
    7839             : #endif
    7840             : 
    7841             : #if CK3_ENABLED
    7842         100 :     module procedure trmm_EXP_CLDA_ONOA_CGMB_ONOB_CK3
    7843             :         use pm_kind, only: CKC => CK3
    7844             : #include "pm_matrixMulTri@routines.inc.F90"
    7845             :     end procedure
    7846             : #endif
    7847             : 
    7848             : #if CK2_ENABLED
    7849         100 :     module procedure trmm_EXP_CLDA_ONOA_CGMB_ONOB_CK2
    7850             :         use pm_kind, only: CKC => CK2
    7851             : #define DISPATCH_ENABLED 1
    7852             : #include "pm_matrixMulTri@routines.inc.F90"
    7853             : #undef  DISPATCH_ENABLED
    7854             :     end procedure
    7855             : #endif
    7856             : 
    7857             : #if CK1_ENABLED
    7858         100 :     module procedure trmm_EXP_CLDA_ONOA_CGMB_ONOB_CK1
    7859             :         use pm_kind, only: CKC => CK1
    7860             : #define DISPATCH_ENABLED 1
    7861             : #include "pm_matrixMulTri@routines.inc.F90"
    7862             : #undef  DISPATCH_ENABLED
    7863             :     end procedure
    7864             : #endif
    7865             : 
    7866             : #undef CK_ENABLED
    7867             : 
    7868             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7869             : 
    7870             : #define RK_ENABLED 1
    7871             : 
    7872             : #if RK5_ENABLED
    7873             :     module procedure trmm_EXP_CLDA_ONOA_CGMB_ONOB_RK5
    7874             :         use pm_kind, only: RKC => RK5
    7875             : #include "pm_matrixMulTri@routines.inc.F90"
    7876             :     end procedure
    7877             : #endif
    7878             : 
    7879             : #if RK4_ENABLED
    7880         100 :     module procedure trmm_EXP_CLDA_ONOA_CGMB_ONOB_RK4
    7881             :         use pm_kind, only: RKC => RK4
    7882             : #include "pm_matrixMulTri@routines.inc.F90"
    7883             :     end procedure
    7884             : #endif
    7885             : 
    7886             : #if RK3_ENABLED
    7887         100 :     module procedure trmm_EXP_CLDA_ONOA_CGMB_ONOB_RK3
    7888             :         use pm_kind, only: RKC => RK3
    7889             : #include "pm_matrixMulTri@routines.inc.F90"
    7890             :     end procedure
    7891             : #endif
    7892             : 
    7893             : #if RK2_ENABLED
    7894         100 :     module procedure trmm_EXP_CLDA_ONOA_CGMB_ONOB_RK2
    7895             :         use pm_kind, only: RKC => RK2
    7896             : #define DISPATCH_ENABLED 1
    7897             : #include "pm_matrixMulTri@routines.inc.F90"
    7898             : #undef  DISPATCH_ENABLED
    7899             :     end procedure
    7900             : #endif
    7901             : 
    7902             : #if RK1_ENABLED
    7903         100 :     module procedure trmm_EXP_CLDA_ONOA_CGMB_ONOB_RK1
    7904             :         use pm_kind, only: RKC => RK1
    7905             : #define DISPATCH_ENABLED 1
    7906             : #include "pm_matrixMulTri@routines.inc.F90"
    7907             : #undef  DISPATCH_ENABLED
    7908             :     end procedure
    7909             : #endif
    7910             : 
    7911             : #undef RK_ENABLED
    7912             : 
    7913             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7914             : 
    7915             : #undef ONOA_ENABLED
    7916             : 
    7917             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7918             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7919             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7920             : 
    7921             : #define OTSA_ENABLED 1
    7922             : 
    7923             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7924             : 
    7925             : #define CK_ENABLED 1
    7926             : 
    7927             : #if CK5_ENABLED
    7928             :     module procedure trmm_EXP_CLDA_OTSA_CGMB_ONOB_CK5
    7929             :         use pm_kind, only: CKC => CK5
    7930             : #include "pm_matrixMulTri@routines.inc.F90"
    7931             :     end procedure
    7932             : #endif
    7933             : 
    7934             : #if CK4_ENABLED
    7935         100 :     module procedure trmm_EXP_CLDA_OTSA_CGMB_ONOB_CK4
    7936             :         use pm_kind, only: CKC => CK4
    7937             : #include "pm_matrixMulTri@routines.inc.F90"
    7938             :     end procedure
    7939             : #endif
    7940             : 
    7941             : #if CK3_ENABLED
    7942         100 :     module procedure trmm_EXP_CLDA_OTSA_CGMB_ONOB_CK3
    7943             :         use pm_kind, only: CKC => CK3
    7944             : #include "pm_matrixMulTri@routines.inc.F90"
    7945             :     end procedure
    7946             : #endif
    7947             : 
    7948             : #if CK2_ENABLED
    7949         100 :     module procedure trmm_EXP_CLDA_OTSA_CGMB_ONOB_CK2
    7950             :         use pm_kind, only: CKC => CK2
    7951             : #define DISPATCH_ENABLED 1
    7952             : #include "pm_matrixMulTri@routines.inc.F90"
    7953             : #undef  DISPATCH_ENABLED
    7954             :     end procedure
    7955             : #endif
    7956             : 
    7957             : #if CK1_ENABLED
    7958         100 :     module procedure trmm_EXP_CLDA_OTSA_CGMB_ONOB_CK1
    7959             :         use pm_kind, only: CKC => CK1
    7960             : #define DISPATCH_ENABLED 1
    7961             : #include "pm_matrixMulTri@routines.inc.F90"
    7962             : #undef  DISPATCH_ENABLED
    7963             :     end procedure
    7964             : #endif
    7965             : 
    7966             : #undef CK_ENABLED
    7967             : 
    7968             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7969             : 
    7970             : #define RK_ENABLED 1
    7971             : 
    7972             : #if RK5_ENABLED
    7973             :     module procedure trmm_EXP_CLDA_OTSA_CGMB_ONOB_RK5
    7974             :         use pm_kind, only: RKC => RK5
    7975             : #include "pm_matrixMulTri@routines.inc.F90"
    7976             :     end procedure
    7977             : #endif
    7978             : 
    7979             : #if RK4_ENABLED
    7980         100 :     module procedure trmm_EXP_CLDA_OTSA_CGMB_ONOB_RK4
    7981             :         use pm_kind, only: RKC => RK4
    7982             : #include "pm_matrixMulTri@routines.inc.F90"
    7983             :     end procedure
    7984             : #endif
    7985             : 
    7986             : #if RK3_ENABLED
    7987         100 :     module procedure trmm_EXP_CLDA_OTSA_CGMB_ONOB_RK3
    7988             :         use pm_kind, only: RKC => RK3
    7989             : #include "pm_matrixMulTri@routines.inc.F90"
    7990             :     end procedure
    7991             : #endif
    7992             : 
    7993             : #if RK2_ENABLED
    7994         100 :     module procedure trmm_EXP_CLDA_OTSA_CGMB_ONOB_RK2
    7995             :         use pm_kind, only: RKC => RK2
    7996             : #define DISPATCH_ENABLED 1
    7997             : #include "pm_matrixMulTri@routines.inc.F90"
    7998             : #undef  DISPATCH_ENABLED
    7999             :     end procedure
    8000             : #endif
    8001             : 
    8002             : #if RK1_ENABLED
    8003         100 :     module procedure trmm_EXP_CLDA_OTSA_CGMB_ONOB_RK1
    8004             :         use pm_kind, only: RKC => RK1
    8005             : #define DISPATCH_ENABLED 1
    8006             : #include "pm_matrixMulTri@routines.inc.F90"
    8007             : #undef  DISPATCH_ENABLED
    8008             :     end procedure
    8009             : #endif
    8010             : 
    8011             : #undef RK_ENABLED
    8012             : 
    8013             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8014             : 
    8015             : #undef OTSA_ENABLED
    8016             : 
    8017             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8018             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8019             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8020             : 
    8021             : #define OTHA_ENABLED 1
    8022             : 
    8023             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8024             : 
    8025             : #define CK_ENABLED 1
    8026             : 
    8027             : #if CK5_ENABLED
    8028             :     module procedure trmm_EXP_CLDA_OTHA_CGMB_ONOB_CK5
    8029             :         use pm_kind, only: CKC => CK5
    8030             : #include "pm_matrixMulTri@routines.inc.F90"
    8031             :     end procedure
    8032             : #endif
    8033             : 
    8034             : #if CK4_ENABLED
    8035         100 :     module procedure trmm_EXP_CLDA_OTHA_CGMB_ONOB_CK4
    8036             :         use pm_kind, only: CKC => CK4
    8037             : #include "pm_matrixMulTri@routines.inc.F90"
    8038             :     end procedure
    8039             : #endif
    8040             : 
    8041             : #if CK3_ENABLED
    8042         100 :     module procedure trmm_EXP_CLDA_OTHA_CGMB_ONOB_CK3
    8043             :         use pm_kind, only: CKC => CK3
    8044             : #include "pm_matrixMulTri@routines.inc.F90"
    8045             :     end procedure
    8046             : #endif
    8047             : 
    8048             : #if CK2_ENABLED
    8049         100 :     module procedure trmm_EXP_CLDA_OTHA_CGMB_ONOB_CK2
    8050             :         use pm_kind, only: CKC => CK2
    8051             : #define DISPATCH_ENABLED 1
    8052             : #include "pm_matrixMulTri@routines.inc.F90"
    8053             : #undef  DISPATCH_ENABLED
    8054             :     end procedure
    8055             : #endif
    8056             : 
    8057             : #if CK1_ENABLED
    8058         100 :     module procedure trmm_EXP_CLDA_OTHA_CGMB_ONOB_CK1
    8059             :         use pm_kind, only: CKC => CK1
    8060             : #define DISPATCH_ENABLED 1
    8061             : #include "pm_matrixMulTri@routines.inc.F90"
    8062             : #undef  DISPATCH_ENABLED
    8063             :     end procedure
    8064             : #endif
    8065             : 
    8066             : #undef CK_ENABLED
    8067             : 
    8068             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8069             : 
    8070             : #define RK_ENABLED 1
    8071             : 
    8072             : #if RK5_ENABLED
    8073             :     module procedure trmm_EXP_CLDA_OTHA_CGMB_ONOB_RK5
    8074             :         use pm_kind, only: RKC => RK5
    8075             : #include "pm_matrixMulTri@routines.inc.F90"
    8076             :     end procedure
    8077             : #endif
    8078             : 
    8079             : #if RK4_ENABLED
    8080         100 :     module procedure trmm_EXP_CLDA_OTHA_CGMB_ONOB_RK4
    8081             :         use pm_kind, only: RKC => RK4
    8082             : #include "pm_matrixMulTri@routines.inc.F90"
    8083             :     end procedure
    8084             : #endif
    8085             : 
    8086             : #if RK3_ENABLED
    8087         100 :     module procedure trmm_EXP_CLDA_OTHA_CGMB_ONOB_RK3
    8088             :         use pm_kind, only: RKC => RK3
    8089             : #include "pm_matrixMulTri@routines.inc.F90"
    8090             :     end procedure
    8091             : #endif
    8092             : 
    8093             : #if RK2_ENABLED
    8094         100 :     module procedure trmm_EXP_CLDA_OTHA_CGMB_ONOB_RK2
    8095             :         use pm_kind, only: RKC => RK2
    8096             : #define DISPATCH_ENABLED 1
    8097             : #include "pm_matrixMulTri@routines.inc.F90"
    8098             : #undef  DISPATCH_ENABLED
    8099             :     end procedure
    8100             : #endif
    8101             : 
    8102             : #if RK1_ENABLED
    8103         100 :     module procedure trmm_EXP_CLDA_OTHA_CGMB_ONOB_RK1
    8104             :         use pm_kind, only: RKC => RK1
    8105             : #define DISPATCH_ENABLED 1
    8106             : #include "pm_matrixMulTri@routines.inc.F90"
    8107             : #undef  DISPATCH_ENABLED
    8108             :     end procedure
    8109             : #endif
    8110             : 
    8111             : #undef RK_ENABLED
    8112             : 
    8113             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8114             : 
    8115             : #undef OTHA_ENABLED
    8116             : 
    8117             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8118             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8119             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8120             : 
    8121             : #undef CLDA_ENABLED
    8122             : 
    8123             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8124             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8125             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8126             : 
    8127             : #define CUDA_ENABLED 1
    8128             : 
    8129             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8130             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8131             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8132             : 
    8133             : #define ONOA_ENABLED 1
    8134             : 
    8135             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8136             : 
    8137             : #define CK_ENABLED 1
    8138             : 
    8139             : #if CK5_ENABLED
    8140             :     module procedure trmm_EXP_CUDA_ONOA_CGMB_ONOB_CK5
    8141             :         use pm_kind, only: CKC => CK5
    8142             : #include "pm_matrixMulTri@routines.inc.F90"
    8143             :     end procedure
    8144             : #endif
    8145             : 
    8146             : #if CK4_ENABLED
    8147         100 :     module procedure trmm_EXP_CUDA_ONOA_CGMB_ONOB_CK4
    8148             :         use pm_kind, only: CKC => CK4
    8149             : #include "pm_matrixMulTri@routines.inc.F90"
    8150             :     end procedure
    8151             : #endif
    8152             : 
    8153             : #if CK3_ENABLED
    8154         100 :     module procedure trmm_EXP_CUDA_ONOA_CGMB_ONOB_CK3
    8155             :         use pm_kind, only: CKC => CK3
    8156             : #include "pm_matrixMulTri@routines.inc.F90"
    8157             :     end procedure
    8158             : #endif
    8159             : 
    8160             : #if CK2_ENABLED
    8161         100 :     module procedure trmm_EXP_CUDA_ONOA_CGMB_ONOB_CK2
    8162             :         use pm_kind, only: CKC => CK2
    8163             : #define DISPATCH_ENABLED 1
    8164             : #include "pm_matrixMulTri@routines.inc.F90"
    8165             : #undef  DISPATCH_ENABLED
    8166             :     end procedure
    8167             : #endif
    8168             : 
    8169             : #if CK1_ENABLED
    8170         100 :     module procedure trmm_EXP_CUDA_ONOA_CGMB_ONOB_CK1
    8171             :         use pm_kind, only: CKC => CK1
    8172             : #define DISPATCH_ENABLED 1
    8173             : #include "pm_matrixMulTri@routines.inc.F90"
    8174             : #undef  DISPATCH_ENABLED
    8175             :     end procedure
    8176             : #endif
    8177             : 
    8178             : #undef CK_ENABLED
    8179             : 
    8180             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8181             : 
    8182             : #define RK_ENABLED 1
    8183             : 
    8184             : #if RK5_ENABLED
    8185             :     module procedure trmm_EXP_CUDA_ONOA_CGMB_ONOB_RK5
    8186             :         use pm_kind, only: RKC => RK5
    8187             : #include "pm_matrixMulTri@routines.inc.F90"
    8188             :     end procedure
    8189             : #endif
    8190             : 
    8191             : #if RK4_ENABLED
    8192         100 :     module procedure trmm_EXP_CUDA_ONOA_CGMB_ONOB_RK4
    8193             :         use pm_kind, only: RKC => RK4
    8194             : #include "pm_matrixMulTri@routines.inc.F90"
    8195             :     end procedure
    8196             : #endif
    8197             : 
    8198             : #if RK3_ENABLED
    8199         100 :     module procedure trmm_EXP_CUDA_ONOA_CGMB_ONOB_RK3
    8200             :         use pm_kind, only: RKC => RK3
    8201             : #include "pm_matrixMulTri@routines.inc.F90"
    8202             :     end procedure
    8203             : #endif
    8204             : 
    8205             : #if RK2_ENABLED
    8206         100 :     module procedure trmm_EXP_CUDA_ONOA_CGMB_ONOB_RK2
    8207             :         use pm_kind, only: RKC => RK2
    8208             : #define DISPATCH_ENABLED 1
    8209             : #include "pm_matrixMulTri@routines.inc.F90"
    8210             : #undef  DISPATCH_ENABLED
    8211             :     end procedure
    8212             : #endif
    8213             : 
    8214             : #if RK1_ENABLED
    8215         101 :     module procedure trmm_EXP_CUDA_ONOA_CGMB_ONOB_RK1
    8216             :         use pm_kind, only: RKC => RK1
    8217             : #define DISPATCH_ENABLED 1
    8218             : #include "pm_matrixMulTri@routines.inc.F90"
    8219             : #undef  DISPATCH_ENABLED
    8220             :     end procedure
    8221             : #endif
    8222             : 
    8223             : #undef RK_ENABLED
    8224             : 
    8225             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8226             : 
    8227             : #undef ONOA_ENABLED
    8228             : 
    8229             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8230             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8231             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8232             : 
    8233             : #define OTSA_ENABLED 1
    8234             : 
    8235             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8236             : 
    8237             : #define CK_ENABLED 1
    8238             : 
    8239             : #if CK5_ENABLED
    8240             :     module procedure trmm_EXP_CUDA_OTSA_CGMB_ONOB_CK5
    8241             :         use pm_kind, only: CKC => CK5
    8242             : #include "pm_matrixMulTri@routines.inc.F90"
    8243             :     end procedure
    8244             : #endif
    8245             : 
    8246             : #if CK4_ENABLED
    8247         100 :     module procedure trmm_EXP_CUDA_OTSA_CGMB_ONOB_CK4
    8248             :         use pm_kind, only: CKC => CK4
    8249             : #include "pm_matrixMulTri@routines.inc.F90"
    8250             :     end procedure
    8251             : #endif
    8252             : 
    8253             : #if CK3_ENABLED
    8254         100 :     module procedure trmm_EXP_CUDA_OTSA_CGMB_ONOB_CK3
    8255             :         use pm_kind, only: CKC => CK3
    8256             : #include "pm_matrixMulTri@routines.inc.F90"
    8257             :     end procedure
    8258             : #endif
    8259             : 
    8260             : #if CK2_ENABLED
    8261         100 :     module procedure trmm_EXP_CUDA_OTSA_CGMB_ONOB_CK2
    8262             :         use pm_kind, only: CKC => CK2
    8263             : #define DISPATCH_ENABLED 1
    8264             : #include "pm_matrixMulTri@routines.inc.F90"
    8265             : #undef  DISPATCH_ENABLED
    8266             :     end procedure
    8267             : #endif
    8268             : 
    8269             : #if CK1_ENABLED
    8270         100 :     module procedure trmm_EXP_CUDA_OTSA_CGMB_ONOB_CK1
    8271             :         use pm_kind, only: CKC => CK1
    8272             : #define DISPATCH_ENABLED 1
    8273             : #include "pm_matrixMulTri@routines.inc.F90"
    8274             : #undef  DISPATCH_ENABLED
    8275             :     end procedure
    8276             : #endif
    8277             : 
    8278             : #undef CK_ENABLED
    8279             : 
    8280             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8281             : 
    8282             : #define RK_ENABLED 1
    8283             : 
    8284             : #if RK5_ENABLED
    8285             :     module procedure trmm_EXP_CUDA_OTSA_CGMB_ONOB_RK5
    8286             :         use pm_kind, only: RKC => RK5
    8287             : #include "pm_matrixMulTri@routines.inc.F90"
    8288             :     end procedure
    8289             : #endif
    8290             : 
    8291             : #if RK4_ENABLED
    8292         100 :     module procedure trmm_EXP_CUDA_OTSA_CGMB_ONOB_RK4
    8293             :         use pm_kind, only: RKC => RK4
    8294             : #include "pm_matrixMulTri@routines.inc.F90"
    8295             :     end procedure
    8296             : #endif
    8297             : 
    8298             : #if RK3_ENABLED
    8299         100 :     module procedure trmm_EXP_CUDA_OTSA_CGMB_ONOB_RK3
    8300             :         use pm_kind, only: RKC => RK3
    8301             : #include "pm_matrixMulTri@routines.inc.F90"
    8302             :     end procedure
    8303             : #endif
    8304             : 
    8305             : #if RK2_ENABLED
    8306         100 :     module procedure trmm_EXP_CUDA_OTSA_CGMB_ONOB_RK2
    8307             :         use pm_kind, only: RKC => RK2
    8308             : #define DISPATCH_ENABLED 1
    8309             : #include "pm_matrixMulTri@routines.inc.F90"
    8310             : #undef  DISPATCH_ENABLED
    8311             :     end procedure
    8312             : #endif
    8313             : 
    8314             : #if RK1_ENABLED
    8315         101 :     module procedure trmm_EXP_CUDA_OTSA_CGMB_ONOB_RK1
    8316             :         use pm_kind, only: RKC => RK1
    8317             : #define DISPATCH_ENABLED 1
    8318             : #include "pm_matrixMulTri@routines.inc.F90"
    8319             : #undef  DISPATCH_ENABLED
    8320             :     end procedure
    8321             : #endif
    8322             : 
    8323             : #undef RK_ENABLED
    8324             : 
    8325             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8326             : 
    8327             : #undef OTSA_ENABLED
    8328             : 
    8329             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8330             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8331             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8332             : 
    8333             : #define OTHA_ENABLED 1
    8334             : 
    8335             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8336             : 
    8337             : #define CK_ENABLED 1
    8338             : 
    8339             : #if CK5_ENABLED
    8340             :     module procedure trmm_EXP_CUDA_OTHA_CGMB_ONOB_CK5
    8341             :         use pm_kind, only: CKC => CK5
    8342             : #include "pm_matrixMulTri@routines.inc.F90"
    8343             :     end procedure
    8344             : #endif
    8345             : 
    8346             : #if CK4_ENABLED
    8347         100 :     module procedure trmm_EXP_CUDA_OTHA_CGMB_ONOB_CK4
    8348             :         use pm_kind, only: CKC => CK4
    8349             : #include "pm_matrixMulTri@routines.inc.F90"
    8350             :     end procedure
    8351             : #endif
    8352             : 
    8353             : #if CK3_ENABLED
    8354         100 :     module procedure trmm_EXP_CUDA_OTHA_CGMB_ONOB_CK3
    8355             :         use pm_kind, only: CKC => CK3
    8356             : #include "pm_matrixMulTri@routines.inc.F90"
    8357             :     end procedure
    8358             : #endif
    8359             : 
    8360             : #if CK2_ENABLED
    8361         100 :     module procedure trmm_EXP_CUDA_OTHA_CGMB_ONOB_CK2
    8362             :         use pm_kind, only: CKC => CK2
    8363             : #define DISPATCH_ENABLED 1
    8364             : #include "pm_matrixMulTri@routines.inc.F90"
    8365             : #undef  DISPATCH_ENABLED
    8366             :     end procedure
    8367             : #endif
    8368             : 
    8369             : #if CK1_ENABLED
    8370         100 :     module procedure trmm_EXP_CUDA_OTHA_CGMB_ONOB_CK1
    8371             :         use pm_kind, only: CKC => CK1
    8372             : #define DISPATCH_ENABLED 1
    8373             : #include "pm_matrixMulTri@routines.inc.F90"
    8374             : #undef  DISPATCH_ENABLED
    8375             :     end procedure
    8376             : #endif
    8377             : 
    8378             : #undef CK_ENABLED
    8379             : 
    8380             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8381             : 
    8382             : #define RK_ENABLED 1
    8383             : 
    8384             : #if RK5_ENABLED
    8385             :     module procedure trmm_EXP_CUDA_OTHA_CGMB_ONOB_RK5
    8386             :         use pm_kind, only: RKC => RK5
    8387             : #include "pm_matrixMulTri@routines.inc.F90"
    8388             :     end procedure
    8389             : #endif
    8390             : 
    8391             : #if RK4_ENABLED
    8392         100 :     module procedure trmm_EXP_CUDA_OTHA_CGMB_ONOB_RK4
    8393             :         use pm_kind, only: RKC => RK4
    8394             : #include "pm_matrixMulTri@routines.inc.F90"
    8395             :     end procedure
    8396             : #endif
    8397             : 
    8398             : #if RK3_ENABLED
    8399         100 :     module procedure trmm_EXP_CUDA_OTHA_CGMB_ONOB_RK3
    8400             :         use pm_kind, only: RKC => RK3
    8401             : #include "pm_matrixMulTri@routines.inc.F90"
    8402             :     end procedure
    8403             : #endif
    8404             : 
    8405             : #if RK2_ENABLED
    8406         100 :     module procedure trmm_EXP_CUDA_OTHA_CGMB_ONOB_RK2
    8407             :         use pm_kind, only: RKC => RK2
    8408             : #define DISPATCH_ENABLED 1
    8409             : #include "pm_matrixMulTri@routines.inc.F90"
    8410             : #undef  DISPATCH_ENABLED
    8411             :     end procedure
    8412             : #endif
    8413             : 
    8414             : #if RK1_ENABLED
    8415         100 :     module procedure trmm_EXP_CUDA_OTHA_CGMB_ONOB_RK1
    8416             :         use pm_kind, only: RKC => RK1
    8417             : #define DISPATCH_ENABLED 1
    8418             : #include "pm_matrixMulTri@routines.inc.F90"
    8419             : #undef  DISPATCH_ENABLED
    8420             :     end procedure
    8421             : #endif
    8422             : 
    8423             : #undef RK_ENABLED
    8424             : 
    8425             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8426             : 
    8427             : #undef OTHA_ENABLED
    8428             : 
    8429             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8430             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8431             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8432             : 
    8433             : #undef CUDA_ENABLED
    8434             : 
    8435             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8436             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8437             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8438             : 
    8439             : #define CLUA_ENABLED 1
    8440             : 
    8441             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8442             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8443             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8444             : 
    8445             : #define ONOA_ENABLED 1
    8446             : 
    8447             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8448             : 
    8449             : #define CK_ENABLED 1
    8450             : 
    8451             : #if CK5_ENABLED
    8452             :     module procedure trmm_EXP_CLUA_ONOA_CGMB_ONOB_CK5
    8453             :         use pm_kind, only: CKC => CK5
    8454             : #include "pm_matrixMulTri@routines.inc.F90"
    8455             :     end procedure
    8456             : #endif
    8457             : 
    8458             : #if CK4_ENABLED
    8459         100 :     module procedure trmm_EXP_CLUA_ONOA_CGMB_ONOB_CK4
    8460             :         use pm_kind, only: CKC => CK4
    8461             : #include "pm_matrixMulTri@routines.inc.F90"
    8462             :     end procedure
    8463             : #endif
    8464             : 
    8465             : #if CK3_ENABLED
    8466         100 :     module procedure trmm_EXP_CLUA_ONOA_CGMB_ONOB_CK3
    8467             :         use pm_kind, only: CKC => CK3
    8468             : #include "pm_matrixMulTri@routines.inc.F90"
    8469             :     end procedure
    8470             : #endif
    8471             : 
    8472             : #if CK2_ENABLED
    8473         100 :     module procedure trmm_EXP_CLUA_ONOA_CGMB_ONOB_CK2
    8474             :         use pm_kind, only: CKC => CK2
    8475             : #define DISPATCH_ENABLED 1
    8476             : #include "pm_matrixMulTri@routines.inc.F90"
    8477             : #undef  DISPATCH_ENABLED
    8478             :     end procedure
    8479             : #endif
    8480             : 
    8481             : #if CK1_ENABLED
    8482         100 :     module procedure trmm_EXP_CLUA_ONOA_CGMB_ONOB_CK1
    8483             :         use pm_kind, only: CKC => CK1
    8484             : #define DISPATCH_ENABLED 1
    8485             : #include "pm_matrixMulTri@routines.inc.F90"
    8486             : #undef  DISPATCH_ENABLED
    8487             :     end procedure
    8488             : #endif
    8489             : 
    8490             : #undef CK_ENABLED
    8491             : 
    8492             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8493             : 
    8494             : #define RK_ENABLED 1
    8495             : 
    8496             : #if RK5_ENABLED
    8497             :     module procedure trmm_EXP_CLUA_ONOA_CGMB_ONOB_RK5
    8498             :         use pm_kind, only: RKC => RK5
    8499             : #include "pm_matrixMulTri@routines.inc.F90"
    8500             :     end procedure
    8501             : #endif
    8502             : 
    8503             : #if RK4_ENABLED
    8504         100 :     module procedure trmm_EXP_CLUA_ONOA_CGMB_ONOB_RK4
    8505             :         use pm_kind, only: RKC => RK4
    8506             : #include "pm_matrixMulTri@routines.inc.F90"
    8507             :     end procedure
    8508             : #endif
    8509             : 
    8510             : #if RK3_ENABLED
    8511         100 :     module procedure trmm_EXP_CLUA_ONOA_CGMB_ONOB_RK3
    8512             :         use pm_kind, only: RKC => RK3
    8513             : #include "pm_matrixMulTri@routines.inc.F90"
    8514             :     end procedure
    8515             : #endif
    8516             : 
    8517             : #if RK2_ENABLED
    8518         100 :     module procedure trmm_EXP_CLUA_ONOA_CGMB_ONOB_RK2
    8519             :         use pm_kind, only: RKC => RK2
    8520             : #define DISPATCH_ENABLED 1
    8521             : #include "pm_matrixMulTri@routines.inc.F90"
    8522             : #undef  DISPATCH_ENABLED
    8523             :     end procedure
    8524             : #endif
    8525             : 
    8526             : #if RK1_ENABLED
    8527         100 :     module procedure trmm_EXP_CLUA_ONOA_CGMB_ONOB_RK1
    8528             :         use pm_kind, only: RKC => RK1
    8529             : #define DISPATCH_ENABLED 1
    8530             : #include "pm_matrixMulTri@routines.inc.F90"
    8531             : #undef  DISPATCH_ENABLED
    8532             :     end procedure
    8533             : #endif
    8534             : 
    8535             : #undef RK_ENABLED
    8536             : 
    8537             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8538             : 
    8539             : #undef ONOA_ENABLED
    8540             : 
    8541             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8542             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8543             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8544             : 
    8545             : #define OTSA_ENABLED 1
    8546             : 
    8547             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8548             : 
    8549             : #define CK_ENABLED 1
    8550             : 
    8551             : #if CK5_ENABLED
    8552             :     module procedure trmm_EXP_CLUA_OTSA_CGMB_ONOB_CK5
    8553             :         use pm_kind, only: CKC => CK5
    8554             : #include "pm_matrixMulTri@routines.inc.F90"
    8555             :     end procedure
    8556             : #endif
    8557             : 
    8558             : #if CK4_ENABLED
    8559         100 :     module procedure trmm_EXP_CLUA_OTSA_CGMB_ONOB_CK4
    8560             :         use pm_kind, only: CKC => CK4
    8561             : #include "pm_matrixMulTri@routines.inc.F90"
    8562             :     end procedure
    8563             : #endif
    8564             : 
    8565             : #if CK3_ENABLED
    8566         100 :     module procedure trmm_EXP_CLUA_OTSA_CGMB_ONOB_CK3
    8567             :         use pm_kind, only: CKC => CK3
    8568             : #include "pm_matrixMulTri@routines.inc.F90"
    8569             :     end procedure
    8570             : #endif
    8571             : 
    8572             : #if CK2_ENABLED
    8573         100 :     module procedure trmm_EXP_CLUA_OTSA_CGMB_ONOB_CK2
    8574             :         use pm_kind, only: CKC => CK2
    8575             : #define DISPATCH_ENABLED 1
    8576             : #include "pm_matrixMulTri@routines.inc.F90"
    8577             : #undef  DISPATCH_ENABLED
    8578             :     end procedure
    8579             : #endif
    8580             : 
    8581             : #if CK1_ENABLED
    8582         100 :     module procedure trmm_EXP_CLUA_OTSA_CGMB_ONOB_CK1
    8583             :         use pm_kind, only: CKC => CK1
    8584             : #define DISPATCH_ENABLED 1
    8585             : #include "pm_matrixMulTri@routines.inc.F90"
    8586             : #undef  DISPATCH_ENABLED
    8587             :     end procedure
    8588             : #endif
    8589             : 
    8590             : #undef CK_ENABLED
    8591             : 
    8592             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8593             : 
    8594             : #define RK_ENABLED 1
    8595             : 
    8596             : #if RK5_ENABLED
    8597             :     module procedure trmm_EXP_CLUA_OTSA_CGMB_ONOB_RK5
    8598             :         use pm_kind, only: RKC => RK5
    8599             : #include "pm_matrixMulTri@routines.inc.F90"
    8600             :     end procedure
    8601             : #endif
    8602             : 
    8603             : #if RK4_ENABLED
    8604         100 :     module procedure trmm_EXP_CLUA_OTSA_CGMB_ONOB_RK4
    8605             :         use pm_kind, only: RKC => RK4
    8606             : #include "pm_matrixMulTri@routines.inc.F90"
    8607             :     end procedure
    8608             : #endif
    8609             : 
    8610             : #if RK3_ENABLED
    8611         100 :     module procedure trmm_EXP_CLUA_OTSA_CGMB_ONOB_RK3
    8612             :         use pm_kind, only: RKC => RK3
    8613             : #include "pm_matrixMulTri@routines.inc.F90"
    8614             :     end procedure
    8615             : #endif
    8616             : 
    8617             : #if RK2_ENABLED
    8618         100 :     module procedure trmm_EXP_CLUA_OTSA_CGMB_ONOB_RK2
    8619             :         use pm_kind, only: RKC => RK2
    8620             : #define DISPATCH_ENABLED 1
    8621             : #include "pm_matrixMulTri@routines.inc.F90"
    8622             : #undef  DISPATCH_ENABLED
    8623             :     end procedure
    8624             : #endif
    8625             : 
    8626             : #if RK1_ENABLED
    8627         100 :     module procedure trmm_EXP_CLUA_OTSA_CGMB_ONOB_RK1
    8628             :         use pm_kind, only: RKC => RK1
    8629             : #define DISPATCH_ENABLED 1
    8630             : #include "pm_matrixMulTri@routines.inc.F90"
    8631             : #undef  DISPATCH_ENABLED
    8632             :     end procedure
    8633             : #endif
    8634             : 
    8635             : #undef RK_ENABLED
    8636             : 
    8637             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8638             : 
    8639             : #undef OTSA_ENABLED
    8640             : 
    8641             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8642             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8643             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8644             : 
    8645             : #define OTHA_ENABLED 1
    8646             : 
    8647             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8648             : 
    8649             : #define CK_ENABLED 1
    8650             : 
    8651             : #if CK5_ENABLED
    8652             :     module procedure trmm_EXP_CLUA_OTHA_CGMB_ONOB_CK5
    8653             :         use pm_kind, only: CKC => CK5
    8654             : #include "pm_matrixMulTri@routines.inc.F90"
    8655             :     end procedure
    8656             : #endif
    8657             : 
    8658             : #if CK4_ENABLED
    8659         100 :     module procedure trmm_EXP_CLUA_OTHA_CGMB_ONOB_CK4
    8660             :         use pm_kind, only: CKC => CK4
    8661             : #include "pm_matrixMulTri@routines.inc.F90"
    8662             :     end procedure
    8663             : #endif
    8664             : 
    8665             : #if CK3_ENABLED
    8666         100 :     module procedure trmm_EXP_CLUA_OTHA_CGMB_ONOB_CK3
    8667             :         use pm_kind, only: CKC => CK3
    8668             : #include "pm_matrixMulTri@routines.inc.F90"
    8669             :     end procedure
    8670             : #endif
    8671             : 
    8672             : #if CK2_ENABLED
    8673         100 :     module procedure trmm_EXP_CLUA_OTHA_CGMB_ONOB_CK2
    8674             :         use pm_kind, only: CKC => CK2
    8675             : #define DISPATCH_ENABLED 1
    8676             : #include "pm_matrixMulTri@routines.inc.F90"
    8677             : #undef  DISPATCH_ENABLED
    8678             :     end procedure
    8679             : #endif
    8680             : 
    8681             : #if CK1_ENABLED
    8682         100 :     module procedure trmm_EXP_CLUA_OTHA_CGMB_ONOB_CK1
    8683             :         use pm_kind, only: CKC => CK1
    8684             : #define DISPATCH_ENABLED 1
    8685             : #include "pm_matrixMulTri@routines.inc.F90"
    8686             : #undef  DISPATCH_ENABLED
    8687             :     end procedure
    8688             : #endif
    8689             : 
    8690             : #undef CK_ENABLED
    8691             : 
    8692             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8693             : 
    8694             : #define RK_ENABLED 1
    8695             : 
    8696             : #if RK5_ENABLED
    8697             :     module procedure trmm_EXP_CLUA_OTHA_CGMB_ONOB_RK5
    8698             :         use pm_kind, only: RKC => RK5
    8699             : #include "pm_matrixMulTri@routines.inc.F90"
    8700             :     end procedure
    8701             : #endif
    8702             : 
    8703             : #if RK4_ENABLED
    8704         100 :     module procedure trmm_EXP_CLUA_OTHA_CGMB_ONOB_RK4
    8705             :         use pm_kind, only: RKC => RK4
    8706             : #include "pm_matrixMulTri@routines.inc.F90"
    8707             :     end procedure
    8708             : #endif
    8709             : 
    8710             : #if RK3_ENABLED
    8711         100 :     module procedure trmm_EXP_CLUA_OTHA_CGMB_ONOB_RK3
    8712             :         use pm_kind, only: RKC => RK3
    8713             : #include "pm_matrixMulTri@routines.inc.F90"
    8714             :     end procedure
    8715             : #endif
    8716             : 
    8717             : #if RK2_ENABLED
    8718         100 :     module procedure trmm_EXP_CLUA_OTHA_CGMB_ONOB_RK2
    8719             :         use pm_kind, only: RKC => RK2
    8720             : #define DISPATCH_ENABLED 1
    8721             : #include "pm_matrixMulTri@routines.inc.F90"
    8722             : #undef  DISPATCH_ENABLED
    8723             :     end procedure
    8724             : #endif
    8725             : 
    8726             : #if RK1_ENABLED
    8727         100 :     module procedure trmm_EXP_CLUA_OTHA_CGMB_ONOB_RK1
    8728             :         use pm_kind, only: RKC => RK1
    8729             : #define DISPATCH_ENABLED 1
    8730             : #include "pm_matrixMulTri@routines.inc.F90"
    8731             : #undef  DISPATCH_ENABLED
    8732             :     end procedure
    8733             : #endif
    8734             : 
    8735             : #undef RK_ENABLED
    8736             : 
    8737             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8738             : 
    8739             : #undef OTHA_ENABLED
    8740             : 
    8741             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8742             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8743             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8744             : 
    8745             : #undef CLUA_ENABLED
    8746             : 
    8747             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8748             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8749             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8750             : 
    8751             : #define CUUA_ENABLED 1
    8752             : 
    8753             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8754             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8755             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8756             : 
    8757             : #define ONOA_ENABLED 1
    8758             : 
    8759             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8760             : 
    8761             : #define CK_ENABLED 1
    8762             : 
    8763             : #if CK5_ENABLED
    8764             :     module procedure trmm_EXP_CUUA_ONOA_CGMB_ONOB_CK5
    8765             :         use pm_kind, only: CKC => CK5
    8766             : #include "pm_matrixMulTri@routines.inc.F90"
    8767             :     end procedure
    8768             : #endif
    8769             : 
    8770             : #if CK4_ENABLED
    8771         100 :     module procedure trmm_EXP_CUUA_ONOA_CGMB_ONOB_CK4
    8772             :         use pm_kind, only: CKC => CK4
    8773             : #include "pm_matrixMulTri@routines.inc.F90"
    8774             :     end procedure
    8775             : #endif
    8776             : 
    8777             : #if CK3_ENABLED
    8778         100 :     module procedure trmm_EXP_CUUA_ONOA_CGMB_ONOB_CK3
    8779             :         use pm_kind, only: CKC => CK3
    8780             : #include "pm_matrixMulTri@routines.inc.F90"
    8781             :     end procedure
    8782             : #endif
    8783             : 
    8784             : #if CK2_ENABLED
    8785         100 :     module procedure trmm_EXP_CUUA_ONOA_CGMB_ONOB_CK2
    8786             :         use pm_kind, only: CKC => CK2
    8787             : #define DISPATCH_ENABLED 1
    8788             : #include "pm_matrixMulTri@routines.inc.F90"
    8789             : #undef  DISPATCH_ENABLED
    8790             :     end procedure
    8791             : #endif
    8792             : 
    8793             : #if CK1_ENABLED
    8794         100 :     module procedure trmm_EXP_CUUA_ONOA_CGMB_ONOB_CK1
    8795             :         use pm_kind, only: CKC => CK1
    8796             : #define DISPATCH_ENABLED 1
    8797             : #include "pm_matrixMulTri@routines.inc.F90"
    8798             : #undef  DISPATCH_ENABLED
    8799             :     end procedure
    8800             : #endif
    8801             : 
    8802             : #undef CK_ENABLED
    8803             : 
    8804             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8805             : 
    8806             : #define RK_ENABLED 1
    8807             : 
    8808             : #if RK5_ENABLED
    8809             :     module procedure trmm_EXP_CUUA_ONOA_CGMB_ONOB_RK5
    8810             :         use pm_kind, only: RKC => RK5
    8811             : #include "pm_matrixMulTri@routines.inc.F90"
    8812             :     end procedure
    8813             : #endif
    8814             : 
    8815             : #if RK4_ENABLED
    8816         100 :     module procedure trmm_EXP_CUUA_ONOA_CGMB_ONOB_RK4
    8817             :         use pm_kind, only: RKC => RK4
    8818             : #include "pm_matrixMulTri@routines.inc.F90"
    8819             :     end procedure
    8820             : #endif
    8821             : 
    8822             : #if RK3_ENABLED
    8823         100 :     module procedure trmm_EXP_CUUA_ONOA_CGMB_ONOB_RK3
    8824             :         use pm_kind, only: RKC => RK3
    8825             : #include "pm_matrixMulTri@routines.inc.F90"
    8826             :     end procedure
    8827             : #endif
    8828             : 
    8829             : #if RK2_ENABLED
    8830         100 :     module procedure trmm_EXP_CUUA_ONOA_CGMB_ONOB_RK2
    8831             :         use pm_kind, only: RKC => RK2
    8832             : #define DISPATCH_ENABLED 1
    8833             : #include "pm_matrixMulTri@routines.inc.F90"
    8834             : #undef  DISPATCH_ENABLED
    8835             :     end procedure
    8836             : #endif
    8837             : 
    8838             : #if RK1_ENABLED
    8839         100 :     module procedure trmm_EXP_CUUA_ONOA_CGMB_ONOB_RK1
    8840             :         use pm_kind, only: RKC => RK1
    8841             : #define DISPATCH_ENABLED 1
    8842             : #include "pm_matrixMulTri@routines.inc.F90"
    8843             : #undef  DISPATCH_ENABLED
    8844             :     end procedure
    8845             : #endif
    8846             : 
    8847             : #undef RK_ENABLED
    8848             : 
    8849             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8850             : 
    8851             : #undef ONOA_ENABLED
    8852             : 
    8853             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8854             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8855             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8856             : 
    8857             : #define OTSA_ENABLED 1
    8858             : 
    8859             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8860             : 
    8861             : #define CK_ENABLED 1
    8862             : 
    8863             : #if CK5_ENABLED
    8864             :     module procedure trmm_EXP_CUUA_OTSA_CGMB_ONOB_CK5
    8865             :         use pm_kind, only: CKC => CK5
    8866             : #include "pm_matrixMulTri@routines.inc.F90"
    8867             :     end procedure
    8868             : #endif
    8869             : 
    8870             : #if CK4_ENABLED
    8871         100 :     module procedure trmm_EXP_CUUA_OTSA_CGMB_ONOB_CK4
    8872             :         use pm_kind, only: CKC => CK4
    8873             : #include "pm_matrixMulTri@routines.inc.F90"
    8874             :     end procedure
    8875             : #endif
    8876             : 
    8877             : #if CK3_ENABLED
    8878         100 :     module procedure trmm_EXP_CUUA_OTSA_CGMB_ONOB_CK3
    8879             :         use pm_kind, only: CKC => CK3
    8880             : #include "pm_matrixMulTri@routines.inc.F90"
    8881             :     end procedure
    8882             : #endif
    8883             : 
    8884             : #if CK2_ENABLED
    8885         100 :     module procedure trmm_EXP_CUUA_OTSA_CGMB_ONOB_CK2
    8886             :         use pm_kind, only: CKC => CK2
    8887             : #define DISPATCH_ENABLED 1
    8888             : #include "pm_matrixMulTri@routines.inc.F90"
    8889             : #undef  DISPATCH_ENABLED
    8890             :     end procedure
    8891             : #endif
    8892             : 
    8893             : #if CK1_ENABLED
    8894         100 :     module procedure trmm_EXP_CUUA_OTSA_CGMB_ONOB_CK1
    8895             :         use pm_kind, only: CKC => CK1
    8896             : #define DISPATCH_ENABLED 1
    8897             : #include "pm_matrixMulTri@routines.inc.F90"
    8898             : #undef  DISPATCH_ENABLED
    8899             :     end procedure
    8900             : #endif
    8901             : 
    8902             : #undef CK_ENABLED
    8903             : 
    8904             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8905             : 
    8906             : #define RK_ENABLED 1
    8907             : 
    8908             : #if RK5_ENABLED
    8909             :     module procedure trmm_EXP_CUUA_OTSA_CGMB_ONOB_RK5
    8910             :         use pm_kind, only: RKC => RK5
    8911             : #include "pm_matrixMulTri@routines.inc.F90"
    8912             :     end procedure
    8913             : #endif
    8914             : 
    8915             : #if RK4_ENABLED
    8916         100 :     module procedure trmm_EXP_CUUA_OTSA_CGMB_ONOB_RK4
    8917             :         use pm_kind, only: RKC => RK4
    8918             : #include "pm_matrixMulTri@routines.inc.F90"
    8919             :     end procedure
    8920             : #endif
    8921             : 
    8922             : #if RK3_ENABLED
    8923         100 :     module procedure trmm_EXP_CUUA_OTSA_CGMB_ONOB_RK3
    8924             :         use pm_kind, only: RKC => RK3
    8925             : #include "pm_matrixMulTri@routines.inc.F90"
    8926             :     end procedure
    8927             : #endif
    8928             : 
    8929             : #if RK2_ENABLED
    8930         100 :     module procedure trmm_EXP_CUUA_OTSA_CGMB_ONOB_RK2
    8931             :         use pm_kind, only: RKC => RK2
    8932             : #define DISPATCH_ENABLED 1
    8933             : #include "pm_matrixMulTri@routines.inc.F90"
    8934             : #undef  DISPATCH_ENABLED
    8935             :     end procedure
    8936             : #endif
    8937             : 
    8938             : #if RK1_ENABLED
    8939         100 :     module procedure trmm_EXP_CUUA_OTSA_CGMB_ONOB_RK1
    8940             :         use pm_kind, only: RKC => RK1
    8941             : #define DISPATCH_ENABLED 1
    8942             : #include "pm_matrixMulTri@routines.inc.F90"
    8943             : #undef  DISPATCH_ENABLED
    8944             :     end procedure
    8945             : #endif
    8946             : 
    8947             : #undef RK_ENABLED
    8948             : 
    8949             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8950             : 
    8951             : #undef OTSA_ENABLED
    8952             : 
    8953             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8954             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8955             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8956             : 
    8957             : #define OTHA_ENABLED 1
    8958             : 
    8959             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8960             : 
    8961             : #define CK_ENABLED 1
    8962             : 
    8963             : #if CK5_ENABLED
    8964             :     module procedure trmm_EXP_CUUA_OTHA_CGMB_ONOB_CK5
    8965             :         use pm_kind, only: CKC => CK5
    8966             : #include "pm_matrixMulTri@routines.inc.F90"
    8967             :     end procedure
    8968             : #endif
    8969             : 
    8970             : #if CK4_ENABLED
    8971         100 :     module procedure trmm_EXP_CUUA_OTHA_CGMB_ONOB_CK4
    8972             :         use pm_kind, only: CKC => CK4
    8973             : #include "pm_matrixMulTri@routines.inc.F90"
    8974             :     end procedure
    8975             : #endif
    8976             : 
    8977             : #if CK3_ENABLED
    8978         100 :     module procedure trmm_EXP_CUUA_OTHA_CGMB_ONOB_CK3
    8979             :         use pm_kind, only: CKC => CK3
    8980             : #include "pm_matrixMulTri@routines.inc.F90"
    8981             :     end procedure
    8982             : #endif
    8983             : 
    8984             : #if CK2_ENABLED
    8985         100 :     module procedure trmm_EXP_CUUA_OTHA_CGMB_ONOB_CK2
    8986             :         use pm_kind, only: CKC => CK2
    8987             : #define DISPATCH_ENABLED 1
    8988             : #include "pm_matrixMulTri@routines.inc.F90"
    8989             : #undef  DISPATCH_ENABLED
    8990             :     end procedure
    8991             : #endif
    8992             : 
    8993             : #if CK1_ENABLED
    8994         100 :     module procedure trmm_EXP_CUUA_OTHA_CGMB_ONOB_CK1
    8995             :         use pm_kind, only: CKC => CK1
    8996             : #define DISPATCH_ENABLED 1
    8997             : #include "pm_matrixMulTri@routines.inc.F90"
    8998             : #undef  DISPATCH_ENABLED
    8999             :     end procedure
    9000             : #endif
    9001             : 
    9002             : #undef CK_ENABLED
    9003             : 
    9004             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9005             : 
    9006             : #define RK_ENABLED 1
    9007             : 
    9008             : #if RK5_ENABLED
    9009             :     module procedure trmm_EXP_CUUA_OTHA_CGMB_ONOB_RK5
    9010             :         use pm_kind, only: RKC => RK5
    9011             : #include "pm_matrixMulTri@routines.inc.F90"
    9012             :     end procedure
    9013             : #endif
    9014             : 
    9015             : #if RK4_ENABLED
    9016         100 :     module procedure trmm_EXP_CUUA_OTHA_CGMB_ONOB_RK4
    9017             :         use pm_kind, only: RKC => RK4
    9018             : #include "pm_matrixMulTri@routines.inc.F90"
    9019             :     end procedure
    9020             : #endif
    9021             : 
    9022             : #if RK3_ENABLED
    9023         100 :     module procedure trmm_EXP_CUUA_OTHA_CGMB_ONOB_RK3
    9024             :         use pm_kind, only: RKC => RK3
    9025             : #include "pm_matrixMulTri@routines.inc.F90"
    9026             :     end procedure
    9027             : #endif
    9028             : 
    9029             : #if RK2_ENABLED
    9030         100 :     module procedure trmm_EXP_CUUA_OTHA_CGMB_ONOB_RK2
    9031             :         use pm_kind, only: RKC => RK2
    9032             : #define DISPATCH_ENABLED 1
    9033             : #include "pm_matrixMulTri@routines.inc.F90"
    9034             : #undef  DISPATCH_ENABLED
    9035             :     end procedure
    9036             : #endif
    9037             : 
    9038             : #if RK1_ENABLED
    9039         100 :     module procedure trmm_EXP_CUUA_OTHA_CGMB_ONOB_RK1
    9040             :         use pm_kind, only: RKC => RK1
    9041             : #define DISPATCH_ENABLED 1
    9042             : #include "pm_matrixMulTri@routines.inc.F90"
    9043             : #undef  DISPATCH_ENABLED
    9044             :     end procedure
    9045             : #endif
    9046             : 
    9047             : #undef RK_ENABLED
    9048             : 
    9049             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9050             : 
    9051             : #undef OTHA_ENABLED
    9052             : 
    9053             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9054             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9055             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9056             : 
    9057             : #undef CUUA_ENABLED
    9058             : 
    9059             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9060             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9061             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9062             : 
    9063             : #undef ONOB_ENABLED
    9064             : 
    9065             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9066             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9067             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9068             : 
    9069             : #undef CGMB_ENABLED
    9070             : 
    9071             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9072             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9073             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9074             : 
    9075             : #define CGMA_ENABLED 1
    9076             : 
    9077             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9078             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9079             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9080             : 
    9081             : #define ONOA_ENABLED 1
    9082             : 
    9083             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9084             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9085             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9086             : 
    9087             : #define CLDB_ENABLED 1
    9088             : 
    9089             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9090             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9091             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9092             : 
    9093             : #define ONOB_ENABLED 1
    9094             : 
    9095             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9096             : 
    9097             : #define CK_ENABLED 1
    9098             : 
    9099             : #if CK5_ENABLED
    9100             :     module procedure trmm_EXP_CGMA_ONOA_CLDB_ONOB_CK5
    9101             :         use pm_kind, only: CKC => CK5
    9102             : #include "pm_matrixMulTri@routines.inc.F90"
    9103             :     end procedure
    9104             : #endif
    9105             : 
    9106             : #if CK4_ENABLED
    9107         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_ONOB_CK4
    9108             :         use pm_kind, only: CKC => CK4
    9109             : #include "pm_matrixMulTri@routines.inc.F90"
    9110             :     end procedure
    9111             : #endif
    9112             : 
    9113             : #if CK3_ENABLED
    9114         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_ONOB_CK3
    9115             :         use pm_kind, only: CKC => CK3
    9116             : #include "pm_matrixMulTri@routines.inc.F90"
    9117             :     end procedure
    9118             : #endif
    9119             : 
    9120             : #if CK2_ENABLED
    9121         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_ONOB_CK2
    9122             :         use pm_kind, only: CKC => CK2
    9123             : #define DISPATCH_ENABLED 1
    9124             : #include "pm_matrixMulTri@routines.inc.F90"
    9125             : #undef  DISPATCH_ENABLED
    9126             :     end procedure
    9127             : #endif
    9128             : 
    9129             : #if CK1_ENABLED
    9130         101 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_ONOB_CK1
    9131             :         use pm_kind, only: CKC => CK1
    9132             : #define DISPATCH_ENABLED 1
    9133             : #include "pm_matrixMulTri@routines.inc.F90"
    9134             : #undef  DISPATCH_ENABLED
    9135             :     end procedure
    9136             : #endif
    9137             : 
    9138             : #undef CK_ENABLED
    9139             : 
    9140             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9141             : 
    9142             : #define RK_ENABLED 1
    9143             : 
    9144             : #if RK5_ENABLED
    9145             :     module procedure trmm_EXP_CGMA_ONOA_CLDB_ONOB_RK5
    9146             :         use pm_kind, only: RKC => RK5
    9147             : #include "pm_matrixMulTri@routines.inc.F90"
    9148             :     end procedure
    9149             : #endif
    9150             : 
    9151             : #if RK4_ENABLED
    9152         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_ONOB_RK4
    9153             :         use pm_kind, only: RKC => RK4
    9154             : #include "pm_matrixMulTri@routines.inc.F90"
    9155             :     end procedure
    9156             : #endif
    9157             : 
    9158             : #if RK3_ENABLED
    9159         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_ONOB_RK3
    9160             :         use pm_kind, only: RKC => RK3
    9161             : #include "pm_matrixMulTri@routines.inc.F90"
    9162             :     end procedure
    9163             : #endif
    9164             : 
    9165             : #if RK2_ENABLED
    9166         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_ONOB_RK2
    9167             :         use pm_kind, only: RKC => RK2
    9168             : #define DISPATCH_ENABLED 1
    9169             : #include "pm_matrixMulTri@routines.inc.F90"
    9170             : #undef  DISPATCH_ENABLED
    9171             :     end procedure
    9172             : #endif
    9173             : 
    9174             : #if RK1_ENABLED
    9175         101 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_ONOB_RK1
    9176             :         use pm_kind, only: RKC => RK1
    9177             : #define DISPATCH_ENABLED 1
    9178             : #include "pm_matrixMulTri@routines.inc.F90"
    9179             : #undef  DISPATCH_ENABLED
    9180             :     end procedure
    9181             : #endif
    9182             : 
    9183             : #undef RK_ENABLED
    9184             : 
    9185             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9186             : 
    9187             : #undef ONOB_ENABLED
    9188             : 
    9189             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9190             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9191             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9192             : 
    9193             : #define OTSB_ENABLED 1
    9194             : 
    9195             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9196             : 
    9197             : #define CK_ENABLED 1
    9198             : 
    9199             : #if CK5_ENABLED
    9200             :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTSB_CK5
    9201             :         use pm_kind, only: CKC => CK5
    9202             : #include "pm_matrixMulTri@routines.inc.F90"
    9203             :     end procedure
    9204             : #endif
    9205             : 
    9206             : #if CK4_ENABLED
    9207         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTSB_CK4
    9208             :         use pm_kind, only: CKC => CK4
    9209             : #include "pm_matrixMulTri@routines.inc.F90"
    9210             :     end procedure
    9211             : #endif
    9212             : 
    9213             : #if CK3_ENABLED
    9214         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTSB_CK3
    9215             :         use pm_kind, only: CKC => CK3
    9216             : #include "pm_matrixMulTri@routines.inc.F90"
    9217             :     end procedure
    9218             : #endif
    9219             : 
    9220             : #if CK2_ENABLED
    9221         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTSB_CK2
    9222             :         use pm_kind, only: CKC => CK2
    9223             : #define DISPATCH_ENABLED 1
    9224             : #include "pm_matrixMulTri@routines.inc.F90"
    9225             : #undef  DISPATCH_ENABLED
    9226             :     end procedure
    9227             : #endif
    9228             : 
    9229             : #if CK1_ENABLED
    9230         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTSB_CK1
    9231             :         use pm_kind, only: CKC => CK1
    9232             : #define DISPATCH_ENABLED 1
    9233             : #include "pm_matrixMulTri@routines.inc.F90"
    9234             : #undef  DISPATCH_ENABLED
    9235             :     end procedure
    9236             : #endif
    9237             : 
    9238             : #undef CK_ENABLED
    9239             : 
    9240             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9241             : 
    9242             : #define RK_ENABLED 1
    9243             : 
    9244             : #if RK5_ENABLED
    9245             :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTSB_RK5
    9246             :         use pm_kind, only: RKC => RK5
    9247             : #include "pm_matrixMulTri@routines.inc.F90"
    9248             :     end procedure
    9249             : #endif
    9250             : 
    9251             : #if RK4_ENABLED
    9252         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTSB_RK4
    9253             :         use pm_kind, only: RKC => RK4
    9254             : #include "pm_matrixMulTri@routines.inc.F90"
    9255             :     end procedure
    9256             : #endif
    9257             : 
    9258             : #if RK3_ENABLED
    9259         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTSB_RK3
    9260             :         use pm_kind, only: RKC => RK3
    9261             : #include "pm_matrixMulTri@routines.inc.F90"
    9262             :     end procedure
    9263             : #endif
    9264             : 
    9265             : #if RK2_ENABLED
    9266         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTSB_RK2
    9267             :         use pm_kind, only: RKC => RK2
    9268             : #define DISPATCH_ENABLED 1
    9269             : #include "pm_matrixMulTri@routines.inc.F90"
    9270             : #undef  DISPATCH_ENABLED
    9271             :     end procedure
    9272             : #endif
    9273             : 
    9274             : #if RK1_ENABLED
    9275         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTSB_RK1
    9276             :         use pm_kind, only: RKC => RK1
    9277             : #define DISPATCH_ENABLED 1
    9278             : #include "pm_matrixMulTri@routines.inc.F90"
    9279             : #undef  DISPATCH_ENABLED
    9280             :     end procedure
    9281             : #endif
    9282             : 
    9283             : #undef RK_ENABLED
    9284             : 
    9285             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9286             : 
    9287             : #undef OTSB_ENABLED
    9288             : 
    9289             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9290             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9291             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9292             : 
    9293             : #define OTHB_ENABLED 1
    9294             : 
    9295             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9296             : 
    9297             : #define CK_ENABLED 1
    9298             : 
    9299             : #if CK5_ENABLED
    9300             :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTHB_CK5
    9301             :         use pm_kind, only: CKC => CK5
    9302             : #include "pm_matrixMulTri@routines.inc.F90"
    9303             :     end procedure
    9304             : #endif
    9305             : 
    9306             : #if CK4_ENABLED
    9307         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTHB_CK4
    9308             :         use pm_kind, only: CKC => CK4
    9309             : #include "pm_matrixMulTri@routines.inc.F90"
    9310             :     end procedure
    9311             : #endif
    9312             : 
    9313             : #if CK3_ENABLED
    9314         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTHB_CK3
    9315             :         use pm_kind, only: CKC => CK3
    9316             : #include "pm_matrixMulTri@routines.inc.F90"
    9317             :     end procedure
    9318             : #endif
    9319             : 
    9320             : #if CK2_ENABLED
    9321         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTHB_CK2
    9322             :         use pm_kind, only: CKC => CK2
    9323             : #define DISPATCH_ENABLED 1
    9324             : #include "pm_matrixMulTri@routines.inc.F90"
    9325             : #undef  DISPATCH_ENABLED
    9326             :     end procedure
    9327             : #endif
    9328             : 
    9329             : #if CK1_ENABLED
    9330         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTHB_CK1
    9331             :         use pm_kind, only: CKC => CK1
    9332             : #define DISPATCH_ENABLED 1
    9333             : #include "pm_matrixMulTri@routines.inc.F90"
    9334             : #undef  DISPATCH_ENABLED
    9335             :     end procedure
    9336             : #endif
    9337             : 
    9338             : #undef CK_ENABLED
    9339             : 
    9340             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9341             : 
    9342             : #define RK_ENABLED 1
    9343             : 
    9344             : #if RK5_ENABLED
    9345             :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTHB_RK5
    9346             :         use pm_kind, only: RKC => RK5
    9347             : #include "pm_matrixMulTri@routines.inc.F90"
    9348             :     end procedure
    9349             : #endif
    9350             : 
    9351             : #if RK4_ENABLED
    9352         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTHB_RK4
    9353             :         use pm_kind, only: RKC => RK4
    9354             : #include "pm_matrixMulTri@routines.inc.F90"
    9355             :     end procedure
    9356             : #endif
    9357             : 
    9358             : #if RK3_ENABLED
    9359         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTHB_RK3
    9360             :         use pm_kind, only: RKC => RK3
    9361             : #include "pm_matrixMulTri@routines.inc.F90"
    9362             :     end procedure
    9363             : #endif
    9364             : 
    9365             : #if RK2_ENABLED
    9366         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTHB_RK2
    9367             :         use pm_kind, only: RKC => RK2
    9368             : #define DISPATCH_ENABLED 1
    9369             : #include "pm_matrixMulTri@routines.inc.F90"
    9370             : #undef  DISPATCH_ENABLED
    9371             :     end procedure
    9372             : #endif
    9373             : 
    9374             : #if RK1_ENABLED
    9375         100 :     module procedure trmm_EXP_CGMA_ONOA_CLDB_OTHB_RK1
    9376             :         use pm_kind, only: RKC => RK1
    9377             : #define DISPATCH_ENABLED 1
    9378             : #include "pm_matrixMulTri@routines.inc.F90"
    9379             : #undef  DISPATCH_ENABLED
    9380             :     end procedure
    9381             : #endif
    9382             : 
    9383             : #undef RK_ENABLED
    9384             : 
    9385             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9386             : 
    9387             : #undef OTHB_ENABLED
    9388             : 
    9389             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9390             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9391             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9392             : 
    9393             : #undef CLDB_ENABLED
    9394             : 
    9395             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9396             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9397             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9398             : 
    9399             : #define CUDB_ENABLED 1
    9400             : 
    9401             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9402             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9403             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9404             : 
    9405             : #define ONOB_ENABLED 1
    9406             : 
    9407             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9408             : 
    9409             : #define CK_ENABLED 1
    9410             : 
    9411             : #if CK5_ENABLED
    9412             :     module procedure trmm_EXP_CGMA_ONOA_CUDB_ONOB_CK5
    9413             :         use pm_kind, only: CKC => CK5
    9414             : #include "pm_matrixMulTri@routines.inc.F90"
    9415             :     end procedure
    9416             : #endif
    9417             : 
    9418             : #if CK4_ENABLED
    9419         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_ONOB_CK4
    9420             :         use pm_kind, only: CKC => CK4
    9421             : #include "pm_matrixMulTri@routines.inc.F90"
    9422             :     end procedure
    9423             : #endif
    9424             : 
    9425             : #if CK3_ENABLED
    9426         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_ONOB_CK3
    9427             :         use pm_kind, only: CKC => CK3
    9428             : #include "pm_matrixMulTri@routines.inc.F90"
    9429             :     end procedure
    9430             : #endif
    9431             : 
    9432             : #if CK2_ENABLED
    9433         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_ONOB_CK2
    9434             :         use pm_kind, only: CKC => CK2
    9435             : #define DISPATCH_ENABLED 1
    9436             : #include "pm_matrixMulTri@routines.inc.F90"
    9437             : #undef  DISPATCH_ENABLED
    9438             :     end procedure
    9439             : #endif
    9440             : 
    9441             : #if CK1_ENABLED
    9442         101 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_ONOB_CK1
    9443             :         use pm_kind, only: CKC => CK1
    9444             : #define DISPATCH_ENABLED 1
    9445             : #include "pm_matrixMulTri@routines.inc.F90"
    9446             : #undef  DISPATCH_ENABLED
    9447             :     end procedure
    9448             : #endif
    9449             : 
    9450             : #undef CK_ENABLED
    9451             : 
    9452             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9453             : 
    9454             : #define RK_ENABLED 1
    9455             : 
    9456             : #if RK5_ENABLED
    9457             :     module procedure trmm_EXP_CGMA_ONOA_CUDB_ONOB_RK5
    9458             :         use pm_kind, only: RKC => RK5
    9459             : #include "pm_matrixMulTri@routines.inc.F90"
    9460             :     end procedure
    9461             : #endif
    9462             : 
    9463             : #if RK4_ENABLED
    9464         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_ONOB_RK4
    9465             :         use pm_kind, only: RKC => RK4
    9466             : #include "pm_matrixMulTri@routines.inc.F90"
    9467             :     end procedure
    9468             : #endif
    9469             : 
    9470             : #if RK3_ENABLED
    9471         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_ONOB_RK3
    9472             :         use pm_kind, only: RKC => RK3
    9473             : #include "pm_matrixMulTri@routines.inc.F90"
    9474             :     end procedure
    9475             : #endif
    9476             : 
    9477             : #if RK2_ENABLED
    9478         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_ONOB_RK2
    9479             :         use pm_kind, only: RKC => RK2
    9480             : #define DISPATCH_ENABLED 1
    9481             : #include "pm_matrixMulTri@routines.inc.F90"
    9482             : #undef  DISPATCH_ENABLED
    9483             :     end procedure
    9484             : #endif
    9485             : 
    9486             : #if RK1_ENABLED
    9487         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_ONOB_RK1
    9488             :         use pm_kind, only: RKC => RK1
    9489             : #define DISPATCH_ENABLED 1
    9490             : #include "pm_matrixMulTri@routines.inc.F90"
    9491             : #undef  DISPATCH_ENABLED
    9492             :     end procedure
    9493             : #endif
    9494             : 
    9495             : #undef RK_ENABLED
    9496             : 
    9497             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9498             : 
    9499             : #undef ONOB_ENABLED
    9500             : 
    9501             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9502             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9503             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9504             : 
    9505             : #define OTSB_ENABLED 1
    9506             : 
    9507             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9508             : 
    9509             : #define CK_ENABLED 1
    9510             : 
    9511             : #if CK5_ENABLED
    9512             :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTSB_CK5
    9513             :         use pm_kind, only: CKC => CK5
    9514             : #include "pm_matrixMulTri@routines.inc.F90"
    9515             :     end procedure
    9516             : #endif
    9517             : 
    9518             : #if CK4_ENABLED
    9519         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTSB_CK4
    9520             :         use pm_kind, only: CKC => CK4
    9521             : #include "pm_matrixMulTri@routines.inc.F90"
    9522             :     end procedure
    9523             : #endif
    9524             : 
    9525             : #if CK3_ENABLED
    9526         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTSB_CK3
    9527             :         use pm_kind, only: CKC => CK3
    9528             : #include "pm_matrixMulTri@routines.inc.F90"
    9529             :     end procedure
    9530             : #endif
    9531             : 
    9532             : #if CK2_ENABLED
    9533         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTSB_CK2
    9534             :         use pm_kind, only: CKC => CK2
    9535             : #define DISPATCH_ENABLED 1
    9536             : #include "pm_matrixMulTri@routines.inc.F90"
    9537             : #undef  DISPATCH_ENABLED
    9538             :     end procedure
    9539             : #endif
    9540             : 
    9541             : #if CK1_ENABLED
    9542         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTSB_CK1
    9543             :         use pm_kind, only: CKC => CK1
    9544             : #define DISPATCH_ENABLED 1
    9545             : #include "pm_matrixMulTri@routines.inc.F90"
    9546             : #undef  DISPATCH_ENABLED
    9547             :     end procedure
    9548             : #endif
    9549             : 
    9550             : #undef CK_ENABLED
    9551             : 
    9552             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9553             : 
    9554             : #define RK_ENABLED 1
    9555             : 
    9556             : #if RK5_ENABLED
    9557             :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTSB_RK5
    9558             :         use pm_kind, only: RKC => RK5
    9559             : #include "pm_matrixMulTri@routines.inc.F90"
    9560             :     end procedure
    9561             : #endif
    9562             : 
    9563             : #if RK4_ENABLED
    9564         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTSB_RK4
    9565             :         use pm_kind, only: RKC => RK4
    9566             : #include "pm_matrixMulTri@routines.inc.F90"
    9567             :     end procedure
    9568             : #endif
    9569             : 
    9570             : #if RK3_ENABLED
    9571         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTSB_RK3
    9572             :         use pm_kind, only: RKC => RK3
    9573             : #include "pm_matrixMulTri@routines.inc.F90"
    9574             :     end procedure
    9575             : #endif
    9576             : 
    9577             : #if RK2_ENABLED
    9578         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTSB_RK2
    9579             :         use pm_kind, only: RKC => RK2
    9580             : #define DISPATCH_ENABLED 1
    9581             : #include "pm_matrixMulTri@routines.inc.F90"
    9582             : #undef  DISPATCH_ENABLED
    9583             :     end procedure
    9584             : #endif
    9585             : 
    9586             : #if RK1_ENABLED
    9587         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTSB_RK1
    9588             :         use pm_kind, only: RKC => RK1
    9589             : #define DISPATCH_ENABLED 1
    9590             : #include "pm_matrixMulTri@routines.inc.F90"
    9591             : #undef  DISPATCH_ENABLED
    9592             :     end procedure
    9593             : #endif
    9594             : 
    9595             : #undef RK_ENABLED
    9596             : 
    9597             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9598             : 
    9599             : #undef OTSB_ENABLED
    9600             : 
    9601             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9602             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9603             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9604             : 
    9605             : #define OTHB_ENABLED 1
    9606             : 
    9607             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9608             : 
    9609             : #define CK_ENABLED 1
    9610             : 
    9611             : #if CK5_ENABLED
    9612             :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTHB_CK5
    9613             :         use pm_kind, only: CKC => CK5
    9614             : #include "pm_matrixMulTri@routines.inc.F90"
    9615             :     end procedure
    9616             : #endif
    9617             : 
    9618             : #if CK4_ENABLED
    9619         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTHB_CK4
    9620             :         use pm_kind, only: CKC => CK4
    9621             : #include "pm_matrixMulTri@routines.inc.F90"
    9622             :     end procedure
    9623             : #endif
    9624             : 
    9625             : #if CK3_ENABLED
    9626         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTHB_CK3
    9627             :         use pm_kind, only: CKC => CK3
    9628             : #include "pm_matrixMulTri@routines.inc.F90"
    9629             :     end procedure
    9630             : #endif
    9631             : 
    9632             : #if CK2_ENABLED
    9633         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTHB_CK2
    9634             :         use pm_kind, only: CKC => CK2
    9635             : #define DISPATCH_ENABLED 1
    9636             : #include "pm_matrixMulTri@routines.inc.F90"
    9637             : #undef  DISPATCH_ENABLED
    9638             :     end procedure
    9639             : #endif
    9640             : 
    9641             : #if CK1_ENABLED
    9642         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTHB_CK1
    9643             :         use pm_kind, only: CKC => CK1
    9644             : #define DISPATCH_ENABLED 1
    9645             : #include "pm_matrixMulTri@routines.inc.F90"
    9646             : #undef  DISPATCH_ENABLED
    9647             :     end procedure
    9648             : #endif
    9649             : 
    9650             : #undef CK_ENABLED
    9651             : 
    9652             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9653             : 
    9654             : #define RK_ENABLED 1
    9655             : 
    9656             : #if RK5_ENABLED
    9657             :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTHB_RK5
    9658             :         use pm_kind, only: RKC => RK5
    9659             : #include "pm_matrixMulTri@routines.inc.F90"
    9660             :     end procedure
    9661             : #endif
    9662             : 
    9663             : #if RK4_ENABLED
    9664         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTHB_RK4
    9665             :         use pm_kind, only: RKC => RK4
    9666             : #include "pm_matrixMulTri@routines.inc.F90"
    9667             :     end procedure
    9668             : #endif
    9669             : 
    9670             : #if RK3_ENABLED
    9671         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTHB_RK3
    9672             :         use pm_kind, only: RKC => RK3
    9673             : #include "pm_matrixMulTri@routines.inc.F90"
    9674             :     end procedure
    9675             : #endif
    9676             : 
    9677             : #if RK2_ENABLED
    9678         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTHB_RK2
    9679             :         use pm_kind, only: RKC => RK2
    9680             : #define DISPATCH_ENABLED 1
    9681             : #include "pm_matrixMulTri@routines.inc.F90"
    9682             : #undef  DISPATCH_ENABLED
    9683             :     end procedure
    9684             : #endif
    9685             : 
    9686             : #if RK1_ENABLED
    9687         100 :     module procedure trmm_EXP_CGMA_ONOA_CUDB_OTHB_RK1
    9688             :         use pm_kind, only: RKC => RK1
    9689             : #define DISPATCH_ENABLED 1
    9690             : #include "pm_matrixMulTri@routines.inc.F90"
    9691             : #undef  DISPATCH_ENABLED
    9692             :     end procedure
    9693             : #endif
    9694             : 
    9695             : #undef RK_ENABLED
    9696             : 
    9697             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9698             : 
    9699             : #undef OTHB_ENABLED
    9700             : 
    9701             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9702             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9703             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9704             : 
    9705             : #undef CUDB_ENABLED
    9706             : 
    9707             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9708             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9709             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9710             : 
    9711             : #define CLUB_ENABLED 1
    9712             : 
    9713             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9714             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9715             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9716             : 
    9717             : #define ONOB_ENABLED 1
    9718             : 
    9719             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9720             : 
    9721             : #define CK_ENABLED 1
    9722             : 
    9723             : #if CK5_ENABLED
    9724             :     module procedure trmm_EXP_CGMA_ONOA_CLUB_ONOB_CK5
    9725             :         use pm_kind, only: CKC => CK5
    9726             : #include "pm_matrixMulTri@routines.inc.F90"
    9727             :     end procedure
    9728             : #endif
    9729             : 
    9730             : #if CK4_ENABLED
    9731         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_ONOB_CK4
    9732             :         use pm_kind, only: CKC => CK4
    9733             : #include "pm_matrixMulTri@routines.inc.F90"
    9734             :     end procedure
    9735             : #endif
    9736             : 
    9737             : #if CK3_ENABLED
    9738         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_ONOB_CK3
    9739             :         use pm_kind, only: CKC => CK3
    9740             : #include "pm_matrixMulTri@routines.inc.F90"
    9741             :     end procedure
    9742             : #endif
    9743             : 
    9744             : #if CK2_ENABLED
    9745         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_ONOB_CK2
    9746             :         use pm_kind, only: CKC => CK2
    9747             : #define DISPATCH_ENABLED 1
    9748             : #include "pm_matrixMulTri@routines.inc.F90"
    9749             : #undef  DISPATCH_ENABLED
    9750             :     end procedure
    9751             : #endif
    9752             : 
    9753             : #if CK1_ENABLED
    9754         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_ONOB_CK1
    9755             :         use pm_kind, only: CKC => CK1
    9756             : #define DISPATCH_ENABLED 1
    9757             : #include "pm_matrixMulTri@routines.inc.F90"
    9758             : #undef  DISPATCH_ENABLED
    9759             :     end procedure
    9760             : #endif
    9761             : 
    9762             : #undef CK_ENABLED
    9763             : 
    9764             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9765             : 
    9766             : #define RK_ENABLED 1
    9767             : 
    9768             : #if RK5_ENABLED
    9769             :     module procedure trmm_EXP_CGMA_ONOA_CLUB_ONOB_RK5
    9770             :         use pm_kind, only: RKC => RK5
    9771             : #include "pm_matrixMulTri@routines.inc.F90"
    9772             :     end procedure
    9773             : #endif
    9774             : 
    9775             : #if RK4_ENABLED
    9776         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_ONOB_RK4
    9777             :         use pm_kind, only: RKC => RK4
    9778             : #include "pm_matrixMulTri@routines.inc.F90"
    9779             :     end procedure
    9780             : #endif
    9781             : 
    9782             : #if RK3_ENABLED
    9783         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_ONOB_RK3
    9784             :         use pm_kind, only: RKC => RK3
    9785             : #include "pm_matrixMulTri@routines.inc.F90"
    9786             :     end procedure
    9787             : #endif
    9788             : 
    9789             : #if RK2_ENABLED
    9790         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_ONOB_RK2
    9791             :         use pm_kind, only: RKC => RK2
    9792             : #define DISPATCH_ENABLED 1
    9793             : #include "pm_matrixMulTri@routines.inc.F90"
    9794             : #undef  DISPATCH_ENABLED
    9795             :     end procedure
    9796             : #endif
    9797             : 
    9798             : #if RK1_ENABLED
    9799         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_ONOB_RK1
    9800             :         use pm_kind, only: RKC => RK1
    9801             : #define DISPATCH_ENABLED 1
    9802             : #include "pm_matrixMulTri@routines.inc.F90"
    9803             : #undef  DISPATCH_ENABLED
    9804             :     end procedure
    9805             : #endif
    9806             : 
    9807             : #undef RK_ENABLED
    9808             : 
    9809             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9810             : 
    9811             : #undef ONOB_ENABLED
    9812             : 
    9813             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9814             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9815             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9816             : 
    9817             : #define OTSB_ENABLED 1
    9818             : 
    9819             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9820             : 
    9821             : #define CK_ENABLED 1
    9822             : 
    9823             : #if CK5_ENABLED
    9824             :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTSB_CK5
    9825             :         use pm_kind, only: CKC => CK5
    9826             : #include "pm_matrixMulTri@routines.inc.F90"
    9827             :     end procedure
    9828             : #endif
    9829             : 
    9830             : #if CK4_ENABLED
    9831         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTSB_CK4
    9832             :         use pm_kind, only: CKC => CK4
    9833             : #include "pm_matrixMulTri@routines.inc.F90"
    9834             :     end procedure
    9835             : #endif
    9836             : 
    9837             : #if CK3_ENABLED
    9838         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTSB_CK3
    9839             :         use pm_kind, only: CKC => CK3
    9840             : #include "pm_matrixMulTri@routines.inc.F90"
    9841             :     end procedure
    9842             : #endif
    9843             : 
    9844             : #if CK2_ENABLED
    9845         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTSB_CK2
    9846             :         use pm_kind, only: CKC => CK2
    9847             : #define DISPATCH_ENABLED 1
    9848             : #include "pm_matrixMulTri@routines.inc.F90"
    9849             : #undef  DISPATCH_ENABLED
    9850             :     end procedure
    9851             : #endif
    9852             : 
    9853             : #if CK1_ENABLED
    9854         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTSB_CK1
    9855             :         use pm_kind, only: CKC => CK1
    9856             : #define DISPATCH_ENABLED 1
    9857             : #include "pm_matrixMulTri@routines.inc.F90"
    9858             : #undef  DISPATCH_ENABLED
    9859             :     end procedure
    9860             : #endif
    9861             : 
    9862             : #undef CK_ENABLED
    9863             : 
    9864             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9865             : 
    9866             : #define RK_ENABLED 1
    9867             : 
    9868             : #if RK5_ENABLED
    9869             :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTSB_RK5
    9870             :         use pm_kind, only: RKC => RK5
    9871             : #include "pm_matrixMulTri@routines.inc.F90"
    9872             :     end procedure
    9873             : #endif
    9874             : 
    9875             : #if RK4_ENABLED
    9876         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTSB_RK4
    9877             :         use pm_kind, only: RKC => RK4
    9878             : #include "pm_matrixMulTri@routines.inc.F90"
    9879             :     end procedure
    9880             : #endif
    9881             : 
    9882             : #if RK3_ENABLED
    9883         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTSB_RK3
    9884             :         use pm_kind, only: RKC => RK3
    9885             : #include "pm_matrixMulTri@routines.inc.F90"
    9886             :     end procedure
    9887             : #endif
    9888             : 
    9889             : #if RK2_ENABLED
    9890         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTSB_RK2
    9891             :         use pm_kind, only: RKC => RK2
    9892             : #define DISPATCH_ENABLED 1
    9893             : #include "pm_matrixMulTri@routines.inc.F90"
    9894             : #undef  DISPATCH_ENABLED
    9895             :     end procedure
    9896             : #endif
    9897             : 
    9898             : #if RK1_ENABLED
    9899         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTSB_RK1
    9900             :         use pm_kind, only: RKC => RK1
    9901             : #define DISPATCH_ENABLED 1
    9902             : #include "pm_matrixMulTri@routines.inc.F90"
    9903             : #undef  DISPATCH_ENABLED
    9904             :     end procedure
    9905             : #endif
    9906             : 
    9907             : #undef RK_ENABLED
    9908             : 
    9909             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9910             : 
    9911             : #undef OTSB_ENABLED
    9912             : 
    9913             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9914             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9915             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9916             : 
    9917             : #define OTHB_ENABLED 1
    9918             : 
    9919             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9920             : 
    9921             : #define CK_ENABLED 1
    9922             : 
    9923             : #if CK5_ENABLED
    9924             :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTHB_CK5
    9925             :         use pm_kind, only: CKC => CK5
    9926             : #include "pm_matrixMulTri@routines.inc.F90"
    9927             :     end procedure
    9928             : #endif
    9929             : 
    9930             : #if CK4_ENABLED
    9931         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTHB_CK4
    9932             :         use pm_kind, only: CKC => CK4
    9933             : #include "pm_matrixMulTri@routines.inc.F90"
    9934             :     end procedure
    9935             : #endif
    9936             : 
    9937             : #if CK3_ENABLED
    9938         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTHB_CK3
    9939             :         use pm_kind, only: CKC => CK3
    9940             : #include "pm_matrixMulTri@routines.inc.F90"
    9941             :     end procedure
    9942             : #endif
    9943             : 
    9944             : #if CK2_ENABLED
    9945         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTHB_CK2
    9946             :         use pm_kind, only: CKC => CK2
    9947             : #define DISPATCH_ENABLED 1
    9948             : #include "pm_matrixMulTri@routines.inc.F90"
    9949             : #undef  DISPATCH_ENABLED
    9950             :     end procedure
    9951             : #endif
    9952             : 
    9953             : #if CK1_ENABLED
    9954         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTHB_CK1
    9955             :         use pm_kind, only: CKC => CK1
    9956             : #define DISPATCH_ENABLED 1
    9957             : #include "pm_matrixMulTri@routines.inc.F90"
    9958             : #undef  DISPATCH_ENABLED
    9959             :     end procedure
    9960             : #endif
    9961             : 
    9962             : #undef CK_ENABLED
    9963             : 
    9964             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9965             : 
    9966             : #define RK_ENABLED 1
    9967             : 
    9968             : #if RK5_ENABLED
    9969             :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTHB_RK5
    9970             :         use pm_kind, only: RKC => RK5
    9971             : #include "pm_matrixMulTri@routines.inc.F90"
    9972             :     end procedure
    9973             : #endif
    9974             : 
    9975             : #if RK4_ENABLED
    9976         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTHB_RK4
    9977             :         use pm_kind, only: RKC => RK4
    9978             : #include "pm_matrixMulTri@routines.inc.F90"
    9979             :     end procedure
    9980             : #endif
    9981             : 
    9982             : #if RK3_ENABLED
    9983         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTHB_RK3
    9984             :         use pm_kind, only: RKC => RK3
    9985             : #include "pm_matrixMulTri@routines.inc.F90"
    9986             :     end procedure
    9987             : #endif
    9988             : 
    9989             : #if RK2_ENABLED
    9990         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTHB_RK2
    9991             :         use pm_kind, only: RKC => RK2
    9992             : #define DISPATCH_ENABLED 1
    9993             : #include "pm_matrixMulTri@routines.inc.F90"
    9994             : #undef  DISPATCH_ENABLED
    9995             :     end procedure
    9996             : #endif
    9997             : 
    9998             : #if RK1_ENABLED
    9999         100 :     module procedure trmm_EXP_CGMA_ONOA_CLUB_OTHB_RK1
   10000             :         use pm_kind, only: RKC => RK1
   10001             : #define DISPATCH_ENABLED 1
   10002             : #include "pm_matrixMulTri@routines.inc.F90"
   10003             : #undef  DISPATCH_ENABLED
   10004             :     end procedure
   10005             : #endif
   10006             : 
   10007             : #undef RK_ENABLED
   10008             : 
   10009             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10010             : 
   10011             : #undef OTHB_ENABLED
   10012             : 
   10013             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10014             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10015             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10016             : 
   10017             : #undef CLUB_ENABLED
   10018             : 
   10019             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10020             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10021             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10022             : 
   10023             : #define CUUB_ENABLED 1
   10024             : 
   10025             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10026             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10027             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10028             : 
   10029             : #define ONOB_ENABLED 1
   10030             : 
   10031             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10032             : 
   10033             : #define CK_ENABLED 1
   10034             : 
   10035             : #if CK5_ENABLED
   10036             :     module procedure trmm_EXP_CGMA_ONOA_CUUB_ONOB_CK5
   10037             :         use pm_kind, only: CKC => CK5
   10038             : #include "pm_matrixMulTri@routines.inc.F90"
   10039             :     end procedure
   10040             : #endif
   10041             : 
   10042             : #if CK4_ENABLED
   10043         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_ONOB_CK4
   10044             :         use pm_kind, only: CKC => CK4
   10045             : #include "pm_matrixMulTri@routines.inc.F90"
   10046             :     end procedure
   10047             : #endif
   10048             : 
   10049             : #if CK3_ENABLED
   10050         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_ONOB_CK3
   10051             :         use pm_kind, only: CKC => CK3
   10052             : #include "pm_matrixMulTri@routines.inc.F90"
   10053             :     end procedure
   10054             : #endif
   10055             : 
   10056             : #if CK2_ENABLED
   10057         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_ONOB_CK2
   10058             :         use pm_kind, only: CKC => CK2
   10059             : #define DISPATCH_ENABLED 1
   10060             : #include "pm_matrixMulTri@routines.inc.F90"
   10061             : #undef  DISPATCH_ENABLED
   10062             :     end procedure
   10063             : #endif
   10064             : 
   10065             : #if CK1_ENABLED
   10066         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_ONOB_CK1
   10067             :         use pm_kind, only: CKC => CK1
   10068             : #define DISPATCH_ENABLED 1
   10069             : #include "pm_matrixMulTri@routines.inc.F90"
   10070             : #undef  DISPATCH_ENABLED
   10071             :     end procedure
   10072             : #endif
   10073             : 
   10074             : #undef CK_ENABLED
   10075             : 
   10076             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10077             : 
   10078             : #define RK_ENABLED 1
   10079             : 
   10080             : #if RK5_ENABLED
   10081             :     module procedure trmm_EXP_CGMA_ONOA_CUUB_ONOB_RK5
   10082             :         use pm_kind, only: RKC => RK5
   10083             : #include "pm_matrixMulTri@routines.inc.F90"
   10084             :     end procedure
   10085             : #endif
   10086             : 
   10087             : #if RK4_ENABLED
   10088         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_ONOB_RK4
   10089             :         use pm_kind, only: RKC => RK4
   10090             : #include "pm_matrixMulTri@routines.inc.F90"
   10091             :     end procedure
   10092             : #endif
   10093             : 
   10094             : #if RK3_ENABLED
   10095         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_ONOB_RK3
   10096             :         use pm_kind, only: RKC => RK3
   10097             : #include "pm_matrixMulTri@routines.inc.F90"
   10098             :     end procedure
   10099             : #endif
   10100             : 
   10101             : #if RK2_ENABLED
   10102         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_ONOB_RK2
   10103             :         use pm_kind, only: RKC => RK2
   10104             : #define DISPATCH_ENABLED 1
   10105             : #include "pm_matrixMulTri@routines.inc.F90"
   10106             : #undef  DISPATCH_ENABLED
   10107             :     end procedure
   10108             : #endif
   10109             : 
   10110             : #if RK1_ENABLED
   10111         101 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_ONOB_RK1
   10112             :         use pm_kind, only: RKC => RK1
   10113             : #define DISPATCH_ENABLED 1
   10114             : #include "pm_matrixMulTri@routines.inc.F90"
   10115             : #undef  DISPATCH_ENABLED
   10116             :     end procedure
   10117             : #endif
   10118             : 
   10119             : #undef RK_ENABLED
   10120             : 
   10121             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10122             : 
   10123             : #undef ONOB_ENABLED
   10124             : 
   10125             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10126             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10127             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10128             : 
   10129             : #define OTSB_ENABLED 1
   10130             : 
   10131             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10132             : 
   10133             : #define CK_ENABLED 1
   10134             : 
   10135             : #if CK5_ENABLED
   10136             :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTSB_CK5
   10137             :         use pm_kind, only: CKC => CK5
   10138             : #include "pm_matrixMulTri@routines.inc.F90"
   10139             :     end procedure
   10140             : #endif
   10141             : 
   10142             : #if CK4_ENABLED
   10143         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTSB_CK4
   10144             :         use pm_kind, only: CKC => CK4
   10145             : #include "pm_matrixMulTri@routines.inc.F90"
   10146             :     end procedure
   10147             : #endif
   10148             : 
   10149             : #if CK3_ENABLED
   10150         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTSB_CK3
   10151             :         use pm_kind, only: CKC => CK3
   10152             : #include "pm_matrixMulTri@routines.inc.F90"
   10153             :     end procedure
   10154             : #endif
   10155             : 
   10156             : #if CK2_ENABLED
   10157         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTSB_CK2
   10158             :         use pm_kind, only: CKC => CK2
   10159             : #define DISPATCH_ENABLED 1
   10160             : #include "pm_matrixMulTri@routines.inc.F90"
   10161             : #undef  DISPATCH_ENABLED
   10162             :     end procedure
   10163             : #endif
   10164             : 
   10165             : #if CK1_ENABLED
   10166         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTSB_CK1
   10167             :         use pm_kind, only: CKC => CK1
   10168             : #define DISPATCH_ENABLED 1
   10169             : #include "pm_matrixMulTri@routines.inc.F90"
   10170             : #undef  DISPATCH_ENABLED
   10171             :     end procedure
   10172             : #endif
   10173             : 
   10174             : #undef CK_ENABLED
   10175             : 
   10176             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10177             : 
   10178             : #define RK_ENABLED 1
   10179             : 
   10180             : #if RK5_ENABLED
   10181             :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTSB_RK5
   10182             :         use pm_kind, only: RKC => RK5
   10183             : #include "pm_matrixMulTri@routines.inc.F90"
   10184             :     end procedure
   10185             : #endif
   10186             : 
   10187             : #if RK4_ENABLED
   10188         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTSB_RK4
   10189             :         use pm_kind, only: RKC => RK4
   10190             : #include "pm_matrixMulTri@routines.inc.F90"
   10191             :     end procedure
   10192             : #endif
   10193             : 
   10194             : #if RK3_ENABLED
   10195         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTSB_RK3
   10196             :         use pm_kind, only: RKC => RK3
   10197             : #include "pm_matrixMulTri@routines.inc.F90"
   10198             :     end procedure
   10199             : #endif
   10200             : 
   10201             : #if RK2_ENABLED
   10202         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTSB_RK2
   10203             :         use pm_kind, only: RKC => RK2
   10204             : #define DISPATCH_ENABLED 1
   10205             : #include "pm_matrixMulTri@routines.inc.F90"
   10206             : #undef  DISPATCH_ENABLED
   10207             :     end procedure
   10208             : #endif
   10209             : 
   10210             : #if RK1_ENABLED
   10211         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTSB_RK1
   10212             :         use pm_kind, only: RKC => RK1
   10213             : #define DISPATCH_ENABLED 1
   10214             : #include "pm_matrixMulTri@routines.inc.F90"
   10215             : #undef  DISPATCH_ENABLED
   10216             :     end procedure
   10217             : #endif
   10218             : 
   10219             : #undef RK_ENABLED
   10220             : 
   10221             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10222             : 
   10223             : #undef OTSB_ENABLED
   10224             : 
   10225             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10226             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10227             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10228             : 
   10229             : #define OTHB_ENABLED 1
   10230             : 
   10231             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10232             : 
   10233             : #define CK_ENABLED 1
   10234             : 
   10235             : #if CK5_ENABLED
   10236             :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTHB_CK5
   10237             :         use pm_kind, only: CKC => CK5
   10238             : #include "pm_matrixMulTri@routines.inc.F90"
   10239             :     end procedure
   10240             : #endif
   10241             : 
   10242             : #if CK4_ENABLED
   10243         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTHB_CK4
   10244             :         use pm_kind, only: CKC => CK4
   10245             : #include "pm_matrixMulTri@routines.inc.F90"
   10246             :     end procedure
   10247             : #endif
   10248             : 
   10249             : #if CK3_ENABLED
   10250         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTHB_CK3
   10251             :         use pm_kind, only: CKC => CK3
   10252             : #include "pm_matrixMulTri@routines.inc.F90"
   10253             :     end procedure
   10254             : #endif
   10255             : 
   10256             : #if CK2_ENABLED
   10257         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTHB_CK2
   10258             :         use pm_kind, only: CKC => CK2
   10259             : #define DISPATCH_ENABLED 1
   10260             : #include "pm_matrixMulTri@routines.inc.F90"
   10261             : #undef  DISPATCH_ENABLED
   10262             :     end procedure
   10263             : #endif
   10264             : 
   10265             : #if CK1_ENABLED
   10266         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTHB_CK1
   10267             :         use pm_kind, only: CKC => CK1
   10268             : #define DISPATCH_ENABLED 1
   10269             : #include "pm_matrixMulTri@routines.inc.F90"
   10270             : #undef  DISPATCH_ENABLED
   10271             :     end procedure
   10272             : #endif
   10273             : 
   10274             : #undef CK_ENABLED
   10275             : 
   10276             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10277             : 
   10278             : #define RK_ENABLED 1
   10279             : 
   10280             : #if RK5_ENABLED
   10281             :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTHB_RK5
   10282             :         use pm_kind, only: RKC => RK5
   10283             : #include "pm_matrixMulTri@routines.inc.F90"
   10284             :     end procedure
   10285             : #endif
   10286             : 
   10287             : #if RK4_ENABLED
   10288         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTHB_RK4
   10289             :         use pm_kind, only: RKC => RK4
   10290             : #include "pm_matrixMulTri@routines.inc.F90"
   10291             :     end procedure
   10292             : #endif
   10293             : 
   10294             : #if RK3_ENABLED
   10295         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTHB_RK3
   10296             :         use pm_kind, only: RKC => RK3
   10297             : #include "pm_matrixMulTri@routines.inc.F90"
   10298             :     end procedure
   10299             : #endif
   10300             : 
   10301             : #if RK2_ENABLED
   10302         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTHB_RK2
   10303             :         use pm_kind, only: RKC => RK2
   10304             : #define DISPATCH_ENABLED 1
   10305             : #include "pm_matrixMulTri@routines.inc.F90"
   10306             : #undef  DISPATCH_ENABLED
   10307             :     end procedure
   10308             : #endif
   10309             : 
   10310             : #if RK1_ENABLED
   10311         100 :     module procedure trmm_EXP_CGMA_ONOA_CUUB_OTHB_RK1
   10312             :         use pm_kind, only: RKC => RK1
   10313             : #define DISPATCH_ENABLED 1
   10314             : #include "pm_matrixMulTri@routines.inc.F90"
   10315             : #undef  DISPATCH_ENABLED
   10316             :     end procedure
   10317             : #endif
   10318             : 
   10319             : #undef RK_ENABLED
   10320             : 
   10321             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10322             : 
   10323             : #undef OTHB_ENABLED
   10324             : 
   10325             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10326             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10327             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10328             : 
   10329             : #undef CUUB_ENABLED
   10330             : 
   10331             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10332             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10333             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10334             : 
   10335             : #undef ONOA_ENABLED
   10336             : 
   10337             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10338             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10339             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10340             : 
   10341             : #undef CGMA_ENABLED
   10342             : 
   10343             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10344             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10345             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10346             : 
   10347             : #undef EXP_ENABLED
   10348             : 
   10349             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10350             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10351             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10352             : 
   10353             : #undef trmm_ENABLED
   10354             : 
   10355             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10356             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10357             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10358             : 
   10359             : #undef setMatMulTri_ENABLED
   10360             : 
   10361             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10362             : 
   10363             : #define setMatMulTri_ENABLED 1
   10364             : 
   10365             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10366             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10367             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10368             : 
   10369             : #define trsm_ENABLED 1
   10370             : 
   10371             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10372             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10373             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10374             : 
   10375             : #define ASS_ENABLED 1
   10376             : 
   10377             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10378             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10379             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10380             : 
   10381             : #define CGMB_ENABLED 1
   10382             : 
   10383             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10384             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10385             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10386             : 
   10387             : #define ONOB_ENABLED 1
   10388             : 
   10389             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10390             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10391             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10392             : 
   10393             : #define CLDA_ENABLED 1
   10394             : 
   10395             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10396             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10397             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10398             : 
   10399             : #define INVA_ENABLED 1
   10400             : 
   10401             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10402             : 
   10403             : #define CK_ENABLED 1
   10404             : 
   10405             : #if CK5_ENABLED
   10406             :     module procedure trsm_ASS_CLDA_INVA_CGMB_ONOB_CK5
   10407             :         use pm_kind, only: CKC => CK5
   10408             : #include "pm_matrixMulTri@routines.inc.F90"
   10409             :     end procedure
   10410             : #endif
   10411             : 
   10412             : #if CK4_ENABLED
   10413         200 :     module procedure trsm_ASS_CLDA_INVA_CGMB_ONOB_CK4
   10414             :         use pm_kind, only: CKC => CK4
   10415             : #include "pm_matrixMulTri@routines.inc.F90"
   10416             :     end procedure
   10417             : #endif
   10418             : 
   10419             : #if CK3_ENABLED
   10420         200 :     module procedure trsm_ASS_CLDA_INVA_CGMB_ONOB_CK3
   10421             :         use pm_kind, only: CKC => CK3
   10422             : #include "pm_matrixMulTri@routines.inc.F90"
   10423             :     end procedure
   10424             : #endif
   10425             : 
   10426             : #if CK2_ENABLED
   10427         200 :     module procedure trsm_ASS_CLDA_INVA_CGMB_ONOB_CK2
   10428             :         use pm_kind, only: CKC => CK2
   10429             : #define DISPATCH_ENABLED 1
   10430             : #include "pm_matrixMulTri@routines.inc.F90"
   10431             : #undef  DISPATCH_ENABLED
   10432             :     end procedure
   10433             : #endif
   10434             : 
   10435             : #if CK1_ENABLED
   10436         200 :     module procedure trsm_ASS_CLDA_INVA_CGMB_ONOB_CK1
   10437             :         use pm_kind, only: CKC => CK1
   10438             : #define DISPATCH_ENABLED 1
   10439             : #include "pm_matrixMulTri@routines.inc.F90"
   10440             : #undef  DISPATCH_ENABLED
   10441             :     end procedure
   10442             : #endif
   10443             : 
   10444             : #undef CK_ENABLED
   10445             : 
   10446             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10447             : 
   10448             : #define RK_ENABLED 1
   10449             : 
   10450             : #if RK5_ENABLED
   10451             :     module procedure trsm_ASS_CLDA_INVA_CGMB_ONOB_RK5
   10452             :         use pm_kind, only: RKC => RK5
   10453             : #include "pm_matrixMulTri@routines.inc.F90"
   10454             :     end procedure
   10455             : #endif
   10456             : 
   10457             : #if RK4_ENABLED
   10458         200 :     module procedure trsm_ASS_CLDA_INVA_CGMB_ONOB_RK4
   10459             :         use pm_kind, only: RKC => RK4
   10460             : #include "pm_matrixMulTri@routines.inc.F90"
   10461             :     end procedure
   10462             : #endif
   10463             : 
   10464             : #if RK3_ENABLED
   10465         200 :     module procedure trsm_ASS_CLDA_INVA_CGMB_ONOB_RK3
   10466             :         use pm_kind, only: RKC => RK3
   10467             : #include "pm_matrixMulTri@routines.inc.F90"
   10468             :     end procedure
   10469             : #endif
   10470             : 
   10471             : #if RK2_ENABLED
   10472         200 :     module procedure trsm_ASS_CLDA_INVA_CGMB_ONOB_RK2
   10473             :         use pm_kind, only: RKC => RK2
   10474             : #define DISPATCH_ENABLED 1
   10475             : #include "pm_matrixMulTri@routines.inc.F90"
   10476             : #undef  DISPATCH_ENABLED
   10477             :     end procedure
   10478             : #endif
   10479             : 
   10480             : #if RK1_ENABLED
   10481         200 :     module procedure trsm_ASS_CLDA_INVA_CGMB_ONOB_RK1
   10482             :         use pm_kind, only: RKC => RK1
   10483             : #define DISPATCH_ENABLED 1
   10484             : #include "pm_matrixMulTri@routines.inc.F90"
   10485             : #undef  DISPATCH_ENABLED
   10486             :     end procedure
   10487             : #endif
   10488             : 
   10489             : #undef RK_ENABLED
   10490             : 
   10491             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10492             : 
   10493             : #undef INVA_ENABLED
   10494             : 
   10495             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10496             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10497             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10498             : 
   10499             : #define OTOA_ENABLED 1
   10500             : 
   10501             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10502             : 
   10503             : #define CK_ENABLED 1
   10504             : 
   10505             : #if CK5_ENABLED
   10506             :     module procedure trsm_ASS_CLDA_OTOA_CGMB_ONOB_CK5
   10507             :         use pm_kind, only: CKC => CK5
   10508             : #include "pm_matrixMulTri@routines.inc.F90"
   10509             :     end procedure
   10510             : #endif
   10511             : 
   10512             : #if CK4_ENABLED
   10513         200 :     module procedure trsm_ASS_CLDA_OTOA_CGMB_ONOB_CK4
   10514             :         use pm_kind, only: CKC => CK4
   10515             : #include "pm_matrixMulTri@routines.inc.F90"
   10516             :     end procedure
   10517             : #endif
   10518             : 
   10519             : #if CK3_ENABLED
   10520         200 :     module procedure trsm_ASS_CLDA_OTOA_CGMB_ONOB_CK3
   10521             :         use pm_kind, only: CKC => CK3
   10522             : #include "pm_matrixMulTri@routines.inc.F90"
   10523             :     end procedure
   10524             : #endif
   10525             : 
   10526             : #if CK2_ENABLED
   10527         200 :     module procedure trsm_ASS_CLDA_OTOA_CGMB_ONOB_CK2
   10528             :         use pm_kind, only: CKC => CK2
   10529             : #define DISPATCH_ENABLED 1
   10530             : #include "pm_matrixMulTri@routines.inc.F90"
   10531             : #undef  DISPATCH_ENABLED
   10532             :     end procedure
   10533             : #endif
   10534             : 
   10535             : #if CK1_ENABLED
   10536         200 :     module procedure trsm_ASS_CLDA_OTOA_CGMB_ONOB_CK1
   10537             :         use pm_kind, only: CKC => CK1
   10538             : #define DISPATCH_ENABLED 1
   10539             : #include "pm_matrixMulTri@routines.inc.F90"
   10540             : #undef  DISPATCH_ENABLED
   10541             :     end procedure
   10542             : #endif
   10543             : 
   10544             : #undef CK_ENABLED
   10545             : 
   10546             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10547             : 
   10548             : #define RK_ENABLED 1
   10549             : 
   10550             : #if RK5_ENABLED
   10551             :     module procedure trsm_ASS_CLDA_OTOA_CGMB_ONOB_RK5
   10552             :         use pm_kind, only: RKC => RK5
   10553             : #include "pm_matrixMulTri@routines.inc.F90"
   10554             :     end procedure
   10555             : #endif
   10556             : 
   10557             : #if RK4_ENABLED
   10558         200 :     module procedure trsm_ASS_CLDA_OTOA_CGMB_ONOB_RK4
   10559             :         use pm_kind, only: RKC => RK4
   10560             : #include "pm_matrixMulTri@routines.inc.F90"
   10561             :     end procedure
   10562             : #endif
   10563             : 
   10564             : #if RK3_ENABLED
   10565         200 :     module procedure trsm_ASS_CLDA_OTOA_CGMB_ONOB_RK3
   10566             :         use pm_kind, only: RKC => RK3
   10567             : #include "pm_matrixMulTri@routines.inc.F90"
   10568             :     end procedure
   10569             : #endif
   10570             : 
   10571             : #if RK2_ENABLED
   10572         200 :     module procedure trsm_ASS_CLDA_OTOA_CGMB_ONOB_RK2
   10573             :         use pm_kind, only: RKC => RK2
   10574             : #define DISPATCH_ENABLED 1
   10575             : #include "pm_matrixMulTri@routines.inc.F90"
   10576             : #undef  DISPATCH_ENABLED
   10577             :     end procedure
   10578             : #endif
   10579             : 
   10580             : #if RK1_ENABLED
   10581         200 :     module procedure trsm_ASS_CLDA_OTOA_CGMB_ONOB_RK1
   10582             :         use pm_kind, only: RKC => RK1
   10583             : #define DISPATCH_ENABLED 1
   10584             : #include "pm_matrixMulTri@routines.inc.F90"
   10585             : #undef  DISPATCH_ENABLED
   10586             :     end procedure
   10587             : #endif
   10588             : 
   10589             : #undef RK_ENABLED
   10590             : 
   10591             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10592             : 
   10593             : #undef OTOA_ENABLED
   10594             : 
   10595             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10596             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10597             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10598             : 
   10599             : #define OTUA_ENABLED 1
   10600             : 
   10601             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10602             : 
   10603             : #define CK_ENABLED 1
   10604             : 
   10605             : #if CK5_ENABLED
   10606             :     module procedure trsm_ASS_CLDA_OTUA_CGMB_ONOB_CK5
   10607             :         use pm_kind, only: CKC => CK5
   10608             : #include "pm_matrixMulTri@routines.inc.F90"
   10609             :     end procedure
   10610             : #endif
   10611             : 
   10612             : #if CK4_ENABLED
   10613         200 :     module procedure trsm_ASS_CLDA_OTUA_CGMB_ONOB_CK4
   10614             :         use pm_kind, only: CKC => CK4
   10615             : #include "pm_matrixMulTri@routines.inc.F90"
   10616             :     end procedure
   10617             : #endif
   10618             : 
   10619             : #if CK3_ENABLED
   10620         200 :     module procedure trsm_ASS_CLDA_OTUA_CGMB_ONOB_CK3
   10621             :         use pm_kind, only: CKC => CK3
   10622             : #include "pm_matrixMulTri@routines.inc.F90"
   10623             :     end procedure
   10624             : #endif
   10625             : 
   10626             : #if CK2_ENABLED
   10627         200 :     module procedure trsm_ASS_CLDA_OTUA_CGMB_ONOB_CK2
   10628             :         use pm_kind, only: CKC => CK2
   10629             : #define DISPATCH_ENABLED 1
   10630             : #include "pm_matrixMulTri@routines.inc.F90"
   10631             : #undef  DISPATCH_ENABLED
   10632             :     end procedure
   10633             : #endif
   10634             : 
   10635             : #if CK1_ENABLED
   10636         200 :     module procedure trsm_ASS_CLDA_OTUA_CGMB_ONOB_CK1
   10637             :         use pm_kind, only: CKC => CK1
   10638             : #define DISPATCH_ENABLED 1
   10639             : #include "pm_matrixMulTri@routines.inc.F90"
   10640             : #undef  DISPATCH_ENABLED
   10641             :     end procedure
   10642             : #endif
   10643             : 
   10644             : #undef CK_ENABLED
   10645             : 
   10646             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10647             : 
   10648             : #define RK_ENABLED 1
   10649             : 
   10650             : #if RK5_ENABLED
   10651             :     module procedure trsm_ASS_CLDA_OTUA_CGMB_ONOB_RK5
   10652             :         use pm_kind, only: RKC => RK5
   10653             : #include "pm_matrixMulTri@routines.inc.F90"
   10654             :     end procedure
   10655             : #endif
   10656             : 
   10657             : #if RK4_ENABLED
   10658         200 :     module procedure trsm_ASS_CLDA_OTUA_CGMB_ONOB_RK4
   10659             :         use pm_kind, only: RKC => RK4
   10660             : #include "pm_matrixMulTri@routines.inc.F90"
   10661             :     end procedure
   10662             : #endif
   10663             : 
   10664             : #if RK3_ENABLED
   10665         200 :     module procedure trsm_ASS_CLDA_OTUA_CGMB_ONOB_RK3
   10666             :         use pm_kind, only: RKC => RK3
   10667             : #include "pm_matrixMulTri@routines.inc.F90"
   10668             :     end procedure
   10669             : #endif
   10670             : 
   10671             : #if RK2_ENABLED
   10672         200 :     module procedure trsm_ASS_CLDA_OTUA_CGMB_ONOB_RK2
   10673             :         use pm_kind, only: RKC => RK2
   10674             : #define DISPATCH_ENABLED 1
   10675             : #include "pm_matrixMulTri@routines.inc.F90"
   10676             : #undef  DISPATCH_ENABLED
   10677             :     end procedure
   10678             : #endif
   10679             : 
   10680             : #if RK1_ENABLED
   10681         200 :     module procedure trsm_ASS_CLDA_OTUA_CGMB_ONOB_RK1
   10682             :         use pm_kind, only: RKC => RK1
   10683             : #define DISPATCH_ENABLED 1
   10684             : #include "pm_matrixMulTri@routines.inc.F90"
   10685             : #undef  DISPATCH_ENABLED
   10686             :     end procedure
   10687             : #endif
   10688             : 
   10689             : #undef RK_ENABLED
   10690             : 
   10691             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10692             : 
   10693             : #undef OTUA_ENABLED
   10694             : 
   10695             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10696             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10697             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10698             : 
   10699             : #undef CLDA_ENABLED
   10700             : 
   10701             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10702             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10703             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10704             : 
   10705             : #define CUDA_ENABLED 1
   10706             : 
   10707             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10708             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10709             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10710             : 
   10711             : #define INVA_ENABLED 1
   10712             : 
   10713             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10714             : 
   10715             : #define CK_ENABLED 1
   10716             : 
   10717             : #if CK5_ENABLED
   10718             :     module procedure trsm_ASS_CUDA_INVA_CGMB_ONOB_CK5
   10719             :         use pm_kind, only: CKC => CK5
   10720             : #include "pm_matrixMulTri@routines.inc.F90"
   10721             :     end procedure
   10722             : #endif
   10723             : 
   10724             : #if CK4_ENABLED
   10725         200 :     module procedure trsm_ASS_CUDA_INVA_CGMB_ONOB_CK4
   10726             :         use pm_kind, only: CKC => CK4
   10727             : #include "pm_matrixMulTri@routines.inc.F90"
   10728             :     end procedure
   10729             : #endif
   10730             : 
   10731             : #if CK3_ENABLED
   10732         200 :     module procedure trsm_ASS_CUDA_INVA_CGMB_ONOB_CK3
   10733             :         use pm_kind, only: CKC => CK3
   10734             : #include "pm_matrixMulTri@routines.inc.F90"
   10735             :     end procedure
   10736             : #endif
   10737             : 
   10738             : #if CK2_ENABLED
   10739         200 :     module procedure trsm_ASS_CUDA_INVA_CGMB_ONOB_CK2
   10740             :         use pm_kind, only: CKC => CK2
   10741             : #define DISPATCH_ENABLED 1
   10742             : #include "pm_matrixMulTri@routines.inc.F90"
   10743             : #undef  DISPATCH_ENABLED
   10744             :     end procedure
   10745             : #endif
   10746             : 
   10747             : #if CK1_ENABLED
   10748         200 :     module procedure trsm_ASS_CUDA_INVA_CGMB_ONOB_CK1
   10749             :         use pm_kind, only: CKC => CK1
   10750             : #define DISPATCH_ENABLED 1
   10751             : #include "pm_matrixMulTri@routines.inc.F90"
   10752             : #undef  DISPATCH_ENABLED
   10753             :     end procedure
   10754             : #endif
   10755             : 
   10756             : #undef CK_ENABLED
   10757             : 
   10758             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10759             : 
   10760             : #define RK_ENABLED 1
   10761             : 
   10762             : #if RK5_ENABLED
   10763             :     module procedure trsm_ASS_CUDA_INVA_CGMB_ONOB_RK5
   10764             :         use pm_kind, only: RKC => RK5
   10765             : #include "pm_matrixMulTri@routines.inc.F90"
   10766             :     end procedure
   10767             : #endif
   10768             : 
   10769             : #if RK4_ENABLED
   10770         200 :     module procedure trsm_ASS_CUDA_INVA_CGMB_ONOB_RK4
   10771             :         use pm_kind, only: RKC => RK4
   10772             : #include "pm_matrixMulTri@routines.inc.F90"
   10773             :     end procedure
   10774             : #endif
   10775             : 
   10776             : #if RK3_ENABLED
   10777         200 :     module procedure trsm_ASS_CUDA_INVA_CGMB_ONOB_RK3
   10778             :         use pm_kind, only: RKC => RK3
   10779             : #include "pm_matrixMulTri@routines.inc.F90"
   10780             :     end procedure
   10781             : #endif
   10782             : 
   10783             : #if RK2_ENABLED
   10784         200 :     module procedure trsm_ASS_CUDA_INVA_CGMB_ONOB_RK2
   10785             :         use pm_kind, only: RKC => RK2
   10786             : #define DISPATCH_ENABLED 1
   10787             : #include "pm_matrixMulTri@routines.inc.F90"
   10788             : #undef  DISPATCH_ENABLED
   10789             :     end procedure
   10790             : #endif
   10791             : 
   10792             : #if RK1_ENABLED
   10793         201 :     module procedure trsm_ASS_CUDA_INVA_CGMB_ONOB_RK1
   10794             :         use pm_kind, only: RKC => RK1
   10795             : #define DISPATCH_ENABLED 1
   10796             : #include "pm_matrixMulTri@routines.inc.F90"
   10797             : #undef  DISPATCH_ENABLED
   10798             :     end procedure
   10799             : #endif
   10800             : 
   10801             : #undef RK_ENABLED
   10802             : 
   10803             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10804             : 
   10805             : #undef INVA_ENABLED
   10806             : 
   10807             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10808             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10809             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10810             : 
   10811             : #define OTOA_ENABLED 1
   10812             : 
   10813             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10814             : 
   10815             : #define CK_ENABLED 1
   10816             : 
   10817             : #if CK5_ENABLED
   10818             :     module procedure trsm_ASS_CUDA_OTOA_CGMB_ONOB_CK5
   10819             :         use pm_kind, only: CKC => CK5
   10820             : #include "pm_matrixMulTri@routines.inc.F90"
   10821             :     end procedure
   10822             : #endif
   10823             : 
   10824             : #if CK4_ENABLED
   10825         200 :     module procedure trsm_ASS_CUDA_OTOA_CGMB_ONOB_CK4
   10826             :         use pm_kind, only: CKC => CK4
   10827             : #include "pm_matrixMulTri@routines.inc.F90"
   10828             :     end procedure
   10829             : #endif
   10830             : 
   10831             : #if CK3_ENABLED
   10832         200 :     module procedure trsm_ASS_CUDA_OTOA_CGMB_ONOB_CK3
   10833             :         use pm_kind, only: CKC => CK3
   10834             : #include "pm_matrixMulTri@routines.inc.F90"
   10835             :     end procedure
   10836             : #endif
   10837             : 
   10838             : #if CK2_ENABLED
   10839         200 :     module procedure trsm_ASS_CUDA_OTOA_CGMB_ONOB_CK2
   10840             :         use pm_kind, only: CKC => CK2
   10841             : #define DISPATCH_ENABLED 1
   10842             : #include "pm_matrixMulTri@routines.inc.F90"
   10843             : #undef  DISPATCH_ENABLED
   10844             :     end procedure
   10845             : #endif
   10846             : 
   10847             : #if CK1_ENABLED
   10848         200 :     module procedure trsm_ASS_CUDA_OTOA_CGMB_ONOB_CK1
   10849             :         use pm_kind, only: CKC => CK1
   10850             : #define DISPATCH_ENABLED 1
   10851             : #include "pm_matrixMulTri@routines.inc.F90"
   10852             : #undef  DISPATCH_ENABLED
   10853             :     end procedure
   10854             : #endif
   10855             : 
   10856             : #undef CK_ENABLED
   10857             : 
   10858             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10859             : 
   10860             : #define RK_ENABLED 1
   10861             : 
   10862             : #if RK5_ENABLED
   10863             :     module procedure trsm_ASS_CUDA_OTOA_CGMB_ONOB_RK5
   10864             :         use pm_kind, only: RKC => RK5
   10865             : #include "pm_matrixMulTri@routines.inc.F90"
   10866             :     end procedure
   10867             : #endif
   10868             : 
   10869             : #if RK4_ENABLED
   10870         200 :     module procedure trsm_ASS_CUDA_OTOA_CGMB_ONOB_RK4
   10871             :         use pm_kind, only: RKC => RK4
   10872             : #include "pm_matrixMulTri@routines.inc.F90"
   10873             :     end procedure
   10874             : #endif
   10875             : 
   10876             : #if RK3_ENABLED
   10877         200 :     module procedure trsm_ASS_CUDA_OTOA_CGMB_ONOB_RK3
   10878             :         use pm_kind, only: RKC => RK3
   10879             : #include "pm_matrixMulTri@routines.inc.F90"
   10880             :     end procedure
   10881             : #endif
   10882             : 
   10883             : #if RK2_ENABLED
   10884         200 :     module procedure trsm_ASS_CUDA_OTOA_CGMB_ONOB_RK2
   10885             :         use pm_kind, only: RKC => RK2
   10886             : #define DISPATCH_ENABLED 1
   10887             : #include "pm_matrixMulTri@routines.inc.F90"
   10888             : #undef  DISPATCH_ENABLED
   10889             :     end procedure
   10890             : #endif
   10891             : 
   10892             : #if RK1_ENABLED
   10893         201 :     module procedure trsm_ASS_CUDA_OTOA_CGMB_ONOB_RK1
   10894             :         use pm_kind, only: RKC => RK1
   10895             : #define DISPATCH_ENABLED 1
   10896             : #include "pm_matrixMulTri@routines.inc.F90"
   10897             : #undef  DISPATCH_ENABLED
   10898             :     end procedure
   10899             : #endif
   10900             : 
   10901             : #undef RK_ENABLED
   10902             : 
   10903             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10904             : 
   10905             : #undef OTOA_ENABLED
   10906             : 
   10907             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10908             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10909             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10910             : 
   10911             : #define OTUA_ENABLED 1
   10912             : 
   10913             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10914             : 
   10915             : #define CK_ENABLED 1
   10916             : 
   10917             : #if CK5_ENABLED
   10918             :     module procedure trsm_ASS_CUDA_OTUA_CGMB_ONOB_CK5
   10919             :         use pm_kind, only: CKC => CK5
   10920             : #include "pm_matrixMulTri@routines.inc.F90"
   10921             :     end procedure
   10922             : #endif
   10923             : 
   10924             : #if CK4_ENABLED
   10925         200 :     module procedure trsm_ASS_CUDA_OTUA_CGMB_ONOB_CK4
   10926             :         use pm_kind, only: CKC => CK4
   10927             : #include "pm_matrixMulTri@routines.inc.F90"
   10928             :     end procedure
   10929             : #endif
   10930             : 
   10931             : #if CK3_ENABLED
   10932         200 :     module procedure trsm_ASS_CUDA_OTUA_CGMB_ONOB_CK3
   10933             :         use pm_kind, only: CKC => CK3
   10934             : #include "pm_matrixMulTri@routines.inc.F90"
   10935             :     end procedure
   10936             : #endif
   10937             : 
   10938             : #if CK2_ENABLED
   10939         200 :     module procedure trsm_ASS_CUDA_OTUA_CGMB_ONOB_CK2
   10940             :         use pm_kind, only: CKC => CK2
   10941             : #define DISPATCH_ENABLED 1
   10942             : #include "pm_matrixMulTri@routines.inc.F90"
   10943             : #undef  DISPATCH_ENABLED
   10944             :     end procedure
   10945             : #endif
   10946             : 
   10947             : #if CK1_ENABLED
   10948         200 :     module procedure trsm_ASS_CUDA_OTUA_CGMB_ONOB_CK1
   10949             :         use pm_kind, only: CKC => CK1
   10950             : #define DISPATCH_ENABLED 1
   10951             : #include "pm_matrixMulTri@routines.inc.F90"
   10952             : #undef  DISPATCH_ENABLED
   10953             :     end procedure
   10954             : #endif
   10955             : 
   10956             : #undef CK_ENABLED
   10957             : 
   10958             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10959             : 
   10960             : #define RK_ENABLED 1
   10961             : 
   10962             : #if RK5_ENABLED
   10963             :     module procedure trsm_ASS_CUDA_OTUA_CGMB_ONOB_RK5
   10964             :         use pm_kind, only: RKC => RK5
   10965             : #include "pm_matrixMulTri@routines.inc.F90"
   10966             :     end procedure
   10967             : #endif
   10968             : 
   10969             : #if RK4_ENABLED
   10970         200 :     module procedure trsm_ASS_CUDA_OTUA_CGMB_ONOB_RK4
   10971             :         use pm_kind, only: RKC => RK4
   10972             : #include "pm_matrixMulTri@routines.inc.F90"
   10973             :     end procedure
   10974             : #endif
   10975             : 
   10976             : #if RK3_ENABLED
   10977         200 :     module procedure trsm_ASS_CUDA_OTUA_CGMB_ONOB_RK3
   10978             :         use pm_kind, only: RKC => RK3
   10979             : #include "pm_matrixMulTri@routines.inc.F90"
   10980             :     end procedure
   10981             : #endif
   10982             : 
   10983             : #if RK2_ENABLED
   10984         200 :     module procedure trsm_ASS_CUDA_OTUA_CGMB_ONOB_RK2
   10985             :         use pm_kind, only: RKC => RK2
   10986             : #define DISPATCH_ENABLED 1
   10987             : #include "pm_matrixMulTri@routines.inc.F90"
   10988             : #undef  DISPATCH_ENABLED
   10989             :     end procedure
   10990             : #endif
   10991             : 
   10992             : #if RK1_ENABLED
   10993         200 :     module procedure trsm_ASS_CUDA_OTUA_CGMB_ONOB_RK1
   10994             :         use pm_kind, only: RKC => RK1
   10995             : #define DISPATCH_ENABLED 1
   10996             : #include "pm_matrixMulTri@routines.inc.F90"
   10997             : #undef  DISPATCH_ENABLED
   10998             :     end procedure
   10999             : #endif
   11000             : 
   11001             : #undef RK_ENABLED
   11002             : 
   11003             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11004             : 
   11005             : #undef OTUA_ENABLED
   11006             : 
   11007             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11008             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11009             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11010             : 
   11011             : #undef CUDA_ENABLED
   11012             : 
   11013             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11014             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11015             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11016             : 
   11017             : #define CLUA_ENABLED 1
   11018             : 
   11019             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11020             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11021             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11022             : 
   11023             : #define INVA_ENABLED 1
   11024             : 
   11025             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11026             : 
   11027             : #define CK_ENABLED 1
   11028             : 
   11029             : #if CK5_ENABLED
   11030             :     module procedure trsm_ASS_CLUA_INVA_CGMB_ONOB_CK5
   11031             :         use pm_kind, only: CKC => CK5
   11032             : #include "pm_matrixMulTri@routines.inc.F90"
   11033             :     end procedure
   11034             : #endif
   11035             : 
   11036             : #if CK4_ENABLED
   11037         200 :     module procedure trsm_ASS_CLUA_INVA_CGMB_ONOB_CK4
   11038             :         use pm_kind, only: CKC => CK4
   11039             : #include "pm_matrixMulTri@routines.inc.F90"
   11040             :     end procedure
   11041             : #endif
   11042             : 
   11043             : #if CK3_ENABLED
   11044         200 :     module procedure trsm_ASS_CLUA_INVA_CGMB_ONOB_CK3
   11045             :         use pm_kind, only: CKC => CK3
   11046             : #include "pm_matrixMulTri@routines.inc.F90"
   11047             :     end procedure
   11048             : #endif
   11049             : 
   11050             : #if CK2_ENABLED
   11051         200 :     module procedure trsm_ASS_CLUA_INVA_CGMB_ONOB_CK2
   11052             :         use pm_kind, only: CKC => CK2
   11053             : #define DISPATCH_ENABLED 1
   11054             : #include "pm_matrixMulTri@routines.inc.F90"
   11055             : #undef  DISPATCH_ENABLED
   11056             :     end procedure
   11057             : #endif
   11058             : 
   11059             : #if CK1_ENABLED
   11060         200 :     module procedure trsm_ASS_CLUA_INVA_CGMB_ONOB_CK1
   11061             :         use pm_kind, only: CKC => CK1
   11062             : #define DISPATCH_ENABLED 1
   11063             : #include "pm_matrixMulTri@routines.inc.F90"
   11064             : #undef  DISPATCH_ENABLED
   11065             :     end procedure
   11066             : #endif
   11067             : 
   11068             : #undef CK_ENABLED
   11069             : 
   11070             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11071             : 
   11072             : #define RK_ENABLED 1
   11073             : 
   11074             : #if RK5_ENABLED
   11075             :     module procedure trsm_ASS_CLUA_INVA_CGMB_ONOB_RK5
   11076             :         use pm_kind, only: RKC => RK5
   11077             : #include "pm_matrixMulTri@routines.inc.F90"
   11078             :     end procedure
   11079             : #endif
   11080             : 
   11081             : #if RK4_ENABLED
   11082         200 :     module procedure trsm_ASS_CLUA_INVA_CGMB_ONOB_RK4
   11083             :         use pm_kind, only: RKC => RK4
   11084             : #include "pm_matrixMulTri@routines.inc.F90"
   11085             :     end procedure
   11086             : #endif
   11087             : 
   11088             : #if RK3_ENABLED
   11089         200 :     module procedure trsm_ASS_CLUA_INVA_CGMB_ONOB_RK3
   11090             :         use pm_kind, only: RKC => RK3
   11091             : #include "pm_matrixMulTri@routines.inc.F90"
   11092             :     end procedure
   11093             : #endif
   11094             : 
   11095             : #if RK2_ENABLED
   11096         200 :     module procedure trsm_ASS_CLUA_INVA_CGMB_ONOB_RK2
   11097             :         use pm_kind, only: RKC => RK2
   11098             : #define DISPATCH_ENABLED 1
   11099             : #include "pm_matrixMulTri@routines.inc.F90"
   11100             : #undef  DISPATCH_ENABLED
   11101             :     end procedure
   11102             : #endif
   11103             : 
   11104             : #if RK1_ENABLED
   11105         200 :     module procedure trsm_ASS_CLUA_INVA_CGMB_ONOB_RK1
   11106             :         use pm_kind, only: RKC => RK1
   11107             : #define DISPATCH_ENABLED 1
   11108             : #include "pm_matrixMulTri@routines.inc.F90"
   11109             : #undef  DISPATCH_ENABLED
   11110             :     end procedure
   11111             : #endif
   11112             : 
   11113             : #undef RK_ENABLED
   11114             : 
   11115             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11116             : 
   11117             : #undef INVA_ENABLED
   11118             : 
   11119             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11120             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11121             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11122             : 
   11123             : #define OTOA_ENABLED 1
   11124             : 
   11125             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11126             : 
   11127             : #define CK_ENABLED 1
   11128             : 
   11129             : #if CK5_ENABLED
   11130             :     module procedure trsm_ASS_CLUA_OTOA_CGMB_ONOB_CK5
   11131             :         use pm_kind, only: CKC => CK5
   11132             : #include "pm_matrixMulTri@routines.inc.F90"
   11133             :     end procedure
   11134             : #endif
   11135             : 
   11136             : #if CK4_ENABLED
   11137         200 :     module procedure trsm_ASS_CLUA_OTOA_CGMB_ONOB_CK4
   11138             :         use pm_kind, only: CKC => CK4
   11139             : #include "pm_matrixMulTri@routines.inc.F90"
   11140             :     end procedure
   11141             : #endif
   11142             : 
   11143             : #if CK3_ENABLED
   11144         200 :     module procedure trsm_ASS_CLUA_OTOA_CGMB_ONOB_CK3
   11145             :         use pm_kind, only: CKC => CK3
   11146             : #include "pm_matrixMulTri@routines.inc.F90"
   11147             :     end procedure
   11148             : #endif
   11149             : 
   11150             : #if CK2_ENABLED
   11151         200 :     module procedure trsm_ASS_CLUA_OTOA_CGMB_ONOB_CK2
   11152             :         use pm_kind, only: CKC => CK2
   11153             : #define DISPATCH_ENABLED 1
   11154             : #include "pm_matrixMulTri@routines.inc.F90"
   11155             : #undef  DISPATCH_ENABLED
   11156             :     end procedure
   11157             : #endif
   11158             : 
   11159             : #if CK1_ENABLED
   11160         200 :     module procedure trsm_ASS_CLUA_OTOA_CGMB_ONOB_CK1
   11161             :         use pm_kind, only: CKC => CK1
   11162             : #define DISPATCH_ENABLED 1
   11163             : #include "pm_matrixMulTri@routines.inc.F90"
   11164             : #undef  DISPATCH_ENABLED
   11165             :     end procedure
   11166             : #endif
   11167             : 
   11168             : #undef CK_ENABLED
   11169             : 
   11170             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11171             : 
   11172             : #define RK_ENABLED 1
   11173             : 
   11174             : #if RK5_ENABLED
   11175             :     module procedure trsm_ASS_CLUA_OTOA_CGMB_ONOB_RK5
   11176             :         use pm_kind, only: RKC => RK5
   11177             : #include "pm_matrixMulTri@routines.inc.F90"
   11178             :     end procedure
   11179             : #endif
   11180             : 
   11181             : #if RK4_ENABLED
   11182         200 :     module procedure trsm_ASS_CLUA_OTOA_CGMB_ONOB_RK4
   11183             :         use pm_kind, only: RKC => RK4
   11184             : #include "pm_matrixMulTri@routines.inc.F90"
   11185             :     end procedure
   11186             : #endif
   11187             : 
   11188             : #if RK3_ENABLED
   11189         200 :     module procedure trsm_ASS_CLUA_OTOA_CGMB_ONOB_RK3
   11190             :         use pm_kind, only: RKC => RK3
   11191             : #include "pm_matrixMulTri@routines.inc.F90"
   11192             :     end procedure
   11193             : #endif
   11194             : 
   11195             : #if RK2_ENABLED
   11196         200 :     module procedure trsm_ASS_CLUA_OTOA_CGMB_ONOB_RK2
   11197             :         use pm_kind, only: RKC => RK2
   11198             : #define DISPATCH_ENABLED 1
   11199             : #include "pm_matrixMulTri@routines.inc.F90"
   11200             : #undef  DISPATCH_ENABLED
   11201             :     end procedure
   11202             : #endif
   11203             : 
   11204             : #if RK1_ENABLED
   11205         200 :     module procedure trsm_ASS_CLUA_OTOA_CGMB_ONOB_RK1
   11206             :         use pm_kind, only: RKC => RK1
   11207             : #define DISPATCH_ENABLED 1
   11208             : #include "pm_matrixMulTri@routines.inc.F90"
   11209             : #undef  DISPATCH_ENABLED
   11210             :     end procedure
   11211             : #endif
   11212             : 
   11213             : #undef RK_ENABLED
   11214             : 
   11215             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11216             : 
   11217             : #undef OTOA_ENABLED
   11218             : 
   11219             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11220             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11221             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11222             : 
   11223             : #define OTUA_ENABLED 1
   11224             : 
   11225             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11226             : 
   11227             : #define CK_ENABLED 1
   11228             : 
   11229             : #if CK5_ENABLED
   11230             :     module procedure trsm_ASS_CLUA_OTUA_CGMB_ONOB_CK5
   11231             :         use pm_kind, only: CKC => CK5
   11232             : #include "pm_matrixMulTri@routines.inc.F90"
   11233             :     end procedure
   11234             : #endif
   11235             : 
   11236             : #if CK4_ENABLED
   11237         200 :     module procedure trsm_ASS_CLUA_OTUA_CGMB_ONOB_CK4
   11238             :         use pm_kind, only: CKC => CK4
   11239             : #include "pm_matrixMulTri@routines.inc.F90"
   11240             :     end procedure
   11241             : #endif
   11242             : 
   11243             : #if CK3_ENABLED
   11244         200 :     module procedure trsm_ASS_CLUA_OTUA_CGMB_ONOB_CK3
   11245             :         use pm_kind, only: CKC => CK3
   11246             : #include "pm_matrixMulTri@routines.inc.F90"
   11247             :     end procedure
   11248             : #endif
   11249             : 
   11250             : #if CK2_ENABLED
   11251         200 :     module procedure trsm_ASS_CLUA_OTUA_CGMB_ONOB_CK2
   11252             :         use pm_kind, only: CKC => CK2
   11253             : #define DISPATCH_ENABLED 1
   11254             : #include "pm_matrixMulTri@routines.inc.F90"
   11255             : #undef  DISPATCH_ENABLED
   11256             :     end procedure
   11257             : #endif
   11258             : 
   11259             : #if CK1_ENABLED
   11260         200 :     module procedure trsm_ASS_CLUA_OTUA_CGMB_ONOB_CK1
   11261             :         use pm_kind, only: CKC => CK1
   11262             : #define DISPATCH_ENABLED 1
   11263             : #include "pm_matrixMulTri@routines.inc.F90"
   11264             : #undef  DISPATCH_ENABLED
   11265             :     end procedure
   11266             : #endif
   11267             : 
   11268             : #undef CK_ENABLED
   11269             : 
   11270             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11271             : 
   11272             : #define RK_ENABLED 1
   11273             : 
   11274             : #if RK5_ENABLED
   11275             :     module procedure trsm_ASS_CLUA_OTUA_CGMB_ONOB_RK5
   11276             :         use pm_kind, only: RKC => RK5
   11277             : #include "pm_matrixMulTri@routines.inc.F90"
   11278             :     end procedure
   11279             : #endif
   11280             : 
   11281             : #if RK4_ENABLED
   11282         200 :     module procedure trsm_ASS_CLUA_OTUA_CGMB_ONOB_RK4
   11283             :         use pm_kind, only: RKC => RK4
   11284             : #include "pm_matrixMulTri@routines.inc.F90"
   11285             :     end procedure
   11286             : #endif
   11287             : 
   11288             : #if RK3_ENABLED
   11289         200 :     module procedure trsm_ASS_CLUA_OTUA_CGMB_ONOB_RK3
   11290             :         use pm_kind, only: RKC => RK3
   11291             : #include "pm_matrixMulTri@routines.inc.F90"
   11292             :     end procedure
   11293             : #endif
   11294             : 
   11295             : #if RK2_ENABLED
   11296         200 :     module procedure trsm_ASS_CLUA_OTUA_CGMB_ONOB_RK2
   11297             :         use pm_kind, only: RKC => RK2
   11298             : #define DISPATCH_ENABLED 1
   11299             : #include "pm_matrixMulTri@routines.inc.F90"
   11300             : #undef  DISPATCH_ENABLED
   11301             :     end procedure
   11302             : #endif
   11303             : 
   11304             : #if RK1_ENABLED
   11305         200 :     module procedure trsm_ASS_CLUA_OTUA_CGMB_ONOB_RK1
   11306             :         use pm_kind, only: RKC => RK1
   11307             : #define DISPATCH_ENABLED 1
   11308             : #include "pm_matrixMulTri@routines.inc.F90"
   11309             : #undef  DISPATCH_ENABLED
   11310             :     end procedure
   11311             : #endif
   11312             : 
   11313             : #undef RK_ENABLED
   11314             : 
   11315             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11316             : 
   11317             : #undef OTUA_ENABLED
   11318             : 
   11319             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11320             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11321             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11322             : 
   11323             : #undef CLUA_ENABLED
   11324             : 
   11325             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11326             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11327             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11328             : 
   11329             : #define CUUA_ENABLED 1
   11330             : 
   11331             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11332             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11333             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11334             : 
   11335             : #define INVA_ENABLED 1
   11336             : 
   11337             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11338             : 
   11339             : #define CK_ENABLED 1
   11340             : 
   11341             : #if CK5_ENABLED
   11342             :     module procedure trsm_ASS_CUUA_INVA_CGMB_ONOB_CK5
   11343             :         use pm_kind, only: CKC => CK5
   11344             : #include "pm_matrixMulTri@routines.inc.F90"
   11345             :     end procedure
   11346             : #endif
   11347             : 
   11348             : #if CK4_ENABLED
   11349         200 :     module procedure trsm_ASS_CUUA_INVA_CGMB_ONOB_CK4
   11350             :         use pm_kind, only: CKC => CK4
   11351             : #include "pm_matrixMulTri@routines.inc.F90"
   11352             :     end procedure
   11353             : #endif
   11354             : 
   11355             : #if CK3_ENABLED
   11356         200 :     module procedure trsm_ASS_CUUA_INVA_CGMB_ONOB_CK3
   11357             :         use pm_kind, only: CKC => CK3
   11358             : #include "pm_matrixMulTri@routines.inc.F90"
   11359             :     end procedure
   11360             : #endif
   11361             : 
   11362             : #if CK2_ENABLED
   11363         200 :     module procedure trsm_ASS_CUUA_INVA_CGMB_ONOB_CK2
   11364             :         use pm_kind, only: CKC => CK2
   11365             : #define DISPATCH_ENABLED 1
   11366             : #include "pm_matrixMulTri@routines.inc.F90"
   11367             : #undef  DISPATCH_ENABLED
   11368             :     end procedure
   11369             : #endif
   11370             : 
   11371             : #if CK1_ENABLED
   11372         200 :     module procedure trsm_ASS_CUUA_INVA_CGMB_ONOB_CK1
   11373             :         use pm_kind, only: CKC => CK1
   11374             : #define DISPATCH_ENABLED 1
   11375             : #include "pm_matrixMulTri@routines.inc.F90"
   11376             : #undef  DISPATCH_ENABLED
   11377             :     end procedure
   11378             : #endif
   11379             : 
   11380             : #undef CK_ENABLED
   11381             : 
   11382             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11383             : 
   11384             : #define RK_ENABLED 1
   11385             : 
   11386             : #if RK5_ENABLED
   11387             :     module procedure trsm_ASS_CUUA_INVA_CGMB_ONOB_RK5
   11388             :         use pm_kind, only: RKC => RK5
   11389             : #include "pm_matrixMulTri@routines.inc.F90"
   11390             :     end procedure
   11391             : #endif
   11392             : 
   11393             : #if RK4_ENABLED
   11394         200 :     module procedure trsm_ASS_CUUA_INVA_CGMB_ONOB_RK4
   11395             :         use pm_kind, only: RKC => RK4
   11396             : #include "pm_matrixMulTri@routines.inc.F90"
   11397             :     end procedure
   11398             : #endif
   11399             : 
   11400             : #if RK3_ENABLED
   11401         200 :     module procedure trsm_ASS_CUUA_INVA_CGMB_ONOB_RK3
   11402             :         use pm_kind, only: RKC => RK3
   11403             : #include "pm_matrixMulTri@routines.inc.F90"
   11404             :     end procedure
   11405             : #endif
   11406             : 
   11407             : #if RK2_ENABLED
   11408         200 :     module procedure trsm_ASS_CUUA_INVA_CGMB_ONOB_RK2
   11409             :         use pm_kind, only: RKC => RK2
   11410             : #define DISPATCH_ENABLED 1
   11411             : #include "pm_matrixMulTri@routines.inc.F90"
   11412             : #undef  DISPATCH_ENABLED
   11413             :     end procedure
   11414             : #endif
   11415             : 
   11416             : #if RK1_ENABLED
   11417         200 :     module procedure trsm_ASS_CUUA_INVA_CGMB_ONOB_RK1
   11418             :         use pm_kind, only: RKC => RK1
   11419             : #define DISPATCH_ENABLED 1
   11420             : #include "pm_matrixMulTri@routines.inc.F90"
   11421             : #undef  DISPATCH_ENABLED
   11422             :     end procedure
   11423             : #endif
   11424             : 
   11425             : #undef RK_ENABLED
   11426             : 
   11427             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11428             : 
   11429             : #undef INVA_ENABLED
   11430             : 
   11431             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11432             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11433             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11434             : 
   11435             : #define OTOA_ENABLED 1
   11436             : 
   11437             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11438             : 
   11439             : #define CK_ENABLED 1
   11440             : 
   11441             : #if CK5_ENABLED
   11442             :     module procedure trsm_ASS_CUUA_OTOA_CGMB_ONOB_CK5
   11443             :         use pm_kind, only: CKC => CK5
   11444             : #include "pm_matrixMulTri@routines.inc.F90"
   11445             :     end procedure
   11446             : #endif
   11447             : 
   11448             : #if CK4_ENABLED
   11449         200 :     module procedure trsm_ASS_CUUA_OTOA_CGMB_ONOB_CK4
   11450             :         use pm_kind, only: CKC => CK4
   11451             : #include "pm_matrixMulTri@routines.inc.F90"
   11452             :     end procedure
   11453             : #endif
   11454             : 
   11455             : #if CK3_ENABLED
   11456         200 :     module procedure trsm_ASS_CUUA_OTOA_CGMB_ONOB_CK3
   11457             :         use pm_kind, only: CKC => CK3
   11458             : #include "pm_matrixMulTri@routines.inc.F90"
   11459             :     end procedure
   11460             : #endif
   11461             : 
   11462             : #if CK2_ENABLED
   11463         200 :     module procedure trsm_ASS_CUUA_OTOA_CGMB_ONOB_CK2
   11464             :         use pm_kind, only: CKC => CK2
   11465             : #define DISPATCH_ENABLED 1
   11466             : #include "pm_matrixMulTri@routines.inc.F90"
   11467             : #undef  DISPATCH_ENABLED
   11468             :     end procedure
   11469             : #endif
   11470             : 
   11471             : #if CK1_ENABLED
   11472         200 :     module procedure trsm_ASS_CUUA_OTOA_CGMB_ONOB_CK1
   11473             :         use pm_kind, only: CKC => CK1
   11474             : #define DISPATCH_ENABLED 1
   11475             : #include "pm_matrixMulTri@routines.inc.F90"
   11476             : #undef  DISPATCH_ENABLED
   11477             :     end procedure
   11478             : #endif
   11479             : 
   11480             : #undef CK_ENABLED
   11481             : 
   11482             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11483             : 
   11484             : #define RK_ENABLED 1
   11485             : 
   11486             : #if RK5_ENABLED
   11487             :     module procedure trsm_ASS_CUUA_OTOA_CGMB_ONOB_RK5
   11488             :         use pm_kind, only: RKC => RK5
   11489             : #include "pm_matrixMulTri@routines.inc.F90"
   11490             :     end procedure
   11491             : #endif
   11492             : 
   11493             : #if RK4_ENABLED
   11494         200 :     module procedure trsm_ASS_CUUA_OTOA_CGMB_ONOB_RK4
   11495             :         use pm_kind, only: RKC => RK4
   11496             : #include "pm_matrixMulTri@routines.inc.F90"
   11497             :     end procedure
   11498             : #endif
   11499             : 
   11500             : #if RK3_ENABLED
   11501         200 :     module procedure trsm_ASS_CUUA_OTOA_CGMB_ONOB_RK3
   11502             :         use pm_kind, only: RKC => RK3
   11503             : #include "pm_matrixMulTri@routines.inc.F90"
   11504             :     end procedure
   11505             : #endif
   11506             : 
   11507             : #if RK2_ENABLED
   11508         200 :     module procedure trsm_ASS_CUUA_OTOA_CGMB_ONOB_RK2
   11509             :         use pm_kind, only: RKC => RK2
   11510             : #define DISPATCH_ENABLED 1
   11511             : #include "pm_matrixMulTri@routines.inc.F90"
   11512             : #undef  DISPATCH_ENABLED
   11513             :     end procedure
   11514             : #endif
   11515             : 
   11516             : #if RK1_ENABLED
   11517         200 :     module procedure trsm_ASS_CUUA_OTOA_CGMB_ONOB_RK1
   11518             :         use pm_kind, only: RKC => RK1
   11519             : #define DISPATCH_ENABLED 1
   11520             : #include "pm_matrixMulTri@routines.inc.F90"
   11521             : #undef  DISPATCH_ENABLED
   11522             :     end procedure
   11523             : #endif
   11524             : 
   11525             : #undef RK_ENABLED
   11526             : 
   11527             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11528             : 
   11529             : #undef OTOA_ENABLED
   11530             : 
   11531             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11532             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11533             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11534             : 
   11535             : #define OTUA_ENABLED 1
   11536             : 
   11537             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11538             : 
   11539             : #define CK_ENABLED 1
   11540             : 
   11541             : #if CK5_ENABLED
   11542             :     module procedure trsm_ASS_CUUA_OTUA_CGMB_ONOB_CK5
   11543             :         use pm_kind, only: CKC => CK5
   11544             : #include "pm_matrixMulTri@routines.inc.F90"
   11545             :     end procedure
   11546             : #endif
   11547             : 
   11548             : #if CK4_ENABLED
   11549         200 :     module procedure trsm_ASS_CUUA_OTUA_CGMB_ONOB_CK4
   11550             :         use pm_kind, only: CKC => CK4
   11551             : #include "pm_matrixMulTri@routines.inc.F90"
   11552             :     end procedure
   11553             : #endif
   11554             : 
   11555             : #if CK3_ENABLED
   11556         200 :     module procedure trsm_ASS_CUUA_OTUA_CGMB_ONOB_CK3
   11557             :         use pm_kind, only: CKC => CK3
   11558             : #include "pm_matrixMulTri@routines.inc.F90"
   11559             :     end procedure
   11560             : #endif
   11561             : 
   11562             : #if CK2_ENABLED
   11563         200 :     module procedure trsm_ASS_CUUA_OTUA_CGMB_ONOB_CK2
   11564             :         use pm_kind, only: CKC => CK2
   11565             : #define DISPATCH_ENABLED 1
   11566             : #include "pm_matrixMulTri@routines.inc.F90"
   11567             : #undef  DISPATCH_ENABLED
   11568             :     end procedure
   11569             : #endif
   11570             : 
   11571             : #if CK1_ENABLED
   11572         200 :     module procedure trsm_ASS_CUUA_OTUA_CGMB_ONOB_CK1
   11573             :         use pm_kind, only: CKC => CK1
   11574             : #define DISPATCH_ENABLED 1
   11575             : #include "pm_matrixMulTri@routines.inc.F90"
   11576             : #undef  DISPATCH_ENABLED
   11577             :     end procedure
   11578             : #endif
   11579             : 
   11580             : #undef CK_ENABLED
   11581             : 
   11582             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11583             : 
   11584             : #define RK_ENABLED 1
   11585             : 
   11586             : #if RK5_ENABLED
   11587             :     module procedure trsm_ASS_CUUA_OTUA_CGMB_ONOB_RK5
   11588             :         use pm_kind, only: RKC => RK5
   11589             : #include "pm_matrixMulTri@routines.inc.F90"
   11590             :     end procedure
   11591             : #endif
   11592             : 
   11593             : #if RK4_ENABLED
   11594         200 :     module procedure trsm_ASS_CUUA_OTUA_CGMB_ONOB_RK4
   11595             :         use pm_kind, only: RKC => RK4
   11596             : #include "pm_matrixMulTri@routines.inc.F90"
   11597             :     end procedure
   11598             : #endif
   11599             : 
   11600             : #if RK3_ENABLED
   11601         200 :     module procedure trsm_ASS_CUUA_OTUA_CGMB_ONOB_RK3
   11602             :         use pm_kind, only: RKC => RK3
   11603             : #include "pm_matrixMulTri@routines.inc.F90"
   11604             :     end procedure
   11605             : #endif
   11606             : 
   11607             : #if RK2_ENABLED
   11608         200 :     module procedure trsm_ASS_CUUA_OTUA_CGMB_ONOB_RK2
   11609             :         use pm_kind, only: RKC => RK2
   11610             : #define DISPATCH_ENABLED 1
   11611             : #include "pm_matrixMulTri@routines.inc.F90"
   11612             : #undef  DISPATCH_ENABLED
   11613             :     end procedure
   11614             : #endif
   11615             : 
   11616             : #if RK1_ENABLED
   11617         200 :     module procedure trsm_ASS_CUUA_OTUA_CGMB_ONOB_RK1
   11618             :         use pm_kind, only: RKC => RK1
   11619             : #define DISPATCH_ENABLED 1
   11620             : #include "pm_matrixMulTri@routines.inc.F90"
   11621             : #undef  DISPATCH_ENABLED
   11622             :     end procedure
   11623             : #endif
   11624             : 
   11625             : #undef RK_ENABLED
   11626             : 
   11627             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11628             : 
   11629             : #undef OTUA_ENABLED
   11630             : 
   11631             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11632             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11633             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11634             : 
   11635             : #undef CUUA_ENABLED
   11636             : 
   11637             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11638             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11639             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11640             : 
   11641             : #undef ONOB_ENABLED
   11642             : 
   11643             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11644             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11645             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11646             : 
   11647             : #undef CGMB_ENABLED
   11648             : 
   11649             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11650             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11651             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11652             : 
   11653             : #define CGMA_ENABLED 1
   11654             : 
   11655             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11656             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11657             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11658             : 
   11659             : #define ONOA_ENABLED 1
   11660             : 
   11661             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11662             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11663             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11664             : 
   11665             : #define CLDB_ENABLED 1
   11666             : 
   11667             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11668             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11669             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11670             : 
   11671             : #define INVB_ENABLED 1
   11672             : 
   11673             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11674             : 
   11675             : #define CK_ENABLED 1
   11676             : 
   11677             : #if CK5_ENABLED
   11678             :     module procedure trsm_ASS_CGMA_ONOA_CLDB_INVB_CK5
   11679             :         use pm_kind, only: CKC => CK5
   11680             : #include "pm_matrixMulTri@routines.inc.F90"
   11681             :     end procedure
   11682             : #endif
   11683             : 
   11684             : #if CK4_ENABLED
   11685         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_INVB_CK4
   11686             :         use pm_kind, only: CKC => CK4
   11687             : #include "pm_matrixMulTri@routines.inc.F90"
   11688             :     end procedure
   11689             : #endif
   11690             : 
   11691             : #if CK3_ENABLED
   11692         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_INVB_CK3
   11693             :         use pm_kind, only: CKC => CK3
   11694             : #include "pm_matrixMulTri@routines.inc.F90"
   11695             :     end procedure
   11696             : #endif
   11697             : 
   11698             : #if CK2_ENABLED
   11699         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_INVB_CK2
   11700             :         use pm_kind, only: CKC => CK2
   11701             : #define DISPATCH_ENABLED 1
   11702             : #include "pm_matrixMulTri@routines.inc.F90"
   11703             : #undef  DISPATCH_ENABLED
   11704             :     end procedure
   11705             : #endif
   11706             : 
   11707             : #if CK1_ENABLED
   11708         201 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_INVB_CK1
   11709             :         use pm_kind, only: CKC => CK1
   11710             : #define DISPATCH_ENABLED 1
   11711             : #include "pm_matrixMulTri@routines.inc.F90"
   11712             : #undef  DISPATCH_ENABLED
   11713             :     end procedure
   11714             : #endif
   11715             : 
   11716             : #undef CK_ENABLED
   11717             : 
   11718             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11719             : 
   11720             : #define RK_ENABLED 1
   11721             : 
   11722             : #if RK5_ENABLED
   11723             :     module procedure trsm_ASS_CGMA_ONOA_CLDB_INVB_RK5
   11724             :         use pm_kind, only: RKC => RK5
   11725             : #include "pm_matrixMulTri@routines.inc.F90"
   11726             :     end procedure
   11727             : #endif
   11728             : 
   11729             : #if RK4_ENABLED
   11730         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_INVB_RK4
   11731             :         use pm_kind, only: RKC => RK4
   11732             : #include "pm_matrixMulTri@routines.inc.F90"
   11733             :     end procedure
   11734             : #endif
   11735             : 
   11736             : #if RK3_ENABLED
   11737         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_INVB_RK3
   11738             :         use pm_kind, only: RKC => RK3
   11739             : #include "pm_matrixMulTri@routines.inc.F90"
   11740             :     end procedure
   11741             : #endif
   11742             : 
   11743             : #if RK2_ENABLED
   11744         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_INVB_RK2
   11745             :         use pm_kind, only: RKC => RK2
   11746             : #define DISPATCH_ENABLED 1
   11747             : #include "pm_matrixMulTri@routines.inc.F90"
   11748             : #undef  DISPATCH_ENABLED
   11749             :     end procedure
   11750             : #endif
   11751             : 
   11752             : #if RK1_ENABLED
   11753         201 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_INVB_RK1
   11754             :         use pm_kind, only: RKC => RK1
   11755             : #define DISPATCH_ENABLED 1
   11756             : #include "pm_matrixMulTri@routines.inc.F90"
   11757             : #undef  DISPATCH_ENABLED
   11758             :     end procedure
   11759             : #endif
   11760             : 
   11761             : #undef RK_ENABLED
   11762             : 
   11763             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11764             : 
   11765             : #undef INVB_ENABLED
   11766             : 
   11767             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11768             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11769             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11770             : 
   11771             : #define OTOB_ENABLED 1
   11772             : 
   11773             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11774             : 
   11775             : #define CK_ENABLED 1
   11776             : 
   11777             : #if CK5_ENABLED
   11778             :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTOB_CK5
   11779             :         use pm_kind, only: CKC => CK5
   11780             : #include "pm_matrixMulTri@routines.inc.F90"
   11781             :     end procedure
   11782             : #endif
   11783             : 
   11784             : #if CK4_ENABLED
   11785         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTOB_CK4
   11786             :         use pm_kind, only: CKC => CK4
   11787             : #include "pm_matrixMulTri@routines.inc.F90"
   11788             :     end procedure
   11789             : #endif
   11790             : 
   11791             : #if CK3_ENABLED
   11792         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTOB_CK3
   11793             :         use pm_kind, only: CKC => CK3
   11794             : #include "pm_matrixMulTri@routines.inc.F90"
   11795             :     end procedure
   11796             : #endif
   11797             : 
   11798             : #if CK2_ENABLED
   11799         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTOB_CK2
   11800             :         use pm_kind, only: CKC => CK2
   11801             : #define DISPATCH_ENABLED 1
   11802             : #include "pm_matrixMulTri@routines.inc.F90"
   11803             : #undef  DISPATCH_ENABLED
   11804             :     end procedure
   11805             : #endif
   11806             : 
   11807             : #if CK1_ENABLED
   11808         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTOB_CK1
   11809             :         use pm_kind, only: CKC => CK1
   11810             : #define DISPATCH_ENABLED 1
   11811             : #include "pm_matrixMulTri@routines.inc.F90"
   11812             : #undef  DISPATCH_ENABLED
   11813             :     end procedure
   11814             : #endif
   11815             : 
   11816             : #undef CK_ENABLED
   11817             : 
   11818             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11819             : 
   11820             : #define RK_ENABLED 1
   11821             : 
   11822             : #if RK5_ENABLED
   11823             :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTOB_RK5
   11824             :         use pm_kind, only: RKC => RK5
   11825             : #include "pm_matrixMulTri@routines.inc.F90"
   11826             :     end procedure
   11827             : #endif
   11828             : 
   11829             : #if RK4_ENABLED
   11830         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTOB_RK4
   11831             :         use pm_kind, only: RKC => RK4
   11832             : #include "pm_matrixMulTri@routines.inc.F90"
   11833             :     end procedure
   11834             : #endif
   11835             : 
   11836             : #if RK3_ENABLED
   11837         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTOB_RK3
   11838             :         use pm_kind, only: RKC => RK3
   11839             : #include "pm_matrixMulTri@routines.inc.F90"
   11840             :     end procedure
   11841             : #endif
   11842             : 
   11843             : #if RK2_ENABLED
   11844         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTOB_RK2
   11845             :         use pm_kind, only: RKC => RK2
   11846             : #define DISPATCH_ENABLED 1
   11847             : #include "pm_matrixMulTri@routines.inc.F90"
   11848             : #undef  DISPATCH_ENABLED
   11849             :     end procedure
   11850             : #endif
   11851             : 
   11852             : #if RK1_ENABLED
   11853         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTOB_RK1
   11854             :         use pm_kind, only: RKC => RK1
   11855             : #define DISPATCH_ENABLED 1
   11856             : #include "pm_matrixMulTri@routines.inc.F90"
   11857             : #undef  DISPATCH_ENABLED
   11858             :     end procedure
   11859             : #endif
   11860             : 
   11861             : #undef RK_ENABLED
   11862             : 
   11863             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11864             : 
   11865             : #undef OTOB_ENABLED
   11866             : 
   11867             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11868             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11869             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11870             : 
   11871             : #define OTUB_ENABLED 1
   11872             : 
   11873             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11874             : 
   11875             : #define CK_ENABLED 1
   11876             : 
   11877             : #if CK5_ENABLED
   11878             :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTUB_CK5
   11879             :         use pm_kind, only: CKC => CK5
   11880             : #include "pm_matrixMulTri@routines.inc.F90"
   11881             :     end procedure
   11882             : #endif
   11883             : 
   11884             : #if CK4_ENABLED
   11885         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTUB_CK4
   11886             :         use pm_kind, only: CKC => CK4
   11887             : #include "pm_matrixMulTri@routines.inc.F90"
   11888             :     end procedure
   11889             : #endif
   11890             : 
   11891             : #if CK3_ENABLED
   11892         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTUB_CK3
   11893             :         use pm_kind, only: CKC => CK3
   11894             : #include "pm_matrixMulTri@routines.inc.F90"
   11895             :     end procedure
   11896             : #endif
   11897             : 
   11898             : #if CK2_ENABLED
   11899         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTUB_CK2
   11900             :         use pm_kind, only: CKC => CK2
   11901             : #define DISPATCH_ENABLED 1
   11902             : #include "pm_matrixMulTri@routines.inc.F90"
   11903             : #undef  DISPATCH_ENABLED
   11904             :     end procedure
   11905             : #endif
   11906             : 
   11907             : #if CK1_ENABLED
   11908         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTUB_CK1
   11909             :         use pm_kind, only: CKC => CK1
   11910             : #define DISPATCH_ENABLED 1
   11911             : #include "pm_matrixMulTri@routines.inc.F90"
   11912             : #undef  DISPATCH_ENABLED
   11913             :     end procedure
   11914             : #endif
   11915             : 
   11916             : #undef CK_ENABLED
   11917             : 
   11918             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11919             : 
   11920             : #define RK_ENABLED 1
   11921             : 
   11922             : #if RK5_ENABLED
   11923             :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTUB_RK5
   11924             :         use pm_kind, only: RKC => RK5
   11925             : #include "pm_matrixMulTri@routines.inc.F90"
   11926             :     end procedure
   11927             : #endif
   11928             : 
   11929             : #if RK4_ENABLED
   11930         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTUB_RK4
   11931             :         use pm_kind, only: RKC => RK4
   11932             : #include "pm_matrixMulTri@routines.inc.F90"
   11933             :     end procedure
   11934             : #endif
   11935             : 
   11936             : #if RK3_ENABLED
   11937         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTUB_RK3
   11938             :         use pm_kind, only: RKC => RK3
   11939             : #include "pm_matrixMulTri@routines.inc.F90"
   11940             :     end procedure
   11941             : #endif
   11942             : 
   11943             : #if RK2_ENABLED
   11944         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTUB_RK2
   11945             :         use pm_kind, only: RKC => RK2
   11946             : #define DISPATCH_ENABLED 1
   11947             : #include "pm_matrixMulTri@routines.inc.F90"
   11948             : #undef  DISPATCH_ENABLED
   11949             :     end procedure
   11950             : #endif
   11951             : 
   11952             : #if RK1_ENABLED
   11953         200 :     module procedure trsm_ASS_CGMA_ONOA_CLDB_OTUB_RK1
   11954             :         use pm_kind, only: RKC => RK1
   11955             : #define DISPATCH_ENABLED 1
   11956             : #include "pm_matrixMulTri@routines.inc.F90"
   11957             : #undef  DISPATCH_ENABLED
   11958             :     end procedure
   11959             : #endif
   11960             : 
   11961             : #undef RK_ENABLED
   11962             : 
   11963             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11964             : 
   11965             : #undef OTUB_ENABLED
   11966             : 
   11967             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11968             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11969             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11970             : 
   11971             : #undef CLDB_ENABLED
   11972             : 
   11973             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11974             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11975             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11976             : 
   11977             : #define CUDB_ENABLED 1
   11978             : 
   11979             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11980             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11981             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11982             : 
   11983             : #define INVB_ENABLED 1
   11984             : 
   11985             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11986             : 
   11987             : #define CK_ENABLED 1
   11988             : 
   11989             : #if CK5_ENABLED
   11990             :     module procedure trsm_ASS_CGMA_ONOA_CUDB_INVB_CK5
   11991             :         use pm_kind, only: CKC => CK5
   11992             : #include "pm_matrixMulTri@routines.inc.F90"
   11993             :     end procedure
   11994             : #endif
   11995             : 
   11996             : #if CK4_ENABLED
   11997         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_INVB_CK4
   11998             :         use pm_kind, only: CKC => CK4
   11999             : #include "pm_matrixMulTri@routines.inc.F90"
   12000             :     end procedure
   12001             : #endif
   12002             : 
   12003             : #if CK3_ENABLED
   12004         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_INVB_CK3
   12005             :         use pm_kind, only: CKC => CK3
   12006             : #include "pm_matrixMulTri@routines.inc.F90"
   12007             :     end procedure
   12008             : #endif
   12009             : 
   12010             : #if CK2_ENABLED
   12011         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_INVB_CK2
   12012             :         use pm_kind, only: CKC => CK2
   12013             : #define DISPATCH_ENABLED 1
   12014             : #include "pm_matrixMulTri@routines.inc.F90"
   12015             : #undef  DISPATCH_ENABLED
   12016             :     end procedure
   12017             : #endif
   12018             : 
   12019             : #if CK1_ENABLED
   12020         201 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_INVB_CK1
   12021             :         use pm_kind, only: CKC => CK1
   12022             : #define DISPATCH_ENABLED 1
   12023             : #include "pm_matrixMulTri@routines.inc.F90"
   12024             : #undef  DISPATCH_ENABLED
   12025             :     end procedure
   12026             : #endif
   12027             : 
   12028             : #undef CK_ENABLED
   12029             : 
   12030             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12031             : 
   12032             : #define RK_ENABLED 1
   12033             : 
   12034             : #if RK5_ENABLED
   12035             :     module procedure trsm_ASS_CGMA_ONOA_CUDB_INVB_RK5
   12036             :         use pm_kind, only: RKC => RK5
   12037             : #include "pm_matrixMulTri@routines.inc.F90"
   12038             :     end procedure
   12039             : #endif
   12040             : 
   12041             : #if RK4_ENABLED
   12042         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_INVB_RK4
   12043             :         use pm_kind, only: RKC => RK4
   12044             : #include "pm_matrixMulTri@routines.inc.F90"
   12045             :     end procedure
   12046             : #endif
   12047             : 
   12048             : #if RK3_ENABLED
   12049         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_INVB_RK3
   12050             :         use pm_kind, only: RKC => RK3
   12051             : #include "pm_matrixMulTri@routines.inc.F90"
   12052             :     end procedure
   12053             : #endif
   12054             : 
   12055             : #if RK2_ENABLED
   12056         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_INVB_RK2
   12057             :         use pm_kind, only: RKC => RK2
   12058             : #define DISPATCH_ENABLED 1
   12059             : #include "pm_matrixMulTri@routines.inc.F90"
   12060             : #undef  DISPATCH_ENABLED
   12061             :     end procedure
   12062             : #endif
   12063             : 
   12064             : #if RK1_ENABLED
   12065         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_INVB_RK1
   12066             :         use pm_kind, only: RKC => RK1
   12067             : #define DISPATCH_ENABLED 1
   12068             : #include "pm_matrixMulTri@routines.inc.F90"
   12069             : #undef  DISPATCH_ENABLED
   12070             :     end procedure
   12071             : #endif
   12072             : 
   12073             : #undef RK_ENABLED
   12074             : 
   12075             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12076             : 
   12077             : #undef INVB_ENABLED
   12078             : 
   12079             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12080             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12081             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12082             : 
   12083             : #define OTOB_ENABLED 1
   12084             : 
   12085             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12086             : 
   12087             : #define CK_ENABLED 1
   12088             : 
   12089             : #if CK5_ENABLED
   12090             :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTOB_CK5
   12091             :         use pm_kind, only: CKC => CK5
   12092             : #include "pm_matrixMulTri@routines.inc.F90"
   12093             :     end procedure
   12094             : #endif
   12095             : 
   12096             : #if CK4_ENABLED
   12097         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTOB_CK4
   12098             :         use pm_kind, only: CKC => CK4
   12099             : #include "pm_matrixMulTri@routines.inc.F90"
   12100             :     end procedure
   12101             : #endif
   12102             : 
   12103             : #if CK3_ENABLED
   12104         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTOB_CK3
   12105             :         use pm_kind, only: CKC => CK3
   12106             : #include "pm_matrixMulTri@routines.inc.F90"
   12107             :     end procedure
   12108             : #endif
   12109             : 
   12110             : #if CK2_ENABLED
   12111         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTOB_CK2
   12112             :         use pm_kind, only: CKC => CK2
   12113             : #define DISPATCH_ENABLED 1
   12114             : #include "pm_matrixMulTri@routines.inc.F90"
   12115             : #undef  DISPATCH_ENABLED
   12116             :     end procedure
   12117             : #endif
   12118             : 
   12119             : #if CK1_ENABLED
   12120         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTOB_CK1
   12121             :         use pm_kind, only: CKC => CK1
   12122             : #define DISPATCH_ENABLED 1
   12123             : #include "pm_matrixMulTri@routines.inc.F90"
   12124             : #undef  DISPATCH_ENABLED
   12125             :     end procedure
   12126             : #endif
   12127             : 
   12128             : #undef CK_ENABLED
   12129             : 
   12130             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12131             : 
   12132             : #define RK_ENABLED 1
   12133             : 
   12134             : #if RK5_ENABLED
   12135             :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTOB_RK5
   12136             :         use pm_kind, only: RKC => RK5
   12137             : #include "pm_matrixMulTri@routines.inc.F90"
   12138             :     end procedure
   12139             : #endif
   12140             : 
   12141             : #if RK4_ENABLED
   12142         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTOB_RK4
   12143             :         use pm_kind, only: RKC => RK4
   12144             : #include "pm_matrixMulTri@routines.inc.F90"
   12145             :     end procedure
   12146             : #endif
   12147             : 
   12148             : #if RK3_ENABLED
   12149         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTOB_RK3
   12150             :         use pm_kind, only: RKC => RK3
   12151             : #include "pm_matrixMulTri@routines.inc.F90"
   12152             :     end procedure
   12153             : #endif
   12154             : 
   12155             : #if RK2_ENABLED
   12156         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTOB_RK2
   12157             :         use pm_kind, only: RKC => RK2
   12158             : #define DISPATCH_ENABLED 1
   12159             : #include "pm_matrixMulTri@routines.inc.F90"
   12160             : #undef  DISPATCH_ENABLED
   12161             :     end procedure
   12162             : #endif
   12163             : 
   12164             : #if RK1_ENABLED
   12165         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTOB_RK1
   12166             :         use pm_kind, only: RKC => RK1
   12167             : #define DISPATCH_ENABLED 1
   12168             : #include "pm_matrixMulTri@routines.inc.F90"
   12169             : #undef  DISPATCH_ENABLED
   12170             :     end procedure
   12171             : #endif
   12172             : 
   12173             : #undef RK_ENABLED
   12174             : 
   12175             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12176             : 
   12177             : #undef OTOB_ENABLED
   12178             : 
   12179             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12180             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12181             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12182             : 
   12183             : #define OTUB_ENABLED 1
   12184             : 
   12185             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12186             : 
   12187             : #define CK_ENABLED 1
   12188             : 
   12189             : #if CK5_ENABLED
   12190             :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTUB_CK5
   12191             :         use pm_kind, only: CKC => CK5
   12192             : #include "pm_matrixMulTri@routines.inc.F90"
   12193             :     end procedure
   12194             : #endif
   12195             : 
   12196             : #if CK4_ENABLED
   12197         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTUB_CK4
   12198             :         use pm_kind, only: CKC => CK4
   12199             : #include "pm_matrixMulTri@routines.inc.F90"
   12200             :     end procedure
   12201             : #endif
   12202             : 
   12203             : #if CK3_ENABLED
   12204         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTUB_CK3
   12205             :         use pm_kind, only: CKC => CK3
   12206             : #include "pm_matrixMulTri@routines.inc.F90"
   12207             :     end procedure
   12208             : #endif
   12209             : 
   12210             : #if CK2_ENABLED
   12211         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTUB_CK2
   12212             :         use pm_kind, only: CKC => CK2
   12213             : #define DISPATCH_ENABLED 1
   12214             : #include "pm_matrixMulTri@routines.inc.F90"
   12215             : #undef  DISPATCH_ENABLED
   12216             :     end procedure
   12217             : #endif
   12218             : 
   12219             : #if CK1_ENABLED
   12220         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTUB_CK1
   12221             :         use pm_kind, only: CKC => CK1
   12222             : #define DISPATCH_ENABLED 1
   12223             : #include "pm_matrixMulTri@routines.inc.F90"
   12224             : #undef  DISPATCH_ENABLED
   12225             :     end procedure
   12226             : #endif
   12227             : 
   12228             : #undef CK_ENABLED
   12229             : 
   12230             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12231             : 
   12232             : #define RK_ENABLED 1
   12233             : 
   12234             : #if RK5_ENABLED
   12235             :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTUB_RK5
   12236             :         use pm_kind, only: RKC => RK5
   12237             : #include "pm_matrixMulTri@routines.inc.F90"
   12238             :     end procedure
   12239             : #endif
   12240             : 
   12241             : #if RK4_ENABLED
   12242         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTUB_RK4
   12243             :         use pm_kind, only: RKC => RK4
   12244             : #include "pm_matrixMulTri@routines.inc.F90"
   12245             :     end procedure
   12246             : #endif
   12247             : 
   12248             : #if RK3_ENABLED
   12249         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTUB_RK3
   12250             :         use pm_kind, only: RKC => RK3
   12251             : #include "pm_matrixMulTri@routines.inc.F90"
   12252             :     end procedure
   12253             : #endif
   12254             : 
   12255             : #if RK2_ENABLED
   12256         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTUB_RK2
   12257             :         use pm_kind, only: RKC => RK2
   12258             : #define DISPATCH_ENABLED 1
   12259             : #include "pm_matrixMulTri@routines.inc.F90"
   12260             : #undef  DISPATCH_ENABLED
   12261             :     end procedure
   12262             : #endif
   12263             : 
   12264             : #if RK1_ENABLED
   12265         200 :     module procedure trsm_ASS_CGMA_ONOA_CUDB_OTUB_RK1
   12266             :         use pm_kind, only: RKC => RK1
   12267             : #define DISPATCH_ENABLED 1
   12268             : #include "pm_matrixMulTri@routines.inc.F90"
   12269             : #undef  DISPATCH_ENABLED
   12270             :     end procedure
   12271             : #endif
   12272             : 
   12273             : #undef RK_ENABLED
   12274             : 
   12275             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12276             : 
   12277             : #undef OTUB_ENABLED
   12278             : 
   12279             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12280             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12281             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12282             : 
   12283             : #undef CUDB_ENABLED
   12284             : 
   12285             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12286             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12287             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12288             : 
   12289             : #define CLUB_ENABLED 1
   12290             : 
   12291             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12292             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12293             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12294             : 
   12295             : #define INVB_ENABLED 1
   12296             : 
   12297             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12298             : 
   12299             : #define CK_ENABLED 1
   12300             : 
   12301             : #if CK5_ENABLED
   12302             :     module procedure trsm_ASS_CGMA_ONOA_CLUB_INVB_CK5
   12303             :         use pm_kind, only: CKC => CK5
   12304             : #include "pm_matrixMulTri@routines.inc.F90"
   12305             :     end procedure
   12306             : #endif
   12307             : 
   12308             : #if CK4_ENABLED
   12309         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_INVB_CK4
   12310             :         use pm_kind, only: CKC => CK4
   12311             : #include "pm_matrixMulTri@routines.inc.F90"
   12312             :     end procedure
   12313             : #endif
   12314             : 
   12315             : #if CK3_ENABLED
   12316         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_INVB_CK3
   12317             :         use pm_kind, only: CKC => CK3
   12318             : #include "pm_matrixMulTri@routines.inc.F90"
   12319             :     end procedure
   12320             : #endif
   12321             : 
   12322             : #if CK2_ENABLED
   12323         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_INVB_CK2
   12324             :         use pm_kind, only: CKC => CK2
   12325             : #define DISPATCH_ENABLED 1
   12326             : #include "pm_matrixMulTri@routines.inc.F90"
   12327             : #undef  DISPATCH_ENABLED
   12328             :     end procedure
   12329             : #endif
   12330             : 
   12331             : #if CK1_ENABLED
   12332         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_INVB_CK1
   12333             :         use pm_kind, only: CKC => CK1
   12334             : #define DISPATCH_ENABLED 1
   12335             : #include "pm_matrixMulTri@routines.inc.F90"
   12336             : #undef  DISPATCH_ENABLED
   12337             :     end procedure
   12338             : #endif
   12339             : 
   12340             : #undef CK_ENABLED
   12341             : 
   12342             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12343             : 
   12344             : #define RK_ENABLED 1
   12345             : 
   12346             : #if RK5_ENABLED
   12347             :     module procedure trsm_ASS_CGMA_ONOA_CLUB_INVB_RK5
   12348             :         use pm_kind, only: RKC => RK5
   12349             : #include "pm_matrixMulTri@routines.inc.F90"
   12350             :     end procedure
   12351             : #endif
   12352             : 
   12353             : #if RK4_ENABLED
   12354         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_INVB_RK4
   12355             :         use pm_kind, only: RKC => RK4
   12356             : #include "pm_matrixMulTri@routines.inc.F90"
   12357             :     end procedure
   12358             : #endif
   12359             : 
   12360             : #if RK3_ENABLED
   12361         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_INVB_RK3
   12362             :         use pm_kind, only: RKC => RK3
   12363             : #include "pm_matrixMulTri@routines.inc.F90"
   12364             :     end procedure
   12365             : #endif
   12366             : 
   12367             : #if RK2_ENABLED
   12368         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_INVB_RK2
   12369             :         use pm_kind, only: RKC => RK2
   12370             : #define DISPATCH_ENABLED 1
   12371             : #include "pm_matrixMulTri@routines.inc.F90"
   12372             : #undef  DISPATCH_ENABLED
   12373             :     end procedure
   12374             : #endif
   12375             : 
   12376             : #if RK1_ENABLED
   12377         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_INVB_RK1
   12378             :         use pm_kind, only: RKC => RK1
   12379             : #define DISPATCH_ENABLED 1
   12380             : #include "pm_matrixMulTri@routines.inc.F90"
   12381             : #undef  DISPATCH_ENABLED
   12382             :     end procedure
   12383             : #endif
   12384             : 
   12385             : #undef RK_ENABLED
   12386             : 
   12387             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12388             : 
   12389             : #undef INVB_ENABLED
   12390             : 
   12391             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12392             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12393             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12394             : 
   12395             : #define OTOB_ENABLED 1
   12396             : 
   12397             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12398             : 
   12399             : #define CK_ENABLED 1
   12400             : 
   12401             : #if CK5_ENABLED
   12402             :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTOB_CK5
   12403             :         use pm_kind, only: CKC => CK5
   12404             : #include "pm_matrixMulTri@routines.inc.F90"
   12405             :     end procedure
   12406             : #endif
   12407             : 
   12408             : #if CK4_ENABLED
   12409         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTOB_CK4
   12410             :         use pm_kind, only: CKC => CK4
   12411             : #include "pm_matrixMulTri@routines.inc.F90"
   12412             :     end procedure
   12413             : #endif
   12414             : 
   12415             : #if CK3_ENABLED
   12416         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTOB_CK3
   12417             :         use pm_kind, only: CKC => CK3
   12418             : #include "pm_matrixMulTri@routines.inc.F90"
   12419             :     end procedure
   12420             : #endif
   12421             : 
   12422             : #if CK2_ENABLED
   12423         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTOB_CK2
   12424             :         use pm_kind, only: CKC => CK2
   12425             : #define DISPATCH_ENABLED 1
   12426             : #include "pm_matrixMulTri@routines.inc.F90"
   12427             : #undef  DISPATCH_ENABLED
   12428             :     end procedure
   12429             : #endif
   12430             : 
   12431             : #if CK1_ENABLED
   12432         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTOB_CK1
   12433             :         use pm_kind, only: CKC => CK1
   12434             : #define DISPATCH_ENABLED 1
   12435             : #include "pm_matrixMulTri@routines.inc.F90"
   12436             : #undef  DISPATCH_ENABLED
   12437             :     end procedure
   12438             : #endif
   12439             : 
   12440             : #undef CK_ENABLED
   12441             : 
   12442             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12443             : 
   12444             : #define RK_ENABLED 1
   12445             : 
   12446             : #if RK5_ENABLED
   12447             :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTOB_RK5
   12448             :         use pm_kind, only: RKC => RK5
   12449             : #include "pm_matrixMulTri@routines.inc.F90"
   12450             :     end procedure
   12451             : #endif
   12452             : 
   12453             : #if RK4_ENABLED
   12454         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTOB_RK4
   12455             :         use pm_kind, only: RKC => RK4
   12456             : #include "pm_matrixMulTri@routines.inc.F90"
   12457             :     end procedure
   12458             : #endif
   12459             : 
   12460             : #if RK3_ENABLED
   12461         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTOB_RK3
   12462             :         use pm_kind, only: RKC => RK3
   12463             : #include "pm_matrixMulTri@routines.inc.F90"
   12464             :     end procedure
   12465             : #endif
   12466             : 
   12467             : #if RK2_ENABLED
   12468         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTOB_RK2
   12469             :         use pm_kind, only: RKC => RK2
   12470             : #define DISPATCH_ENABLED 1
   12471             : #include "pm_matrixMulTri@routines.inc.F90"
   12472             : #undef  DISPATCH_ENABLED
   12473             :     end procedure
   12474             : #endif
   12475             : 
   12476             : #if RK1_ENABLED
   12477         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTOB_RK1
   12478             :         use pm_kind, only: RKC => RK1
   12479             : #define DISPATCH_ENABLED 1
   12480             : #include "pm_matrixMulTri@routines.inc.F90"
   12481             : #undef  DISPATCH_ENABLED
   12482             :     end procedure
   12483             : #endif
   12484             : 
   12485             : #undef RK_ENABLED
   12486             : 
   12487             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12488             : 
   12489             : #undef OTOB_ENABLED
   12490             : 
   12491             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12492             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12493             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12494             : 
   12495             : #define OTUB_ENABLED 1
   12496             : 
   12497             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12498             : 
   12499             : #define CK_ENABLED 1
   12500             : 
   12501             : #if CK5_ENABLED
   12502             :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTUB_CK5
   12503             :         use pm_kind, only: CKC => CK5
   12504             : #include "pm_matrixMulTri@routines.inc.F90"
   12505             :     end procedure
   12506             : #endif
   12507             : 
   12508             : #if CK4_ENABLED
   12509         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTUB_CK4
   12510             :         use pm_kind, only: CKC => CK4
   12511             : #include "pm_matrixMulTri@routines.inc.F90"
   12512             :     end procedure
   12513             : #endif
   12514             : 
   12515             : #if CK3_ENABLED
   12516         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTUB_CK3
   12517             :         use pm_kind, only: CKC => CK3
   12518             : #include "pm_matrixMulTri@routines.inc.F90"
   12519             :     end procedure
   12520             : #endif
   12521             : 
   12522             : #if CK2_ENABLED
   12523         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTUB_CK2
   12524             :         use pm_kind, only: CKC => CK2
   12525             : #define DISPATCH_ENABLED 1
   12526             : #include "pm_matrixMulTri@routines.inc.F90"
   12527             : #undef  DISPATCH_ENABLED
   12528             :     end procedure
   12529             : #endif
   12530             : 
   12531             : #if CK1_ENABLED
   12532         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTUB_CK1
   12533             :         use pm_kind, only: CKC => CK1
   12534             : #define DISPATCH_ENABLED 1
   12535             : #include "pm_matrixMulTri@routines.inc.F90"
   12536             : #undef  DISPATCH_ENABLED
   12537             :     end procedure
   12538             : #endif
   12539             : 
   12540             : #undef CK_ENABLED
   12541             : 
   12542             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12543             : 
   12544             : #define RK_ENABLED 1
   12545             : 
   12546             : #if RK5_ENABLED
   12547             :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTUB_RK5
   12548             :         use pm_kind, only: RKC => RK5
   12549             : #include "pm_matrixMulTri@routines.inc.F90"
   12550             :     end procedure
   12551             : #endif
   12552             : 
   12553             : #if RK4_ENABLED
   12554         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTUB_RK4
   12555             :         use pm_kind, only: RKC => RK4
   12556             : #include "pm_matrixMulTri@routines.inc.F90"
   12557             :     end procedure
   12558             : #endif
   12559             : 
   12560             : #if RK3_ENABLED
   12561         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTUB_RK3
   12562             :         use pm_kind, only: RKC => RK3
   12563             : #include "pm_matrixMulTri@routines.inc.F90"
   12564             :     end procedure
   12565             : #endif
   12566             : 
   12567             : #if RK2_ENABLED
   12568         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTUB_RK2
   12569             :         use pm_kind, only: RKC => RK2
   12570             : #define DISPATCH_ENABLED 1
   12571             : #include "pm_matrixMulTri@routines.inc.F90"
   12572             : #undef  DISPATCH_ENABLED
   12573             :     end procedure
   12574             : #endif
   12575             : 
   12576             : #if RK1_ENABLED
   12577         200 :     module procedure trsm_ASS_CGMA_ONOA_CLUB_OTUB_RK1
   12578             :         use pm_kind, only: RKC => RK1
   12579             : #define DISPATCH_ENABLED 1
   12580             : #include "pm_matrixMulTri@routines.inc.F90"
   12581             : #undef  DISPATCH_ENABLED
   12582             :     end procedure
   12583             : #endif
   12584             : 
   12585             : #undef RK_ENABLED
   12586             : 
   12587             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12588             : 
   12589             : #undef OTUB_ENABLED
   12590             : 
   12591             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12592             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12593             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12594             : 
   12595             : #undef CLUB_ENABLED
   12596             : 
   12597             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12598             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12599             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12600             : 
   12601             : #define CUUB_ENABLED 1
   12602             : 
   12603             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12604             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12605             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12606             : 
   12607             : #define INVB_ENABLED 1
   12608             : 
   12609             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12610             : 
   12611             : #define CK_ENABLED 1
   12612             : 
   12613             : #if CK5_ENABLED
   12614             :     module procedure trsm_ASS_CGMA_ONOA_CUUB_INVB_CK5
   12615             :         use pm_kind, only: CKC => CK5
   12616             : #include "pm_matrixMulTri@routines.inc.F90"
   12617             :     end procedure
   12618             : #endif
   12619             : 
   12620             : #if CK4_ENABLED
   12621         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_INVB_CK4
   12622             :         use pm_kind, only: CKC => CK4
   12623             : #include "pm_matrixMulTri@routines.inc.F90"
   12624             :     end procedure
   12625             : #endif
   12626             : 
   12627             : #if CK3_ENABLED
   12628         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_INVB_CK3
   12629             :         use pm_kind, only: CKC => CK3
   12630             : #include "pm_matrixMulTri@routines.inc.F90"
   12631             :     end procedure
   12632             : #endif
   12633             : 
   12634             : #if CK2_ENABLED
   12635         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_INVB_CK2
   12636             :         use pm_kind, only: CKC => CK2
   12637             : #define DISPATCH_ENABLED 1
   12638             : #include "pm_matrixMulTri@routines.inc.F90"
   12639             : #undef  DISPATCH_ENABLED
   12640             :     end procedure
   12641             : #endif
   12642             : 
   12643             : #if CK1_ENABLED
   12644         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_INVB_CK1
   12645             :         use pm_kind, only: CKC => CK1
   12646             : #define DISPATCH_ENABLED 1
   12647             : #include "pm_matrixMulTri@routines.inc.F90"
   12648             : #undef  DISPATCH_ENABLED
   12649             :     end procedure
   12650             : #endif
   12651             : 
   12652             : #undef CK_ENABLED
   12653             : 
   12654             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12655             : 
   12656             : #define RK_ENABLED 1
   12657             : 
   12658             : #if RK5_ENABLED
   12659             :     module procedure trsm_ASS_CGMA_ONOA_CUUB_INVB_RK5
   12660             :         use pm_kind, only: RKC => RK5
   12661             : #include "pm_matrixMulTri@routines.inc.F90"
   12662             :     end procedure
   12663             : #endif
   12664             : 
   12665             : #if RK4_ENABLED
   12666         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_INVB_RK4
   12667             :         use pm_kind, only: RKC => RK4
   12668             : #include "pm_matrixMulTri@routines.inc.F90"
   12669             :     end procedure
   12670             : #endif
   12671             : 
   12672             : #if RK3_ENABLED
   12673         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_INVB_RK3
   12674             :         use pm_kind, only: RKC => RK3
   12675             : #include "pm_matrixMulTri@routines.inc.F90"
   12676             :     end procedure
   12677             : #endif
   12678             : 
   12679             : #if RK2_ENABLED
   12680         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_INVB_RK2
   12681             :         use pm_kind, only: RKC => RK2
   12682             : #define DISPATCH_ENABLED 1
   12683             : #include "pm_matrixMulTri@routines.inc.F90"
   12684             : #undef  DISPATCH_ENABLED
   12685             :     end procedure
   12686             : #endif
   12687             : 
   12688             : #if RK1_ENABLED
   12689         201 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_INVB_RK1
   12690             :         use pm_kind, only: RKC => RK1
   12691             : #define DISPATCH_ENABLED 1
   12692             : #include "pm_matrixMulTri@routines.inc.F90"
   12693             : #undef  DISPATCH_ENABLED
   12694             :     end procedure
   12695             : #endif
   12696             : 
   12697             : #undef RK_ENABLED
   12698             : 
   12699             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12700             : 
   12701             : #undef INVB_ENABLED
   12702             : 
   12703             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12704             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12705             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12706             : 
   12707             : #define OTOB_ENABLED 1
   12708             : 
   12709             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12710             : 
   12711             : #define CK_ENABLED 1
   12712             : 
   12713             : #if CK5_ENABLED
   12714             :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTOB_CK5
   12715             :         use pm_kind, only: CKC => CK5
   12716             : #include "pm_matrixMulTri@routines.inc.F90"
   12717             :     end procedure
   12718             : #endif
   12719             : 
   12720             : #if CK4_ENABLED
   12721         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTOB_CK4
   12722             :         use pm_kind, only: CKC => CK4
   12723             : #include "pm_matrixMulTri@routines.inc.F90"
   12724             :     end procedure
   12725             : #endif
   12726             : 
   12727             : #if CK3_ENABLED
   12728         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTOB_CK3
   12729             :         use pm_kind, only: CKC => CK3
   12730             : #include "pm_matrixMulTri@routines.inc.F90"
   12731             :     end procedure
   12732             : #endif
   12733             : 
   12734             : #if CK2_ENABLED
   12735         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTOB_CK2
   12736             :         use pm_kind, only: CKC => CK2
   12737             : #define DISPATCH_ENABLED 1
   12738             : #include "pm_matrixMulTri@routines.inc.F90"
   12739             : #undef  DISPATCH_ENABLED
   12740             :     end procedure
   12741             : #endif
   12742             : 
   12743             : #if CK1_ENABLED
   12744         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTOB_CK1
   12745             :         use pm_kind, only: CKC => CK1
   12746             : #define DISPATCH_ENABLED 1
   12747             : #include "pm_matrixMulTri@routines.inc.F90"
   12748             : #undef  DISPATCH_ENABLED
   12749             :     end procedure
   12750             : #endif
   12751             : 
   12752             : #undef CK_ENABLED
   12753             : 
   12754             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12755             : 
   12756             : #define RK_ENABLED 1
   12757             : 
   12758             : #if RK5_ENABLED
   12759             :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTOB_RK5
   12760             :         use pm_kind, only: RKC => RK5
   12761             : #include "pm_matrixMulTri@routines.inc.F90"
   12762             :     end procedure
   12763             : #endif
   12764             : 
   12765             : #if RK4_ENABLED
   12766         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTOB_RK4
   12767             :         use pm_kind, only: RKC => RK4
   12768             : #include "pm_matrixMulTri@routines.inc.F90"
   12769             :     end procedure
   12770             : #endif
   12771             : 
   12772             : #if RK3_ENABLED
   12773         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTOB_RK3
   12774             :         use pm_kind, only: RKC => RK3
   12775             : #include "pm_matrixMulTri@routines.inc.F90"
   12776             :     end procedure
   12777             : #endif
   12778             : 
   12779             : #if RK2_ENABLED
   12780         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTOB_RK2
   12781             :         use pm_kind, only: RKC => RK2
   12782             : #define DISPATCH_ENABLED 1
   12783             : #include "pm_matrixMulTri@routines.inc.F90"
   12784             : #undef  DISPATCH_ENABLED
   12785             :     end procedure
   12786             : #endif
   12787             : 
   12788             : #if RK1_ENABLED
   12789         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTOB_RK1
   12790             :         use pm_kind, only: RKC => RK1
   12791             : #define DISPATCH_ENABLED 1
   12792             : #include "pm_matrixMulTri@routines.inc.F90"
   12793             : #undef  DISPATCH_ENABLED
   12794             :     end procedure
   12795             : #endif
   12796             : 
   12797             : #undef RK_ENABLED
   12798             : 
   12799             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12800             : 
   12801             : #undef OTOB_ENABLED
   12802             : 
   12803             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12804             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12805             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12806             : 
   12807             : #define OTUB_ENABLED 1
   12808             : 
   12809             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12810             : 
   12811             : #define CK_ENABLED 1
   12812             : 
   12813             : #if CK5_ENABLED
   12814             :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTUB_CK5
   12815             :         use pm_kind, only: CKC => CK5
   12816             : #include "pm_matrixMulTri@routines.inc.F90"
   12817             :     end procedure
   12818             : #endif
   12819             : 
   12820             : #if CK4_ENABLED
   12821         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTUB_CK4
   12822             :         use pm_kind, only: CKC => CK4
   12823             : #include "pm_matrixMulTri@routines.inc.F90"
   12824             :     end procedure
   12825             : #endif
   12826             : 
   12827             : #if CK3_ENABLED
   12828         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTUB_CK3
   12829             :         use pm_kind, only: CKC => CK3
   12830             : #include "pm_matrixMulTri@routines.inc.F90"
   12831             :     end procedure
   12832             : #endif
   12833             : 
   12834             : #if CK2_ENABLED
   12835         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTUB_CK2
   12836             :         use pm_kind, only: CKC => CK2
   12837             : #define DISPATCH_ENABLED 1
   12838             : #include "pm_matrixMulTri@routines.inc.F90"
   12839             : #undef  DISPATCH_ENABLED
   12840             :     end procedure
   12841             : #endif
   12842             : 
   12843             : #if CK1_ENABLED
   12844         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTUB_CK1
   12845             :         use pm_kind, only: CKC => CK1
   12846             : #define DISPATCH_ENABLED 1
   12847             : #include "pm_matrixMulTri@routines.inc.F90"
   12848             : #undef  DISPATCH_ENABLED
   12849             :     end procedure
   12850             : #endif
   12851             : 
   12852             : #undef CK_ENABLED
   12853             : 
   12854             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12855             : 
   12856             : #define RK_ENABLED 1
   12857             : 
   12858             : #if RK5_ENABLED
   12859             :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTUB_RK5
   12860             :         use pm_kind, only: RKC => RK5
   12861             : #include "pm_matrixMulTri@routines.inc.F90"
   12862             :     end procedure
   12863             : #endif
   12864             : 
   12865             : #if RK4_ENABLED
   12866         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTUB_RK4
   12867             :         use pm_kind, only: RKC => RK4
   12868             : #include "pm_matrixMulTri@routines.inc.F90"
   12869             :     end procedure
   12870             : #endif
   12871             : 
   12872             : #if RK3_ENABLED
   12873         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTUB_RK3
   12874             :         use pm_kind, only: RKC => RK3
   12875             : #include "pm_matrixMulTri@routines.inc.F90"
   12876             :     end procedure
   12877             : #endif
   12878             : 
   12879             : #if RK2_ENABLED
   12880         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTUB_RK2
   12881             :         use pm_kind, only: RKC => RK2
   12882             : #define DISPATCH_ENABLED 1
   12883             : #include "pm_matrixMulTri@routines.inc.F90"
   12884             : #undef  DISPATCH_ENABLED
   12885             :     end procedure
   12886             : #endif
   12887             : 
   12888             : #if RK1_ENABLED
   12889         200 :     module procedure trsm_ASS_CGMA_ONOA_CUUB_OTUB_RK1
   12890             :         use pm_kind, only: RKC => RK1
   12891             : #define DISPATCH_ENABLED 1
   12892             : #include "pm_matrixMulTri@routines.inc.F90"
   12893             : #undef  DISPATCH_ENABLED
   12894             :     end procedure
   12895             : #endif
   12896             : 
   12897             : #undef RK_ENABLED
   12898             : 
   12899             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12900             : 
   12901             : #undef OTUB_ENABLED
   12902             : 
   12903             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12904             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12905             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12906             : 
   12907             : #undef CUUB_ENABLED
   12908             : 
   12909             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12910             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12911             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12912             : 
   12913             : #undef ONOA_ENABLED
   12914             : 
   12915             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12916             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12917             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12918             : 
   12919             : #undef CGMA_ENABLED
   12920             : 
   12921             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12922             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12923             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12924             : 
   12925             : #undef ASS_ENABLED
   12926             : 
   12927             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12928             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12929             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12930             : 
   12931             : #define EXP_ENABLED 1
   12932             : 
   12933             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12934             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12935             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12936             : 
   12937             : #define CGMB_ENABLED 1
   12938             : 
   12939             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12940             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12941             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12942             : 
   12943             : #define ONOB_ENABLED 1
   12944             : 
   12945             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12946             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12947             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12948             : 
   12949             : #define CLDA_ENABLED 1
   12950             : 
   12951             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12952             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12953             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12954             : 
   12955             : #define INVA_ENABLED 1
   12956             : 
   12957             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12958             : 
   12959             : #define CK_ENABLED 1
   12960             : 
   12961             : #if CK5_ENABLED
   12962             :     module procedure trsm_EXP_CLDA_INVA_CGMB_ONOB_CK5
   12963             :         use pm_kind, only: CKC => CK5
   12964             : #include "pm_matrixMulTri@routines.inc.F90"
   12965             :     end procedure
   12966             : #endif
   12967             : 
   12968             : #if CK4_ENABLED
   12969         100 :     module procedure trsm_EXP_CLDA_INVA_CGMB_ONOB_CK4
   12970             :         use pm_kind, only: CKC => CK4
   12971             : #include "pm_matrixMulTri@routines.inc.F90"
   12972             :     end procedure
   12973             : #endif
   12974             : 
   12975             : #if CK3_ENABLED
   12976         100 :     module procedure trsm_EXP_CLDA_INVA_CGMB_ONOB_CK3
   12977             :         use pm_kind, only: CKC => CK3
   12978             : #include "pm_matrixMulTri@routines.inc.F90"
   12979             :     end procedure
   12980             : #endif
   12981             : 
   12982             : #if CK2_ENABLED
   12983         100 :     module procedure trsm_EXP_CLDA_INVA_CGMB_ONOB_CK2
   12984             :         use pm_kind, only: CKC => CK2
   12985             : #define DISPATCH_ENABLED 1
   12986             : #include "pm_matrixMulTri@routines.inc.F90"
   12987             : #undef  DISPATCH_ENABLED
   12988             :     end procedure
   12989             : #endif
   12990             : 
   12991             : #if CK1_ENABLED
   12992         100 :     module procedure trsm_EXP_CLDA_INVA_CGMB_ONOB_CK1
   12993             :         use pm_kind, only: CKC => CK1
   12994             : #define DISPATCH_ENABLED 1
   12995             : #include "pm_matrixMulTri@routines.inc.F90"
   12996             : #undef  DISPATCH_ENABLED
   12997             :     end procedure
   12998             : #endif
   12999             : 
   13000             : #undef CK_ENABLED
   13001             : 
   13002             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13003             : 
   13004             : #define RK_ENABLED 1
   13005             : 
   13006             : #if RK5_ENABLED
   13007             :     module procedure trsm_EXP_CLDA_INVA_CGMB_ONOB_RK5
   13008             :         use pm_kind, only: RKC => RK5
   13009             : #include "pm_matrixMulTri@routines.inc.F90"
   13010             :     end procedure
   13011             : #endif
   13012             : 
   13013             : #if RK4_ENABLED
   13014         100 :     module procedure trsm_EXP_CLDA_INVA_CGMB_ONOB_RK4
   13015             :         use pm_kind, only: RKC => RK4
   13016             : #include "pm_matrixMulTri@routines.inc.F90"
   13017             :     end procedure
   13018             : #endif
   13019             : 
   13020             : #if RK3_ENABLED
   13021         100 :     module procedure trsm_EXP_CLDA_INVA_CGMB_ONOB_RK3
   13022             :         use pm_kind, only: RKC => RK3
   13023             : #include "pm_matrixMulTri@routines.inc.F90"
   13024             :     end procedure
   13025             : #endif
   13026             : 
   13027             : #if RK2_ENABLED
   13028         100 :     module procedure trsm_EXP_CLDA_INVA_CGMB_ONOB_RK2
   13029             :         use pm_kind, only: RKC => RK2
   13030             : #define DISPATCH_ENABLED 1
   13031             : #include "pm_matrixMulTri@routines.inc.F90"
   13032             : #undef  DISPATCH_ENABLED
   13033             :     end procedure
   13034             : #endif
   13035             : 
   13036             : #if RK1_ENABLED
   13037         100 :     module procedure trsm_EXP_CLDA_INVA_CGMB_ONOB_RK1
   13038             :         use pm_kind, only: RKC => RK1
   13039             : #define DISPATCH_ENABLED 1
   13040             : #include "pm_matrixMulTri@routines.inc.F90"
   13041             : #undef  DISPATCH_ENABLED
   13042             :     end procedure
   13043             : #endif
   13044             : 
   13045             : #undef RK_ENABLED
   13046             : 
   13047             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13048             : 
   13049             : #undef INVA_ENABLED
   13050             : 
   13051             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13052             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13053             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13054             : 
   13055             : #define OTOA_ENABLED 1
   13056             : 
   13057             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13058             : 
   13059             : #define CK_ENABLED 1
   13060             : 
   13061             : #if CK5_ENABLED
   13062             :     module procedure trsm_EXP_CLDA_OTOA_CGMB_ONOB_CK5
   13063             :         use pm_kind, only: CKC => CK5
   13064             : #include "pm_matrixMulTri@routines.inc.F90"
   13065             :     end procedure
   13066             : #endif
   13067             : 
   13068             : #if CK4_ENABLED
   13069         100 :     module procedure trsm_EXP_CLDA_OTOA_CGMB_ONOB_CK4
   13070             :         use pm_kind, only: CKC => CK4
   13071             : #include "pm_matrixMulTri@routines.inc.F90"
   13072             :     end procedure
   13073             : #endif
   13074             : 
   13075             : #if CK3_ENABLED
   13076         100 :     module procedure trsm_EXP_CLDA_OTOA_CGMB_ONOB_CK3
   13077             :         use pm_kind, only: CKC => CK3
   13078             : #include "pm_matrixMulTri@routines.inc.F90"
   13079             :     end procedure
   13080             : #endif
   13081             : 
   13082             : #if CK2_ENABLED
   13083         100 :     module procedure trsm_EXP_CLDA_OTOA_CGMB_ONOB_CK2
   13084             :         use pm_kind, only: CKC => CK2
   13085             : #define DISPATCH_ENABLED 1
   13086             : #include "pm_matrixMulTri@routines.inc.F90"
   13087             : #undef  DISPATCH_ENABLED
   13088             :     end procedure
   13089             : #endif
   13090             : 
   13091             : #if CK1_ENABLED
   13092         100 :     module procedure trsm_EXP_CLDA_OTOA_CGMB_ONOB_CK1
   13093             :         use pm_kind, only: CKC => CK1
   13094             : #define DISPATCH_ENABLED 1
   13095             : #include "pm_matrixMulTri@routines.inc.F90"
   13096             : #undef  DISPATCH_ENABLED
   13097             :     end procedure
   13098             : #endif
   13099             : 
   13100             : #undef CK_ENABLED
   13101             : 
   13102             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13103             : 
   13104             : #define RK_ENABLED 1
   13105             : 
   13106             : #if RK5_ENABLED
   13107             :     module procedure trsm_EXP_CLDA_OTOA_CGMB_ONOB_RK5
   13108             :         use pm_kind, only: RKC => RK5
   13109             : #include "pm_matrixMulTri@routines.inc.F90"
   13110             :     end procedure
   13111             : #endif
   13112             : 
   13113             : #if RK4_ENABLED
   13114         100 :     module procedure trsm_EXP_CLDA_OTOA_CGMB_ONOB_RK4
   13115             :         use pm_kind, only: RKC => RK4
   13116             : #include "pm_matrixMulTri@routines.inc.F90"
   13117             :     end procedure
   13118             : #endif
   13119             : 
   13120             : #if RK3_ENABLED
   13121         100 :     module procedure trsm_EXP_CLDA_OTOA_CGMB_ONOB_RK3
   13122             :         use pm_kind, only: RKC => RK3
   13123             : #include "pm_matrixMulTri@routines.inc.F90"
   13124             :     end procedure
   13125             : #endif
   13126             : 
   13127             : #if RK2_ENABLED
   13128         100 :     module procedure trsm_EXP_CLDA_OTOA_CGMB_ONOB_RK2
   13129             :         use pm_kind, only: RKC => RK2
   13130             : #define DISPATCH_ENABLED 1
   13131             : #include "pm_matrixMulTri@routines.inc.F90"
   13132             : #undef  DISPATCH_ENABLED
   13133             :     end procedure
   13134             : #endif
   13135             : 
   13136             : #if RK1_ENABLED
   13137         100 :     module procedure trsm_EXP_CLDA_OTOA_CGMB_ONOB_RK1
   13138             :         use pm_kind, only: RKC => RK1
   13139             : #define DISPATCH_ENABLED 1
   13140             : #include "pm_matrixMulTri@routines.inc.F90"
   13141             : #undef  DISPATCH_ENABLED
   13142             :     end procedure
   13143             : #endif
   13144             : 
   13145             : #undef RK_ENABLED
   13146             : 
   13147             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13148             : 
   13149             : #undef OTOA_ENABLED
   13150             : 
   13151             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13152             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13153             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13154             : 
   13155             : #define OTUA_ENABLED 1
   13156             : 
   13157             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13158             : 
   13159             : #define CK_ENABLED 1
   13160             : 
   13161             : #if CK5_ENABLED
   13162             :     module procedure trsm_EXP_CLDA_OTUA_CGMB_ONOB_CK5
   13163             :         use pm_kind, only: CKC => CK5
   13164             : #include "pm_matrixMulTri@routines.inc.F90"
   13165             :     end procedure
   13166             : #endif
   13167             : 
   13168             : #if CK4_ENABLED
   13169         100 :     module procedure trsm_EXP_CLDA_OTUA_CGMB_ONOB_CK4
   13170             :         use pm_kind, only: CKC => CK4
   13171             : #include "pm_matrixMulTri@routines.inc.F90"
   13172             :     end procedure
   13173             : #endif
   13174             : 
   13175             : #if CK3_ENABLED
   13176         100 :     module procedure trsm_EXP_CLDA_OTUA_CGMB_ONOB_CK3
   13177             :         use pm_kind, only: CKC => CK3
   13178             : #include "pm_matrixMulTri@routines.inc.F90"
   13179             :     end procedure
   13180             : #endif
   13181             : 
   13182             : #if CK2_ENABLED
   13183         100 :     module procedure trsm_EXP_CLDA_OTUA_CGMB_ONOB_CK2
   13184             :         use pm_kind, only: CKC => CK2
   13185             : #define DISPATCH_ENABLED 1
   13186             : #include "pm_matrixMulTri@routines.inc.F90"
   13187             : #undef  DISPATCH_ENABLED
   13188             :     end procedure
   13189             : #endif
   13190             : 
   13191             : #if CK1_ENABLED
   13192         100 :     module procedure trsm_EXP_CLDA_OTUA_CGMB_ONOB_CK1
   13193             :         use pm_kind, only: CKC => CK1
   13194             : #define DISPATCH_ENABLED 1
   13195             : #include "pm_matrixMulTri@routines.inc.F90"
   13196             : #undef  DISPATCH_ENABLED
   13197             :     end procedure
   13198             : #endif
   13199             : 
   13200             : #undef CK_ENABLED
   13201             : 
   13202             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13203             : 
   13204             : #define RK_ENABLED 1
   13205             : 
   13206             : #if RK5_ENABLED
   13207             :     module procedure trsm_EXP_CLDA_OTUA_CGMB_ONOB_RK5
   13208             :         use pm_kind, only: RKC => RK5
   13209             : #include "pm_matrixMulTri@routines.inc.F90"
   13210             :     end procedure
   13211             : #endif
   13212             : 
   13213             : #if RK4_ENABLED
   13214         100 :     module procedure trsm_EXP_CLDA_OTUA_CGMB_ONOB_RK4
   13215             :         use pm_kind, only: RKC => RK4
   13216             : #include "pm_matrixMulTri@routines.inc.F90"
   13217             :     end procedure
   13218             : #endif
   13219             : 
   13220             : #if RK3_ENABLED
   13221         100 :     module procedure trsm_EXP_CLDA_OTUA_CGMB_ONOB_RK3
   13222             :         use pm_kind, only: RKC => RK3
   13223             : #include "pm_matrixMulTri@routines.inc.F90"
   13224             :     end procedure
   13225             : #endif
   13226             : 
   13227             : #if RK2_ENABLED
   13228         100 :     module procedure trsm_EXP_CLDA_OTUA_CGMB_ONOB_RK2
   13229             :         use pm_kind, only: RKC => RK2
   13230             : #define DISPATCH_ENABLED 1
   13231             : #include "pm_matrixMulTri@routines.inc.F90"
   13232             : #undef  DISPATCH_ENABLED
   13233             :     end procedure
   13234             : #endif
   13235             : 
   13236             : #if RK1_ENABLED
   13237         100 :     module procedure trsm_EXP_CLDA_OTUA_CGMB_ONOB_RK1
   13238             :         use pm_kind, only: RKC => RK1
   13239             : #define DISPATCH_ENABLED 1
   13240             : #include "pm_matrixMulTri@routines.inc.F90"
   13241             : #undef  DISPATCH_ENABLED
   13242             :     end procedure
   13243             : #endif
   13244             : 
   13245             : #undef RK_ENABLED
   13246             : 
   13247             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13248             : 
   13249             : #undef OTUA_ENABLED
   13250             : 
   13251             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13252             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13253             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13254             : 
   13255             : #undef CLDA_ENABLED
   13256             : 
   13257             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13258             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13259             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13260             : 
   13261             : #define CUDA_ENABLED 1
   13262             : 
   13263             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13264             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13265             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13266             : 
   13267             : #define INVA_ENABLED 1
   13268             : 
   13269             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13270             : 
   13271             : #define CK_ENABLED 1
   13272             : 
   13273             : #if CK5_ENABLED
   13274             :     module procedure trsm_EXP_CUDA_INVA_CGMB_ONOB_CK5
   13275             :         use pm_kind, only: CKC => CK5
   13276             : #include "pm_matrixMulTri@routines.inc.F90"
   13277             :     end procedure
   13278             : #endif
   13279             : 
   13280             : #if CK4_ENABLED
   13281         100 :     module procedure trsm_EXP_CUDA_INVA_CGMB_ONOB_CK4
   13282             :         use pm_kind, only: CKC => CK4
   13283             : #include "pm_matrixMulTri@routines.inc.F90"
   13284             :     end procedure
   13285             : #endif
   13286             : 
   13287             : #if CK3_ENABLED
   13288         100 :     module procedure trsm_EXP_CUDA_INVA_CGMB_ONOB_CK3
   13289             :         use pm_kind, only: CKC => CK3
   13290             : #include "pm_matrixMulTri@routines.inc.F90"
   13291             :     end procedure
   13292             : #endif
   13293             : 
   13294             : #if CK2_ENABLED
   13295         100 :     module procedure trsm_EXP_CUDA_INVA_CGMB_ONOB_CK2
   13296             :         use pm_kind, only: CKC => CK2
   13297             : #define DISPATCH_ENABLED 1
   13298             : #include "pm_matrixMulTri@routines.inc.F90"
   13299             : #undef  DISPATCH_ENABLED
   13300             :     end procedure
   13301             : #endif
   13302             : 
   13303             : #if CK1_ENABLED
   13304         100 :     module procedure trsm_EXP_CUDA_INVA_CGMB_ONOB_CK1
   13305             :         use pm_kind, only: CKC => CK1
   13306             : #define DISPATCH_ENABLED 1
   13307             : #include "pm_matrixMulTri@routines.inc.F90"
   13308             : #undef  DISPATCH_ENABLED
   13309             :     end procedure
   13310             : #endif
   13311             : 
   13312             : #undef CK_ENABLED
   13313             : 
   13314             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13315             : 
   13316             : #define RK_ENABLED 1
   13317             : 
   13318             : #if RK5_ENABLED
   13319             :     module procedure trsm_EXP_CUDA_INVA_CGMB_ONOB_RK5
   13320             :         use pm_kind, only: RKC => RK5
   13321             : #include "pm_matrixMulTri@routines.inc.F90"
   13322             :     end procedure
   13323             : #endif
   13324             : 
   13325             : #if RK4_ENABLED
   13326         100 :     module procedure trsm_EXP_CUDA_INVA_CGMB_ONOB_RK4
   13327             :         use pm_kind, only: RKC => RK4
   13328             : #include "pm_matrixMulTri@routines.inc.F90"
   13329             :     end procedure
   13330             : #endif
   13331             : 
   13332             : #if RK3_ENABLED
   13333         100 :     module procedure trsm_EXP_CUDA_INVA_CGMB_ONOB_RK3
   13334             :         use pm_kind, only: RKC => RK3
   13335             : #include "pm_matrixMulTri@routines.inc.F90"
   13336             :     end procedure
   13337             : #endif
   13338             : 
   13339             : #if RK2_ENABLED
   13340         100 :     module procedure trsm_EXP_CUDA_INVA_CGMB_ONOB_RK2
   13341             :         use pm_kind, only: RKC => RK2
   13342             : #define DISPATCH_ENABLED 1
   13343             : #include "pm_matrixMulTri@routines.inc.F90"
   13344             : #undef  DISPATCH_ENABLED
   13345             :     end procedure
   13346             : #endif
   13347             : 
   13348             : #if RK1_ENABLED
   13349         101 :     module procedure trsm_EXP_CUDA_INVA_CGMB_ONOB_RK1
   13350             :         use pm_kind, only: RKC => RK1
   13351             : #define DISPATCH_ENABLED 1
   13352             : #include "pm_matrixMulTri@routines.inc.F90"
   13353             : #undef  DISPATCH_ENABLED
   13354             :     end procedure
   13355             : #endif
   13356             : 
   13357             : #undef RK_ENABLED
   13358             : 
   13359             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13360             : 
   13361             : #undef INVA_ENABLED
   13362             : 
   13363             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13364             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13365             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13366             : 
   13367             : #define OTOA_ENABLED 1
   13368             : 
   13369             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13370             : 
   13371             : #define CK_ENABLED 1
   13372             : 
   13373             : #if CK5_ENABLED
   13374             :     module procedure trsm_EXP_CUDA_OTOA_CGMB_ONOB_CK5
   13375             :         use pm_kind, only: CKC => CK5
   13376             : #include "pm_matrixMulTri@routines.inc.F90"
   13377             :     end procedure
   13378             : #endif
   13379             : 
   13380             : #if CK4_ENABLED
   13381         100 :     module procedure trsm_EXP_CUDA_OTOA_CGMB_ONOB_CK4
   13382             :         use pm_kind, only: CKC => CK4
   13383             : #include "pm_matrixMulTri@routines.inc.F90"
   13384             :     end procedure
   13385             : #endif
   13386             : 
   13387             : #if CK3_ENABLED
   13388         100 :     module procedure trsm_EXP_CUDA_OTOA_CGMB_ONOB_CK3
   13389             :         use pm_kind, only: CKC => CK3
   13390             : #include "pm_matrixMulTri@routines.inc.F90"
   13391             :     end procedure
   13392             : #endif
   13393             : 
   13394             : #if CK2_ENABLED
   13395         100 :     module procedure trsm_EXP_CUDA_OTOA_CGMB_ONOB_CK2
   13396             :         use pm_kind, only: CKC => CK2
   13397             : #define DISPATCH_ENABLED 1
   13398             : #include "pm_matrixMulTri@routines.inc.F90"
   13399             : #undef  DISPATCH_ENABLED
   13400             :     end procedure
   13401             : #endif
   13402             : 
   13403             : #if CK1_ENABLED
   13404         100 :     module procedure trsm_EXP_CUDA_OTOA_CGMB_ONOB_CK1
   13405             :         use pm_kind, only: CKC => CK1
   13406             : #define DISPATCH_ENABLED 1
   13407             : #include "pm_matrixMulTri@routines.inc.F90"
   13408             : #undef  DISPATCH_ENABLED
   13409             :     end procedure
   13410             : #endif
   13411             : 
   13412             : #undef CK_ENABLED
   13413             : 
   13414             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13415             : 
   13416             : #define RK_ENABLED 1
   13417             : 
   13418             : #if RK5_ENABLED
   13419             :     module procedure trsm_EXP_CUDA_OTOA_CGMB_ONOB_RK5
   13420             :         use pm_kind, only: RKC => RK5
   13421             : #include "pm_matrixMulTri@routines.inc.F90"
   13422             :     end procedure
   13423             : #endif
   13424             : 
   13425             : #if RK4_ENABLED
   13426         100 :     module procedure trsm_EXP_CUDA_OTOA_CGMB_ONOB_RK4
   13427             :         use pm_kind, only: RKC => RK4
   13428             : #include "pm_matrixMulTri@routines.inc.F90"
   13429             :     end procedure
   13430             : #endif
   13431             : 
   13432             : #if RK3_ENABLED
   13433         100 :     module procedure trsm_EXP_CUDA_OTOA_CGMB_ONOB_RK3
   13434             :         use pm_kind, only: RKC => RK3
   13435             : #include "pm_matrixMulTri@routines.inc.F90"
   13436             :     end procedure
   13437             : #endif
   13438             : 
   13439             : #if RK2_ENABLED
   13440         100 :     module procedure trsm_EXP_CUDA_OTOA_CGMB_ONOB_RK2
   13441             :         use pm_kind, only: RKC => RK2
   13442             : #define DISPATCH_ENABLED 1
   13443             : #include "pm_matrixMulTri@routines.inc.F90"
   13444             : #undef  DISPATCH_ENABLED
   13445             :     end procedure
   13446             : #endif
   13447             : 
   13448             : #if RK1_ENABLED
   13449         101 :     module procedure trsm_EXP_CUDA_OTOA_CGMB_ONOB_RK1
   13450             :         use pm_kind, only: RKC => RK1
   13451             : #define DISPATCH_ENABLED 1
   13452             : #include "pm_matrixMulTri@routines.inc.F90"
   13453             : #undef  DISPATCH_ENABLED
   13454             :     end procedure
   13455             : #endif
   13456             : 
   13457             : #undef RK_ENABLED
   13458             : 
   13459             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13460             : 
   13461             : #undef OTOA_ENABLED
   13462             : 
   13463             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13464             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13465             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13466             : 
   13467             : #define OTUA_ENABLED 1
   13468             : 
   13469             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13470             : 
   13471             : #define CK_ENABLED 1
   13472             : 
   13473             : #if CK5_ENABLED
   13474             :     module procedure trsm_EXP_CUDA_OTUA_CGMB_ONOB_CK5
   13475             :         use pm_kind, only: CKC => CK5
   13476             : #include "pm_matrixMulTri@routines.inc.F90"
   13477             :     end procedure
   13478             : #endif
   13479             : 
   13480             : #if CK4_ENABLED
   13481        1481 :     module procedure trsm_EXP_CUDA_OTUA_CGMB_ONOB_CK4
   13482             :         use pm_kind, only: CKC => CK4
   13483             : #include "pm_matrixMulTri@routines.inc.F90"
   13484             :     end procedure
   13485             : #endif
   13486             : 
   13487             : #if CK3_ENABLED
   13488        1566 :     module procedure trsm_EXP_CUDA_OTUA_CGMB_ONOB_CK3
   13489             :         use pm_kind, only: CKC => CK3
   13490             : #include "pm_matrixMulTri@routines.inc.F90"
   13491             :     end procedure
   13492             : #endif
   13493             : 
   13494             : #if CK2_ENABLED
   13495        1648 :     module procedure trsm_EXP_CUDA_OTUA_CGMB_ONOB_CK2
   13496             :         use pm_kind, only: CKC => CK2
   13497             : #define DISPATCH_ENABLED 1
   13498             : #include "pm_matrixMulTri@routines.inc.F90"
   13499             : #undef  DISPATCH_ENABLED
   13500             :     end procedure
   13501             : #endif
   13502             : 
   13503             : #if CK1_ENABLED
   13504        1575 :     module procedure trsm_EXP_CUDA_OTUA_CGMB_ONOB_CK1
   13505             :         use pm_kind, only: CKC => CK1
   13506             : #define DISPATCH_ENABLED 1
   13507             : #include "pm_matrixMulTri@routines.inc.F90"
   13508             : #undef  DISPATCH_ENABLED
   13509             :     end procedure
   13510             : #endif
   13511             : 
   13512             : #undef CK_ENABLED
   13513             : 
   13514             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13515             : 
   13516             : #define RK_ENABLED 1
   13517             : 
   13518             : #if RK5_ENABLED
   13519             :     module procedure trsm_EXP_CUDA_OTUA_CGMB_ONOB_RK5
   13520             :         use pm_kind, only: RKC => RK5
   13521             : #include "pm_matrixMulTri@routines.inc.F90"
   13522             :     end procedure
   13523             : #endif
   13524             : 
   13525             : #if RK4_ENABLED
   13526        1603 :     module procedure trsm_EXP_CUDA_OTUA_CGMB_ONOB_RK4
   13527             :         use pm_kind, only: RKC => RK4
   13528             : #include "pm_matrixMulTri@routines.inc.F90"
   13529             :     end procedure
   13530             : #endif
   13531             : 
   13532             : #if RK3_ENABLED
   13533        1620 :     module procedure trsm_EXP_CUDA_OTUA_CGMB_ONOB_RK3
   13534             :         use pm_kind, only: RKC => RK3
   13535             : #include "pm_matrixMulTri@routines.inc.F90"
   13536             :     end procedure
   13537             : #endif
   13538             : 
   13539             : #if RK2_ENABLED
   13540        1763 :     module procedure trsm_EXP_CUDA_OTUA_CGMB_ONOB_RK2
   13541             :         use pm_kind, only: RKC => RK2
   13542             : #define DISPATCH_ENABLED 1
   13543             : #include "pm_matrixMulTri@routines.inc.F90"
   13544             : #undef  DISPATCH_ENABLED
   13545             :     end procedure
   13546             : #endif
   13547             : 
   13548             : #if RK1_ENABLED
   13549        1759 :     module procedure trsm_EXP_CUDA_OTUA_CGMB_ONOB_RK1
   13550             :         use pm_kind, only: RKC => RK1
   13551             : #define DISPATCH_ENABLED 1
   13552             : #include "pm_matrixMulTri@routines.inc.F90"
   13553             : #undef  DISPATCH_ENABLED
   13554             :     end procedure
   13555             : #endif
   13556             : 
   13557             : #undef RK_ENABLED
   13558             : 
   13559             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13560             : 
   13561             : #undef OTUA_ENABLED
   13562             : 
   13563             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13564             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13565             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13566             : 
   13567             : #undef CUDA_ENABLED
   13568             : 
   13569             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13570             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13571             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13572             : 
   13573             : #define CLUA_ENABLED 1
   13574             : 
   13575             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13576             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13577             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13578             : 
   13579             : #define INVA_ENABLED 1
   13580             : 
   13581             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13582             : 
   13583             : #define CK_ENABLED 1
   13584             : 
   13585             : #if CK5_ENABLED
   13586             :     module procedure trsm_EXP_CLUA_INVA_CGMB_ONOB_CK5
   13587             :         use pm_kind, only: CKC => CK5
   13588             : #include "pm_matrixMulTri@routines.inc.F90"
   13589             :     end procedure
   13590             : #endif
   13591             : 
   13592             : #if CK4_ENABLED
   13593         100 :     module procedure trsm_EXP_CLUA_INVA_CGMB_ONOB_CK4
   13594             :         use pm_kind, only: CKC => CK4
   13595             : #include "pm_matrixMulTri@routines.inc.F90"
   13596             :     end procedure
   13597             : #endif
   13598             : 
   13599             : #if CK3_ENABLED
   13600         100 :     module procedure trsm_EXP_CLUA_INVA_CGMB_ONOB_CK3
   13601             :         use pm_kind, only: CKC => CK3
   13602             : #include "pm_matrixMulTri@routines.inc.F90"
   13603             :     end procedure
   13604             : #endif
   13605             : 
   13606             : #if CK2_ENABLED
   13607         100 :     module procedure trsm_EXP_CLUA_INVA_CGMB_ONOB_CK2
   13608             :         use pm_kind, only: CKC => CK2
   13609             : #define DISPATCH_ENABLED 1
   13610             : #include "pm_matrixMulTri@routines.inc.F90"
   13611             : #undef  DISPATCH_ENABLED
   13612             :     end procedure
   13613             : #endif
   13614             : 
   13615             : #if CK1_ENABLED
   13616         100 :     module procedure trsm_EXP_CLUA_INVA_CGMB_ONOB_CK1
   13617             :         use pm_kind, only: CKC => CK1
   13618             : #define DISPATCH_ENABLED 1
   13619             : #include "pm_matrixMulTri@routines.inc.F90"
   13620             : #undef  DISPATCH_ENABLED
   13621             :     end procedure
   13622             : #endif
   13623             : 
   13624             : #undef CK_ENABLED
   13625             : 
   13626             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13627             : 
   13628             : #define RK_ENABLED 1
   13629             : 
   13630             : #if RK5_ENABLED
   13631             :     module procedure trsm_EXP_CLUA_INVA_CGMB_ONOB_RK5
   13632             :         use pm_kind, only: RKC => RK5
   13633             : #include "pm_matrixMulTri@routines.inc.F90"
   13634             :     end procedure
   13635             : #endif
   13636             : 
   13637             : #if RK4_ENABLED
   13638         100 :     module procedure trsm_EXP_CLUA_INVA_CGMB_ONOB_RK4
   13639             :         use pm_kind, only: RKC => RK4
   13640             : #include "pm_matrixMulTri@routines.inc.F90"
   13641             :     end procedure
   13642             : #endif
   13643             : 
   13644             : #if RK3_ENABLED
   13645         100 :     module procedure trsm_EXP_CLUA_INVA_CGMB_ONOB_RK3
   13646             :         use pm_kind, only: RKC => RK3
   13647             : #include "pm_matrixMulTri@routines.inc.F90"
   13648             :     end procedure
   13649             : #endif
   13650             : 
   13651             : #if RK2_ENABLED
   13652         100 :     module procedure trsm_EXP_CLUA_INVA_CGMB_ONOB_RK2
   13653             :         use pm_kind, only: RKC => RK2
   13654             : #define DISPATCH_ENABLED 1
   13655             : #include "pm_matrixMulTri@routines.inc.F90"
   13656             : #undef  DISPATCH_ENABLED
   13657             :     end procedure
   13658             : #endif
   13659             : 
   13660             : #if RK1_ENABLED
   13661         100 :     module procedure trsm_EXP_CLUA_INVA_CGMB_ONOB_RK1
   13662             :         use pm_kind, only: RKC => RK1
   13663             : #define DISPATCH_ENABLED 1
   13664             : #include "pm_matrixMulTri@routines.inc.F90"
   13665             : #undef  DISPATCH_ENABLED
   13666             :     end procedure
   13667             : #endif
   13668             : 
   13669             : #undef RK_ENABLED
   13670             : 
   13671             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13672             : 
   13673             : #undef INVA_ENABLED
   13674             : 
   13675             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13676             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13677             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13678             : 
   13679             : #define OTOA_ENABLED 1
   13680             : 
   13681             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13682             : 
   13683             : #define CK_ENABLED 1
   13684             : 
   13685             : #if CK5_ENABLED
   13686             :     module procedure trsm_EXP_CLUA_OTOA_CGMB_ONOB_CK5
   13687             :         use pm_kind, only: CKC => CK5
   13688             : #include "pm_matrixMulTri@routines.inc.F90"
   13689             :     end procedure
   13690             : #endif
   13691             : 
   13692             : #if CK4_ENABLED
   13693         100 :     module procedure trsm_EXP_CLUA_OTOA_CGMB_ONOB_CK4
   13694             :         use pm_kind, only: CKC => CK4
   13695             : #include "pm_matrixMulTri@routines.inc.F90"
   13696             :     end procedure
   13697             : #endif
   13698             : 
   13699             : #if CK3_ENABLED
   13700         100 :     module procedure trsm_EXP_CLUA_OTOA_CGMB_ONOB_CK3
   13701             :         use pm_kind, only: CKC => CK3
   13702             : #include "pm_matrixMulTri@routines.inc.F90"
   13703             :     end procedure
   13704             : #endif
   13705             : 
   13706             : #if CK2_ENABLED
   13707         100 :     module procedure trsm_EXP_CLUA_OTOA_CGMB_ONOB_CK2
   13708             :         use pm_kind, only: CKC => CK2
   13709             : #define DISPATCH_ENABLED 1
   13710             : #include "pm_matrixMulTri@routines.inc.F90"
   13711             : #undef  DISPATCH_ENABLED
   13712             :     end procedure
   13713             : #endif
   13714             : 
   13715             : #if CK1_ENABLED
   13716         100 :     module procedure trsm_EXP_CLUA_OTOA_CGMB_ONOB_CK1
   13717             :         use pm_kind, only: CKC => CK1
   13718             : #define DISPATCH_ENABLED 1
   13719             : #include "pm_matrixMulTri@routines.inc.F90"
   13720             : #undef  DISPATCH_ENABLED
   13721             :     end procedure
   13722             : #endif
   13723             : 
   13724             : #undef CK_ENABLED
   13725             : 
   13726             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13727             : 
   13728             : #define RK_ENABLED 1
   13729             : 
   13730             : #if RK5_ENABLED
   13731             :     module procedure trsm_EXP_CLUA_OTOA_CGMB_ONOB_RK5
   13732             :         use pm_kind, only: RKC => RK5
   13733             : #include "pm_matrixMulTri@routines.inc.F90"
   13734             :     end procedure
   13735             : #endif
   13736             : 
   13737             : #if RK4_ENABLED
   13738         100 :     module procedure trsm_EXP_CLUA_OTOA_CGMB_ONOB_RK4
   13739             :         use pm_kind, only: RKC => RK4
   13740             : #include "pm_matrixMulTri@routines.inc.F90"
   13741             :     end procedure
   13742             : #endif
   13743             : 
   13744             : #if RK3_ENABLED
   13745         100 :     module procedure trsm_EXP_CLUA_OTOA_CGMB_ONOB_RK3
   13746             :         use pm_kind, only: RKC => RK3
   13747             : #include "pm_matrixMulTri@routines.inc.F90"
   13748             :     end procedure
   13749             : #endif
   13750             : 
   13751             : #if RK2_ENABLED
   13752         100 :     module procedure trsm_EXP_CLUA_OTOA_CGMB_ONOB_RK2
   13753             :         use pm_kind, only: RKC => RK2
   13754             : #define DISPATCH_ENABLED 1
   13755             : #include "pm_matrixMulTri@routines.inc.F90"
   13756             : #undef  DISPATCH_ENABLED
   13757             :     end procedure
   13758             : #endif
   13759             : 
   13760             : #if RK1_ENABLED
   13761         100 :     module procedure trsm_EXP_CLUA_OTOA_CGMB_ONOB_RK1
   13762             :         use pm_kind, only: RKC => RK1
   13763             : #define DISPATCH_ENABLED 1
   13764             : #include "pm_matrixMulTri@routines.inc.F90"
   13765             : #undef  DISPATCH_ENABLED
   13766             :     end procedure
   13767             : #endif
   13768             : 
   13769             : #undef RK_ENABLED
   13770             : 
   13771             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13772             : 
   13773             : #undef OTOA_ENABLED
   13774             : 
   13775             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13776             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13777             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13778             : 
   13779             : #define OTUA_ENABLED 1
   13780             : 
   13781             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13782             : 
   13783             : #define CK_ENABLED 1
   13784             : 
   13785             : #if CK5_ENABLED
   13786             :     module procedure trsm_EXP_CLUA_OTUA_CGMB_ONOB_CK5
   13787             :         use pm_kind, only: CKC => CK5
   13788             : #include "pm_matrixMulTri@routines.inc.F90"
   13789             :     end procedure
   13790             : #endif
   13791             : 
   13792             : #if CK4_ENABLED
   13793         100 :     module procedure trsm_EXP_CLUA_OTUA_CGMB_ONOB_CK4
   13794             :         use pm_kind, only: CKC => CK4
   13795             : #include "pm_matrixMulTri@routines.inc.F90"
   13796             :     end procedure
   13797             : #endif
   13798             : 
   13799             : #if CK3_ENABLED
   13800         100 :     module procedure trsm_EXP_CLUA_OTUA_CGMB_ONOB_CK3
   13801             :         use pm_kind, only: CKC => CK3
   13802             : #include "pm_matrixMulTri@routines.inc.F90"
   13803             :     end procedure
   13804             : #endif
   13805             : 
   13806             : #if CK2_ENABLED
   13807         100 :     module procedure trsm_EXP_CLUA_OTUA_CGMB_ONOB_CK2
   13808             :         use pm_kind, only: CKC => CK2
   13809             : #define DISPATCH_ENABLED 1
   13810             : #include "pm_matrixMulTri@routines.inc.F90"
   13811             : #undef  DISPATCH_ENABLED
   13812             :     end procedure
   13813             : #endif
   13814             : 
   13815             : #if CK1_ENABLED
   13816         100 :     module procedure trsm_EXP_CLUA_OTUA_CGMB_ONOB_CK1
   13817             :         use pm_kind, only: CKC => CK1
   13818             : #define DISPATCH_ENABLED 1
   13819             : #include "pm_matrixMulTri@routines.inc.F90"
   13820             : #undef  DISPATCH_ENABLED
   13821             :     end procedure
   13822             : #endif
   13823             : 
   13824             : #undef CK_ENABLED
   13825             : 
   13826             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13827             : 
   13828             : #define RK_ENABLED 1
   13829             : 
   13830             : #if RK5_ENABLED
   13831             :     module procedure trsm_EXP_CLUA_OTUA_CGMB_ONOB_RK5
   13832             :         use pm_kind, only: RKC => RK5
   13833             : #include "pm_matrixMulTri@routines.inc.F90"
   13834             :     end procedure
   13835             : #endif
   13836             : 
   13837             : #if RK4_ENABLED
   13838         100 :     module procedure trsm_EXP_CLUA_OTUA_CGMB_ONOB_RK4
   13839             :         use pm_kind, only: RKC => RK4
   13840             : #include "pm_matrixMulTri@routines.inc.F90"
   13841             :     end procedure
   13842             : #endif
   13843             : 
   13844             : #if RK3_ENABLED
   13845         100 :     module procedure trsm_EXP_CLUA_OTUA_CGMB_ONOB_RK3
   13846             :         use pm_kind, only: RKC => RK3
   13847             : #include "pm_matrixMulTri@routines.inc.F90"
   13848             :     end procedure
   13849             : #endif
   13850             : 
   13851             : #if RK2_ENABLED
   13852         100 :     module procedure trsm_EXP_CLUA_OTUA_CGMB_ONOB_RK2
   13853             :         use pm_kind, only: RKC => RK2
   13854             : #define DISPATCH_ENABLED 1
   13855             : #include "pm_matrixMulTri@routines.inc.F90"
   13856             : #undef  DISPATCH_ENABLED
   13857             :     end procedure
   13858             : #endif
   13859             : 
   13860             : #if RK1_ENABLED
   13861         100 :     module procedure trsm_EXP_CLUA_OTUA_CGMB_ONOB_RK1
   13862             :         use pm_kind, only: RKC => RK1
   13863             : #define DISPATCH_ENABLED 1
   13864             : #include "pm_matrixMulTri@routines.inc.F90"
   13865             : #undef  DISPATCH_ENABLED
   13866             :     end procedure
   13867             : #endif
   13868             : 
   13869             : #undef RK_ENABLED
   13870             : 
   13871             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13872             : 
   13873             : #undef OTUA_ENABLED
   13874             : 
   13875             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13876             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13877             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13878             : 
   13879             : #undef CLUA_ENABLED
   13880             : 
   13881             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13882             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13883             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13884             : 
   13885             : #define CUUA_ENABLED 1
   13886             : 
   13887             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13888             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13889             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13890             : 
   13891             : #define INVA_ENABLED 1
   13892             : 
   13893             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13894             : 
   13895             : #define CK_ENABLED 1
   13896             : 
   13897             : #if CK5_ENABLED
   13898             :     module procedure trsm_EXP_CUUA_INVA_CGMB_ONOB_CK5
   13899             :         use pm_kind, only: CKC => CK5
   13900             : #include "pm_matrixMulTri@routines.inc.F90"
   13901             :     end procedure
   13902             : #endif
   13903             : 
   13904             : #if CK4_ENABLED
   13905         100 :     module procedure trsm_EXP_CUUA_INVA_CGMB_ONOB_CK4
   13906             :         use pm_kind, only: CKC => CK4
   13907             : #include "pm_matrixMulTri@routines.inc.F90"
   13908             :     end procedure
   13909             : #endif
   13910             : 
   13911             : #if CK3_ENABLED
   13912         100 :     module procedure trsm_EXP_CUUA_INVA_CGMB_ONOB_CK3
   13913             :         use pm_kind, only: CKC => CK3
   13914             : #include "pm_matrixMulTri@routines.inc.F90"
   13915             :     end procedure
   13916             : #endif
   13917             : 
   13918             : #if CK2_ENABLED
   13919         100 :     module procedure trsm_EXP_CUUA_INVA_CGMB_ONOB_CK2
   13920             :         use pm_kind, only: CKC => CK2
   13921             : #define DISPATCH_ENABLED 1
   13922             : #include "pm_matrixMulTri@routines.inc.F90"
   13923             : #undef  DISPATCH_ENABLED
   13924             :     end procedure
   13925             : #endif
   13926             : 
   13927             : #if CK1_ENABLED
   13928         100 :     module procedure trsm_EXP_CUUA_INVA_CGMB_ONOB_CK1
   13929             :         use pm_kind, only: CKC => CK1
   13930             : #define DISPATCH_ENABLED 1
   13931             : #include "pm_matrixMulTri@routines.inc.F90"
   13932             : #undef  DISPATCH_ENABLED
   13933             :     end procedure
   13934             : #endif
   13935             : 
   13936             : #undef CK_ENABLED
   13937             : 
   13938             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13939             : 
   13940             : #define RK_ENABLED 1
   13941             : 
   13942             : #if RK5_ENABLED
   13943             :     module procedure trsm_EXP_CUUA_INVA_CGMB_ONOB_RK5
   13944             :         use pm_kind, only: RKC => RK5
   13945             : #include "pm_matrixMulTri@routines.inc.F90"
   13946             :     end procedure
   13947             : #endif
   13948             : 
   13949             : #if RK4_ENABLED
   13950         100 :     module procedure trsm_EXP_CUUA_INVA_CGMB_ONOB_RK4
   13951             :         use pm_kind, only: RKC => RK4
   13952             : #include "pm_matrixMulTri@routines.inc.F90"
   13953             :     end procedure
   13954             : #endif
   13955             : 
   13956             : #if RK3_ENABLED
   13957         100 :     module procedure trsm_EXP_CUUA_INVA_CGMB_ONOB_RK3
   13958             :         use pm_kind, only: RKC => RK3
   13959             : #include "pm_matrixMulTri@routines.inc.F90"
   13960             :     end procedure
   13961             : #endif
   13962             : 
   13963             : #if RK2_ENABLED
   13964         100 :     module procedure trsm_EXP_CUUA_INVA_CGMB_ONOB_RK2
   13965             :         use pm_kind, only: RKC => RK2
   13966             : #define DISPATCH_ENABLED 1
   13967             : #include "pm_matrixMulTri@routines.inc.F90"
   13968             : #undef  DISPATCH_ENABLED
   13969             :     end procedure
   13970             : #endif
   13971             : 
   13972             : #if RK1_ENABLED
   13973         100 :     module procedure trsm_EXP_CUUA_INVA_CGMB_ONOB_RK1
   13974             :         use pm_kind, only: RKC => RK1
   13975             : #define DISPATCH_ENABLED 1
   13976             : #include "pm_matrixMulTri@routines.inc.F90"
   13977             : #undef  DISPATCH_ENABLED
   13978             :     end procedure
   13979             : #endif
   13980             : 
   13981             : #undef RK_ENABLED
   13982             : 
   13983             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13984             : 
   13985             : #undef INVA_ENABLED
   13986             : 
   13987             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13988             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13989             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13990             : 
   13991             : #define OTOA_ENABLED 1
   13992             : 
   13993             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13994             : 
   13995             : #define CK_ENABLED 1
   13996             : 
   13997             : #if CK5_ENABLED
   13998             :     module procedure trsm_EXP_CUUA_OTOA_CGMB_ONOB_CK5
   13999             :         use pm_kind, only: CKC => CK5
   14000             : #include "pm_matrixMulTri@routines.inc.F90"
   14001             :     end procedure
   14002             : #endif
   14003             : 
   14004             : #if CK4_ENABLED
   14005         100 :     module procedure trsm_EXP_CUUA_OTOA_CGMB_ONOB_CK4
   14006             :         use pm_kind, only: CKC => CK4
   14007             : #include "pm_matrixMulTri@routines.inc.F90"
   14008             :     end procedure
   14009             : #endif
   14010             : 
   14011             : #if CK3_ENABLED
   14012         100 :     module procedure trsm_EXP_CUUA_OTOA_CGMB_ONOB_CK3
   14013             :         use pm_kind, only: CKC => CK3
   14014             : #include "pm_matrixMulTri@routines.inc.F90"
   14015             :     end procedure
   14016             : #endif
   14017             : 
   14018             : #if CK2_ENABLED
   14019         100 :     module procedure trsm_EXP_CUUA_OTOA_CGMB_ONOB_CK2
   14020             :         use pm_kind, only: CKC => CK2
   14021             : #define DISPATCH_ENABLED 1
   14022             : #include "pm_matrixMulTri@routines.inc.F90"
   14023             : #undef  DISPATCH_ENABLED
   14024             :     end procedure
   14025             : #endif
   14026             : 
   14027             : #if CK1_ENABLED
   14028         100 :     module procedure trsm_EXP_CUUA_OTOA_CGMB_ONOB_CK1
   14029             :         use pm_kind, only: CKC => CK1
   14030             : #define DISPATCH_ENABLED 1
   14031             : #include "pm_matrixMulTri@routines.inc.F90"
   14032             : #undef  DISPATCH_ENABLED
   14033             :     end procedure
   14034             : #endif
   14035             : 
   14036             : #undef CK_ENABLED
   14037             : 
   14038             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14039             : 
   14040             : #define RK_ENABLED 1
   14041             : 
   14042             : #if RK5_ENABLED
   14043             :     module procedure trsm_EXP_CUUA_OTOA_CGMB_ONOB_RK5
   14044             :         use pm_kind, only: RKC => RK5
   14045             : #include "pm_matrixMulTri@routines.inc.F90"
   14046             :     end procedure
   14047             : #endif
   14048             : 
   14049             : #if RK4_ENABLED
   14050         100 :     module procedure trsm_EXP_CUUA_OTOA_CGMB_ONOB_RK4
   14051             :         use pm_kind, only: RKC => RK4
   14052             : #include "pm_matrixMulTri@routines.inc.F90"
   14053             :     end procedure
   14054             : #endif
   14055             : 
   14056             : #if RK3_ENABLED
   14057         100 :     module procedure trsm_EXP_CUUA_OTOA_CGMB_ONOB_RK3
   14058             :         use pm_kind, only: RKC => RK3
   14059             : #include "pm_matrixMulTri@routines.inc.F90"
   14060             :     end procedure
   14061             : #endif
   14062             : 
   14063             : #if RK2_ENABLED
   14064         100 :     module procedure trsm_EXP_CUUA_OTOA_CGMB_ONOB_RK2
   14065             :         use pm_kind, only: RKC => RK2
   14066             : #define DISPATCH_ENABLED 1
   14067             : #include "pm_matrixMulTri@routines.inc.F90"
   14068             : #undef  DISPATCH_ENABLED
   14069             :     end procedure
   14070             : #endif
   14071             : 
   14072             : #if RK1_ENABLED
   14073         100 :     module procedure trsm_EXP_CUUA_OTOA_CGMB_ONOB_RK1
   14074             :         use pm_kind, only: RKC => RK1
   14075             : #define DISPATCH_ENABLED 1
   14076             : #include "pm_matrixMulTri@routines.inc.F90"
   14077             : #undef  DISPATCH_ENABLED
   14078             :     end procedure
   14079             : #endif
   14080             : 
   14081             : #undef RK_ENABLED
   14082             : 
   14083             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14084             : 
   14085             : #undef OTOA_ENABLED
   14086             : 
   14087             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14088             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14089             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14090             : 
   14091             : #define OTUA_ENABLED 1
   14092             : 
   14093             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14094             : 
   14095             : #define CK_ENABLED 1
   14096             : 
   14097             : #if CK5_ENABLED
   14098             :     module procedure trsm_EXP_CUUA_OTUA_CGMB_ONOB_CK5
   14099             :         use pm_kind, only: CKC => CK5
   14100             : #include "pm_matrixMulTri@routines.inc.F90"
   14101             :     end procedure
   14102             : #endif
   14103             : 
   14104             : #if CK4_ENABLED
   14105         100 :     module procedure trsm_EXP_CUUA_OTUA_CGMB_ONOB_CK4
   14106             :         use pm_kind, only: CKC => CK4
   14107             : #include "pm_matrixMulTri@routines.inc.F90"
   14108             :     end procedure
   14109             : #endif
   14110             : 
   14111             : #if CK3_ENABLED
   14112         100 :     module procedure trsm_EXP_CUUA_OTUA_CGMB_ONOB_CK3
   14113             :         use pm_kind, only: CKC => CK3
   14114             : #include "pm_matrixMulTri@routines.inc.F90"
   14115             :     end procedure
   14116             : #endif
   14117             : 
   14118             : #if CK2_ENABLED
   14119         100 :     module procedure trsm_EXP_CUUA_OTUA_CGMB_ONOB_CK2
   14120             :         use pm_kind, only: CKC => CK2
   14121             : #define DISPATCH_ENABLED 1
   14122             : #include "pm_matrixMulTri@routines.inc.F90"
   14123             : #undef  DISPATCH_ENABLED
   14124             :     end procedure
   14125             : #endif
   14126             : 
   14127             : #if CK1_ENABLED
   14128         100 :     module procedure trsm_EXP_CUUA_OTUA_CGMB_ONOB_CK1
   14129             :         use pm_kind, only: CKC => CK1
   14130             : #define DISPATCH_ENABLED 1
   14131             : #include "pm_matrixMulTri@routines.inc.F90"
   14132             : #undef  DISPATCH_ENABLED
   14133             :     end procedure
   14134             : #endif
   14135             : 
   14136             : #undef CK_ENABLED
   14137             : 
   14138             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14139             : 
   14140             : #define RK_ENABLED 1
   14141             : 
   14142             : #if RK5_ENABLED
   14143             :     module procedure trsm_EXP_CUUA_OTUA_CGMB_ONOB_RK5
   14144             :         use pm_kind, only: RKC => RK5
   14145             : #include "pm_matrixMulTri@routines.inc.F90"
   14146             :     end procedure
   14147             : #endif
   14148             : 
   14149             : #if RK4_ENABLED
   14150         100 :     module procedure trsm_EXP_CUUA_OTUA_CGMB_ONOB_RK4
   14151             :         use pm_kind, only: RKC => RK4
   14152             : #include "pm_matrixMulTri@routines.inc.F90"
   14153             :     end procedure
   14154             : #endif
   14155             : 
   14156             : #if RK3_ENABLED
   14157         100 :     module procedure trsm_EXP_CUUA_OTUA_CGMB_ONOB_RK3
   14158             :         use pm_kind, only: RKC => RK3
   14159             : #include "pm_matrixMulTri@routines.inc.F90"
   14160             :     end procedure
   14161             : #endif
   14162             : 
   14163             : #if RK2_ENABLED
   14164         100 :     module procedure trsm_EXP_CUUA_OTUA_CGMB_ONOB_RK2
   14165             :         use pm_kind, only: RKC => RK2
   14166             : #define DISPATCH_ENABLED 1
   14167             : #include "pm_matrixMulTri@routines.inc.F90"
   14168             : #undef  DISPATCH_ENABLED
   14169             :     end procedure
   14170             : #endif
   14171             : 
   14172             : #if RK1_ENABLED
   14173         100 :     module procedure trsm_EXP_CUUA_OTUA_CGMB_ONOB_RK1
   14174             :         use pm_kind, only: RKC => RK1
   14175             : #define DISPATCH_ENABLED 1
   14176             : #include "pm_matrixMulTri@routines.inc.F90"
   14177             : #undef  DISPATCH_ENABLED
   14178             :     end procedure
   14179             : #endif
   14180             : 
   14181             : #undef RK_ENABLED
   14182             : 
   14183             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14184             : 
   14185             : #undef OTUA_ENABLED
   14186             : 
   14187             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14188             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14189             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14190             : 
   14191             : #undef CUUA_ENABLED
   14192             : 
   14193             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14194             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14195             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14196             : 
   14197             : #undef ONOB_ENABLED
   14198             : 
   14199             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14200             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14201             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14202             : 
   14203             : #undef CGMB_ENABLED
   14204             : 
   14205             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14206             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14207             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14208             : 
   14209             : #define CGMA_ENABLED 1
   14210             : 
   14211             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14212             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14213             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14214             : 
   14215             : #define ONOA_ENABLED 1
   14216             : 
   14217             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14218             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14219             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14220             : 
   14221             : #define CLDB_ENABLED 1
   14222             : 
   14223             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14224             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14225             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14226             : 
   14227             : #define INVB_ENABLED 1
   14228             : 
   14229             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14230             : 
   14231             : #define CK_ENABLED 1
   14232             : 
   14233             : #if CK5_ENABLED
   14234             :     module procedure trsm_EXP_CGMA_ONOA_CLDB_INVB_CK5
   14235             :         use pm_kind, only: CKC => CK5
   14236             : #include "pm_matrixMulTri@routines.inc.F90"
   14237             :     end procedure
   14238             : #endif
   14239             : 
   14240             : #if CK4_ENABLED
   14241         100 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_INVB_CK4
   14242             :         use pm_kind, only: CKC => CK4
   14243             : #include "pm_matrixMulTri@routines.inc.F90"
   14244             :     end procedure
   14245             : #endif
   14246             : 
   14247             : #if CK3_ENABLED
   14248         100 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_INVB_CK3
   14249             :         use pm_kind, only: CKC => CK3
   14250             : #include "pm_matrixMulTri@routines.inc.F90"
   14251             :     end procedure
   14252             : #endif
   14253             : 
   14254             : #if CK2_ENABLED
   14255         100 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_INVB_CK2
   14256             :         use pm_kind, only: CKC => CK2
   14257             : #define DISPATCH_ENABLED 1
   14258             : #include "pm_matrixMulTri@routines.inc.F90"
   14259             : #undef  DISPATCH_ENABLED
   14260             :     end procedure
   14261             : #endif
   14262             : 
   14263             : #if CK1_ENABLED
   14264         101 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_INVB_CK1
   14265             :         use pm_kind, only: CKC => CK1
   14266             : #define DISPATCH_ENABLED 1
   14267             : #include "pm_matrixMulTri@routines.inc.F90"
   14268             : #undef  DISPATCH_ENABLED
   14269             :     end procedure
   14270             : #endif
   14271             : 
   14272             : #undef CK_ENABLED
   14273             : 
   14274             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14275             : 
   14276             : #define RK_ENABLED 1
   14277             : 
   14278             : #if RK5_ENABLED
   14279             :     module procedure trsm_EXP_CGMA_ONOA_CLDB_INVB_RK5
   14280             :         use pm_kind, only: RKC => RK5
   14281             : #include "pm_matrixMulTri@routines.inc.F90"
   14282             :     end procedure
   14283             : #endif
   14284             : 
   14285             : #if RK4_ENABLED
   14286         100 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_INVB_RK4
   14287             :         use pm_kind, only: RKC => RK4
   14288             : #include "pm_matrixMulTri@routines.inc.F90"
   14289             :     end procedure
   14290             : #endif
   14291             : 
   14292             : #if RK3_ENABLED
   14293         100 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_INVB_RK3
   14294             :         use pm_kind, only: RKC => RK3
   14295             : #include "pm_matrixMulTri@routines.inc.F90"
   14296             :     end procedure
   14297             : #endif
   14298             : 
   14299             : #if RK2_ENABLED
   14300         100 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_INVB_RK2
   14301             :         use pm_kind, only: RKC => RK2
   14302             : #define DISPATCH_ENABLED 1
   14303             : #include "pm_matrixMulTri@routines.inc.F90"
   14304             : #undef  DISPATCH_ENABLED
   14305             :     end procedure
   14306             : #endif
   14307             : 
   14308             : #if RK1_ENABLED
   14309         101 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_INVB_RK1
   14310             :         use pm_kind, only: RKC => RK1
   14311             : #define DISPATCH_ENABLED 1
   14312             : #include "pm_matrixMulTri@routines.inc.F90"
   14313             : #undef  DISPATCH_ENABLED
   14314             :     end procedure
   14315             : #endif
   14316             : 
   14317             : #undef RK_ENABLED
   14318             : 
   14319             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14320             : 
   14321             : #undef INVB_ENABLED
   14322             : 
   14323             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14324             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14325             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14326             : 
   14327             : #define OTOB_ENABLED 1
   14328             : 
   14329             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14330             : 
   14331             : #define CK_ENABLED 1
   14332             : 
   14333             : #if CK5_ENABLED
   14334             :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTOB_CK5
   14335             :         use pm_kind, only: CKC => CK5
   14336             : #include "pm_matrixMulTri@routines.inc.F90"
   14337             :     end procedure
   14338             : #endif
   14339             : 
   14340             : #if CK4_ENABLED
   14341         100 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTOB_CK4
   14342             :         use pm_kind, only: CKC => CK4
   14343             : #include "pm_matrixMulTri@routines.inc.F90"
   14344             :     end procedure
   14345             : #endif
   14346             : 
   14347             : #if CK3_ENABLED
   14348         100 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTOB_CK3
   14349             :         use pm_kind, only: CKC => CK3
   14350             : #include "pm_matrixMulTri@routines.inc.F90"
   14351             :     end procedure
   14352             : #endif
   14353             : 
   14354             : #if CK2_ENABLED
   14355         100 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTOB_CK2
   14356             :         use pm_kind, only: CKC => CK2
   14357             : #define DISPATCH_ENABLED 1
   14358             : #include "pm_matrixMulTri@routines.inc.F90"
   14359             : #undef  DISPATCH_ENABLED
   14360             :     end procedure
   14361             : #endif
   14362             : 
   14363             : #if CK1_ENABLED
   14364         100 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTOB_CK1
   14365             :         use pm_kind, only: CKC => CK1
   14366             : #define DISPATCH_ENABLED 1
   14367             : #include "pm_matrixMulTri@routines.inc.F90"
   14368             : #undef  DISPATCH_ENABLED
   14369             :     end procedure
   14370             : #endif
   14371             : 
   14372             : #undef CK_ENABLED
   14373             : 
   14374             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14375             : 
   14376             : #define RK_ENABLED 1
   14377             : 
   14378             : #if RK5_ENABLED
   14379             :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTOB_RK5
   14380             :         use pm_kind, only: RKC => RK5
   14381             : #include "pm_matrixMulTri@routines.inc.F90"
   14382             :     end procedure
   14383             : #endif
   14384             : 
   14385             : #if RK4_ENABLED
   14386         100 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTOB_RK4
   14387             :         use pm_kind, only: RKC => RK4
   14388             : #include "pm_matrixMulTri@routines.inc.F90"
   14389             :     end procedure
   14390             : #endif
   14391             : 
   14392             : #if RK3_ENABLED
   14393         100 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTOB_RK3
   14394             :         use pm_kind, only: RKC => RK3
   14395             : #include "pm_matrixMulTri@routines.inc.F90"
   14396             :     end procedure
   14397             : #endif
   14398             : 
   14399             : #if RK2_ENABLED
   14400         100 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTOB_RK2
   14401             :         use pm_kind, only: RKC => RK2
   14402             : #define DISPATCH_ENABLED 1
   14403             : #include "pm_matrixMulTri@routines.inc.F90"
   14404             : #undef  DISPATCH_ENABLED
   14405             :     end procedure
   14406             : #endif
   14407             : 
   14408             : #if RK1_ENABLED
   14409         100 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTOB_RK1
   14410             :         use pm_kind, only: RKC => RK1
   14411             : #define DISPATCH_ENABLED 1
   14412             : #include "pm_matrixMulTri@routines.inc.F90"
   14413             : #undef  DISPATCH_ENABLED
   14414             :     end procedure
   14415             : #endif
   14416             : 
   14417             : #undef RK_ENABLED
   14418             : 
   14419             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14420             : 
   14421             : #undef OTOB_ENABLED
   14422             : 
   14423             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14424             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14425             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14426             : 
   14427             : #define OTUB_ENABLED 1
   14428             : 
   14429             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14430             : 
   14431             : #define CK_ENABLED 1
   14432             : 
   14433             : #if CK5_ENABLED
   14434             :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTUB_CK5
   14435             :         use pm_kind, only: CKC => CK5
   14436             : #include "pm_matrixMulTri@routines.inc.F90"
   14437             :     end procedure
   14438             : #endif
   14439             : 
   14440             : #if CK4_ENABLED
   14441        1481 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTUB_CK4
   14442             :         use pm_kind, only: CKC => CK4
   14443             : #include "pm_matrixMulTri@routines.inc.F90"
   14444             :     end procedure
   14445             : #endif
   14446             : 
   14447             : #if CK3_ENABLED
   14448        1566 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTUB_CK3
   14449             :         use pm_kind, only: CKC => CK3
   14450             : #include "pm_matrixMulTri@routines.inc.F90"
   14451             :     end procedure
   14452             : #endif
   14453             : 
   14454             : #if CK2_ENABLED
   14455        1648 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTUB_CK2
   14456             :         use pm_kind, only: CKC => CK2
   14457             : #define DISPATCH_ENABLED 1
   14458             : #include "pm_matrixMulTri@routines.inc.F90"
   14459             : #undef  DISPATCH_ENABLED
   14460             :     end procedure
   14461             : #endif
   14462             : 
   14463             : #if CK1_ENABLED
   14464        1574 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTUB_CK1
   14465             :         use pm_kind, only: CKC => CK1
   14466             : #define DISPATCH_ENABLED 1
   14467             : #include "pm_matrixMulTri@routines.inc.F90"
   14468             : #undef  DISPATCH_ENABLED
   14469             :     end procedure
   14470             : #endif
   14471             : 
   14472             : #undef CK_ENABLED
   14473             : 
   14474             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14475             : 
   14476             : #define RK_ENABLED 1
   14477             : 
   14478             : #if RK5_ENABLED
   14479             :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTUB_RK5
   14480             :         use pm_kind, only: RKC => RK5
   14481             : #include "pm_matrixMulTri@routines.inc.F90"
   14482             :     end procedure
   14483             : #endif
   14484             : 
   14485             : #if RK4_ENABLED
   14486        1603 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTUB_RK4
   14487             :         use pm_kind, only: RKC => RK4
   14488             : #include "pm_matrixMulTri@routines.inc.F90"
   14489             :     end procedure
   14490             : #endif
   14491             : 
   14492             : #if RK3_ENABLED
   14493        1620 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTUB_RK3
   14494             :         use pm_kind, only: RKC => RK3
   14495             : #include "pm_matrixMulTri@routines.inc.F90"
   14496             :     end procedure
   14497             : #endif
   14498             : 
   14499             : #if RK2_ENABLED
   14500        1763 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTUB_RK2
   14501             :         use pm_kind, only: RKC => RK2
   14502             : #define DISPATCH_ENABLED 1
   14503             : #include "pm_matrixMulTri@routines.inc.F90"
   14504             : #undef  DISPATCH_ENABLED
   14505             :     end procedure
   14506             : #endif
   14507             : 
   14508             : #if RK1_ENABLED
   14509        1759 :     module procedure trsm_EXP_CGMA_ONOA_CLDB_OTUB_RK1
   14510             :         use pm_kind, only: RKC => RK1
   14511             : #define DISPATCH_ENABLED 1
   14512             : #include "pm_matrixMulTri@routines.inc.F90"
   14513             : #undef  DISPATCH_ENABLED
   14514             :     end procedure
   14515             : #endif
   14516             : 
   14517             : #undef RK_ENABLED
   14518             : 
   14519             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14520             : 
   14521             : #undef OTUB_ENABLED
   14522             : 
   14523             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14524             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14525             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14526             : 
   14527             : #undef CLDB_ENABLED
   14528             : 
   14529             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14530             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14531             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14532             : 
   14533             : #define CUDB_ENABLED 1
   14534             : 
   14535             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14536             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14537             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14538             : 
   14539             : #define INVB_ENABLED 1
   14540             : 
   14541             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14542             : 
   14543             : #define CK_ENABLED 1
   14544             : 
   14545             : #if CK5_ENABLED
   14546             :     module procedure trsm_EXP_CGMA_ONOA_CUDB_INVB_CK5
   14547             :         use pm_kind, only: CKC => CK5
   14548             : #include "pm_matrixMulTri@routines.inc.F90"
   14549             :     end procedure
   14550             : #endif
   14551             : 
   14552             : #if CK4_ENABLED
   14553         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_INVB_CK4
   14554             :         use pm_kind, only: CKC => CK4
   14555             : #include "pm_matrixMulTri@routines.inc.F90"
   14556             :     end procedure
   14557             : #endif
   14558             : 
   14559             : #if CK3_ENABLED
   14560         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_INVB_CK3
   14561             :         use pm_kind, only: CKC => CK3
   14562             : #include "pm_matrixMulTri@routines.inc.F90"
   14563             :     end procedure
   14564             : #endif
   14565             : 
   14566             : #if CK2_ENABLED
   14567         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_INVB_CK2
   14568             :         use pm_kind, only: CKC => CK2
   14569             : #define DISPATCH_ENABLED 1
   14570             : #include "pm_matrixMulTri@routines.inc.F90"
   14571             : #undef  DISPATCH_ENABLED
   14572             :     end procedure
   14573             : #endif
   14574             : 
   14575             : #if CK1_ENABLED
   14576         101 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_INVB_CK1
   14577             :         use pm_kind, only: CKC => CK1
   14578             : #define DISPATCH_ENABLED 1
   14579             : #include "pm_matrixMulTri@routines.inc.F90"
   14580             : #undef  DISPATCH_ENABLED
   14581             :     end procedure
   14582             : #endif
   14583             : 
   14584             : #undef CK_ENABLED
   14585             : 
   14586             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14587             : 
   14588             : #define RK_ENABLED 1
   14589             : 
   14590             : #if RK5_ENABLED
   14591             :     module procedure trsm_EXP_CGMA_ONOA_CUDB_INVB_RK5
   14592             :         use pm_kind, only: RKC => RK5
   14593             : #include "pm_matrixMulTri@routines.inc.F90"
   14594             :     end procedure
   14595             : #endif
   14596             : 
   14597             : #if RK4_ENABLED
   14598         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_INVB_RK4
   14599             :         use pm_kind, only: RKC => RK4
   14600             : #include "pm_matrixMulTri@routines.inc.F90"
   14601             :     end procedure
   14602             : #endif
   14603             : 
   14604             : #if RK3_ENABLED
   14605         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_INVB_RK3
   14606             :         use pm_kind, only: RKC => RK3
   14607             : #include "pm_matrixMulTri@routines.inc.F90"
   14608             :     end procedure
   14609             : #endif
   14610             : 
   14611             : #if RK2_ENABLED
   14612         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_INVB_RK2
   14613             :         use pm_kind, only: RKC => RK2
   14614             : #define DISPATCH_ENABLED 1
   14615             : #include "pm_matrixMulTri@routines.inc.F90"
   14616             : #undef  DISPATCH_ENABLED
   14617             :     end procedure
   14618             : #endif
   14619             : 
   14620             : #if RK1_ENABLED
   14621         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_INVB_RK1
   14622             :         use pm_kind, only: RKC => RK1
   14623             : #define DISPATCH_ENABLED 1
   14624             : #include "pm_matrixMulTri@routines.inc.F90"
   14625             : #undef  DISPATCH_ENABLED
   14626             :     end procedure
   14627             : #endif
   14628             : 
   14629             : #undef RK_ENABLED
   14630             : 
   14631             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14632             : 
   14633             : #undef INVB_ENABLED
   14634             : 
   14635             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14636             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14637             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14638             : 
   14639             : #define OTOB_ENABLED 1
   14640             : 
   14641             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14642             : 
   14643             : #define CK_ENABLED 1
   14644             : 
   14645             : #if CK5_ENABLED
   14646             :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTOB_CK5
   14647             :         use pm_kind, only: CKC => CK5
   14648             : #include "pm_matrixMulTri@routines.inc.F90"
   14649             :     end procedure
   14650             : #endif
   14651             : 
   14652             : #if CK4_ENABLED
   14653         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTOB_CK4
   14654             :         use pm_kind, only: CKC => CK4
   14655             : #include "pm_matrixMulTri@routines.inc.F90"
   14656             :     end procedure
   14657             : #endif
   14658             : 
   14659             : #if CK3_ENABLED
   14660         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTOB_CK3
   14661             :         use pm_kind, only: CKC => CK3
   14662             : #include "pm_matrixMulTri@routines.inc.F90"
   14663             :     end procedure
   14664             : #endif
   14665             : 
   14666             : #if CK2_ENABLED
   14667         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTOB_CK2
   14668             :         use pm_kind, only: CKC => CK2
   14669             : #define DISPATCH_ENABLED 1
   14670             : #include "pm_matrixMulTri@routines.inc.F90"
   14671             : #undef  DISPATCH_ENABLED
   14672             :     end procedure
   14673             : #endif
   14674             : 
   14675             : #if CK1_ENABLED
   14676         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTOB_CK1
   14677             :         use pm_kind, only: CKC => CK1
   14678             : #define DISPATCH_ENABLED 1
   14679             : #include "pm_matrixMulTri@routines.inc.F90"
   14680             : #undef  DISPATCH_ENABLED
   14681             :     end procedure
   14682             : #endif
   14683             : 
   14684             : #undef CK_ENABLED
   14685             : 
   14686             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14687             : 
   14688             : #define RK_ENABLED 1
   14689             : 
   14690             : #if RK5_ENABLED
   14691             :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTOB_RK5
   14692             :         use pm_kind, only: RKC => RK5
   14693             : #include "pm_matrixMulTri@routines.inc.F90"
   14694             :     end procedure
   14695             : #endif
   14696             : 
   14697             : #if RK4_ENABLED
   14698         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTOB_RK4
   14699             :         use pm_kind, only: RKC => RK4
   14700             : #include "pm_matrixMulTri@routines.inc.F90"
   14701             :     end procedure
   14702             : #endif
   14703             : 
   14704             : #if RK3_ENABLED
   14705         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTOB_RK3
   14706             :         use pm_kind, only: RKC => RK3
   14707             : #include "pm_matrixMulTri@routines.inc.F90"
   14708             :     end procedure
   14709             : #endif
   14710             : 
   14711             : #if RK2_ENABLED
   14712         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTOB_RK2
   14713             :         use pm_kind, only: RKC => RK2
   14714             : #define DISPATCH_ENABLED 1
   14715             : #include "pm_matrixMulTri@routines.inc.F90"
   14716             : #undef  DISPATCH_ENABLED
   14717             :     end procedure
   14718             : #endif
   14719             : 
   14720             : #if RK1_ENABLED
   14721         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTOB_RK1
   14722             :         use pm_kind, only: RKC => RK1
   14723             : #define DISPATCH_ENABLED 1
   14724             : #include "pm_matrixMulTri@routines.inc.F90"
   14725             : #undef  DISPATCH_ENABLED
   14726             :     end procedure
   14727             : #endif
   14728             : 
   14729             : #undef RK_ENABLED
   14730             : 
   14731             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14732             : 
   14733             : #undef OTOB_ENABLED
   14734             : 
   14735             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14736             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14737             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14738             : 
   14739             : #define OTUB_ENABLED 1
   14740             : 
   14741             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14742             : 
   14743             : #define CK_ENABLED 1
   14744             : 
   14745             : #if CK5_ENABLED
   14746             :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTUB_CK5
   14747             :         use pm_kind, only: CKC => CK5
   14748             : #include "pm_matrixMulTri@routines.inc.F90"
   14749             :     end procedure
   14750             : #endif
   14751             : 
   14752             : #if CK4_ENABLED
   14753         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTUB_CK4
   14754             :         use pm_kind, only: CKC => CK4
   14755             : #include "pm_matrixMulTri@routines.inc.F90"
   14756             :     end procedure
   14757             : #endif
   14758             : 
   14759             : #if CK3_ENABLED
   14760         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTUB_CK3
   14761             :         use pm_kind, only: CKC => CK3
   14762             : #include "pm_matrixMulTri@routines.inc.F90"
   14763             :     end procedure
   14764             : #endif
   14765             : 
   14766             : #if CK2_ENABLED
   14767         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTUB_CK2
   14768             :         use pm_kind, only: CKC => CK2
   14769             : #define DISPATCH_ENABLED 1
   14770             : #include "pm_matrixMulTri@routines.inc.F90"
   14771             : #undef  DISPATCH_ENABLED
   14772             :     end procedure
   14773             : #endif
   14774             : 
   14775             : #if CK1_ENABLED
   14776         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTUB_CK1
   14777             :         use pm_kind, only: CKC => CK1
   14778             : #define DISPATCH_ENABLED 1
   14779             : #include "pm_matrixMulTri@routines.inc.F90"
   14780             : #undef  DISPATCH_ENABLED
   14781             :     end procedure
   14782             : #endif
   14783             : 
   14784             : #undef CK_ENABLED
   14785             : 
   14786             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14787             : 
   14788             : #define RK_ENABLED 1
   14789             : 
   14790             : #if RK5_ENABLED
   14791             :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTUB_RK5
   14792             :         use pm_kind, only: RKC => RK5
   14793             : #include "pm_matrixMulTri@routines.inc.F90"
   14794             :     end procedure
   14795             : #endif
   14796             : 
   14797             : #if RK4_ENABLED
   14798         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTUB_RK4
   14799             :         use pm_kind, only: RKC => RK4
   14800             : #include "pm_matrixMulTri@routines.inc.F90"
   14801             :     end procedure
   14802             : #endif
   14803             : 
   14804             : #if RK3_ENABLED
   14805         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTUB_RK3
   14806             :         use pm_kind, only: RKC => RK3
   14807             : #include "pm_matrixMulTri@routines.inc.F90"
   14808             :     end procedure
   14809             : #endif
   14810             : 
   14811             : #if RK2_ENABLED
   14812         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTUB_RK2
   14813             :         use pm_kind, only: RKC => RK2
   14814             : #define DISPATCH_ENABLED 1
   14815             : #include "pm_matrixMulTri@routines.inc.F90"
   14816             : #undef  DISPATCH_ENABLED
   14817             :     end procedure
   14818             : #endif
   14819             : 
   14820             : #if RK1_ENABLED
   14821         100 :     module procedure trsm_EXP_CGMA_ONOA_CUDB_OTUB_RK1
   14822             :         use pm_kind, only: RKC => RK1
   14823             : #define DISPATCH_ENABLED 1
   14824             : #include "pm_matrixMulTri@routines.inc.F90"
   14825             : #undef  DISPATCH_ENABLED
   14826             :     end procedure
   14827             : #endif
   14828             : 
   14829             : #undef RK_ENABLED
   14830             : 
   14831             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14832             : 
   14833             : #undef OTUB_ENABLED
   14834             : 
   14835             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14836             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14837             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14838             : 
   14839             : #undef CUDB_ENABLED
   14840             : 
   14841             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14842             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14843             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14844             : 
   14845             : #define CLUB_ENABLED 1
   14846             : 
   14847             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14848             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14849             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14850             : 
   14851             : #define INVB_ENABLED 1
   14852             : 
   14853             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14854             : 
   14855             : #define CK_ENABLED 1
   14856             : 
   14857             : #if CK5_ENABLED
   14858             :     module procedure trsm_EXP_CGMA_ONOA_CLUB_INVB_CK5
   14859             :         use pm_kind, only: CKC => CK5
   14860             : #include "pm_matrixMulTri@routines.inc.F90"
   14861             :     end procedure
   14862             : #endif
   14863             : 
   14864             : #if CK4_ENABLED
   14865         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_INVB_CK4
   14866             :         use pm_kind, only: CKC => CK4
   14867             : #include "pm_matrixMulTri@routines.inc.F90"
   14868             :     end procedure
   14869             : #endif
   14870             : 
   14871             : #if CK3_ENABLED
   14872         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_INVB_CK3
   14873             :         use pm_kind, only: CKC => CK3
   14874             : #include "pm_matrixMulTri@routines.inc.F90"
   14875             :     end procedure
   14876             : #endif
   14877             : 
   14878             : #if CK2_ENABLED
   14879         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_INVB_CK2
   14880             :         use pm_kind, only: CKC => CK2
   14881             : #define DISPATCH_ENABLED 1
   14882             : #include "pm_matrixMulTri@routines.inc.F90"
   14883             : #undef  DISPATCH_ENABLED
   14884             :     end procedure
   14885             : #endif
   14886             : 
   14887             : #if CK1_ENABLED
   14888         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_INVB_CK1
   14889             :         use pm_kind, only: CKC => CK1
   14890             : #define DISPATCH_ENABLED 1
   14891             : #include "pm_matrixMulTri@routines.inc.F90"
   14892             : #undef  DISPATCH_ENABLED
   14893             :     end procedure
   14894             : #endif
   14895             : 
   14896             : #undef CK_ENABLED
   14897             : 
   14898             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14899             : 
   14900             : #define RK_ENABLED 1
   14901             : 
   14902             : #if RK5_ENABLED
   14903             :     module procedure trsm_EXP_CGMA_ONOA_CLUB_INVB_RK5
   14904             :         use pm_kind, only: RKC => RK5
   14905             : #include "pm_matrixMulTri@routines.inc.F90"
   14906             :     end procedure
   14907             : #endif
   14908             : 
   14909             : #if RK4_ENABLED
   14910         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_INVB_RK4
   14911             :         use pm_kind, only: RKC => RK4
   14912             : #include "pm_matrixMulTri@routines.inc.F90"
   14913             :     end procedure
   14914             : #endif
   14915             : 
   14916             : #if RK3_ENABLED
   14917         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_INVB_RK3
   14918             :         use pm_kind, only: RKC => RK3
   14919             : #include "pm_matrixMulTri@routines.inc.F90"
   14920             :     end procedure
   14921             : #endif
   14922             : 
   14923             : #if RK2_ENABLED
   14924         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_INVB_RK2
   14925             :         use pm_kind, only: RKC => RK2
   14926             : #define DISPATCH_ENABLED 1
   14927             : #include "pm_matrixMulTri@routines.inc.F90"
   14928             : #undef  DISPATCH_ENABLED
   14929             :     end procedure
   14930             : #endif
   14931             : 
   14932             : #if RK1_ENABLED
   14933         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_INVB_RK1
   14934             :         use pm_kind, only: RKC => RK1
   14935             : #define DISPATCH_ENABLED 1
   14936             : #include "pm_matrixMulTri@routines.inc.F90"
   14937             : #undef  DISPATCH_ENABLED
   14938             :     end procedure
   14939             : #endif
   14940             : 
   14941             : #undef RK_ENABLED
   14942             : 
   14943             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14944             : 
   14945             : #undef INVB_ENABLED
   14946             : 
   14947             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14948             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14949             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14950             : 
   14951             : #define OTOB_ENABLED 1
   14952             : 
   14953             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14954             : 
   14955             : #define CK_ENABLED 1
   14956             : 
   14957             : #if CK5_ENABLED
   14958             :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTOB_CK5
   14959             :         use pm_kind, only: CKC => CK5
   14960             : #include "pm_matrixMulTri@routines.inc.F90"
   14961             :     end procedure
   14962             : #endif
   14963             : 
   14964             : #if CK4_ENABLED
   14965         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTOB_CK4
   14966             :         use pm_kind, only: CKC => CK4
   14967             : #include "pm_matrixMulTri@routines.inc.F90"
   14968             :     end procedure
   14969             : #endif
   14970             : 
   14971             : #if CK3_ENABLED
   14972         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTOB_CK3
   14973             :         use pm_kind, only: CKC => CK3
   14974             : #include "pm_matrixMulTri@routines.inc.F90"
   14975             :     end procedure
   14976             : #endif
   14977             : 
   14978             : #if CK2_ENABLED
   14979         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTOB_CK2
   14980             :         use pm_kind, only: CKC => CK2
   14981             : #define DISPATCH_ENABLED 1
   14982             : #include "pm_matrixMulTri@routines.inc.F90"
   14983             : #undef  DISPATCH_ENABLED
   14984             :     end procedure
   14985             : #endif
   14986             : 
   14987             : #if CK1_ENABLED
   14988         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTOB_CK1
   14989             :         use pm_kind, only: CKC => CK1
   14990             : #define DISPATCH_ENABLED 1
   14991             : #include "pm_matrixMulTri@routines.inc.F90"
   14992             : #undef  DISPATCH_ENABLED
   14993             :     end procedure
   14994             : #endif
   14995             : 
   14996             : #undef CK_ENABLED
   14997             : 
   14998             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14999             : 
   15000             : #define RK_ENABLED 1
   15001             : 
   15002             : #if RK5_ENABLED
   15003             :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTOB_RK5
   15004             :         use pm_kind, only: RKC => RK5
   15005             : #include "pm_matrixMulTri@routines.inc.F90"
   15006             :     end procedure
   15007             : #endif
   15008             : 
   15009             : #if RK4_ENABLED
   15010         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTOB_RK4
   15011             :         use pm_kind, only: RKC => RK4
   15012             : #include "pm_matrixMulTri@routines.inc.F90"
   15013             :     end procedure
   15014             : #endif
   15015             : 
   15016             : #if RK3_ENABLED
   15017         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTOB_RK3
   15018             :         use pm_kind, only: RKC => RK3
   15019             : #include "pm_matrixMulTri@routines.inc.F90"
   15020             :     end procedure
   15021             : #endif
   15022             : 
   15023             : #if RK2_ENABLED
   15024         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTOB_RK2
   15025             :         use pm_kind, only: RKC => RK2
   15026             : #define DISPATCH_ENABLED 1
   15027             : #include "pm_matrixMulTri@routines.inc.F90"
   15028             : #undef  DISPATCH_ENABLED
   15029             :     end procedure
   15030             : #endif
   15031             : 
   15032             : #if RK1_ENABLED
   15033         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTOB_RK1
   15034             :         use pm_kind, only: RKC => RK1
   15035             : #define DISPATCH_ENABLED 1
   15036             : #include "pm_matrixMulTri@routines.inc.F90"
   15037             : #undef  DISPATCH_ENABLED
   15038             :     end procedure
   15039             : #endif
   15040             : 
   15041             : #undef RK_ENABLED
   15042             : 
   15043             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15044             : 
   15045             : #undef OTOB_ENABLED
   15046             : 
   15047             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15048             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15049             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15050             : 
   15051             : #define OTUB_ENABLED 1
   15052             : 
   15053             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15054             : 
   15055             : #define CK_ENABLED 1
   15056             : 
   15057             : #if CK5_ENABLED
   15058             :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTUB_CK5
   15059             :         use pm_kind, only: CKC => CK5
   15060             : #include "pm_matrixMulTri@routines.inc.F90"
   15061             :     end procedure
   15062             : #endif
   15063             : 
   15064             : #if CK4_ENABLED
   15065         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTUB_CK4
   15066             :         use pm_kind, only: CKC => CK4
   15067             : #include "pm_matrixMulTri@routines.inc.F90"
   15068             :     end procedure
   15069             : #endif
   15070             : 
   15071             : #if CK3_ENABLED
   15072         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTUB_CK3
   15073             :         use pm_kind, only: CKC => CK3
   15074             : #include "pm_matrixMulTri@routines.inc.F90"
   15075             :     end procedure
   15076             : #endif
   15077             : 
   15078             : #if CK2_ENABLED
   15079         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTUB_CK2
   15080             :         use pm_kind, only: CKC => CK2
   15081             : #define DISPATCH_ENABLED 1
   15082             : #include "pm_matrixMulTri@routines.inc.F90"
   15083             : #undef  DISPATCH_ENABLED
   15084             :     end procedure
   15085             : #endif
   15086             : 
   15087             : #if CK1_ENABLED
   15088         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTUB_CK1
   15089             :         use pm_kind, only: CKC => CK1
   15090             : #define DISPATCH_ENABLED 1
   15091             : #include "pm_matrixMulTri@routines.inc.F90"
   15092             : #undef  DISPATCH_ENABLED
   15093             :     end procedure
   15094             : #endif
   15095             : 
   15096             : #undef CK_ENABLED
   15097             : 
   15098             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15099             : 
   15100             : #define RK_ENABLED 1
   15101             : 
   15102             : #if RK5_ENABLED
   15103             :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTUB_RK5
   15104             :         use pm_kind, only: RKC => RK5
   15105             : #include "pm_matrixMulTri@routines.inc.F90"
   15106             :     end procedure
   15107             : #endif
   15108             : 
   15109             : #if RK4_ENABLED
   15110         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTUB_RK4
   15111             :         use pm_kind, only: RKC => RK4
   15112             : #include "pm_matrixMulTri@routines.inc.F90"
   15113             :     end procedure
   15114             : #endif
   15115             : 
   15116             : #if RK3_ENABLED
   15117         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTUB_RK3
   15118             :         use pm_kind, only: RKC => RK3
   15119             : #include "pm_matrixMulTri@routines.inc.F90"
   15120             :     end procedure
   15121             : #endif
   15122             : 
   15123             : #if RK2_ENABLED
   15124         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTUB_RK2
   15125             :         use pm_kind, only: RKC => RK2
   15126             : #define DISPATCH_ENABLED 1
   15127             : #include "pm_matrixMulTri@routines.inc.F90"
   15128             : #undef  DISPATCH_ENABLED
   15129             :     end procedure
   15130             : #endif
   15131             : 
   15132             : #if RK1_ENABLED
   15133         100 :     module procedure trsm_EXP_CGMA_ONOA_CLUB_OTUB_RK1
   15134             :         use pm_kind, only: RKC => RK1
   15135             : #define DISPATCH_ENABLED 1
   15136             : #include "pm_matrixMulTri@routines.inc.F90"
   15137             : #undef  DISPATCH_ENABLED
   15138             :     end procedure
   15139             : #endif
   15140             : 
   15141             : #undef RK_ENABLED
   15142             : 
   15143             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15144             : 
   15145             : #undef OTUB_ENABLED
   15146             : 
   15147             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15148             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15149             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15150             : 
   15151             : #undef CLUB_ENABLED
   15152             : 
   15153             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15154             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15155             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15156             : 
   15157             : #define CUUB_ENABLED 1
   15158             : 
   15159             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15160             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15161             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15162             : 
   15163             : #define INVB_ENABLED 1
   15164             : 
   15165             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15166             : 
   15167             : #define CK_ENABLED 1
   15168             : 
   15169             : #if CK5_ENABLED
   15170             :     module procedure trsm_EXP_CGMA_ONOA_CUUB_INVB_CK5
   15171             :         use pm_kind, only: CKC => CK5
   15172             : #include "pm_matrixMulTri@routines.inc.F90"
   15173             :     end procedure
   15174             : #endif
   15175             : 
   15176             : #if CK4_ENABLED
   15177         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_INVB_CK4
   15178             :         use pm_kind, only: CKC => CK4
   15179             : #include "pm_matrixMulTri@routines.inc.F90"
   15180             :     end procedure
   15181             : #endif
   15182             : 
   15183             : #if CK3_ENABLED
   15184         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_INVB_CK3
   15185             :         use pm_kind, only: CKC => CK3
   15186             : #include "pm_matrixMulTri@routines.inc.F90"
   15187             :     end procedure
   15188             : #endif
   15189             : 
   15190             : #if CK2_ENABLED
   15191         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_INVB_CK2
   15192             :         use pm_kind, only: CKC => CK2
   15193             : #define DISPATCH_ENABLED 1
   15194             : #include "pm_matrixMulTri@routines.inc.F90"
   15195             : #undef  DISPATCH_ENABLED
   15196             :     end procedure
   15197             : #endif
   15198             : 
   15199             : #if CK1_ENABLED
   15200         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_INVB_CK1
   15201             :         use pm_kind, only: CKC => CK1
   15202             : #define DISPATCH_ENABLED 1
   15203             : #include "pm_matrixMulTri@routines.inc.F90"
   15204             : #undef  DISPATCH_ENABLED
   15205             :     end procedure
   15206             : #endif
   15207             : 
   15208             : #undef CK_ENABLED
   15209             : 
   15210             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15211             : 
   15212             : #define RK_ENABLED 1
   15213             : 
   15214             : #if RK5_ENABLED
   15215             :     module procedure trsm_EXP_CGMA_ONOA_CUUB_INVB_RK5
   15216             :         use pm_kind, only: RKC => RK5
   15217             : #include "pm_matrixMulTri@routines.inc.F90"
   15218             :     end procedure
   15219             : #endif
   15220             : 
   15221             : #if RK4_ENABLED
   15222         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_INVB_RK4
   15223             :         use pm_kind, only: RKC => RK4
   15224             : #include "pm_matrixMulTri@routines.inc.F90"
   15225             :     end procedure
   15226             : #endif
   15227             : 
   15228             : #if RK3_ENABLED
   15229         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_INVB_RK3
   15230             :         use pm_kind, only: RKC => RK3
   15231             : #include "pm_matrixMulTri@routines.inc.F90"
   15232             :     end procedure
   15233             : #endif
   15234             : 
   15235             : #if RK2_ENABLED
   15236         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_INVB_RK2
   15237             :         use pm_kind, only: RKC => RK2
   15238             : #define DISPATCH_ENABLED 1
   15239             : #include "pm_matrixMulTri@routines.inc.F90"
   15240             : #undef  DISPATCH_ENABLED
   15241             :     end procedure
   15242             : #endif
   15243             : 
   15244             : #if RK1_ENABLED
   15245         101 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_INVB_RK1
   15246             :         use pm_kind, only: RKC => RK1
   15247             : #define DISPATCH_ENABLED 1
   15248             : #include "pm_matrixMulTri@routines.inc.F90"
   15249             : #undef  DISPATCH_ENABLED
   15250             :     end procedure
   15251             : #endif
   15252             : 
   15253             : #undef RK_ENABLED
   15254             : 
   15255             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15256             : 
   15257             : #undef INVB_ENABLED
   15258             : 
   15259             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15260             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15261             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15262             : 
   15263             : #define OTOB_ENABLED 1
   15264             : 
   15265             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15266             : 
   15267             : #define CK_ENABLED 1
   15268             : 
   15269             : #if CK5_ENABLED
   15270             :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTOB_CK5
   15271             :         use pm_kind, only: CKC => CK5
   15272             : #include "pm_matrixMulTri@routines.inc.F90"
   15273             :     end procedure
   15274             : #endif
   15275             : 
   15276             : #if CK4_ENABLED
   15277         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTOB_CK4
   15278             :         use pm_kind, only: CKC => CK4
   15279             : #include "pm_matrixMulTri@routines.inc.F90"
   15280             :     end procedure
   15281             : #endif
   15282             : 
   15283             : #if CK3_ENABLED
   15284         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTOB_CK3
   15285             :         use pm_kind, only: CKC => CK3
   15286             : #include "pm_matrixMulTri@routines.inc.F90"
   15287             :     end procedure
   15288             : #endif
   15289             : 
   15290             : #if CK2_ENABLED
   15291         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTOB_CK2
   15292             :         use pm_kind, only: CKC => CK2
   15293             : #define DISPATCH_ENABLED 1
   15294             : #include "pm_matrixMulTri@routines.inc.F90"
   15295             : #undef  DISPATCH_ENABLED
   15296             :     end procedure
   15297             : #endif
   15298             : 
   15299             : #if CK1_ENABLED
   15300         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTOB_CK1
   15301             :         use pm_kind, only: CKC => CK1
   15302             : #define DISPATCH_ENABLED 1
   15303             : #include "pm_matrixMulTri@routines.inc.F90"
   15304             : #undef  DISPATCH_ENABLED
   15305             :     end procedure
   15306             : #endif
   15307             : 
   15308             : #undef CK_ENABLED
   15309             : 
   15310             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15311             : 
   15312             : #define RK_ENABLED 1
   15313             : 
   15314             : #if RK5_ENABLED
   15315             :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTOB_RK5
   15316             :         use pm_kind, only: RKC => RK5
   15317             : #include "pm_matrixMulTri@routines.inc.F90"
   15318             :     end procedure
   15319             : #endif
   15320             : 
   15321             : #if RK4_ENABLED
   15322         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTOB_RK4
   15323             :         use pm_kind, only: RKC => RK4
   15324             : #include "pm_matrixMulTri@routines.inc.F90"
   15325             :     end procedure
   15326             : #endif
   15327             : 
   15328             : #if RK3_ENABLED
   15329         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTOB_RK3
   15330             :         use pm_kind, only: RKC => RK3
   15331             : #include "pm_matrixMulTri@routines.inc.F90"
   15332             :     end procedure
   15333             : #endif
   15334             : 
   15335             : #if RK2_ENABLED
   15336         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTOB_RK2
   15337             :         use pm_kind, only: RKC => RK2
   15338             : #define DISPATCH_ENABLED 1
   15339             : #include "pm_matrixMulTri@routines.inc.F90"
   15340             : #undef  DISPATCH_ENABLED
   15341             :     end procedure
   15342             : #endif
   15343             : 
   15344             : #if RK1_ENABLED
   15345         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTOB_RK1
   15346             :         use pm_kind, only: RKC => RK1
   15347             : #define DISPATCH_ENABLED 1
   15348             : #include "pm_matrixMulTri@routines.inc.F90"
   15349             : #undef  DISPATCH_ENABLED
   15350             :     end procedure
   15351             : #endif
   15352             : 
   15353             : #undef RK_ENABLED
   15354             : 
   15355             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15356             : 
   15357             : #undef OTOB_ENABLED
   15358             : 
   15359             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15360             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15361             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15362             : 
   15363             : #define OTUB_ENABLED 1
   15364             : 
   15365             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15366             : 
   15367             : #define CK_ENABLED 1
   15368             : 
   15369             : #if CK5_ENABLED
   15370             :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTUB_CK5
   15371             :         use pm_kind, only: CKC => CK5
   15372             : #include "pm_matrixMulTri@routines.inc.F90"
   15373             :     end procedure
   15374             : #endif
   15375             : 
   15376             : #if CK4_ENABLED
   15377         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTUB_CK4
   15378             :         use pm_kind, only: CKC => CK4
   15379             : #include "pm_matrixMulTri@routines.inc.F90"
   15380             :     end procedure
   15381             : #endif
   15382             : 
   15383             : #if CK3_ENABLED
   15384         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTUB_CK3
   15385             :         use pm_kind, only: CKC => CK3
   15386             : #include "pm_matrixMulTri@routines.inc.F90"
   15387             :     end procedure
   15388             : #endif
   15389             : 
   15390             : #if CK2_ENABLED
   15391         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTUB_CK2
   15392             :         use pm_kind, only: CKC => CK2
   15393             : #define DISPATCH_ENABLED 1
   15394             : #include "pm_matrixMulTri@routines.inc.F90"
   15395             : #undef  DISPATCH_ENABLED
   15396             :     end procedure
   15397             : #endif
   15398             : 
   15399             : #if CK1_ENABLED
   15400         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTUB_CK1
   15401             :         use pm_kind, only: CKC => CK1
   15402             : #define DISPATCH_ENABLED 1
   15403             : #include "pm_matrixMulTri@routines.inc.F90"
   15404             : #undef  DISPATCH_ENABLED
   15405             :     end procedure
   15406             : #endif
   15407             : 
   15408             : #undef CK_ENABLED
   15409             : 
   15410             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15411             : 
   15412             : #define RK_ENABLED 1
   15413             : 
   15414             : #if RK5_ENABLED
   15415             :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTUB_RK5
   15416             :         use pm_kind, only: RKC => RK5
   15417             : #include "pm_matrixMulTri@routines.inc.F90"
   15418             :     end procedure
   15419             : #endif
   15420             : 
   15421             : #if RK4_ENABLED
   15422         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTUB_RK4
   15423             :         use pm_kind, only: RKC => RK4
   15424             : #include "pm_matrixMulTri@routines.inc.F90"
   15425             :     end procedure
   15426             : #endif
   15427             : 
   15428             : #if RK3_ENABLED
   15429         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTUB_RK3
   15430             :         use pm_kind, only: RKC => RK3
   15431             : #include "pm_matrixMulTri@routines.inc.F90"
   15432             :     end procedure
   15433             : #endif
   15434             : 
   15435             : #if RK2_ENABLED
   15436         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTUB_RK2
   15437             :         use pm_kind, only: RKC => RK2
   15438             : #define DISPATCH_ENABLED 1
   15439             : #include "pm_matrixMulTri@routines.inc.F90"
   15440             : #undef  DISPATCH_ENABLED
   15441             :     end procedure
   15442             : #endif
   15443             : 
   15444             : #if RK1_ENABLED
   15445         100 :     module procedure trsm_EXP_CGMA_ONOA_CUUB_OTUB_RK1
   15446             :         use pm_kind, only: RKC => RK1
   15447             : #define DISPATCH_ENABLED 1
   15448             : #include "pm_matrixMulTri@routines.inc.F90"
   15449             : #undef  DISPATCH_ENABLED
   15450             :     end procedure
   15451             : #endif
   15452             : 
   15453             : #undef RK_ENABLED
   15454             : 
   15455             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15456             : 
   15457             : #undef OTUB_ENABLED
   15458             : 
   15459             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15460             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15461             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15462             : 
   15463             : #undef CUUB_ENABLED
   15464             : 
   15465             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15466             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15467             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15468             : 
   15469             : #undef ONOA_ENABLED
   15470             : 
   15471             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15472             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15473             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15474             : 
   15475             : #undef CGMA_ENABLED
   15476             : 
   15477             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15478             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15479             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15480             : 
   15481             : #undef EXP_ENABLED
   15482             : 
   15483             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15484             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15485             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15486             : 
   15487             : #undef trsm_ENABLED
   15488             : 
   15489             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15490             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15491             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15492             : 
   15493             : #undef setMatMulTri_ENABLED
   15494             : 
   15495             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15496             : 
   15497             : #undef CHECK_ASSERTION
   15498             : 
   15499             : end submodule routines

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