https://www.cdslab.org/paramonte/fortran/2
Current view: top level - main - pm_arrayRank@routines.F90 (source / functions) Hit Total Coverage
Test: ParaMonte 2.0.0 :: Serial Fortran - Code Coverage Report Lines: 643 672 95.7 %
Date: 2024-04-08 03:18:57 Functions: 402 420 95.7 %
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_arrayRankFrac](@ref pm_arrayRankFrac).
      19             : !>
      20             : !>  \finmain
      21             : !>
      22             : !>  \author
      23             : !>  \AmirShahmoradi, April 21, 2017, 1:54 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
      24             : 
      25             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      26             : 
      27             : submodule (pm_arrayRank) routines ! LCOV_EXCL_LINE
      28             : 
      29             : #if CHECK_ENABLED
      30             :     use pm_err, only: getFine
      31             :     use pm_val2str, only: getStr
      32             :     use pm_err, only: setAsserted
      33             : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
      34             : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
      35             : #else
      36             : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) continue;
      37             : #endif
      38             : 
      39             :     use pm_arraySort, only: setSorted
      40             :     implicit none
      41             : 
      42             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      43             : 
      44             : contains
      45             : 
      46             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      47             : 
      48             : #define getRank_ENABLED 1
      49             : 
      50             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      51             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      52             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      53             : 
      54             : #define Dense_ENABLED 1
      55             : 
      56             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      57             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      58             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      59             : 
      60             : #define DefCom_ENABLED 1
      61             : 
      62             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      63             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      64             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      65             : 
      66             : #define D0_ENABLED 1
      67             : 
      68             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      69             : 
      70             : #define SK_ENABLED 1
      71             : 
      72             : #if SK5_ENABLED
      73             :     module procedure getRankDenseDefCom_D0_SK5
      74             :         use pm_kind, only: SKC => SK5
      75             : #include "pm_arrayRank@routines.inc.F90"
      76             :     end procedure
      77             : #endif
      78             : 
      79             : #if SK4_ENABLED
      80             :     module procedure getRankDenseDefCom_D0_SK4
      81             :         use pm_kind, only: SKC => SK4
      82             : #include "pm_arrayRank@routines.inc.F90"
      83             :     end procedure
      84             : #endif
      85             : 
      86             : #if SK3_ENABLED
      87             :     module procedure getRankDenseDefCom_D0_SK3
      88             :         use pm_kind, only: SKC => SK3
      89             : #include "pm_arrayRank@routines.inc.F90"
      90             :     end procedure
      91             : #endif
      92             : 
      93             : #if SK2_ENABLED
      94             :     module procedure getRankDenseDefCom_D0_SK2
      95             :         use pm_kind, only: SKC => SK2
      96             : #include "pm_arrayRank@routines.inc.F90"
      97             :     end procedure
      98             : #endif
      99             : 
     100             : #if SK1_ENABLED
     101         104 :     module procedure getRankDenseDefCom_D0_SK1
     102             :         use pm_kind, only: SKC => SK1
     103             : #include "pm_arrayRank@routines.inc.F90"
     104         104 :     end procedure
     105             : #endif
     106             : 
     107             : #undef SK_ENABLED
     108             : 
     109             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     110             : 
     111             : #undef D0_ENABLED
     112             : 
     113             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     114             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     115             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     116             : 
     117             : #define D1_ENABLED 1
     118             : 
     119             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     120             : 
     121             : #define SK_ENABLED 1
     122             : 
     123             : #if SK5_ENABLED
     124             :     module procedure getRankDenseDefCom_D1_SK5
     125             :         use pm_kind, only: SKC => SK5
     126             : #include "pm_arrayRank@routines.inc.F90"
     127             :     end procedure
     128             : #endif
     129             : 
     130             : #if SK4_ENABLED
     131             :     module procedure getRankDenseDefCom_D1_SK4
     132             :         use pm_kind, only: SKC => SK4
     133             : #include "pm_arrayRank@routines.inc.F90"
     134             :     end procedure
     135             : #endif
     136             : 
     137             : #if SK3_ENABLED
     138             :     module procedure getRankDenseDefCom_D1_SK3
     139             :         use pm_kind, only: SKC => SK3
     140             : #include "pm_arrayRank@routines.inc.F90"
     141             :     end procedure
     142             : #endif
     143             : 
     144             : #if SK2_ENABLED
     145             :     module procedure getRankDenseDefCom_D1_SK2
     146             :         use pm_kind, only: SKC => SK2
     147             : #include "pm_arrayRank@routines.inc.F90"
     148             :     end procedure
     149             : #endif
     150             : 
     151             : #if SK1_ENABLED
     152         104 :     module procedure getRankDenseDefCom_D1_SK1
     153             :         use pm_kind, only: SKC => SK1
     154             : #include "pm_arrayRank@routines.inc.F90"
     155         104 :     end procedure
     156             : #endif
     157             : 
     158             : #undef SK_ENABLED
     159             : 
     160             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     161             : 
     162             : #define IK_ENABLED 1
     163             : 
     164             : #if IK5_ENABLED
     165         103 :     module procedure getRankDenseDefCom_D1_IK5
     166             :         use pm_kind, only: IKC => IK5
     167             : #include "pm_arrayRank@routines.inc.F90"
     168         103 :     end procedure
     169             : #endif
     170             : 
     171             : #if IK4_ENABLED
     172         103 :     module procedure getRankDenseDefCom_D1_IK4
     173             :         use pm_kind, only: IKC => IK4
     174             : #include "pm_arrayRank@routines.inc.F90"
     175         103 :     end procedure
     176             : #endif
     177             : 
     178             : #if IK3_ENABLED
     179         105 :     module procedure getRankDenseDefCom_D1_IK3
     180             :         use pm_kind, only: IKC => IK3
     181             : #include "pm_arrayRank@routines.inc.F90"
     182         105 :     end procedure
     183             : #endif
     184             : 
     185             : #if IK2_ENABLED
     186         103 :     module procedure getRankDenseDefCom_D1_IK2
     187             :         use pm_kind, only: IKC => IK2
     188             : #include "pm_arrayRank@routines.inc.F90"
     189         103 :     end procedure
     190             : #endif
     191             : 
     192             : #if IK1_ENABLED
     193         103 :     module procedure getRankDenseDefCom_D1_IK1
     194             :         use pm_kind, only: IKC => IK1
     195             : #include "pm_arrayRank@routines.inc.F90"
     196         103 :     end procedure
     197             : #endif
     198             : 
     199             : #undef IK_ENABLED
     200             : 
     201             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     202             : 
     203             : #define LK_ENABLED 1
     204             : 
     205             : #if LK5_ENABLED
     206         103 :     module procedure getRankDenseDefCom_D1_LK5
     207             :         use pm_kind, only: LKC => LK5
     208             : #include "pm_arrayRank@routines.inc.F90"
     209         103 :     end procedure
     210             : #endif
     211             : 
     212             : #if LK4_ENABLED
     213         103 :     module procedure getRankDenseDefCom_D1_LK4
     214             :         use pm_kind, only: LKC => LK4
     215             : #include "pm_arrayRank@routines.inc.F90"
     216         103 :     end procedure
     217             : #endif
     218             : 
     219             : #if LK3_ENABLED
     220         104 :     module procedure getRankDenseDefCom_D1_LK3
     221             :         use pm_kind, only: LKC => LK3
     222             : #include "pm_arrayRank@routines.inc.F90"
     223         104 :     end procedure
     224             : #endif
     225             : 
     226             : #if LK2_ENABLED
     227         103 :     module procedure getRankDenseDefCom_D1_LK2
     228             :         use pm_kind, only: LKC => LK2
     229             : #include "pm_arrayRank@routines.inc.F90"
     230         103 :     end procedure
     231             : #endif
     232             : 
     233             : #if LK1_ENABLED
     234         103 :     module procedure getRankDenseDefCom_D1_LK1
     235             :         use pm_kind, only: LKC => LK1
     236             : #include "pm_arrayRank@routines.inc.F90"
     237         103 :     end procedure
     238             : #endif
     239             : 
     240             : #undef LK_ENABLED
     241             : 
     242             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     243             : 
     244             : #define CK_ENABLED 1
     245             : 
     246             : #if CK5_ENABLED
     247             :     module procedure getRankDenseDefCom_D1_CK5
     248             :         use pm_kind, only: CKC => CK5
     249             : #include "pm_arrayRank@routines.inc.F90"
     250             :     end procedure
     251             : #endif
     252             : 
     253             : #if CK4_ENABLED
     254         103 :     module procedure getRankDenseDefCom_D1_CK4
     255             :         use pm_kind, only: CKC => CK4
     256             : #include "pm_arrayRank@routines.inc.F90"
     257         103 :     end procedure
     258             : #endif
     259             : 
     260             : #if CK3_ENABLED
     261         103 :     module procedure getRankDenseDefCom_D1_CK3
     262             :         use pm_kind, only: CKC => CK3
     263             : #include "pm_arrayRank@routines.inc.F90"
     264         103 :     end procedure
     265             : #endif
     266             : 
     267             : #if CK2_ENABLED
     268         103 :     module procedure getRankDenseDefCom_D1_CK2
     269             :         use pm_kind, only: CKC => CK2
     270             : #include "pm_arrayRank@routines.inc.F90"
     271         103 :     end procedure
     272             : #endif
     273             : 
     274             : #if CK1_ENABLED
     275         103 :     module procedure getRankDenseDefCom_D1_CK1
     276             :         use pm_kind, only: CKC => CK1
     277             : #include "pm_arrayRank@routines.inc.F90"
     278         103 :     end procedure
     279             : #endif
     280             : 
     281             : #undef CK_ENABLED
     282             : 
     283             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     284             : 
     285             : #define RK_ENABLED 1
     286             : 
     287             : #if RK5_ENABLED
     288             :     module procedure getRankDenseDefCom_D1_RK5
     289             :         use pm_kind, only: RKC => RK5
     290             : #include "pm_arrayRank@routines.inc.F90"
     291             :     end procedure
     292             : #endif
     293             : 
     294             : #if RK4_ENABLED
     295         115 :     module procedure getRankDenseDefCom_D1_RK4
     296             :         use pm_kind, only: RKC => RK4
     297             : #include "pm_arrayRank@routines.inc.F90"
     298         115 :     end procedure
     299             : #endif
     300             : 
     301             : #if RK3_ENABLED
     302         103 :     module procedure getRankDenseDefCom_D1_RK3
     303             :         use pm_kind, only: RKC => RK3
     304             : #include "pm_arrayRank@routines.inc.F90"
     305         103 :     end procedure
     306             : #endif
     307             : 
     308             : #if RK2_ENABLED
     309         104 :     module procedure getRankDenseDefCom_D1_RK2
     310             :         use pm_kind, only: RKC => RK2
     311             : #include "pm_arrayRank@routines.inc.F90"
     312         104 :     end procedure
     313             : #endif
     314             : 
     315             : #if RK1_ENABLED
     316         104 :     module procedure getRankDenseDefCom_D1_RK1
     317             :         use pm_kind, only: RKC => RK1
     318             : #include "pm_arrayRank@routines.inc.F90"
     319         104 :     end procedure
     320             : #endif
     321             : 
     322             : #undef RK_ENABLED
     323             : 
     324             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     325             : 
     326             : #if !__GFORTRAN__
     327             : #define PSSK_ENABLED 1
     328             : 
     329             : #if SK5_ENABLED
     330             :     module procedure getRankDenseDefCom_D1_PSSK5
     331             :         use pm_kind, only: SKC => SK5
     332             :         use pm_container, only: css_pdt
     333             : #include "pm_arrayRank@routines.inc.F90"
     334             :     end procedure
     335             : #endif
     336             : 
     337             : #if SK4_ENABLED
     338             :     module procedure getRankDenseDefCom_D1_PSSK4
     339             :         use pm_kind, only: SKC => SK4
     340             :         use pm_container, only: css_pdt
     341             : #include "pm_arrayRank@routines.inc.F90"
     342             :     end procedure
     343             : #endif
     344             : 
     345             : #if SK3_ENABLED
     346             :     module procedure getRankDenseDefCom_D1_PSSK3
     347             :         use pm_kind, only: SKC => SK3
     348             :         use pm_container, only: css_pdt
     349             : #include "pm_arrayRank@routines.inc.F90"
     350             :     end procedure
     351             : #endif
     352             : 
     353             : #if SK2_ENABLED
     354             :     module procedure getRankDenseDefCom_D1_PSSK2
     355             :         use pm_kind, only: SKC => SK2
     356             :         use pm_container, only: css_pdt
     357             : #include "pm_arrayRank@routines.inc.F90"
     358             :     end procedure
     359             : #endif
     360             : 
     361             : #if SK1_ENABLED
     362             :     module procedure getRankDenseDefCom_D1_PSSK1
     363             :         use pm_kind, only: SKC => SK1
     364             :         use pm_container, only: css_pdt
     365             : #include "pm_arrayRank@routines.inc.F90"
     366             :     end procedure
     367             : #endif
     368             : 
     369             : #undef PSSK_ENABLED
     370             : #endif
     371             : 
     372             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     373             : 
     374             : #define BSSK_ENABLED 1
     375             : 
     376           0 :     module procedure getRankDenseDefCom_D1_BSSK
     377             :         use pm_kind, only: SKC => SK
     378             :         use pm_container, only: css_type
     379             : #include "pm_arrayRank@routines.inc.F90"
     380           0 :     end procedure
     381             : 
     382             : #undef BSSK_ENABLED
     383             : 
     384             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     385             : 
     386             : #undef D1_ENABLED
     387             : 
     388             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     389             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     390             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     391             : 
     392             : #undef DefCom_ENABLED
     393             : 
     394             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     395             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     396             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     397             : 
     398             : #define CusCom_ENABLED 1
     399             : 
     400             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     401             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     402             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     403             : 
     404             : #define D0_ENABLED 1
     405             : 
     406             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     407             : 
     408             : #define SK_ENABLED 1
     409             : 
     410             : #if SK5_ENABLED
     411             :     module procedure getRankDenseCusCom_D0_SK5
     412             :         use pm_kind, only: SKC => SK5
     413             : #include "pm_arrayRank@routines.inc.F90"
     414             :     end procedure
     415             : #endif
     416             : 
     417             : #if SK4_ENABLED
     418             :     module procedure getRankDenseCusCom_D0_SK4
     419             :         use pm_kind, only: SKC => SK4
     420             : #include "pm_arrayRank@routines.inc.F90"
     421             :     end procedure
     422             : #endif
     423             : 
     424             : #if SK3_ENABLED
     425             :     module procedure getRankDenseCusCom_D0_SK3
     426             :         use pm_kind, only: SKC => SK3
     427             : #include "pm_arrayRank@routines.inc.F90"
     428             :     end procedure
     429             : #endif
     430             : 
     431             : #if SK2_ENABLED
     432             :     module procedure getRankDenseCusCom_D0_SK2
     433             :         use pm_kind, only: SKC => SK2
     434             : #include "pm_arrayRank@routines.inc.F90"
     435             :     end procedure
     436             : #endif
     437             : 
     438             : #if SK1_ENABLED
     439         105 :     module procedure getRankDenseCusCom_D0_SK1
     440             :         use pm_kind, only: SKC => SK1
     441             : #include "pm_arrayRank@routines.inc.F90"
     442         105 :     end procedure
     443             : #endif
     444             : 
     445             : #undef SK_ENABLED
     446             : 
     447             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     448             : 
     449             : #undef D0_ENABLED
     450             : 
     451             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     452             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     453             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     454             : 
     455             : #define D1_ENABLED 1
     456             : 
     457             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     458             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     459             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     460             : 
     461             : #define SK_ENABLED 1
     462             : 
     463             : #if SK5_ENABLED
     464             :     module procedure getRankDenseCusCom_D1_SK5
     465             :         use pm_kind, only: SKC => SK5
     466             : #include "pm_arrayRank@routines.inc.F90"
     467             :     end procedure
     468             : #endif
     469             : 
     470             : #if SK4_ENABLED
     471             :     module procedure getRankDenseCusCom_D1_SK4
     472             :         use pm_kind, only: SKC => SK4
     473             : #include "pm_arrayRank@routines.inc.F90"
     474             :     end procedure
     475             : #endif
     476             : 
     477             : #if SK3_ENABLED
     478             :     module procedure getRankDenseCusCom_D1_SK3
     479             :         use pm_kind, only: SKC => SK3
     480             : #include "pm_arrayRank@routines.inc.F90"
     481             :     end procedure
     482             : #endif
     483             : 
     484             : #if SK2_ENABLED
     485             :     module procedure getRankDenseCusCom_D1_SK2
     486             :         use pm_kind, only: SKC => SK2
     487             : #include "pm_arrayRank@routines.inc.F90"
     488             :     end procedure
     489             : #endif
     490             : 
     491             : #if SK1_ENABLED
     492         103 :     module procedure getRankDenseCusCom_D1_SK1
     493             :         use pm_kind, only: SKC => SK1
     494             : #include "pm_arrayRank@routines.inc.F90"
     495         103 :     end procedure
     496             : #endif
     497             : 
     498             : #undef SK_ENABLED
     499             : 
     500             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     501             : 
     502             : #define IK_ENABLED 1
     503             : 
     504             : #if IK5_ENABLED
     505         103 :     module procedure getRankDenseCusCom_D1_IK5
     506             :         use pm_kind, only: IKC => IK5
     507             : #include "pm_arrayRank@routines.inc.F90"
     508         103 :     end procedure
     509             : #endif
     510             : 
     511             : #if IK4_ENABLED
     512         103 :     module procedure getRankDenseCusCom_D1_IK4
     513             :         use pm_kind, only: IKC => IK4
     514             : #include "pm_arrayRank@routines.inc.F90"
     515         103 :     end procedure
     516             : #endif
     517             : 
     518             : #if IK3_ENABLED
     519         104 :     module procedure getRankDenseCusCom_D1_IK3
     520             :         use pm_kind, only: IKC => IK3
     521             : #include "pm_arrayRank@routines.inc.F90"
     522         104 :     end procedure
     523             : #endif
     524             : 
     525             : #if IK2_ENABLED
     526         103 :     module procedure getRankDenseCusCom_D1_IK2
     527             :         use pm_kind, only: IKC => IK2
     528             : #include "pm_arrayRank@routines.inc.F90"
     529         103 :     end procedure
     530             : #endif
     531             : 
     532             : #if IK1_ENABLED
     533         103 :     module procedure getRankDenseCusCom_D1_IK1
     534             :         use pm_kind, only: IKC => IK1
     535             : #include "pm_arrayRank@routines.inc.F90"
     536         103 :     end procedure
     537             : #endif
     538             : 
     539             : #undef IK_ENABLED
     540             : 
     541             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     542             : 
     543             : #define LK_ENABLED 1
     544             : 
     545             : #if LK5_ENABLED
     546         103 :     module procedure getRankDenseCusCom_D1_LK5
     547             :         use pm_kind, only: LKC => LK5
     548             : #include "pm_arrayRank@routines.inc.F90"
     549         103 :     end procedure
     550             : #endif
     551             : 
     552             : #if LK4_ENABLED
     553         103 :     module procedure getRankDenseCusCom_D1_LK4
     554             :         use pm_kind, only: LKC => LK4
     555             : #include "pm_arrayRank@routines.inc.F90"
     556         103 :     end procedure
     557             : #endif
     558             : 
     559             : #if LK3_ENABLED
     560         103 :     module procedure getRankDenseCusCom_D1_LK3
     561             :         use pm_kind, only: LKC => LK3
     562             : #include "pm_arrayRank@routines.inc.F90"
     563         103 :     end procedure
     564             : #endif
     565             : 
     566             : #if LK2_ENABLED
     567         103 :     module procedure getRankDenseCusCom_D1_LK2
     568             :         use pm_kind, only: LKC => LK2
     569             : #include "pm_arrayRank@routines.inc.F90"
     570         103 :     end procedure
     571             : #endif
     572             : 
     573             : #if LK1_ENABLED
     574         103 :     module procedure getRankDenseCusCom_D1_LK1
     575             :         use pm_kind, only: LKC => LK1
     576             : #include "pm_arrayRank@routines.inc.F90"
     577         103 :     end procedure
     578             : #endif
     579             : 
     580             : #undef LK_ENABLED
     581             : 
     582             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     583             : 
     584             : #define CK_ENABLED 1
     585             : 
     586             : #if CK5_ENABLED
     587             :     module procedure getRankDenseCusCom_D1_CK5
     588             :         use pm_kind, only: CKC => CK5
     589             : #include "pm_arrayRank@routines.inc.F90"
     590             :     end procedure
     591             : #endif
     592             : 
     593             : #if CK4_ENABLED
     594         103 :     module procedure getRankDenseCusCom_D1_CK4
     595             :         use pm_kind, only: CKC => CK4
     596             : #include "pm_arrayRank@routines.inc.F90"
     597         103 :     end procedure
     598             : #endif
     599             : 
     600             : #if CK3_ENABLED
     601         103 :     module procedure getRankDenseCusCom_D1_CK3
     602             :         use pm_kind, only: CKC => CK3
     603             : #include "pm_arrayRank@routines.inc.F90"
     604         103 :     end procedure
     605             : #endif
     606             : 
     607             : #if CK2_ENABLED
     608         103 :     module procedure getRankDenseCusCom_D1_CK2
     609             :         use pm_kind, only: CKC => CK2
     610             : #include "pm_arrayRank@routines.inc.F90"
     611         103 :     end procedure
     612             : #endif
     613             : 
     614             : #if CK1_ENABLED
     615         103 :     module procedure getRankDenseCusCom_D1_CK1
     616             :         use pm_kind, only: CKC => CK1
     617             : #include "pm_arrayRank@routines.inc.F90"
     618         103 :     end procedure
     619             : #endif
     620             : 
     621             : #undef CK_ENABLED
     622             : 
     623             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     624             : 
     625             : #define RK_ENABLED 1
     626             : 
     627             : #if RK5_ENABLED
     628             :     module procedure getRankDenseCusCom_D1_RK5
     629             :         use pm_kind, only: RKC => RK5
     630             : #include "pm_arrayRank@routines.inc.F90"
     631             :     end procedure
     632             : #endif
     633             : 
     634             : #if RK4_ENABLED
     635         103 :     module procedure getRankDenseCusCom_D1_RK4
     636             :         use pm_kind, only: RKC => RK4
     637             : #include "pm_arrayRank@routines.inc.F90"
     638         103 :     end procedure
     639             : #endif
     640             : 
     641             : #if RK3_ENABLED
     642         103 :     module procedure getRankDenseCusCom_D1_RK3
     643             :         use pm_kind, only: RKC => RK3
     644             : #include "pm_arrayRank@routines.inc.F90"
     645         103 :     end procedure
     646             : #endif
     647             : 
     648             : #if RK2_ENABLED
     649         104 :     module procedure getRankDenseCusCom_D1_RK2
     650             :         use pm_kind, only: RKC => RK2
     651             : #include "pm_arrayRank@routines.inc.F90"
     652         104 :     end procedure
     653             : #endif
     654             : 
     655             : #if RK1_ENABLED
     656         103 :     module procedure getRankDenseCusCom_D1_RK1
     657             :         use pm_kind, only: RKC => RK1
     658             : #include "pm_arrayRank@routines.inc.F90"
     659         103 :     end procedure
     660             : #endif
     661             : 
     662             : #undef RK_ENABLED
     663             : 
     664             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     665             : 
     666             : #if !__GFORTRAN__
     667             : #define PSSK_ENABLED 1
     668             : 
     669             : #if SK5_ENABLED
     670             :     module procedure getRankDenseCusCom_D1_PSSK5
     671             :         use pm_kind, only: SKC => SK5
     672             :         use pm_container, only: css_pdt
     673             : #include "pm_arrayRank@routines.inc.F90"
     674             :     end procedure
     675             : #endif
     676             : 
     677             : #if SK4_ENABLED
     678             :     module procedure getRankDenseCusCom_D1_PSSK4
     679             :         use pm_kind, only: SKC => SK4
     680             :         use pm_container, only: css_pdt
     681             : #include "pm_arrayRank@routines.inc.F90"
     682             :     end procedure
     683             : #endif
     684             : 
     685             : #if SK3_ENABLED
     686             :     module procedure getRankDenseCusCom_D1_PSSK3
     687             :         use pm_kind, only: SKC => SK3
     688             :         use pm_container, only: css_pdt
     689             : #include "pm_arrayRank@routines.inc.F90"
     690             :     end procedure
     691             : #endif
     692             : 
     693             : #if SK2_ENABLED
     694             :     module procedure getRankDenseCusCom_D1_PSSK2
     695             :         use pm_kind, only: SKC => SK2
     696             :         use pm_container, only: css_pdt
     697             : #include "pm_arrayRank@routines.inc.F90"
     698             :     end procedure
     699             : #endif
     700             : 
     701             : #if SK1_ENABLED
     702             :     module procedure getRankDenseCusCom_D1_PSSK1
     703             :         use pm_kind, only: SKC => SK1
     704             :         use pm_container, only: css_pdt
     705             : #include "pm_arrayRank@routines.inc.F90"
     706             :     end procedure
     707             : #endif
     708             : 
     709             : #undef PSSK_ENABLED
     710             : #endif
     711             : 
     712             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     713             : 
     714             : #define BSSK_ENABLED 1
     715             : 
     716           0 :     module procedure getRankDenseCusCom_D1_BSSK
     717             :         use pm_kind, only: SKC => SK
     718             :         use pm_container, only: css_type
     719             : #include "pm_arrayRank@routines.inc.F90"
     720           0 :     end procedure
     721             : 
     722             : #undef BSSK_ENABLED
     723             : 
     724             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     725             : 
     726             : #undef D1_ENABLED
     727             : 
     728             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     729             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     730             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     731             : 
     732             : #undef CusCom_ENABLED
     733             : 
     734             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     735             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     736             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     737             : 
     738             : #undef Dense_ENABLED
     739             : 
     740             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     741             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     742             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     743             : 
     744             : #undef getRank_ENABLED
     745             : 
     746             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     747             : 
     748             : #define setRank_ENABLED 1
     749             : 
     750             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     751             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     752             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     753             : 
     754             : #define Dense_ENABLED 1
     755             : 
     756             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     757             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     758             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     759             : 
     760             : #define DefCom_ENABLED 1
     761             : 
     762             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     763             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     764             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     765             : 
     766             : #define D0_ENABLED 1
     767             : 
     768             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     769             : 
     770             : #define SK_ENABLED 1
     771             : 
     772             : #if SK5_ENABLED
     773             :     module procedure setRankDenseDefCom_D0_SK5
     774             :         use pm_kind, only: SKC => SK5
     775             : #include "pm_arrayRank@routines.inc.F90"
     776             :     end procedure
     777             : #endif
     778             : 
     779             : #if SK4_ENABLED
     780             :     module procedure setRankDenseDefCom_D0_SK4
     781             :         use pm_kind, only: SKC => SK4
     782             : #include "pm_arrayRank@routines.inc.F90"
     783             :     end procedure
     784             : #endif
     785             : 
     786             : #if SK3_ENABLED
     787             :     module procedure setRankDenseDefCom_D0_SK3
     788             :         use pm_kind, only: SKC => SK3
     789             : #include "pm_arrayRank@routines.inc.F90"
     790             :     end procedure
     791             : #endif
     792             : 
     793             : #if SK2_ENABLED
     794             :     module procedure setRankDenseDefCom_D0_SK2
     795             :         use pm_kind, only: SKC => SK2
     796             : #include "pm_arrayRank@routines.inc.F90"
     797             :     end procedure
     798             : #endif
     799             : 
     800             : #if SK1_ENABLED
     801         208 :     module procedure setRankDenseDefCom_D0_SK1
     802             :         use pm_kind, only: SKC => SK1
     803             : #include "pm_arrayRank@routines.inc.F90"
     804             :     end procedure
     805             : #endif
     806             : 
     807             : #undef SK_ENABLED
     808             : 
     809             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     810             : 
     811             : #undef D0_ENABLED
     812             : 
     813             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     814             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     815             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     816             : 
     817             : #define D1_ENABLED 1
     818             : 
     819             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     820             : 
     821             : #define SK_ENABLED 1
     822             : 
     823             : #if SK5_ENABLED
     824             :     module procedure setRankDenseDefCom_D1_SK5
     825             :         use pm_kind, only: SKC => SK5
     826             : #include "pm_arrayRank@routines.inc.F90"
     827             :     end procedure
     828             : #endif
     829             : 
     830             : #if SK4_ENABLED
     831             :     module procedure setRankDenseDefCom_D1_SK4
     832             :         use pm_kind, only: SKC => SK4
     833             : #include "pm_arrayRank@routines.inc.F90"
     834             :     end procedure
     835             : #endif
     836             : 
     837             : #if SK3_ENABLED
     838             :     module procedure setRankDenseDefCom_D1_SK3
     839             :         use pm_kind, only: SKC => SK3
     840             : #include "pm_arrayRank@routines.inc.F90"
     841             :     end procedure
     842             : #endif
     843             : 
     844             : #if SK2_ENABLED
     845             :     module procedure setRankDenseDefCom_D1_SK2
     846             :         use pm_kind, only: SKC => SK2
     847             : #include "pm_arrayRank@routines.inc.F90"
     848             :     end procedure
     849             : #endif
     850             : 
     851             : #if SK1_ENABLED
     852         208 :     module procedure setRankDenseDefCom_D1_SK1
     853             :         use pm_kind, only: SKC => SK1
     854             : #include "pm_arrayRank@routines.inc.F90"
     855             :     end procedure
     856             : #endif
     857             : 
     858             : #undef SK_ENABLED
     859             : 
     860             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     861             : 
     862             : #define IK_ENABLED 1
     863             : 
     864             : #if IK5_ENABLED
     865         206 :     module procedure setRankDenseDefCom_D1_IK5
     866             :         use pm_kind, only: IKC => IK5
     867             : #include "pm_arrayRank@routines.inc.F90"
     868             :     end procedure
     869             : #endif
     870             : 
     871             : #if IK4_ENABLED
     872         206 :     module procedure setRankDenseDefCom_D1_IK4
     873             :         use pm_kind, only: IKC => IK4
     874             : #include "pm_arrayRank@routines.inc.F90"
     875             :     end procedure
     876             : #endif
     877             : 
     878             : #if IK3_ENABLED
     879         210 :     module procedure setRankDenseDefCom_D1_IK3
     880             :         use pm_kind, only: IKC => IK3
     881             : #include "pm_arrayRank@routines.inc.F90"
     882             :     end procedure
     883             : #endif
     884             : 
     885             : #if IK2_ENABLED
     886         206 :     module procedure setRankDenseDefCom_D1_IK2
     887             :         use pm_kind, only: IKC => IK2
     888             : #include "pm_arrayRank@routines.inc.F90"
     889             :     end procedure
     890             : #endif
     891             : 
     892             : #if IK1_ENABLED
     893         206 :     module procedure setRankDenseDefCom_D1_IK1
     894             :         use pm_kind, only: IKC => IK1
     895             : #include "pm_arrayRank@routines.inc.F90"
     896             :     end procedure
     897             : #endif
     898             : 
     899             : #undef IK_ENABLED
     900             : 
     901             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     902             : 
     903             : #define LK_ENABLED 1
     904             : 
     905             : #if LK5_ENABLED
     906         206 :     module procedure setRankDenseDefCom_D1_LK5
     907             :         use pm_kind, only: LKC => LK5
     908             : #include "pm_arrayRank@routines.inc.F90"
     909             :     end procedure
     910             : #endif
     911             : 
     912             : #if LK4_ENABLED
     913         206 :     module procedure setRankDenseDefCom_D1_LK4
     914             :         use pm_kind, only: LKC => LK4
     915             : #include "pm_arrayRank@routines.inc.F90"
     916             :     end procedure
     917             : #endif
     918             : 
     919             : #if LK3_ENABLED
     920         208 :     module procedure setRankDenseDefCom_D1_LK3
     921             :         use pm_kind, only: LKC => LK3
     922             : #include "pm_arrayRank@routines.inc.F90"
     923             :     end procedure
     924             : #endif
     925             : 
     926             : #if LK2_ENABLED
     927         206 :     module procedure setRankDenseDefCom_D1_LK2
     928             :         use pm_kind, only: LKC => LK2
     929             : #include "pm_arrayRank@routines.inc.F90"
     930             :     end procedure
     931             : #endif
     932             : 
     933             : #if LK1_ENABLED
     934         206 :     module procedure setRankDenseDefCom_D1_LK1
     935             :         use pm_kind, only: LKC => LK1
     936             : #include "pm_arrayRank@routines.inc.F90"
     937             :     end procedure
     938             : #endif
     939             : 
     940             : #undef LK_ENABLED
     941             : 
     942             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     943             : 
     944             : #define CK_ENABLED 1
     945             : 
     946             : #if CK5_ENABLED
     947             :     module procedure setRankDenseDefCom_D1_CK5
     948             :         use pm_kind, only: CKC => CK5
     949             : #include "pm_arrayRank@routines.inc.F90"
     950             :     end procedure
     951             : #endif
     952             : 
     953             : #if CK4_ENABLED
     954         206 :     module procedure setRankDenseDefCom_D1_CK4
     955             :         use pm_kind, only: CKC => CK4
     956             : #include "pm_arrayRank@routines.inc.F90"
     957             :     end procedure
     958             : #endif
     959             : 
     960             : #if CK3_ENABLED
     961         206 :     module procedure setRankDenseDefCom_D1_CK3
     962             :         use pm_kind, only: CKC => CK3
     963             : #include "pm_arrayRank@routines.inc.F90"
     964             :     end procedure
     965             : #endif
     966             : 
     967             : #if CK2_ENABLED
     968         206 :     module procedure setRankDenseDefCom_D1_CK2
     969             :         use pm_kind, only: CKC => CK2
     970             : #include "pm_arrayRank@routines.inc.F90"
     971             :     end procedure
     972             : #endif
     973             : 
     974             : #if CK1_ENABLED
     975         206 :     module procedure setRankDenseDefCom_D1_CK1
     976             :         use pm_kind, only: CKC => CK1
     977             : #include "pm_arrayRank@routines.inc.F90"
     978             :     end procedure
     979             : #endif
     980             : 
     981             : #undef CK_ENABLED
     982             : 
     983             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     984             : 
     985             : #define RK_ENABLED 1
     986             : 
     987             : #if RK5_ENABLED
     988             :     module procedure setRankDenseDefCom_D1_RK5
     989             :         use pm_kind, only: RKC => RK5
     990             : #include "pm_arrayRank@routines.inc.F90"
     991             :     end procedure
     992             : #endif
     993             : 
     994             : #if RK4_ENABLED
     995         218 :     module procedure setRankDenseDefCom_D1_RK4
     996             :         use pm_kind, only: RKC => RK4
     997             : #include "pm_arrayRank@routines.inc.F90"
     998             :     end procedure
     999             : #endif
    1000             : 
    1001             : #if RK3_ENABLED
    1002         206 :     module procedure setRankDenseDefCom_D1_RK3
    1003             :         use pm_kind, only: RKC => RK3
    1004             : #include "pm_arrayRank@routines.inc.F90"
    1005             :     end procedure
    1006             : #endif
    1007             : 
    1008             : #if RK2_ENABLED
    1009         208 :     module procedure setRankDenseDefCom_D1_RK2
    1010             :         use pm_kind, only: RKC => RK2
    1011             : #include "pm_arrayRank@routines.inc.F90"
    1012             :     end procedure
    1013             : #endif
    1014             : 
    1015             : #if RK1_ENABLED
    1016         208 :     module procedure setRankDenseDefCom_D1_RK1
    1017             :         use pm_kind, only: RKC => RK1
    1018             : #include "pm_arrayRank@routines.inc.F90"
    1019             :     end procedure
    1020             : #endif
    1021             : 
    1022             : #undef RK_ENABLED
    1023             : 
    1024             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1025             : 
    1026             : #if !__GFORTRAN__
    1027             : #define PSSK_ENABLED 1
    1028             : 
    1029             : #if SK5_ENABLED
    1030             :     module procedure setRankDenseDefCom_D1_PSSK5
    1031             :         use pm_kind, only: SKC => SK5
    1032             :         use pm_container, only: css_pdt
    1033             : #include "pm_arrayRank@routines.inc.F90"
    1034             :     end procedure
    1035             : #endif
    1036             : 
    1037             : #if SK4_ENABLED
    1038             :     module procedure setRankDenseDefCom_D1_PSSK4
    1039             :         use pm_kind, only: SKC => SK4
    1040             :         use pm_container, only: css_pdt
    1041             : #include "pm_arrayRank@routines.inc.F90"
    1042             :     end procedure
    1043             : #endif
    1044             : 
    1045             : #if SK3_ENABLED
    1046             :     module procedure setRankDenseDefCom_D1_PSSK3
    1047             :         use pm_kind, only: SKC => SK3
    1048             :         use pm_container, only: css_pdt
    1049             : #include "pm_arrayRank@routines.inc.F90"
    1050             :     end procedure
    1051             : #endif
    1052             : 
    1053             : #if SK2_ENABLED
    1054             :     module procedure setRankDenseDefCom_D1_PSSK2
    1055             :         use pm_kind, only: SKC => SK2
    1056             :         use pm_container, only: css_pdt
    1057             : #include "pm_arrayRank@routines.inc.F90"
    1058             :     end procedure
    1059             : #endif
    1060             : 
    1061             : #if SK1_ENABLED
    1062             :     module procedure setRankDenseDefCom_D1_PSSK1
    1063             :         use pm_kind, only: SKC => SK1
    1064             :         use pm_container, only: css_pdt
    1065             : #include "pm_arrayRank@routines.inc.F90"
    1066             :     end procedure
    1067             : #endif
    1068             : 
    1069             : #undef PSSK_ENABLED
    1070             : #endif
    1071             : 
    1072             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1073             : 
    1074             : #define BSSK_ENABLED 1
    1075             : 
    1076           0 :     module procedure setRankDenseDefCom_D1_BSSK
    1077             :         use pm_kind, only: SKC => SK
    1078             :         use pm_container, only: css_type
    1079             : #include "pm_arrayRank@routines.inc.F90"
    1080             :     end procedure
    1081             : 
    1082             : #undef BSSK_ENABLED
    1083             : 
    1084             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1085             : 
    1086             : #undef D1_ENABLED
    1087             : 
    1088             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1089             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1090             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1091             : 
    1092             : #undef DefCom_ENABLED
    1093             : 
    1094             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1095             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1096             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1097             : 
    1098             : #define CusCom_ENABLED 1
    1099             : 
    1100             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1101             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1102             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1103             : 
    1104             : #define D0_ENABLED 1
    1105             : 
    1106             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1107             : 
    1108             : #define SK_ENABLED 1
    1109             : 
    1110             : #if SK5_ENABLED
    1111             :     module procedure setRankDenseCusCom_D0_SK5
    1112             :         use pm_kind, only: SKC => SK5
    1113             : #include "pm_arrayRank@routines.inc.F90"
    1114             :     end procedure
    1115             : #endif
    1116             : 
    1117             : #if SK4_ENABLED
    1118             :     module procedure setRankDenseCusCom_D0_SK4
    1119             :         use pm_kind, only: SKC => SK4
    1120             : #include "pm_arrayRank@routines.inc.F90"
    1121             :     end procedure
    1122             : #endif
    1123             : 
    1124             : #if SK3_ENABLED
    1125             :     module procedure setRankDenseCusCom_D0_SK3
    1126             :         use pm_kind, only: SKC => SK3
    1127             : #include "pm_arrayRank@routines.inc.F90"
    1128             :     end procedure
    1129             : #endif
    1130             : 
    1131             : #if SK2_ENABLED
    1132             :     module procedure setRankDenseCusCom_D0_SK2
    1133             :         use pm_kind, only: SKC => SK2
    1134             : #include "pm_arrayRank@routines.inc.F90"
    1135             :     end procedure
    1136             : #endif
    1137             : 
    1138             : #if SK1_ENABLED
    1139         210 :     module procedure setRankDenseCusCom_D0_SK1
    1140             :         use pm_kind, only: SKC => SK1
    1141             : #include "pm_arrayRank@routines.inc.F90"
    1142             :     end procedure
    1143             : #endif
    1144             : 
    1145             : #undef SK_ENABLED
    1146             : 
    1147             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1148             : 
    1149             : #undef D0_ENABLED
    1150             : 
    1151             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1152             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1153             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1154             : 
    1155             : #define D1_ENABLED 1
    1156             : 
    1157             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1158             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1159             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1160             : 
    1161             : #define SK_ENABLED 1
    1162             : 
    1163             : #if SK5_ENABLED
    1164             :     module procedure setRankDenseCusCom_D1_SK5
    1165             :         use pm_kind, only: SKC => SK5
    1166             : #include "pm_arrayRank@routines.inc.F90"
    1167             :     end procedure
    1168             : #endif
    1169             : 
    1170             : #if SK4_ENABLED
    1171             :     module procedure setRankDenseCusCom_D1_SK4
    1172             :         use pm_kind, only: SKC => SK4
    1173             : #include "pm_arrayRank@routines.inc.F90"
    1174             :     end procedure
    1175             : #endif
    1176             : 
    1177             : #if SK3_ENABLED
    1178             :     module procedure setRankDenseCusCom_D1_SK3
    1179             :         use pm_kind, only: SKC => SK3
    1180             : #include "pm_arrayRank@routines.inc.F90"
    1181             :     end procedure
    1182             : #endif
    1183             : 
    1184             : #if SK2_ENABLED
    1185             :     module procedure setRankDenseCusCom_D1_SK2
    1186             :         use pm_kind, only: SKC => SK2
    1187             : #include "pm_arrayRank@routines.inc.F90"
    1188             :     end procedure
    1189             : #endif
    1190             : 
    1191             : #if SK1_ENABLED
    1192         206 :     module procedure setRankDenseCusCom_D1_SK1
    1193             :         use pm_kind, only: SKC => SK1
    1194             : #include "pm_arrayRank@routines.inc.F90"
    1195             :     end procedure
    1196             : #endif
    1197             : 
    1198             : #undef SK_ENABLED
    1199             : 
    1200             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1201             : 
    1202             : #define IK_ENABLED 1
    1203             : 
    1204             : #if IK5_ENABLED
    1205         206 :     module procedure setRankDenseCusCom_D1_IK5
    1206             :         use pm_kind, only: IKC => IK5
    1207             : #include "pm_arrayRank@routines.inc.F90"
    1208             :     end procedure
    1209             : #endif
    1210             : 
    1211             : #if IK4_ENABLED
    1212         206 :     module procedure setRankDenseCusCom_D1_IK4
    1213             :         use pm_kind, only: IKC => IK4
    1214             : #include "pm_arrayRank@routines.inc.F90"
    1215             :     end procedure
    1216             : #endif
    1217             : 
    1218             : #if IK3_ENABLED
    1219         208 :     module procedure setRankDenseCusCom_D1_IK3
    1220             :         use pm_kind, only: IKC => IK3
    1221             : #include "pm_arrayRank@routines.inc.F90"
    1222             :     end procedure
    1223             : #endif
    1224             : 
    1225             : #if IK2_ENABLED
    1226         206 :     module procedure setRankDenseCusCom_D1_IK2
    1227             :         use pm_kind, only: IKC => IK2
    1228             : #include "pm_arrayRank@routines.inc.F90"
    1229             :     end procedure
    1230             : #endif
    1231             : 
    1232             : #if IK1_ENABLED
    1233         206 :     module procedure setRankDenseCusCom_D1_IK1
    1234             :         use pm_kind, only: IKC => IK1
    1235             : #include "pm_arrayRank@routines.inc.F90"
    1236             :     end procedure
    1237             : #endif
    1238             : 
    1239             : #undef IK_ENABLED
    1240             : 
    1241             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1242             : 
    1243             : #define LK_ENABLED 1
    1244             : 
    1245             : #if LK5_ENABLED
    1246         206 :     module procedure setRankDenseCusCom_D1_LK5
    1247             :         use pm_kind, only: LKC => LK5
    1248             : #include "pm_arrayRank@routines.inc.F90"
    1249             :     end procedure
    1250             : #endif
    1251             : 
    1252             : #if LK4_ENABLED
    1253         206 :     module procedure setRankDenseCusCom_D1_LK4
    1254             :         use pm_kind, only: LKC => LK4
    1255             : #include "pm_arrayRank@routines.inc.F90"
    1256             :     end procedure
    1257             : #endif
    1258             : 
    1259             : #if LK3_ENABLED
    1260         206 :     module procedure setRankDenseCusCom_D1_LK3
    1261             :         use pm_kind, only: LKC => LK3
    1262             : #include "pm_arrayRank@routines.inc.F90"
    1263             :     end procedure
    1264             : #endif
    1265             : 
    1266             : #if LK2_ENABLED
    1267         206 :     module procedure setRankDenseCusCom_D1_LK2
    1268             :         use pm_kind, only: LKC => LK2
    1269             : #include "pm_arrayRank@routines.inc.F90"
    1270             :     end procedure
    1271             : #endif
    1272             : 
    1273             : #if LK1_ENABLED
    1274         206 :     module procedure setRankDenseCusCom_D1_LK1
    1275             :         use pm_kind, only: LKC => LK1
    1276             : #include "pm_arrayRank@routines.inc.F90"
    1277             :     end procedure
    1278             : #endif
    1279             : 
    1280             : #undef LK_ENABLED
    1281             : 
    1282             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1283             : 
    1284             : #define CK_ENABLED 1
    1285             : 
    1286             : #if CK5_ENABLED
    1287             :     module procedure setRankDenseCusCom_D1_CK5
    1288             :         use pm_kind, only: CKC => CK5
    1289             : #include "pm_arrayRank@routines.inc.F90"
    1290             :     end procedure
    1291             : #endif
    1292             : 
    1293             : #if CK4_ENABLED
    1294         206 :     module procedure setRankDenseCusCom_D1_CK4
    1295             :         use pm_kind, only: CKC => CK4
    1296             : #include "pm_arrayRank@routines.inc.F90"
    1297             :     end procedure
    1298             : #endif
    1299             : 
    1300             : #if CK3_ENABLED
    1301         206 :     module procedure setRankDenseCusCom_D1_CK3
    1302             :         use pm_kind, only: CKC => CK3
    1303             : #include "pm_arrayRank@routines.inc.F90"
    1304             :     end procedure
    1305             : #endif
    1306             : 
    1307             : #if CK2_ENABLED
    1308         206 :     module procedure setRankDenseCusCom_D1_CK2
    1309             :         use pm_kind, only: CKC => CK2
    1310             : #include "pm_arrayRank@routines.inc.F90"
    1311             :     end procedure
    1312             : #endif
    1313             : 
    1314             : #if CK1_ENABLED
    1315         206 :     module procedure setRankDenseCusCom_D1_CK1
    1316             :         use pm_kind, only: CKC => CK1
    1317             : #include "pm_arrayRank@routines.inc.F90"
    1318             :     end procedure
    1319             : #endif
    1320             : 
    1321             : #undef CK_ENABLED
    1322             : 
    1323             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1324             : 
    1325             : #define RK_ENABLED 1
    1326             : 
    1327             : #if RK5_ENABLED
    1328             :     module procedure setRankDenseCusCom_D1_RK5
    1329             :         use pm_kind, only: RKC => RK5
    1330             : #include "pm_arrayRank@routines.inc.F90"
    1331             :     end procedure
    1332             : #endif
    1333             : 
    1334             : #if RK4_ENABLED
    1335         206 :     module procedure setRankDenseCusCom_D1_RK4
    1336             :         use pm_kind, only: RKC => RK4
    1337             : #include "pm_arrayRank@routines.inc.F90"
    1338             :     end procedure
    1339             : #endif
    1340             : 
    1341             : #if RK3_ENABLED
    1342         206 :     module procedure setRankDenseCusCom_D1_RK3
    1343             :         use pm_kind, only: RKC => RK3
    1344             : #include "pm_arrayRank@routines.inc.F90"
    1345             :     end procedure
    1346             : #endif
    1347             : 
    1348             : #if RK2_ENABLED
    1349         208 :     module procedure setRankDenseCusCom_D1_RK2
    1350             :         use pm_kind, only: RKC => RK2
    1351             : #include "pm_arrayRank@routines.inc.F90"
    1352             :     end procedure
    1353             : #endif
    1354             : 
    1355             : #if RK1_ENABLED
    1356         206 :     module procedure setRankDenseCusCom_D1_RK1
    1357             :         use pm_kind, only: RKC => RK1
    1358             : #include "pm_arrayRank@routines.inc.F90"
    1359             :     end procedure
    1360             : #endif
    1361             : 
    1362             : #undef RK_ENABLED
    1363             : 
    1364             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1365             : 
    1366             : #if !__GFORTRAN__
    1367             : #define PSSK_ENABLED 1
    1368             : 
    1369             : #if SK5_ENABLED
    1370             :     module procedure setRankDenseCusCom_D1_PSSK5
    1371             :         use pm_kind, only: SKC => SK5
    1372             :         use pm_container, only: css_pdt
    1373             : #include "pm_arrayRank@routines.inc.F90"
    1374             :     end procedure
    1375             : #endif
    1376             : 
    1377             : #if SK4_ENABLED
    1378             :     module procedure setRankDenseCusCom_D1_PSSK4
    1379             :         use pm_kind, only: SKC => SK4
    1380             :         use pm_container, only: css_pdt
    1381             : #include "pm_arrayRank@routines.inc.F90"
    1382             :     end procedure
    1383             : #endif
    1384             : 
    1385             : #if SK3_ENABLED
    1386             :     module procedure setRankDenseCusCom_D1_PSSK3
    1387             :         use pm_kind, only: SKC => SK3
    1388             :         use pm_container, only: css_pdt
    1389             : #include "pm_arrayRank@routines.inc.F90"
    1390             :     end procedure
    1391             : #endif
    1392             : 
    1393             : #if SK2_ENABLED
    1394             :     module procedure setRankDenseCusCom_D1_PSSK2
    1395             :         use pm_kind, only: SKC => SK2
    1396             :         use pm_container, only: css_pdt
    1397             : #include "pm_arrayRank@routines.inc.F90"
    1398             :     end procedure
    1399             : #endif
    1400             : 
    1401             : #if SK1_ENABLED
    1402             :     module procedure setRankDenseCusCom_D1_PSSK1
    1403             :         use pm_kind, only: SKC => SK1
    1404             :         use pm_container, only: css_pdt
    1405             : #include "pm_arrayRank@routines.inc.F90"
    1406             :     end procedure
    1407             : #endif
    1408             : 
    1409             : #undef PSSK_ENABLED
    1410             : #endif
    1411             : 
    1412             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1413             : 
    1414             : #define BSSK_ENABLED 1
    1415             : 
    1416           0 :     module procedure setRankDenseCusCom_D1_BSSK
    1417             :         use pm_kind, only: SKC => SK
    1418             :         use pm_container, only: css_type
    1419             : #include "pm_arrayRank@routines.inc.F90"
    1420             :     end procedure
    1421             : 
    1422             : #undef BSSK_ENABLED
    1423             : 
    1424             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1425             : 
    1426             : #undef D1_ENABLED
    1427             : 
    1428             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1429             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1430             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1431             : 
    1432             : #undef CusCom_ENABLED
    1433             : 
    1434             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1435             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1436             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1437             : 
    1438             : #undef Dense_ENABLED
    1439             : 
    1440             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1441             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1442             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1443             : 
    1444             : #undef setRank_ENABLED
    1445             : 
    1446             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1447             : 
    1448             : #define getRank_ENABLED 1
    1449             : 
    1450             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1451             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1452             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1453             : 
    1454             : #define Fractional_ENABLED 1
    1455             : 
    1456             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1457             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1458             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1459             : 
    1460             : #define DefCom_ENABLED 1
    1461             : 
    1462             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1463             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1464             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1465             : 
    1466             : #define D0_ENABLED 1
    1467             : 
    1468             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1469             : 
    1470             : #define SK_ENABLED 1
    1471             : 
    1472             : #if SK5_ENABLED
    1473             :     module procedure getRankFractionalDefCom_D0_SK5
    1474             :         use pm_kind, only: SKC => SK5
    1475             : #include "pm_arrayRank@routines.inc.F90"
    1476             :     end procedure
    1477             : #endif
    1478             : 
    1479             : #if SK4_ENABLED
    1480             :     module procedure getRankFractionalDefCom_D0_SK4
    1481             :         use pm_kind, only: SKC => SK4
    1482             : #include "pm_arrayRank@routines.inc.F90"
    1483             :     end procedure
    1484             : #endif
    1485             : 
    1486             : #if SK3_ENABLED
    1487             :     module procedure getRankFractionalDefCom_D0_SK3
    1488             :         use pm_kind, only: SKC => SK3
    1489             : #include "pm_arrayRank@routines.inc.F90"
    1490             :     end procedure
    1491             : #endif
    1492             : 
    1493             : #if SK2_ENABLED
    1494             :     module procedure getRankFractionalDefCom_D0_SK2
    1495             :         use pm_kind, only: SKC => SK2
    1496             : #include "pm_arrayRank@routines.inc.F90"
    1497             :     end procedure
    1498             : #endif
    1499             : 
    1500             : #if SK1_ENABLED
    1501         704 :     module procedure getRankFractionalDefCom_D0_SK1
    1502             :         use pm_kind, only: SKC => SK1
    1503             : #include "pm_arrayRank@routines.inc.F90"
    1504         704 :     end procedure
    1505             : #endif
    1506             : 
    1507             : #undef SK_ENABLED
    1508             : 
    1509             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1510             : 
    1511             : #undef D0_ENABLED
    1512             : 
    1513             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1514             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1515             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1516             : 
    1517             : #define D1_ENABLED 1
    1518             : 
    1519             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1520             : 
    1521             : #define SK_ENABLED 1
    1522             : 
    1523             : #if SK5_ENABLED
    1524             :     module procedure getRankFractionalDefCom_D1_SK5
    1525             :         use pm_kind, only: SKC => SK5
    1526             : #include "pm_arrayRank@routines.inc.F90"
    1527             :     end procedure
    1528             : #endif
    1529             : 
    1530             : #if SK4_ENABLED
    1531             :     module procedure getRankFractionalDefCom_D1_SK4
    1532             :         use pm_kind, only: SKC => SK4
    1533             : #include "pm_arrayRank@routines.inc.F90"
    1534             :     end procedure
    1535             : #endif
    1536             : 
    1537             : #if SK3_ENABLED
    1538             :     module procedure getRankFractionalDefCom_D1_SK3
    1539             :         use pm_kind, only: SKC => SK3
    1540             : #include "pm_arrayRank@routines.inc.F90"
    1541             :     end procedure
    1542             : #endif
    1543             : 
    1544             : #if SK2_ENABLED
    1545             :     module procedure getRankFractionalDefCom_D1_SK2
    1546             :         use pm_kind, only: SKC => SK2
    1547             : #include "pm_arrayRank@routines.inc.F90"
    1548             :     end procedure
    1549             : #endif
    1550             : 
    1551             : #if SK1_ENABLED
    1552        2057 :     module procedure getRankFractionalDefCom_D1_SK1
    1553             :         use pm_kind, only: SKC => SK1
    1554             : #include "pm_arrayRank@routines.inc.F90"
    1555        2057 :     end procedure
    1556             : #endif
    1557             : 
    1558             : #undef SK_ENABLED
    1559             : 
    1560             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1561             : 
    1562             : #define IK_ENABLED 1
    1563             : 
    1564             : #if IK5_ENABLED
    1565        2098 :     module procedure getRankFractionalDefCom_D1_IK5
    1566             :         use pm_kind, only: IKC => IK5
    1567             : #include "pm_arrayRank@routines.inc.F90"
    1568        2098 :     end procedure
    1569             : #endif
    1570             : 
    1571             : #if IK4_ENABLED
    1572        1969 :     module procedure getRankFractionalDefCom_D1_IK4
    1573             :         use pm_kind, only: IKC => IK4
    1574             : #include "pm_arrayRank@routines.inc.F90"
    1575        1969 :     end procedure
    1576             : #endif
    1577             : 
    1578             : #if IK3_ENABLED
    1579        2025 :     module procedure getRankFractionalDefCom_D1_IK3
    1580             :         use pm_kind, only: IKC => IK3
    1581             : #include "pm_arrayRank@routines.inc.F90"
    1582        2025 :     end procedure
    1583             : #endif
    1584             : 
    1585             : #if IK2_ENABLED
    1586        2173 :     module procedure getRankFractionalDefCom_D1_IK2
    1587             :         use pm_kind, only: IKC => IK2
    1588             : #include "pm_arrayRank@routines.inc.F90"
    1589        2173 :     end procedure
    1590             : #endif
    1591             : 
    1592             : #if IK1_ENABLED
    1593        2173 :     module procedure getRankFractionalDefCom_D1_IK1
    1594             :         use pm_kind, only: IKC => IK1
    1595             : #include "pm_arrayRank@routines.inc.F90"
    1596        2173 :     end procedure
    1597             : #endif
    1598             : 
    1599             : #undef IK_ENABLED
    1600             : 
    1601             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1602             : 
    1603             : #define LK_ENABLED 1
    1604             : 
    1605             : #if LK5_ENABLED
    1606         103 :     module procedure getRankFractionalDefCom_D1_LK5
    1607             :         use pm_kind, only: LKC => LK5
    1608             : #include "pm_arrayRank@routines.inc.F90"
    1609         103 :     end procedure
    1610             : #endif
    1611             : 
    1612             : #if LK4_ENABLED
    1613         103 :     module procedure getRankFractionalDefCom_D1_LK4
    1614             :         use pm_kind, only: LKC => LK4
    1615             : #include "pm_arrayRank@routines.inc.F90"
    1616         103 :     end procedure
    1617             : #endif
    1618             : 
    1619             : #if LK3_ENABLED
    1620         104 :     module procedure getRankFractionalDefCom_D1_LK3
    1621             :         use pm_kind, only: LKC => LK3
    1622             : #include "pm_arrayRank@routines.inc.F90"
    1623         104 :     end procedure
    1624             : #endif
    1625             : 
    1626             : #if LK2_ENABLED
    1627         103 :     module procedure getRankFractionalDefCom_D1_LK2
    1628             :         use pm_kind, only: LKC => LK2
    1629             : #include "pm_arrayRank@routines.inc.F90"
    1630         103 :     end procedure
    1631             : #endif
    1632             : 
    1633             : #if LK1_ENABLED
    1634         103 :     module procedure getRankFractionalDefCom_D1_LK1
    1635             :         use pm_kind, only: LKC => LK1
    1636             : #include "pm_arrayRank@routines.inc.F90"
    1637         103 :     end procedure
    1638             : #endif
    1639             : 
    1640             : #undef LK_ENABLED
    1641             : 
    1642             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1643             : 
    1644             : #define CK_ENABLED 1
    1645             : 
    1646             : #if CK5_ENABLED
    1647             :     module procedure getRankFractionalDefCom_D1_CK5
    1648             :         use pm_kind, only: CKC => CK5
    1649             : #include "pm_arrayRank@routines.inc.F90"
    1650             :     end procedure
    1651             : #endif
    1652             : 
    1653             : #if CK4_ENABLED
    1654         103 :     module procedure getRankFractionalDefCom_D1_CK4
    1655             :         use pm_kind, only: CKC => CK4
    1656             : #include "pm_arrayRank@routines.inc.F90"
    1657         103 :     end procedure
    1658             : #endif
    1659             : 
    1660             : #if CK3_ENABLED
    1661         103 :     module procedure getRankFractionalDefCom_D1_CK3
    1662             :         use pm_kind, only: CKC => CK3
    1663             : #include "pm_arrayRank@routines.inc.F90"
    1664         103 :     end procedure
    1665             : #endif
    1666             : 
    1667             : #if CK2_ENABLED
    1668         103 :     module procedure getRankFractionalDefCom_D1_CK2
    1669             :         use pm_kind, only: CKC => CK2
    1670             : #include "pm_arrayRank@routines.inc.F90"
    1671         103 :     end procedure
    1672             : #endif
    1673             : 
    1674             : #if CK1_ENABLED
    1675         103 :     module procedure getRankFractionalDefCom_D1_CK1
    1676             :         use pm_kind, only: CKC => CK1
    1677             : #include "pm_arrayRank@routines.inc.F90"
    1678         103 :     end procedure
    1679             : #endif
    1680             : 
    1681             : #undef CK_ENABLED
    1682             : 
    1683             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1684             : 
    1685             : #define RK_ENABLED 1
    1686             : 
    1687             : #if RK5_ENABLED
    1688             :     module procedure getRankFractionalDefCom_D1_RK5
    1689             :         use pm_kind, only: RKC => RK5
    1690             : #include "pm_arrayRank@routines.inc.F90"
    1691             :     end procedure
    1692             : #endif
    1693             : 
    1694             : #if RK4_ENABLED
    1695        2110 :     module procedure getRankFractionalDefCom_D1_RK4
    1696             :         use pm_kind, only: RKC => RK4
    1697             : #include "pm_arrayRank@routines.inc.F90"
    1698        2110 :     end procedure
    1699             : #endif
    1700             : 
    1701             : #if RK3_ENABLED
    1702        2119 :     module procedure getRankFractionalDefCom_D1_RK3
    1703             :         use pm_kind, only: RKC => RK3
    1704             : #include "pm_arrayRank@routines.inc.F90"
    1705        2119 :     end procedure
    1706             : #endif
    1707             : 
    1708             : #if RK2_ENABLED
    1709        2048 :     module procedure getRankFractionalDefCom_D1_RK2
    1710             :         use pm_kind, only: RKC => RK2
    1711             : #include "pm_arrayRank@routines.inc.F90"
    1712        2048 :     end procedure
    1713             : #endif
    1714             : 
    1715             : #if RK1_ENABLED
    1716        2069 :     module procedure getRankFractionalDefCom_D1_RK1
    1717             :         use pm_kind, only: RKC => RK1
    1718             : #include "pm_arrayRank@routines.inc.F90"
    1719        2069 :     end procedure
    1720             : #endif
    1721             : 
    1722             : #undef RK_ENABLED
    1723             : 
    1724             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1725             : 
    1726             : #if !__GFORTRAN__
    1727             : #define PSSK_ENABLED 1
    1728             : 
    1729             : #if SK5_ENABLED
    1730             :     module procedure getRankFractionalDefCom_D1_PSSK5
    1731             :         use pm_kind, only: SKC => SK5
    1732             :         use pm_container, only: css_pdt
    1733             : #include "pm_arrayRank@routines.inc.F90"
    1734             :     end procedure
    1735             : #endif
    1736             : 
    1737             : #if SK4_ENABLED
    1738             :     module procedure getRankFractionalDefCom_D1_PSSK4
    1739             :         use pm_kind, only: SKC => SK4
    1740             :         use pm_container, only: css_pdt
    1741             : #include "pm_arrayRank@routines.inc.F90"
    1742             :     end procedure
    1743             : #endif
    1744             : 
    1745             : #if SK3_ENABLED
    1746             :     module procedure getRankFractionalDefCom_D1_PSSK3
    1747             :         use pm_kind, only: SKC => SK3
    1748             :         use pm_container, only: css_pdt
    1749             : #include "pm_arrayRank@routines.inc.F90"
    1750             :     end procedure
    1751             : #endif
    1752             : 
    1753             : #if SK2_ENABLED
    1754             :     module procedure getRankFractionalDefCom_D1_PSSK2
    1755             :         use pm_kind, only: SKC => SK2
    1756             :         use pm_container, only: css_pdt
    1757             : #include "pm_arrayRank@routines.inc.F90"
    1758             :     end procedure
    1759             : #endif
    1760             : 
    1761             : #if SK1_ENABLED
    1762             :     module procedure getRankFractionalDefCom_D1_PSSK1
    1763             :         use pm_kind, only: SKC => SK1
    1764             :         use pm_container, only: css_pdt
    1765             : #include "pm_arrayRank@routines.inc.F90"
    1766             :     end procedure
    1767             : #endif
    1768             : 
    1769             : #undef PSSK_ENABLED
    1770             : #endif
    1771             : 
    1772             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1773             : 
    1774             : #define BSSK_ENABLED 1
    1775             : 
    1776        1779 :     module procedure getRankFractionalDefCom_D1_BSSK
    1777             :         use pm_kind, only: SKC => SK
    1778             :         use pm_container, only: css_type
    1779             : #include "pm_arrayRank@routines.inc.F90"
    1780        1779 :     end procedure
    1781             : 
    1782             : #undef BSSK_ENABLED
    1783             : 
    1784             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1785             : 
    1786             : #undef D1_ENABLED
    1787             : 
    1788             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1789             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1790             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1791             : 
    1792             : #undef DefCom_ENABLED
    1793             : 
    1794             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1795             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1796             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1797             : 
    1798             : #define CusCom_ENABLED 1
    1799             : 
    1800             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1801             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1802             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1803             : 
    1804             : #define D0_ENABLED 1
    1805             : 
    1806             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1807             : 
    1808             : #define SK_ENABLED 1
    1809             : 
    1810             : #if SK5_ENABLED
    1811             :     module procedure getRankFractionalCusCom_D0_SK5
    1812             :         use pm_kind, only: SKC => SK5
    1813             : #include "pm_arrayRank@routines.inc.F90"
    1814             :     end procedure
    1815             : #endif
    1816             : 
    1817             : #if SK4_ENABLED
    1818             :     module procedure getRankFractionalCusCom_D0_SK4
    1819             :         use pm_kind, only: SKC => SK4
    1820             : #include "pm_arrayRank@routines.inc.F90"
    1821             :     end procedure
    1822             : #endif
    1823             : 
    1824             : #if SK3_ENABLED
    1825             :     module procedure getRankFractionalCusCom_D0_SK3
    1826             :         use pm_kind, only: SKC => SK3
    1827             : #include "pm_arrayRank@routines.inc.F90"
    1828             :     end procedure
    1829             : #endif
    1830             : 
    1831             : #if SK2_ENABLED
    1832             :     module procedure getRankFractionalCusCom_D0_SK2
    1833             :         use pm_kind, only: SKC => SK2
    1834             : #include "pm_arrayRank@routines.inc.F90"
    1835             :     end procedure
    1836             : #endif
    1837             : 
    1838             : #if SK1_ENABLED
    1839         104 :     module procedure getRankFractionalCusCom_D0_SK1
    1840             :         use pm_kind, only: SKC => SK1
    1841             : #include "pm_arrayRank@routines.inc.F90"
    1842         104 :     end procedure
    1843             : #endif
    1844             : 
    1845             : #undef SK_ENABLED
    1846             : 
    1847             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1848             : 
    1849             : #undef D0_ENABLED
    1850             : 
    1851             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1852             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1853             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1854             : 
    1855             : #define D1_ENABLED 1
    1856             : 
    1857             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1858             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1859             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1860             : 
    1861             : #define SK_ENABLED 1
    1862             : 
    1863             : #if SK5_ENABLED
    1864             :     module procedure getRankFractionalCusCom_D1_SK5
    1865             :         use pm_kind, only: SKC => SK5
    1866             : #include "pm_arrayRank@routines.inc.F90"
    1867             :     end procedure
    1868             : #endif
    1869             : 
    1870             : #if SK4_ENABLED
    1871             :     module procedure getRankFractionalCusCom_D1_SK4
    1872             :         use pm_kind, only: SKC => SK4
    1873             : #include "pm_arrayRank@routines.inc.F90"
    1874             :     end procedure
    1875             : #endif
    1876             : 
    1877             : #if SK3_ENABLED
    1878             :     module procedure getRankFractionalCusCom_D1_SK3
    1879             :         use pm_kind, only: SKC => SK3
    1880             : #include "pm_arrayRank@routines.inc.F90"
    1881             :     end procedure
    1882             : #endif
    1883             : 
    1884             : #if SK2_ENABLED
    1885             :     module procedure getRankFractionalCusCom_D1_SK2
    1886             :         use pm_kind, only: SKC => SK2
    1887             : #include "pm_arrayRank@routines.inc.F90"
    1888             :     end procedure
    1889             : #endif
    1890             : 
    1891             : #if SK1_ENABLED
    1892         103 :     module procedure getRankFractionalCusCom_D1_SK1
    1893             :         use pm_kind, only: SKC => SK1
    1894             : #include "pm_arrayRank@routines.inc.F90"
    1895         103 :     end procedure
    1896             : #endif
    1897             : 
    1898             : #undef SK_ENABLED
    1899             : 
    1900             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1901             : 
    1902             : #define IK_ENABLED 1
    1903             : 
    1904             : #if IK5_ENABLED
    1905         103 :     module procedure getRankFractionalCusCom_D1_IK5
    1906             :         use pm_kind, only: IKC => IK5
    1907             : #include "pm_arrayRank@routines.inc.F90"
    1908         103 :     end procedure
    1909             : #endif
    1910             : 
    1911             : #if IK4_ENABLED
    1912         103 :     module procedure getRankFractionalCusCom_D1_IK4
    1913             :         use pm_kind, only: IKC => IK4
    1914             : #include "pm_arrayRank@routines.inc.F90"
    1915         103 :     end procedure
    1916             : #endif
    1917             : 
    1918             : #if IK3_ENABLED
    1919         104 :     module procedure getRankFractionalCusCom_D1_IK3
    1920             :         use pm_kind, only: IKC => IK3
    1921             : #include "pm_arrayRank@routines.inc.F90"
    1922         104 :     end procedure
    1923             : #endif
    1924             : 
    1925             : #if IK2_ENABLED
    1926         103 :     module procedure getRankFractionalCusCom_D1_IK2
    1927             :         use pm_kind, only: IKC => IK2
    1928             : #include "pm_arrayRank@routines.inc.F90"
    1929         103 :     end procedure
    1930             : #endif
    1931             : 
    1932             : #if IK1_ENABLED
    1933         103 :     module procedure getRankFractionalCusCom_D1_IK1
    1934             :         use pm_kind, only: IKC => IK1
    1935             : #include "pm_arrayRank@routines.inc.F90"
    1936         103 :     end procedure
    1937             : #endif
    1938             : 
    1939             : #undef IK_ENABLED
    1940             : 
    1941             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1942             : 
    1943             : #define LK_ENABLED 1
    1944             : 
    1945             : #if LK5_ENABLED
    1946         103 :     module procedure getRankFractionalCusCom_D1_LK5
    1947             :         use pm_kind, only: LKC => LK5
    1948             : #include "pm_arrayRank@routines.inc.F90"
    1949         103 :     end procedure
    1950             : #endif
    1951             : 
    1952             : #if LK4_ENABLED
    1953         103 :     module procedure getRankFractionalCusCom_D1_LK4
    1954             :         use pm_kind, only: LKC => LK4
    1955             : #include "pm_arrayRank@routines.inc.F90"
    1956         103 :     end procedure
    1957             : #endif
    1958             : 
    1959             : #if LK3_ENABLED
    1960         103 :     module procedure getRankFractionalCusCom_D1_LK3
    1961             :         use pm_kind, only: LKC => LK3
    1962             : #include "pm_arrayRank@routines.inc.F90"
    1963         103 :     end procedure
    1964             : #endif
    1965             : 
    1966             : #if LK2_ENABLED
    1967         103 :     module procedure getRankFractionalCusCom_D1_LK2
    1968             :         use pm_kind, only: LKC => LK2
    1969             : #include "pm_arrayRank@routines.inc.F90"
    1970         103 :     end procedure
    1971             : #endif
    1972             : 
    1973             : #if LK1_ENABLED
    1974         103 :     module procedure getRankFractionalCusCom_D1_LK1
    1975             :         use pm_kind, only: LKC => LK1
    1976             : #include "pm_arrayRank@routines.inc.F90"
    1977         103 :     end procedure
    1978             : #endif
    1979             : 
    1980             : #undef LK_ENABLED
    1981             : 
    1982             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1983             : 
    1984             : #define CK_ENABLED 1
    1985             : 
    1986             : #if CK5_ENABLED
    1987             :     module procedure getRankFractionalCusCom_D1_CK5
    1988             :         use pm_kind, only: CKC => CK5
    1989             : #include "pm_arrayRank@routines.inc.F90"
    1990             :     end procedure
    1991             : #endif
    1992             : 
    1993             : #if CK4_ENABLED
    1994         103 :     module procedure getRankFractionalCusCom_D1_CK4
    1995             :         use pm_kind, only: CKC => CK4
    1996             : #include "pm_arrayRank@routines.inc.F90"
    1997         103 :     end procedure
    1998             : #endif
    1999             : 
    2000             : #if CK3_ENABLED
    2001         103 :     module procedure getRankFractionalCusCom_D1_CK3
    2002             :         use pm_kind, only: CKC => CK3
    2003             : #include "pm_arrayRank@routines.inc.F90"
    2004         103 :     end procedure
    2005             : #endif
    2006             : 
    2007             : #if CK2_ENABLED
    2008         103 :     module procedure getRankFractionalCusCom_D1_CK2
    2009             :         use pm_kind, only: CKC => CK2
    2010             : #include "pm_arrayRank@routines.inc.F90"
    2011         103 :     end procedure
    2012             : #endif
    2013             : 
    2014             : #if CK1_ENABLED
    2015         103 :     module procedure getRankFractionalCusCom_D1_CK1
    2016             :         use pm_kind, only: CKC => CK1
    2017             : #include "pm_arrayRank@routines.inc.F90"
    2018         103 :     end procedure
    2019             : #endif
    2020             : 
    2021             : #undef CK_ENABLED
    2022             : 
    2023             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2024             : 
    2025             : #define RK_ENABLED 1
    2026             : 
    2027             : #if RK5_ENABLED
    2028             :     module procedure getRankFractionalCusCom_D1_RK5
    2029             :         use pm_kind, only: RKC => RK5
    2030             : #include "pm_arrayRank@routines.inc.F90"
    2031             :     end procedure
    2032             : #endif
    2033             : 
    2034             : #if RK4_ENABLED
    2035         103 :     module procedure getRankFractionalCusCom_D1_RK4
    2036             :         use pm_kind, only: RKC => RK4
    2037             : #include "pm_arrayRank@routines.inc.F90"
    2038         103 :     end procedure
    2039             : #endif
    2040             : 
    2041             : #if RK3_ENABLED
    2042         103 :     module procedure getRankFractionalCusCom_D1_RK3
    2043             :         use pm_kind, only: RKC => RK3
    2044             : #include "pm_arrayRank@routines.inc.F90"
    2045         103 :     end procedure
    2046             : #endif
    2047             : 
    2048             : #if RK2_ENABLED
    2049         104 :     module procedure getRankFractionalCusCom_D1_RK2
    2050             :         use pm_kind, only: RKC => RK2
    2051             : #include "pm_arrayRank@routines.inc.F90"
    2052         104 :     end procedure
    2053             : #endif
    2054             : 
    2055             : #if RK1_ENABLED
    2056         103 :     module procedure getRankFractionalCusCom_D1_RK1
    2057             :         use pm_kind, only: RKC => RK1
    2058             : #include "pm_arrayRank@routines.inc.F90"
    2059         103 :     end procedure
    2060             : #endif
    2061             : 
    2062             : #undef RK_ENABLED
    2063             : 
    2064             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2065             : 
    2066             : #if !__GFORTRAN__
    2067             : #define PSSK_ENABLED 1
    2068             : 
    2069             : #if SK5_ENABLED
    2070             :     module procedure getRankFractionalCusCom_D1_PSSK5
    2071             :         use pm_kind, only: SKC => SK5
    2072             :         use pm_container, only: css_pdt
    2073             : #include "pm_arrayRank@routines.inc.F90"
    2074             :     end procedure
    2075             : #endif
    2076             : 
    2077             : #if SK4_ENABLED
    2078             :     module procedure getRankFractionalCusCom_D1_PSSK4
    2079             :         use pm_kind, only: SKC => SK4
    2080             :         use pm_container, only: css_pdt
    2081             : #include "pm_arrayRank@routines.inc.F90"
    2082             :     end procedure
    2083             : #endif
    2084             : 
    2085             : #if SK3_ENABLED
    2086             :     module procedure getRankFractionalCusCom_D1_PSSK3
    2087             :         use pm_kind, only: SKC => SK3
    2088             :         use pm_container, only: css_pdt
    2089             : #include "pm_arrayRank@routines.inc.F90"
    2090             :     end procedure
    2091             : #endif
    2092             : 
    2093             : #if SK2_ENABLED
    2094             :     module procedure getRankFractionalCusCom_D1_PSSK2
    2095             :         use pm_kind, only: SKC => SK2
    2096             :         use pm_container, only: css_pdt
    2097             : #include "pm_arrayRank@routines.inc.F90"
    2098             :     end procedure
    2099             : #endif
    2100             : 
    2101             : #if SK1_ENABLED
    2102             :     module procedure getRankFractionalCusCom_D1_PSSK1
    2103             :         use pm_kind, only: SKC => SK1
    2104             :         use pm_container, only: css_pdt
    2105             : #include "pm_arrayRank@routines.inc.F90"
    2106             :     end procedure
    2107             : #endif
    2108             : 
    2109             : #undef PSSK_ENABLED
    2110             : #endif
    2111             : 
    2112             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2113             : 
    2114             : #define BSSK_ENABLED 1
    2115             : 
    2116           0 :     module procedure getRankFractionalCusCom_D1_BSSK
    2117             :         use pm_kind, only: SKC => SK
    2118             :         use pm_container, only: css_type
    2119             : #include "pm_arrayRank@routines.inc.F90"
    2120           0 :     end procedure
    2121             : 
    2122             : #undef BSSK_ENABLED
    2123             : 
    2124             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2125             : 
    2126             : #undef D1_ENABLED
    2127             : 
    2128             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2129             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2130             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2131             : 
    2132             : #undef CusCom_ENABLED
    2133             : 
    2134             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2135             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2136             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2137             : 
    2138             : #undef Fractional_ENABLED
    2139             : 
    2140             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2141             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2142             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2143             : 
    2144             : #undef getRank_ENABLED
    2145             : 
    2146             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2147             : 
    2148             : #define setRank_ENABLED 1
    2149             : 
    2150             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2151             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2152             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2153             : 
    2154             : #define Fractional_ENABLED 1
    2155             : 
    2156             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2157             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2158             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2159             : 
    2160             : #define DefCom_ENABLED 1
    2161             : 
    2162             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2163             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2164             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2165             : 
    2166             : #define D0_ENABLED 1
    2167             : 
    2168             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2169             : 
    2170             : #define SK_ENABLED 1
    2171             : 
    2172             : #if SK5_ENABLED
    2173             :     module procedure setRankFractionalDefCom_D0_SK5
    2174             :         use pm_kind, only: SKC => SK5
    2175             : #include "pm_arrayRank@routines.inc.F90"
    2176             :     end procedure
    2177             : #endif
    2178             : 
    2179             : #if SK4_ENABLED
    2180             :     module procedure setRankFractionalDefCom_D0_SK4
    2181             :         use pm_kind, only: SKC => SK4
    2182             : #include "pm_arrayRank@routines.inc.F90"
    2183             :     end procedure
    2184             : #endif
    2185             : 
    2186             : #if SK3_ENABLED
    2187             :     module procedure setRankFractionalDefCom_D0_SK3
    2188             :         use pm_kind, only: SKC => SK3
    2189             : #include "pm_arrayRank@routines.inc.F90"
    2190             :     end procedure
    2191             : #endif
    2192             : 
    2193             : #if SK2_ENABLED
    2194             :     module procedure setRankFractionalDefCom_D0_SK2
    2195             :         use pm_kind, only: SKC => SK2
    2196             : #include "pm_arrayRank@routines.inc.F90"
    2197             :     end procedure
    2198             : #endif
    2199             : 
    2200             : #if SK1_ENABLED
    2201        1410 :     module procedure setRankFractionalDefCom_D0_SK1
    2202             :         use pm_kind, only: SKC => SK1
    2203             : #include "pm_arrayRank@routines.inc.F90"
    2204             :     end procedure
    2205             : #endif
    2206             : 
    2207             : #undef SK_ENABLED
    2208             : 
    2209             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2210             : 
    2211             : #undef D0_ENABLED
    2212             : 
    2213             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2214             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2215             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2216             : 
    2217             : #define D1_ENABLED 1
    2218             : 
    2219             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2220             : 
    2221             : #define SK_ENABLED 1
    2222             : 
    2223             : #if SK5_ENABLED
    2224             :     module procedure setRankFractionalDefCom_D1_SK5
    2225             :         use pm_kind, only: SKC => SK5
    2226             : #include "pm_arrayRank@routines.inc.F90"
    2227             :     end procedure
    2228             : #endif
    2229             : 
    2230             : #if SK4_ENABLED
    2231             :     module procedure setRankFractionalDefCom_D1_SK4
    2232             :         use pm_kind, only: SKC => SK4
    2233             : #include "pm_arrayRank@routines.inc.F90"
    2234             :     end procedure
    2235             : #endif
    2236             : 
    2237             : #if SK3_ENABLED
    2238             :     module procedure setRankFractionalDefCom_D1_SK3
    2239             :         use pm_kind, only: SKC => SK3
    2240             : #include "pm_arrayRank@routines.inc.F90"
    2241             :     end procedure
    2242             : #endif
    2243             : 
    2244             : #if SK2_ENABLED
    2245             :     module procedure setRankFractionalDefCom_D1_SK2
    2246             :         use pm_kind, only: SKC => SK2
    2247             : #include "pm_arrayRank@routines.inc.F90"
    2248             :     end procedure
    2249             : #endif
    2250             : 
    2251             : #if SK1_ENABLED
    2252        4120 :     module procedure setRankFractionalDefCom_D1_SK1
    2253             :         use pm_kind, only: SKC => SK1
    2254             : #include "pm_arrayRank@routines.inc.F90"
    2255             :     end procedure
    2256             : #endif
    2257             : 
    2258             : #undef SK_ENABLED
    2259             : 
    2260             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2261             : 
    2262             : #define IK_ENABLED 1
    2263             : 
    2264             : #if IK5_ENABLED
    2265        4196 :     module procedure setRankFractionalDefCom_D1_IK5
    2266             :         use pm_kind, only: IKC => IK5
    2267             : #include "pm_arrayRank@routines.inc.F90"
    2268             :     end procedure
    2269             : #endif
    2270             : 
    2271             : #if IK4_ENABLED
    2272        3938 :     module procedure setRankFractionalDefCom_D1_IK4
    2273             :         use pm_kind, only: IKC => IK4
    2274             : #include "pm_arrayRank@routines.inc.F90"
    2275             :     end procedure
    2276             : #endif
    2277             : 
    2278             : #if IK3_ENABLED
    2279        4056 :     module procedure setRankFractionalDefCom_D1_IK3
    2280             :         use pm_kind, only: IKC => IK3
    2281             : #include "pm_arrayRank@routines.inc.F90"
    2282             :     end procedure
    2283             : #endif
    2284             : 
    2285             : #if IK2_ENABLED
    2286        4346 :     module procedure setRankFractionalDefCom_D1_IK2
    2287             :         use pm_kind, only: IKC => IK2
    2288             : #include "pm_arrayRank@routines.inc.F90"
    2289             :     end procedure
    2290             : #endif
    2291             : 
    2292             : #if IK1_ENABLED
    2293        4346 :     module procedure setRankFractionalDefCom_D1_IK1
    2294             :         use pm_kind, only: IKC => IK1
    2295             : #include "pm_arrayRank@routines.inc.F90"
    2296             :     end procedure
    2297             : #endif
    2298             : 
    2299             : #undef IK_ENABLED
    2300             : 
    2301             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2302             : 
    2303             : #define LK_ENABLED 1
    2304             : 
    2305             : #if LK5_ENABLED
    2306         206 :     module procedure setRankFractionalDefCom_D1_LK5
    2307             :         use pm_kind, only: LKC => LK5
    2308             : #include "pm_arrayRank@routines.inc.F90"
    2309             :     end procedure
    2310             : #endif
    2311             : 
    2312             : #if LK4_ENABLED
    2313         206 :     module procedure setRankFractionalDefCom_D1_LK4
    2314             :         use pm_kind, only: LKC => LK4
    2315             : #include "pm_arrayRank@routines.inc.F90"
    2316             :     end procedure
    2317             : #endif
    2318             : 
    2319             : #if LK3_ENABLED
    2320         208 :     module procedure setRankFractionalDefCom_D1_LK3
    2321             :         use pm_kind, only: LKC => LK3
    2322             : #include "pm_arrayRank@routines.inc.F90"
    2323             :     end procedure
    2324             : #endif
    2325             : 
    2326             : #if LK2_ENABLED
    2327         206 :     module procedure setRankFractionalDefCom_D1_LK2
    2328             :         use pm_kind, only: LKC => LK2
    2329             : #include "pm_arrayRank@routines.inc.F90"
    2330             :     end procedure
    2331             : #endif
    2332             : 
    2333             : #if LK1_ENABLED
    2334         206 :     module procedure setRankFractionalDefCom_D1_LK1
    2335             :         use pm_kind, only: LKC => LK1
    2336             : #include "pm_arrayRank@routines.inc.F90"
    2337             :     end procedure
    2338             : #endif
    2339             : 
    2340             : #undef LK_ENABLED
    2341             : 
    2342             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2343             : 
    2344             : #define CK_ENABLED 1
    2345             : 
    2346             : #if CK5_ENABLED
    2347             :     module procedure setRankFractionalDefCom_D1_CK5
    2348             :         use pm_kind, only: CKC => CK5
    2349             : #include "pm_arrayRank@routines.inc.F90"
    2350             :     end procedure
    2351             : #endif
    2352             : 
    2353             : #if CK4_ENABLED
    2354         206 :     module procedure setRankFractionalDefCom_D1_CK4
    2355             :         use pm_kind, only: CKC => CK4
    2356             : #include "pm_arrayRank@routines.inc.F90"
    2357             :     end procedure
    2358             : #endif
    2359             : 
    2360             : #if CK3_ENABLED
    2361         206 :     module procedure setRankFractionalDefCom_D1_CK3
    2362             :         use pm_kind, only: CKC => CK3
    2363             : #include "pm_arrayRank@routines.inc.F90"
    2364             :     end procedure
    2365             : #endif
    2366             : 
    2367             : #if CK2_ENABLED
    2368         206 :     module procedure setRankFractionalDefCom_D1_CK2
    2369             :         use pm_kind, only: CKC => CK2
    2370             : #include "pm_arrayRank@routines.inc.F90"
    2371             :     end procedure
    2372             : #endif
    2373             : 
    2374             : #if CK1_ENABLED
    2375         206 :     module procedure setRankFractionalDefCom_D1_CK1
    2376             :         use pm_kind, only: CKC => CK1
    2377             : #include "pm_arrayRank@routines.inc.F90"
    2378             :     end procedure
    2379             : #endif
    2380             : 
    2381             : #undef CK_ENABLED
    2382             : 
    2383             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2384             : 
    2385             : #define RK_ENABLED 1
    2386             : 
    2387             : #if RK5_ENABLED
    2388             :     module procedure setRankFractionalDefCom_D1_RK5
    2389             :         use pm_kind, only: RKC => RK5
    2390             : #include "pm_arrayRank@routines.inc.F90"
    2391             :     end procedure
    2392             : #endif
    2393             : 
    2394             : #if RK4_ENABLED
    2395        4220 :     module procedure setRankFractionalDefCom_D1_RK4
    2396             :         use pm_kind, only: RKC => RK4
    2397             : #include "pm_arrayRank@routines.inc.F90"
    2398             :     end procedure
    2399             : #endif
    2400             : 
    2401             : #if RK3_ENABLED
    2402        4238 :     module procedure setRankFractionalDefCom_D1_RK3
    2403             :         use pm_kind, only: RKC => RK3
    2404             : #include "pm_arrayRank@routines.inc.F90"
    2405             :     end procedure
    2406             : #endif
    2407             : 
    2408             : #if RK2_ENABLED
    2409        4096 :     module procedure setRankFractionalDefCom_D1_RK2
    2410             :         use pm_kind, only: RKC => RK2
    2411             : #include "pm_arrayRank@routines.inc.F90"
    2412             :     end procedure
    2413             : #endif
    2414             : 
    2415             : #if RK1_ENABLED
    2416        4186 :     module procedure setRankFractionalDefCom_D1_RK1
    2417             :         use pm_kind, only: RKC => RK1
    2418             : #include "pm_arrayRank@routines.inc.F90"
    2419             :     end procedure
    2420             : #endif
    2421             : 
    2422             : #undef RK_ENABLED
    2423             : 
    2424             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2425             : 
    2426             : #if !__GFORTRAN__
    2427             : #define PSSK_ENABLED 1
    2428             : 
    2429             : #if SK5_ENABLED
    2430             :     module procedure setRankFractionalDefCom_D1_PSSK5
    2431             :         use pm_kind, only: SKC => SK5
    2432             :         use pm_container, only: css_pdt
    2433             : #include "pm_arrayRank@routines.inc.F90"
    2434             :     end procedure
    2435             : #endif
    2436             : 
    2437             : #if SK4_ENABLED
    2438             :     module procedure setRankFractionalDefCom_D1_PSSK4
    2439             :         use pm_kind, only: SKC => SK4
    2440             :         use pm_container, only: css_pdt
    2441             : #include "pm_arrayRank@routines.inc.F90"
    2442             :     end procedure
    2443             : #endif
    2444             : 
    2445             : #if SK3_ENABLED
    2446             :     module procedure setRankFractionalDefCom_D1_PSSK3
    2447             :         use pm_kind, only: SKC => SK3
    2448             :         use pm_container, only: css_pdt
    2449             : #include "pm_arrayRank@routines.inc.F90"
    2450             :     end procedure
    2451             : #endif
    2452             : 
    2453             : #if SK2_ENABLED
    2454             :     module procedure setRankFractionalDefCom_D1_PSSK2
    2455             :         use pm_kind, only: SKC => SK2
    2456             :         use pm_container, only: css_pdt
    2457             : #include "pm_arrayRank@routines.inc.F90"
    2458             :     end procedure
    2459             : #endif
    2460             : 
    2461             : #if SK1_ENABLED
    2462             :     module procedure setRankFractionalDefCom_D1_PSSK1
    2463             :         use pm_kind, only: SKC => SK1
    2464             :         use pm_container, only: css_pdt
    2465             : #include "pm_arrayRank@routines.inc.F90"
    2466             :     end procedure
    2467             : #endif
    2468             : 
    2469             : #undef PSSK_ENABLED
    2470             : #endif
    2471             : 
    2472             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2473             : 
    2474             : #define BSSK_ENABLED 1
    2475             : 
    2476        3558 :     module procedure setRankFractionalDefCom_D1_BSSK
    2477             :         use pm_kind, only: SKC => SK
    2478             :         use pm_container, only: css_type
    2479             : #include "pm_arrayRank@routines.inc.F90"
    2480             :     end procedure
    2481             : 
    2482             : #undef BSSK_ENABLED
    2483             : 
    2484             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2485             : 
    2486             : #undef D1_ENABLED
    2487             : 
    2488             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2489             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2490             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2491             : 
    2492             : #undef DefCom_ENABLED
    2493             : 
    2494             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2495             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2496             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2497             : 
    2498             : #define CusCom_ENABLED 1
    2499             : 
    2500             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2501             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2502             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2503             : 
    2504             : #define D0_ENABLED 1
    2505             : 
    2506             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2507             : 
    2508             : #define SK_ENABLED 1
    2509             : 
    2510             : #if SK5_ENABLED
    2511             :     module procedure setRankFractionalCusCom_D0_SK5
    2512             :         use pm_kind, only: SKC => SK5
    2513             : #include "pm_arrayRank@routines.inc.F90"
    2514             :     end procedure
    2515             : #endif
    2516             : 
    2517             : #if SK4_ENABLED
    2518             :     module procedure setRankFractionalCusCom_D0_SK4
    2519             :         use pm_kind, only: SKC => SK4
    2520             : #include "pm_arrayRank@routines.inc.F90"
    2521             :     end procedure
    2522             : #endif
    2523             : 
    2524             : #if SK3_ENABLED
    2525             :     module procedure setRankFractionalCusCom_D0_SK3
    2526             :         use pm_kind, only: SKC => SK3
    2527             : #include "pm_arrayRank@routines.inc.F90"
    2528             :     end procedure
    2529             : #endif
    2530             : 
    2531             : #if SK2_ENABLED
    2532             :     module procedure setRankFractionalCusCom_D0_SK2
    2533             :         use pm_kind, only: SKC => SK2
    2534             : #include "pm_arrayRank@routines.inc.F90"
    2535             :     end procedure
    2536             : #endif
    2537             : 
    2538             : #if SK1_ENABLED
    2539         208 :     module procedure setRankFractionalCusCom_D0_SK1
    2540             :         use pm_kind, only: SKC => SK1
    2541             : #include "pm_arrayRank@routines.inc.F90"
    2542             :     end procedure
    2543             : #endif
    2544             : 
    2545             : #undef SK_ENABLED
    2546             : 
    2547             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2548             : 
    2549             : #undef D0_ENABLED
    2550             : 
    2551             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2552             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2553             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2554             : 
    2555             : #define D1_ENABLED 1
    2556             : 
    2557             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2558             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2559             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2560             : 
    2561             : #define SK_ENABLED 1
    2562             : 
    2563             : #if SK5_ENABLED
    2564             :     module procedure setRankFractionalCusCom_D1_SK5
    2565             :         use pm_kind, only: SKC => SK5
    2566             : #include "pm_arrayRank@routines.inc.F90"
    2567             :     end procedure
    2568             : #endif
    2569             : 
    2570             : #if SK4_ENABLED
    2571             :     module procedure setRankFractionalCusCom_D1_SK4
    2572             :         use pm_kind, only: SKC => SK4
    2573             : #include "pm_arrayRank@routines.inc.F90"
    2574             :     end procedure
    2575             : #endif
    2576             : 
    2577             : #if SK3_ENABLED
    2578             :     module procedure setRankFractionalCusCom_D1_SK3
    2579             :         use pm_kind, only: SKC => SK3
    2580             : #include "pm_arrayRank@routines.inc.F90"
    2581             :     end procedure
    2582             : #endif
    2583             : 
    2584             : #if SK2_ENABLED
    2585             :     module procedure setRankFractionalCusCom_D1_SK2
    2586             :         use pm_kind, only: SKC => SK2
    2587             : #include "pm_arrayRank@routines.inc.F90"
    2588             :     end procedure
    2589             : #endif
    2590             : 
    2591             : #if SK1_ENABLED
    2592         206 :     module procedure setRankFractionalCusCom_D1_SK1
    2593             :         use pm_kind, only: SKC => SK1
    2594             : #include "pm_arrayRank@routines.inc.F90"
    2595             :     end procedure
    2596             : #endif
    2597             : 
    2598             : #undef SK_ENABLED
    2599             : 
    2600             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2601             : 
    2602             : #define IK_ENABLED 1
    2603             : 
    2604             : #if IK5_ENABLED
    2605         206 :     module procedure setRankFractionalCusCom_D1_IK5
    2606             :         use pm_kind, only: IKC => IK5
    2607             : #include "pm_arrayRank@routines.inc.F90"
    2608             :     end procedure
    2609             : #endif
    2610             : 
    2611             : #if IK4_ENABLED
    2612         206 :     module procedure setRankFractionalCusCom_D1_IK4
    2613             :         use pm_kind, only: IKC => IK4
    2614             : #include "pm_arrayRank@routines.inc.F90"
    2615             :     end procedure
    2616             : #endif
    2617             : 
    2618             : #if IK3_ENABLED
    2619         208 :     module procedure setRankFractionalCusCom_D1_IK3
    2620             :         use pm_kind, only: IKC => IK3
    2621             : #include "pm_arrayRank@routines.inc.F90"
    2622             :     end procedure
    2623             : #endif
    2624             : 
    2625             : #if IK2_ENABLED
    2626         206 :     module procedure setRankFractionalCusCom_D1_IK2
    2627             :         use pm_kind, only: IKC => IK2
    2628             : #include "pm_arrayRank@routines.inc.F90"
    2629             :     end procedure
    2630             : #endif
    2631             : 
    2632             : #if IK1_ENABLED
    2633         206 :     module procedure setRankFractionalCusCom_D1_IK1
    2634             :         use pm_kind, only: IKC => IK1
    2635             : #include "pm_arrayRank@routines.inc.F90"
    2636             :     end procedure
    2637             : #endif
    2638             : 
    2639             : #undef IK_ENABLED
    2640             : 
    2641             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2642             : 
    2643             : #define LK_ENABLED 1
    2644             : 
    2645             : #if LK5_ENABLED
    2646         206 :     module procedure setRankFractionalCusCom_D1_LK5
    2647             :         use pm_kind, only: LKC => LK5
    2648             : #include "pm_arrayRank@routines.inc.F90"
    2649             :     end procedure
    2650             : #endif
    2651             : 
    2652             : #if LK4_ENABLED
    2653         206 :     module procedure setRankFractionalCusCom_D1_LK4
    2654             :         use pm_kind, only: LKC => LK4
    2655             : #include "pm_arrayRank@routines.inc.F90"
    2656             :     end procedure
    2657             : #endif
    2658             : 
    2659             : #if LK3_ENABLED
    2660         206 :     module procedure setRankFractionalCusCom_D1_LK3
    2661             :         use pm_kind, only: LKC => LK3
    2662             : #include "pm_arrayRank@routines.inc.F90"
    2663             :     end procedure
    2664             : #endif
    2665             : 
    2666             : #if LK2_ENABLED
    2667         206 :     module procedure setRankFractionalCusCom_D1_LK2
    2668             :         use pm_kind, only: LKC => LK2
    2669             : #include "pm_arrayRank@routines.inc.F90"
    2670             :     end procedure
    2671             : #endif
    2672             : 
    2673             : #if LK1_ENABLED
    2674         206 :     module procedure setRankFractionalCusCom_D1_LK1
    2675             :         use pm_kind, only: LKC => LK1
    2676             : #include "pm_arrayRank@routines.inc.F90"
    2677             :     end procedure
    2678             : #endif
    2679             : 
    2680             : #undef LK_ENABLED
    2681             : 
    2682             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2683             : 
    2684             : #define CK_ENABLED 1
    2685             : 
    2686             : #if CK5_ENABLED
    2687             :     module procedure setRankFractionalCusCom_D1_CK5
    2688             :         use pm_kind, only: CKC => CK5
    2689             : #include "pm_arrayRank@routines.inc.F90"
    2690             :     end procedure
    2691             : #endif
    2692             : 
    2693             : #if CK4_ENABLED
    2694         206 :     module procedure setRankFractionalCusCom_D1_CK4
    2695             :         use pm_kind, only: CKC => CK4
    2696             : #include "pm_arrayRank@routines.inc.F90"
    2697             :     end procedure
    2698             : #endif
    2699             : 
    2700             : #if CK3_ENABLED
    2701         206 :     module procedure setRankFractionalCusCom_D1_CK3
    2702             :         use pm_kind, only: CKC => CK3
    2703             : #include "pm_arrayRank@routines.inc.F90"
    2704             :     end procedure
    2705             : #endif
    2706             : 
    2707             : #if CK2_ENABLED
    2708         206 :     module procedure setRankFractionalCusCom_D1_CK2
    2709             :         use pm_kind, only: CKC => CK2
    2710             : #include "pm_arrayRank@routines.inc.F90"
    2711             :     end procedure
    2712             : #endif
    2713             : 
    2714             : #if CK1_ENABLED
    2715         206 :     module procedure setRankFractionalCusCom_D1_CK1
    2716             :         use pm_kind, only: CKC => CK1
    2717             : #include "pm_arrayRank@routines.inc.F90"
    2718             :     end procedure
    2719             : #endif
    2720             : 
    2721             : #undef CK_ENABLED
    2722             : 
    2723             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2724             : 
    2725             : #define RK_ENABLED 1
    2726             : 
    2727             : #if RK5_ENABLED
    2728             :     module procedure setRankFractionalCusCom_D1_RK5
    2729             :         use pm_kind, only: RKC => RK5
    2730             : #include "pm_arrayRank@routines.inc.F90"
    2731             :     end procedure
    2732             : #endif
    2733             : 
    2734             : #if RK4_ENABLED
    2735         206 :     module procedure setRankFractionalCusCom_D1_RK4
    2736             :         use pm_kind, only: RKC => RK4
    2737             : #include "pm_arrayRank@routines.inc.F90"
    2738             :     end procedure
    2739             : #endif
    2740             : 
    2741             : #if RK3_ENABLED
    2742         206 :     module procedure setRankFractionalCusCom_D1_RK3
    2743             :         use pm_kind, only: RKC => RK3
    2744             : #include "pm_arrayRank@routines.inc.F90"
    2745             :     end procedure
    2746             : #endif
    2747             : 
    2748             : #if RK2_ENABLED
    2749         208 :     module procedure setRankFractionalCusCom_D1_RK2
    2750             :         use pm_kind, only: RKC => RK2
    2751             : #include "pm_arrayRank@routines.inc.F90"
    2752             :     end procedure
    2753             : #endif
    2754             : 
    2755             : #if RK1_ENABLED
    2756         206 :     module procedure setRankFractionalCusCom_D1_RK1
    2757             :         use pm_kind, only: RKC => RK1
    2758             : #include "pm_arrayRank@routines.inc.F90"
    2759             :     end procedure
    2760             : #endif
    2761             : 
    2762             : #undef RK_ENABLED
    2763             : 
    2764             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2765             : 
    2766             : #if !__GFORTRAN__
    2767             : #define PSSK_ENABLED 1
    2768             : 
    2769             : #if SK5_ENABLED
    2770             :     module procedure setRankFractionalCusCom_D1_PSSK5
    2771             :         use pm_kind, only: SKC => SK5
    2772             :         use pm_container, only: css_pdt
    2773             : #include "pm_arrayRank@routines.inc.F90"
    2774             :     end procedure
    2775             : #endif
    2776             : 
    2777             : #if SK4_ENABLED
    2778             :     module procedure setRankFractionalCusCom_D1_PSSK4
    2779             :         use pm_kind, only: SKC => SK4
    2780             :         use pm_container, only: css_pdt
    2781             : #include "pm_arrayRank@routines.inc.F90"
    2782             :     end procedure
    2783             : #endif
    2784             : 
    2785             : #if SK3_ENABLED
    2786             :     module procedure setRankFractionalCusCom_D1_PSSK3
    2787             :         use pm_kind, only: SKC => SK3
    2788             :         use pm_container, only: css_pdt
    2789             : #include "pm_arrayRank@routines.inc.F90"
    2790             :     end procedure
    2791             : #endif
    2792             : 
    2793             : #if SK2_ENABLED
    2794             :     module procedure setRankFractionalCusCom_D1_PSSK2
    2795             :         use pm_kind, only: SKC => SK2
    2796             :         use pm_container, only: css_pdt
    2797             : #include "pm_arrayRank@routines.inc.F90"
    2798             :     end procedure
    2799             : #endif
    2800             : 
    2801             : #if SK1_ENABLED
    2802             :     module procedure setRankFractionalCusCom_D1_PSSK1
    2803             :         use pm_kind, only: SKC => SK1
    2804             :         use pm_container, only: css_pdt
    2805             : #include "pm_arrayRank@routines.inc.F90"
    2806             :     end procedure
    2807             : #endif
    2808             : 
    2809             : #undef PSSK_ENABLED
    2810             : #endif
    2811             : 
    2812             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2813             : 
    2814             : #define BSSK_ENABLED 1
    2815             : 
    2816           0 :     module procedure setRankFractionalCusCom_D1_BSSK
    2817             :         use pm_kind, only: SKC => SK
    2818             :         use pm_container, only: css_type
    2819             : #include "pm_arrayRank@routines.inc.F90"
    2820             :     end procedure
    2821             : 
    2822             : #undef BSSK_ENABLED
    2823             : 
    2824             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2825             : 
    2826             : #undef D1_ENABLED
    2827             : 
    2828             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2829             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2830             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2831             : 
    2832             : #undef CusCom_ENABLED
    2833             : 
    2834             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2835             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2836             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2837             : 
    2838             : #undef Fractional_ENABLED
    2839             : 
    2840             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2841             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2842             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2843             : 
    2844             : #undef setRank_ENABLED
    2845             : 
    2846             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2847             : 
    2848             : #define getRank_ENABLED 1
    2849             : 
    2850             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2851             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2852             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2853             : 
    2854             : #define Modified_ENABLED 1
    2855             : 
    2856             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2857             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2858             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2859             : 
    2860             : #define DefCom_ENABLED 1
    2861             : 
    2862             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2863             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2864             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2865             : 
    2866             : #define D0_ENABLED 1
    2867             : 
    2868             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2869             : 
    2870             : #define SK_ENABLED 1
    2871             : 
    2872             : #if SK5_ENABLED
    2873             :     module procedure getRankModifiedDefCom_D0_SK5
    2874             :         use pm_kind, only: SKC => SK5
    2875             : #include "pm_arrayRank@routines.inc.F90"
    2876             :     end procedure
    2877             : #endif
    2878             : 
    2879             : #if SK4_ENABLED
    2880             :     module procedure getRankModifiedDefCom_D0_SK4
    2881             :         use pm_kind, only: SKC => SK4
    2882             : #include "pm_arrayRank@routines.inc.F90"
    2883             :     end procedure
    2884             : #endif
    2885             : 
    2886             : #if SK3_ENABLED
    2887             :     module procedure getRankModifiedDefCom_D0_SK3
    2888             :         use pm_kind, only: SKC => SK3
    2889             : #include "pm_arrayRank@routines.inc.F90"
    2890             :     end procedure
    2891             : #endif
    2892             : 
    2893             : #if SK2_ENABLED
    2894             :     module procedure getRankModifiedDefCom_D0_SK2
    2895             :         use pm_kind, only: SKC => SK2
    2896             : #include "pm_arrayRank@routines.inc.F90"
    2897             :     end procedure
    2898             : #endif
    2899             : 
    2900             : #if SK1_ENABLED
    2901         104 :     module procedure getRankModifiedDefCom_D0_SK1
    2902             :         use pm_kind, only: SKC => SK1
    2903             : #include "pm_arrayRank@routines.inc.F90"
    2904         104 :     end procedure
    2905             : #endif
    2906             : 
    2907             : #undef SK_ENABLED
    2908             : 
    2909             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2910             : 
    2911             : #undef D0_ENABLED
    2912             : 
    2913             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2914             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2915             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2916             : 
    2917             : #define D1_ENABLED 1
    2918             : 
    2919             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2920             : 
    2921             : #define SK_ENABLED 1
    2922             : 
    2923             : #if SK5_ENABLED
    2924             :     module procedure getRankModifiedDefCom_D1_SK5
    2925             :         use pm_kind, only: SKC => SK5
    2926             : #include "pm_arrayRank@routines.inc.F90"
    2927             :     end procedure
    2928             : #endif
    2929             : 
    2930             : #if SK4_ENABLED
    2931             :     module procedure getRankModifiedDefCom_D1_SK4
    2932             :         use pm_kind, only: SKC => SK4
    2933             : #include "pm_arrayRank@routines.inc.F90"
    2934             :     end procedure
    2935             : #endif
    2936             : 
    2937             : #if SK3_ENABLED
    2938             :     module procedure getRankModifiedDefCom_D1_SK3
    2939             :         use pm_kind, only: SKC => SK3
    2940             : #include "pm_arrayRank@routines.inc.F90"
    2941             :     end procedure
    2942             : #endif
    2943             : 
    2944             : #if SK2_ENABLED
    2945             :     module procedure getRankModifiedDefCom_D1_SK2
    2946             :         use pm_kind, only: SKC => SK2
    2947             : #include "pm_arrayRank@routines.inc.F90"
    2948             :     end procedure
    2949             : #endif
    2950             : 
    2951             : #if SK1_ENABLED
    2952         104 :     module procedure getRankModifiedDefCom_D1_SK1
    2953             :         use pm_kind, only: SKC => SK1
    2954             : #include "pm_arrayRank@routines.inc.F90"
    2955         104 :     end procedure
    2956             : #endif
    2957             : 
    2958             : #undef SK_ENABLED
    2959             : 
    2960             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2961             : 
    2962             : #define IK_ENABLED 1
    2963             : 
    2964             : #if IK5_ENABLED
    2965         103 :     module procedure getRankModifiedDefCom_D1_IK5
    2966             :         use pm_kind, only: IKC => IK5
    2967             : #include "pm_arrayRank@routines.inc.F90"
    2968         103 :     end procedure
    2969             : #endif
    2970             : 
    2971             : #if IK4_ENABLED
    2972         103 :     module procedure getRankModifiedDefCom_D1_IK4
    2973             :         use pm_kind, only: IKC => IK4
    2974             : #include "pm_arrayRank@routines.inc.F90"
    2975         103 :     end procedure
    2976             : #endif
    2977             : 
    2978             : #if IK3_ENABLED
    2979         105 :     module procedure getRankModifiedDefCom_D1_IK3
    2980             :         use pm_kind, only: IKC => IK3
    2981             : #include "pm_arrayRank@routines.inc.F90"
    2982         105 :     end procedure
    2983             : #endif
    2984             : 
    2985             : #if IK2_ENABLED
    2986         103 :     module procedure getRankModifiedDefCom_D1_IK2
    2987             :         use pm_kind, only: IKC => IK2
    2988             : #include "pm_arrayRank@routines.inc.F90"
    2989         103 :     end procedure
    2990             : #endif
    2991             : 
    2992             : #if IK1_ENABLED
    2993         103 :     module procedure getRankModifiedDefCom_D1_IK1
    2994             :         use pm_kind, only: IKC => IK1
    2995             : #include "pm_arrayRank@routines.inc.F90"
    2996         103 :     end procedure
    2997             : #endif
    2998             : 
    2999             : #undef IK_ENABLED
    3000             : 
    3001             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3002             : 
    3003             : #define LK_ENABLED 1
    3004             : 
    3005             : #if LK5_ENABLED
    3006         103 :     module procedure getRankModifiedDefCom_D1_LK5
    3007             :         use pm_kind, only: LKC => LK5
    3008             : #include "pm_arrayRank@routines.inc.F90"
    3009         103 :     end procedure
    3010             : #endif
    3011             : 
    3012             : #if LK4_ENABLED
    3013         103 :     module procedure getRankModifiedDefCom_D1_LK4
    3014             :         use pm_kind, only: LKC => LK4
    3015             : #include "pm_arrayRank@routines.inc.F90"
    3016         103 :     end procedure
    3017             : #endif
    3018             : 
    3019             : #if LK3_ENABLED
    3020         104 :     module procedure getRankModifiedDefCom_D1_LK3
    3021             :         use pm_kind, only: LKC => LK3
    3022             : #include "pm_arrayRank@routines.inc.F90"
    3023         104 :     end procedure
    3024             : #endif
    3025             : 
    3026             : #if LK2_ENABLED
    3027         103 :     module procedure getRankModifiedDefCom_D1_LK2
    3028             :         use pm_kind, only: LKC => LK2
    3029             : #include "pm_arrayRank@routines.inc.F90"
    3030         103 :     end procedure
    3031             : #endif
    3032             : 
    3033             : #if LK1_ENABLED
    3034         103 :     module procedure getRankModifiedDefCom_D1_LK1
    3035             :         use pm_kind, only: LKC => LK1
    3036             : #include "pm_arrayRank@routines.inc.F90"
    3037         103 :     end procedure
    3038             : #endif
    3039             : 
    3040             : #undef LK_ENABLED
    3041             : 
    3042             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3043             : 
    3044             : #define CK_ENABLED 1
    3045             : 
    3046             : #if CK5_ENABLED
    3047             :     module procedure getRankModifiedDefCom_D1_CK5
    3048             :         use pm_kind, only: CKC => CK5
    3049             : #include "pm_arrayRank@routines.inc.F90"
    3050             :     end procedure
    3051             : #endif
    3052             : 
    3053             : #if CK4_ENABLED
    3054         103 :     module procedure getRankModifiedDefCom_D1_CK4
    3055             :         use pm_kind, only: CKC => CK4
    3056             : #include "pm_arrayRank@routines.inc.F90"
    3057         103 :     end procedure
    3058             : #endif
    3059             : 
    3060             : #if CK3_ENABLED
    3061         103 :     module procedure getRankModifiedDefCom_D1_CK3
    3062             :         use pm_kind, only: CKC => CK3
    3063             : #include "pm_arrayRank@routines.inc.F90"
    3064         103 :     end procedure
    3065             : #endif
    3066             : 
    3067             : #if CK2_ENABLED
    3068         103 :     module procedure getRankModifiedDefCom_D1_CK2
    3069             :         use pm_kind, only: CKC => CK2
    3070             : #include "pm_arrayRank@routines.inc.F90"
    3071         103 :     end procedure
    3072             : #endif
    3073             : 
    3074             : #if CK1_ENABLED
    3075         103 :     module procedure getRankModifiedDefCom_D1_CK1
    3076             :         use pm_kind, only: CKC => CK1
    3077             : #include "pm_arrayRank@routines.inc.F90"
    3078         103 :     end procedure
    3079             : #endif
    3080             : 
    3081             : #undef CK_ENABLED
    3082             : 
    3083             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3084             : 
    3085             : #define RK_ENABLED 1
    3086             : 
    3087             : #if RK5_ENABLED
    3088             :     module procedure getRankModifiedDefCom_D1_RK5
    3089             :         use pm_kind, only: RKC => RK5
    3090             : #include "pm_arrayRank@routines.inc.F90"
    3091             :     end procedure
    3092             : #endif
    3093             : 
    3094             : #if RK4_ENABLED
    3095         103 :     module procedure getRankModifiedDefCom_D1_RK4
    3096             :         use pm_kind, only: RKC => RK4
    3097             : #include "pm_arrayRank@routines.inc.F90"
    3098         103 :     end procedure
    3099             : #endif
    3100             : 
    3101             : #if RK3_ENABLED
    3102         103 :     module procedure getRankModifiedDefCom_D1_RK3
    3103             :         use pm_kind, only: RKC => RK3
    3104             : #include "pm_arrayRank@routines.inc.F90"
    3105         103 :     end procedure
    3106             : #endif
    3107             : 
    3108             : #if RK2_ENABLED
    3109         104 :     module procedure getRankModifiedDefCom_D1_RK2
    3110             :         use pm_kind, only: RKC => RK2
    3111             : #include "pm_arrayRank@routines.inc.F90"
    3112         104 :     end procedure
    3113             : #endif
    3114             : 
    3115             : #if RK1_ENABLED
    3116         104 :     module procedure getRankModifiedDefCom_D1_RK1
    3117             :         use pm_kind, only: RKC => RK1
    3118             : #include "pm_arrayRank@routines.inc.F90"
    3119         104 :     end procedure
    3120             : #endif
    3121             : 
    3122             : #undef RK_ENABLED
    3123             : 
    3124             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3125             : 
    3126             : #if !__GFORTRAN__
    3127             : #define PSSK_ENABLED 1
    3128             : 
    3129             : #if SK5_ENABLED
    3130             :     module procedure getRankModifiedDefCom_D1_PSSK5
    3131             :         use pm_kind, only: SKC => SK5
    3132             :         use pm_container, only: css_pdt
    3133             : #include "pm_arrayRank@routines.inc.F90"
    3134             :     end procedure
    3135             : #endif
    3136             : 
    3137             : #if SK4_ENABLED
    3138             :     module procedure getRankModifiedDefCom_D1_PSSK4
    3139             :         use pm_kind, only: SKC => SK4
    3140             :         use pm_container, only: css_pdt
    3141             : #include "pm_arrayRank@routines.inc.F90"
    3142             :     end procedure
    3143             : #endif
    3144             : 
    3145             : #if SK3_ENABLED
    3146             :     module procedure getRankModifiedDefCom_D1_PSSK3
    3147             :         use pm_kind, only: SKC => SK3
    3148             :         use pm_container, only: css_pdt
    3149             : #include "pm_arrayRank@routines.inc.F90"
    3150             :     end procedure
    3151             : #endif
    3152             : 
    3153             : #if SK2_ENABLED
    3154             :     module procedure getRankModifiedDefCom_D1_PSSK2
    3155             :         use pm_kind, only: SKC => SK2
    3156             :         use pm_container, only: css_pdt
    3157             : #include "pm_arrayRank@routines.inc.F90"
    3158             :     end procedure
    3159             : #endif
    3160             : 
    3161             : #if SK1_ENABLED
    3162             :     module procedure getRankModifiedDefCom_D1_PSSK1
    3163             :         use pm_kind, only: SKC => SK1
    3164             :         use pm_container, only: css_pdt
    3165             : #include "pm_arrayRank@routines.inc.F90"
    3166             :     end procedure
    3167             : #endif
    3168             : 
    3169             : #undef PSSK_ENABLED
    3170             : #endif
    3171             : 
    3172             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3173             : 
    3174             : #define BSSK_ENABLED 1
    3175             : 
    3176           0 :     module procedure getRankModifiedDefCom_D1_BSSK
    3177             :         use pm_kind, only: SKC => SK
    3178             :         use pm_container, only: css_type
    3179             : #include "pm_arrayRank@routines.inc.F90"
    3180           0 :     end procedure
    3181             : 
    3182             : #undef BSSK_ENABLED
    3183             : 
    3184             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3185             : 
    3186             : #undef D1_ENABLED
    3187             : 
    3188             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3189             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3190             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3191             : 
    3192             : #undef DefCom_ENABLED
    3193             : 
    3194             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3195             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3196             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3197             : 
    3198             : #define CusCom_ENABLED 1
    3199             : 
    3200             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3201             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3202             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3203             : 
    3204             : #define D0_ENABLED 1
    3205             : 
    3206             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3207             : 
    3208             : #define SK_ENABLED 1
    3209             : 
    3210             : #if SK5_ENABLED
    3211             :     module procedure getRankModifiedCusCom_D0_SK5
    3212             :         use pm_kind, only: SKC => SK5
    3213             : #include "pm_arrayRank@routines.inc.F90"
    3214             :     end procedure
    3215             : #endif
    3216             : 
    3217             : #if SK4_ENABLED
    3218             :     module procedure getRankModifiedCusCom_D0_SK4
    3219             :         use pm_kind, only: SKC => SK4
    3220             : #include "pm_arrayRank@routines.inc.F90"
    3221             :     end procedure
    3222             : #endif
    3223             : 
    3224             : #if SK3_ENABLED
    3225             :     module procedure getRankModifiedCusCom_D0_SK3
    3226             :         use pm_kind, only: SKC => SK3
    3227             : #include "pm_arrayRank@routines.inc.F90"
    3228             :     end procedure
    3229             : #endif
    3230             : 
    3231             : #if SK2_ENABLED
    3232             :     module procedure getRankModifiedCusCom_D0_SK2
    3233             :         use pm_kind, only: SKC => SK2
    3234             : #include "pm_arrayRank@routines.inc.F90"
    3235             :     end procedure
    3236             : #endif
    3237             : 
    3238             : #if SK1_ENABLED
    3239         105 :     module procedure getRankModifiedCusCom_D0_SK1
    3240             :         use pm_kind, only: SKC => SK1
    3241             : #include "pm_arrayRank@routines.inc.F90"
    3242         105 :     end procedure
    3243             : #endif
    3244             : 
    3245             : #undef SK_ENABLED
    3246             : 
    3247             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3248             : 
    3249             : #undef D0_ENABLED
    3250             : 
    3251             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3252             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3253             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3254             : 
    3255             : #define D1_ENABLED 1
    3256             : 
    3257             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3258             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3259             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3260             : 
    3261             : #define SK_ENABLED 1
    3262             : 
    3263             : #if SK5_ENABLED
    3264             :     module procedure getRankModifiedCusCom_D1_SK5
    3265             :         use pm_kind, only: SKC => SK5
    3266             : #include "pm_arrayRank@routines.inc.F90"
    3267             :     end procedure
    3268             : #endif
    3269             : 
    3270             : #if SK4_ENABLED
    3271             :     module procedure getRankModifiedCusCom_D1_SK4
    3272             :         use pm_kind, only: SKC => SK4
    3273             : #include "pm_arrayRank@routines.inc.F90"
    3274             :     end procedure
    3275             : #endif
    3276             : 
    3277             : #if SK3_ENABLED
    3278             :     module procedure getRankModifiedCusCom_D1_SK3
    3279             :         use pm_kind, only: SKC => SK3
    3280             : #include "pm_arrayRank@routines.inc.F90"
    3281             :     end procedure
    3282             : #endif
    3283             : 
    3284             : #if SK2_ENABLED
    3285             :     module procedure getRankModifiedCusCom_D1_SK2
    3286             :         use pm_kind, only: SKC => SK2
    3287             : #include "pm_arrayRank@routines.inc.F90"
    3288             :     end procedure
    3289             : #endif
    3290             : 
    3291             : #if SK1_ENABLED
    3292         103 :     module procedure getRankModifiedCusCom_D1_SK1
    3293             :         use pm_kind, only: SKC => SK1
    3294             : #include "pm_arrayRank@routines.inc.F90"
    3295         103 :     end procedure
    3296             : #endif
    3297             : 
    3298             : #undef SK_ENABLED
    3299             : 
    3300             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3301             : 
    3302             : #define IK_ENABLED 1
    3303             : 
    3304             : #if IK5_ENABLED
    3305         103 :     module procedure getRankModifiedCusCom_D1_IK5
    3306             :         use pm_kind, only: IKC => IK5
    3307             : #include "pm_arrayRank@routines.inc.F90"
    3308         103 :     end procedure
    3309             : #endif
    3310             : 
    3311             : #if IK4_ENABLED
    3312         103 :     module procedure getRankModifiedCusCom_D1_IK4
    3313             :         use pm_kind, only: IKC => IK4
    3314             : #include "pm_arrayRank@routines.inc.F90"
    3315         103 :     end procedure
    3316             : #endif
    3317             : 
    3318             : #if IK3_ENABLED
    3319         104 :     module procedure getRankModifiedCusCom_D1_IK3
    3320             :         use pm_kind, only: IKC => IK3
    3321             : #include "pm_arrayRank@routines.inc.F90"
    3322         104 :     end procedure
    3323             : #endif
    3324             : 
    3325             : #if IK2_ENABLED
    3326         103 :     module procedure getRankModifiedCusCom_D1_IK2
    3327             :         use pm_kind, only: IKC => IK2
    3328             : #include "pm_arrayRank@routines.inc.F90"
    3329         103 :     end procedure
    3330             : #endif
    3331             : 
    3332             : #if IK1_ENABLED
    3333         103 :     module procedure getRankModifiedCusCom_D1_IK1
    3334             :         use pm_kind, only: IKC => IK1
    3335             : #include "pm_arrayRank@routines.inc.F90"
    3336         103 :     end procedure
    3337             : #endif
    3338             : 
    3339             : #undef IK_ENABLED
    3340             : 
    3341             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3342             : 
    3343             : #define LK_ENABLED 1
    3344             : 
    3345             : #if LK5_ENABLED
    3346         103 :     module procedure getRankModifiedCusCom_D1_LK5
    3347             :         use pm_kind, only: LKC => LK5
    3348             : #include "pm_arrayRank@routines.inc.F90"
    3349         103 :     end procedure
    3350             : #endif
    3351             : 
    3352             : #if LK4_ENABLED
    3353         103 :     module procedure getRankModifiedCusCom_D1_LK4
    3354             :         use pm_kind, only: LKC => LK4
    3355             : #include "pm_arrayRank@routines.inc.F90"
    3356         103 :     end procedure
    3357             : #endif
    3358             : 
    3359             : #if LK3_ENABLED
    3360         103 :     module procedure getRankModifiedCusCom_D1_LK3
    3361             :         use pm_kind, only: LKC => LK3
    3362             : #include "pm_arrayRank@routines.inc.F90"
    3363         103 :     end procedure
    3364             : #endif
    3365             : 
    3366             : #if LK2_ENABLED
    3367         103 :     module procedure getRankModifiedCusCom_D1_LK2
    3368             :         use pm_kind, only: LKC => LK2
    3369             : #include "pm_arrayRank@routines.inc.F90"
    3370         103 :     end procedure
    3371             : #endif
    3372             : 
    3373             : #if LK1_ENABLED
    3374         103 :     module procedure getRankModifiedCusCom_D1_LK1
    3375             :         use pm_kind, only: LKC => LK1
    3376             : #include "pm_arrayRank@routines.inc.F90"
    3377         103 :     end procedure
    3378             : #endif
    3379             : 
    3380             : #undef LK_ENABLED
    3381             : 
    3382             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3383             : 
    3384             : #define CK_ENABLED 1
    3385             : 
    3386             : #if CK5_ENABLED
    3387             :     module procedure getRankModifiedCusCom_D1_CK5
    3388             :         use pm_kind, only: CKC => CK5
    3389             : #include "pm_arrayRank@routines.inc.F90"
    3390             :     end procedure
    3391             : #endif
    3392             : 
    3393             : #if CK4_ENABLED
    3394         103 :     module procedure getRankModifiedCusCom_D1_CK4
    3395             :         use pm_kind, only: CKC => CK4
    3396             : #include "pm_arrayRank@routines.inc.F90"
    3397         103 :     end procedure
    3398             : #endif
    3399             : 
    3400             : #if CK3_ENABLED
    3401         103 :     module procedure getRankModifiedCusCom_D1_CK3
    3402             :         use pm_kind, only: CKC => CK3
    3403             : #include "pm_arrayRank@routines.inc.F90"
    3404         103 :     end procedure
    3405             : #endif
    3406             : 
    3407             : #if CK2_ENABLED
    3408         103 :     module procedure getRankModifiedCusCom_D1_CK2
    3409             :         use pm_kind, only: CKC => CK2
    3410             : #include "pm_arrayRank@routines.inc.F90"
    3411         103 :     end procedure
    3412             : #endif
    3413             : 
    3414             : #if CK1_ENABLED
    3415         103 :     module procedure getRankModifiedCusCom_D1_CK1
    3416             :         use pm_kind, only: CKC => CK1
    3417             : #include "pm_arrayRank@routines.inc.F90"
    3418         103 :     end procedure
    3419             : #endif
    3420             : 
    3421             : #undef CK_ENABLED
    3422             : 
    3423             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3424             : 
    3425             : #define RK_ENABLED 1
    3426             : 
    3427             : #if RK5_ENABLED
    3428             :     module procedure getRankModifiedCusCom_D1_RK5
    3429             :         use pm_kind, only: RKC => RK5
    3430             : #include "pm_arrayRank@routines.inc.F90"
    3431             :     end procedure
    3432             : #endif
    3433             : 
    3434             : #if RK4_ENABLED
    3435         103 :     module procedure getRankModifiedCusCom_D1_RK4
    3436             :         use pm_kind, only: RKC => RK4
    3437             : #include "pm_arrayRank@routines.inc.F90"
    3438         103 :     end procedure
    3439             : #endif
    3440             : 
    3441             : #if RK3_ENABLED
    3442         103 :     module procedure getRankModifiedCusCom_D1_RK3
    3443             :         use pm_kind, only: RKC => RK3
    3444             : #include "pm_arrayRank@routines.inc.F90"
    3445         103 :     end procedure
    3446             : #endif
    3447             : 
    3448             : #if RK2_ENABLED
    3449         104 :     module procedure getRankModifiedCusCom_D1_RK2
    3450             :         use pm_kind, only: RKC => RK2
    3451             : #include "pm_arrayRank@routines.inc.F90"
    3452         104 :     end procedure
    3453             : #endif
    3454             : 
    3455             : #if RK1_ENABLED
    3456         103 :     module procedure getRankModifiedCusCom_D1_RK1
    3457             :         use pm_kind, only: RKC => RK1
    3458             : #include "pm_arrayRank@routines.inc.F90"
    3459         103 :     end procedure
    3460             : #endif
    3461             : 
    3462             : #undef RK_ENABLED
    3463             : 
    3464             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3465             : 
    3466             : #if !__GFORTRAN__
    3467             : #define PSSK_ENABLED 1
    3468             : 
    3469             : #if SK5_ENABLED
    3470             :     module procedure getRankModifiedCusCom_D1_PSSK5
    3471             :         use pm_kind, only: SKC => SK5
    3472             :         use pm_container, only: css_pdt
    3473             : #include "pm_arrayRank@routines.inc.F90"
    3474             :     end procedure
    3475             : #endif
    3476             : 
    3477             : #if SK4_ENABLED
    3478             :     module procedure getRankModifiedCusCom_D1_PSSK4
    3479             :         use pm_kind, only: SKC => SK4
    3480             :         use pm_container, only: css_pdt
    3481             : #include "pm_arrayRank@routines.inc.F90"
    3482             :     end procedure
    3483             : #endif
    3484             : 
    3485             : #if SK3_ENABLED
    3486             :     module procedure getRankModifiedCusCom_D1_PSSK3
    3487             :         use pm_kind, only: SKC => SK3
    3488             :         use pm_container, only: css_pdt
    3489             : #include "pm_arrayRank@routines.inc.F90"
    3490             :     end procedure
    3491             : #endif
    3492             : 
    3493             : #if SK2_ENABLED
    3494             :     module procedure getRankModifiedCusCom_D1_PSSK2
    3495             :         use pm_kind, only: SKC => SK2
    3496             :         use pm_container, only: css_pdt
    3497             : #include "pm_arrayRank@routines.inc.F90"
    3498             :     end procedure
    3499             : #endif
    3500             : 
    3501             : #if SK1_ENABLED
    3502             :     module procedure getRankModifiedCusCom_D1_PSSK1
    3503             :         use pm_kind, only: SKC => SK1
    3504             :         use pm_container, only: css_pdt
    3505             : #include "pm_arrayRank@routines.inc.F90"
    3506             :     end procedure
    3507             : #endif
    3508             : 
    3509             : #undef PSSK_ENABLED
    3510             : #endif
    3511             : 
    3512             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3513             : 
    3514             : #define BSSK_ENABLED 1
    3515             : 
    3516           0 :     module procedure getRankModifiedCusCom_D1_BSSK
    3517             :         use pm_kind, only: SKC => SK
    3518             :         use pm_container, only: css_type
    3519             : #include "pm_arrayRank@routines.inc.F90"
    3520           0 :     end procedure
    3521             : 
    3522             : #undef BSSK_ENABLED
    3523             : 
    3524             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3525             : 
    3526             : #undef D1_ENABLED
    3527             : 
    3528             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3529             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3530             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3531             : 
    3532             : #undef CusCom_ENABLED
    3533             : 
    3534             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3535             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3536             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3537             : 
    3538             : #undef Modified_ENABLED
    3539             : 
    3540             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3541             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3542             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3543             : 
    3544             : #undef getRank_ENABLED
    3545             : 
    3546             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3547             : 
    3548             : #define setRank_ENABLED 1
    3549             : 
    3550             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3551             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3552             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3553             : 
    3554             : #define Modified_ENABLED 1
    3555             : 
    3556             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3557             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3558             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3559             : 
    3560             : #define DefCom_ENABLED 1
    3561             : 
    3562             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3563             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3564             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3565             : 
    3566             : #define D0_ENABLED 1
    3567             : 
    3568             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3569             : 
    3570             : #define SK_ENABLED 1
    3571             : 
    3572             : #if SK5_ENABLED
    3573             :     module procedure setRankModifiedDefCom_D0_SK5
    3574             :         use pm_kind, only: SKC => SK5
    3575             : #include "pm_arrayRank@routines.inc.F90"
    3576             :     end procedure
    3577             : #endif
    3578             : 
    3579             : #if SK4_ENABLED
    3580             :     module procedure setRankModifiedDefCom_D0_SK4
    3581             :         use pm_kind, only: SKC => SK4
    3582             : #include "pm_arrayRank@routines.inc.F90"
    3583             :     end procedure
    3584             : #endif
    3585             : 
    3586             : #if SK3_ENABLED
    3587             :     module procedure setRankModifiedDefCom_D0_SK3
    3588             :         use pm_kind, only: SKC => SK3
    3589             : #include "pm_arrayRank@routines.inc.F90"
    3590             :     end procedure
    3591             : #endif
    3592             : 
    3593             : #if SK2_ENABLED
    3594             :     module procedure setRankModifiedDefCom_D0_SK2
    3595             :         use pm_kind, only: SKC => SK2
    3596             : #include "pm_arrayRank@routines.inc.F90"
    3597             :     end procedure
    3598             : #endif
    3599             : 
    3600             : #if SK1_ENABLED
    3601         208 :     module procedure setRankModifiedDefCom_D0_SK1
    3602             :         use pm_kind, only: SKC => SK1
    3603             : #include "pm_arrayRank@routines.inc.F90"
    3604             :     end procedure
    3605             : #endif
    3606             : 
    3607             : #undef SK_ENABLED
    3608             : 
    3609             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3610             : 
    3611             : #undef D0_ENABLED
    3612             : 
    3613             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3614             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3615             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3616             : 
    3617             : #define D1_ENABLED 1
    3618             : 
    3619             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3620             : 
    3621             : #define SK_ENABLED 1
    3622             : 
    3623             : #if SK5_ENABLED
    3624             :     module procedure setRankModifiedDefCom_D1_SK5
    3625             :         use pm_kind, only: SKC => SK5
    3626             : #include "pm_arrayRank@routines.inc.F90"
    3627             :     end procedure
    3628             : #endif
    3629             : 
    3630             : #if SK4_ENABLED
    3631             :     module procedure setRankModifiedDefCom_D1_SK4
    3632             :         use pm_kind, only: SKC => SK4
    3633             : #include "pm_arrayRank@routines.inc.F90"
    3634             :     end procedure
    3635             : #endif
    3636             : 
    3637             : #if SK3_ENABLED
    3638             :     module procedure setRankModifiedDefCom_D1_SK3
    3639             :         use pm_kind, only: SKC => SK3
    3640             : #include "pm_arrayRank@routines.inc.F90"
    3641             :     end procedure
    3642             : #endif
    3643             : 
    3644             : #if SK2_ENABLED
    3645             :     module procedure setRankModifiedDefCom_D1_SK2
    3646             :         use pm_kind, only: SKC => SK2
    3647             : #include "pm_arrayRank@routines.inc.F90"
    3648             :     end procedure
    3649             : #endif
    3650             : 
    3651             : #if SK1_ENABLED
    3652         208 :     module procedure setRankModifiedDefCom_D1_SK1
    3653             :         use pm_kind, only: SKC => SK1
    3654             : #include "pm_arrayRank@routines.inc.F90"
    3655             :     end procedure
    3656             : #endif
    3657             : 
    3658             : #undef SK_ENABLED
    3659             : 
    3660             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3661             : 
    3662             : #define IK_ENABLED 1
    3663             : 
    3664             : #if IK5_ENABLED
    3665         206 :     module procedure setRankModifiedDefCom_D1_IK5
    3666             :         use pm_kind, only: IKC => IK5
    3667             : #include "pm_arrayRank@routines.inc.F90"
    3668             :     end procedure
    3669             : #endif
    3670             : 
    3671             : #if IK4_ENABLED
    3672         206 :     module procedure setRankModifiedDefCom_D1_IK4
    3673             :         use pm_kind, only: IKC => IK4
    3674             : #include "pm_arrayRank@routines.inc.F90"
    3675             :     end procedure
    3676             : #endif
    3677             : 
    3678             : #if IK3_ENABLED
    3679         210 :     module procedure setRankModifiedDefCom_D1_IK3
    3680             :         use pm_kind, only: IKC => IK3
    3681             : #include "pm_arrayRank@routines.inc.F90"
    3682             :     end procedure
    3683             : #endif
    3684             : 
    3685             : #if IK2_ENABLED
    3686         206 :     module procedure setRankModifiedDefCom_D1_IK2
    3687             :         use pm_kind, only: IKC => IK2
    3688             : #include "pm_arrayRank@routines.inc.F90"
    3689             :     end procedure
    3690             : #endif
    3691             : 
    3692             : #if IK1_ENABLED
    3693         206 :     module procedure setRankModifiedDefCom_D1_IK1
    3694             :         use pm_kind, only: IKC => IK1
    3695             : #include "pm_arrayRank@routines.inc.F90"
    3696             :     end procedure
    3697             : #endif
    3698             : 
    3699             : #undef IK_ENABLED
    3700             : 
    3701             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3702             : 
    3703             : #define LK_ENABLED 1
    3704             : 
    3705             : #if LK5_ENABLED
    3706         206 :     module procedure setRankModifiedDefCom_D1_LK5
    3707             :         use pm_kind, only: LKC => LK5
    3708             : #include "pm_arrayRank@routines.inc.F90"
    3709             :     end procedure
    3710             : #endif
    3711             : 
    3712             : #if LK4_ENABLED
    3713         206 :     module procedure setRankModifiedDefCom_D1_LK4
    3714             :         use pm_kind, only: LKC => LK4
    3715             : #include "pm_arrayRank@routines.inc.F90"
    3716             :     end procedure
    3717             : #endif
    3718             : 
    3719             : #if LK3_ENABLED
    3720         208 :     module procedure setRankModifiedDefCom_D1_LK3
    3721             :         use pm_kind, only: LKC => LK3
    3722             : #include "pm_arrayRank@routines.inc.F90"
    3723             :     end procedure
    3724             : #endif
    3725             : 
    3726             : #if LK2_ENABLED
    3727         206 :     module procedure setRankModifiedDefCom_D1_LK2
    3728             :         use pm_kind, only: LKC => LK2
    3729             : #include "pm_arrayRank@routines.inc.F90"
    3730             :     end procedure
    3731             : #endif
    3732             : 
    3733             : #if LK1_ENABLED
    3734         206 :     module procedure setRankModifiedDefCom_D1_LK1
    3735             :         use pm_kind, only: LKC => LK1
    3736             : #include "pm_arrayRank@routines.inc.F90"
    3737             :     end procedure
    3738             : #endif
    3739             : 
    3740             : #undef LK_ENABLED
    3741             : 
    3742             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3743             : 
    3744             : #define CK_ENABLED 1
    3745             : 
    3746             : #if CK5_ENABLED
    3747             :     module procedure setRankModifiedDefCom_D1_CK5
    3748             :         use pm_kind, only: CKC => CK5
    3749             : #include "pm_arrayRank@routines.inc.F90"
    3750             :     end procedure
    3751             : #endif
    3752             : 
    3753             : #if CK4_ENABLED
    3754         206 :     module procedure setRankModifiedDefCom_D1_CK4
    3755             :         use pm_kind, only: CKC => CK4
    3756             : #include "pm_arrayRank@routines.inc.F90"
    3757             :     end procedure
    3758             : #endif
    3759             : 
    3760             : #if CK3_ENABLED
    3761         206 :     module procedure setRankModifiedDefCom_D1_CK3
    3762             :         use pm_kind, only: CKC => CK3
    3763             : #include "pm_arrayRank@routines.inc.F90"
    3764             :     end procedure
    3765             : #endif
    3766             : 
    3767             : #if CK2_ENABLED
    3768         206 :     module procedure setRankModifiedDefCom_D1_CK2
    3769             :         use pm_kind, only: CKC => CK2
    3770             : #include "pm_arrayRank@routines.inc.F90"
    3771             :     end procedure
    3772             : #endif
    3773             : 
    3774             : #if CK1_ENABLED
    3775         206 :     module procedure setRankModifiedDefCom_D1_CK1
    3776             :         use pm_kind, only: CKC => CK1
    3777             : #include "pm_arrayRank@routines.inc.F90"
    3778             :     end procedure
    3779             : #endif
    3780             : 
    3781             : #undef CK_ENABLED
    3782             : 
    3783             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3784             : 
    3785             : #define RK_ENABLED 1
    3786             : 
    3787             : #if RK5_ENABLED
    3788             :     module procedure setRankModifiedDefCom_D1_RK5
    3789             :         use pm_kind, only: RKC => RK5
    3790             : #include "pm_arrayRank@routines.inc.F90"
    3791             :     end procedure
    3792             : #endif
    3793             : 
    3794             : #if RK4_ENABLED
    3795         206 :     module procedure setRankModifiedDefCom_D1_RK4
    3796             :         use pm_kind, only: RKC => RK4
    3797             : #include "pm_arrayRank@routines.inc.F90"
    3798             :     end procedure
    3799             : #endif
    3800             : 
    3801             : #if RK3_ENABLED
    3802         206 :     module procedure setRankModifiedDefCom_D1_RK3
    3803             :         use pm_kind, only: RKC => RK3
    3804             : #include "pm_arrayRank@routines.inc.F90"
    3805             :     end procedure
    3806             : #endif
    3807             : 
    3808             : #if RK2_ENABLED
    3809         208 :     module procedure setRankModifiedDefCom_D1_RK2
    3810             :         use pm_kind, only: RKC => RK2
    3811             : #include "pm_arrayRank@routines.inc.F90"
    3812             :     end procedure
    3813             : #endif
    3814             : 
    3815             : #if RK1_ENABLED
    3816         208 :     module procedure setRankModifiedDefCom_D1_RK1
    3817             :         use pm_kind, only: RKC => RK1
    3818             : #include "pm_arrayRank@routines.inc.F90"
    3819             :     end procedure
    3820             : #endif
    3821             : 
    3822             : #undef RK_ENABLED
    3823             : 
    3824             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3825             : 
    3826             : #if !__GFORTRAN__
    3827             : #define PSSK_ENABLED 1
    3828             : 
    3829             : #if SK5_ENABLED
    3830             :     module procedure setRankModifiedDefCom_D1_PSSK5
    3831             :         use pm_kind, only: SKC => SK5
    3832             :         use pm_container, only: css_pdt
    3833             : #include "pm_arrayRank@routines.inc.F90"
    3834             :     end procedure
    3835             : #endif
    3836             : 
    3837             : #if SK4_ENABLED
    3838             :     module procedure setRankModifiedDefCom_D1_PSSK4
    3839             :         use pm_kind, only: SKC => SK4
    3840             :         use pm_container, only: css_pdt
    3841             : #include "pm_arrayRank@routines.inc.F90"
    3842             :     end procedure
    3843             : #endif
    3844             : 
    3845             : #if SK3_ENABLED
    3846             :     module procedure setRankModifiedDefCom_D1_PSSK3
    3847             :         use pm_kind, only: SKC => SK3
    3848             :         use pm_container, only: css_pdt
    3849             : #include "pm_arrayRank@routines.inc.F90"
    3850             :     end procedure
    3851             : #endif
    3852             : 
    3853             : #if SK2_ENABLED
    3854             :     module procedure setRankModifiedDefCom_D1_PSSK2
    3855             :         use pm_kind, only: SKC => SK2
    3856             :         use pm_container, only: css_pdt
    3857             : #include "pm_arrayRank@routines.inc.F90"
    3858             :     end procedure
    3859             : #endif
    3860             : 
    3861             : #if SK1_ENABLED
    3862             :     module procedure setRankModifiedDefCom_D1_PSSK1
    3863             :         use pm_kind, only: SKC => SK1
    3864             :         use pm_container, only: css_pdt
    3865             : #include "pm_arrayRank@routines.inc.F90"
    3866             :     end procedure
    3867             : #endif
    3868             : 
    3869             : #undef PSSK_ENABLED
    3870             : #endif
    3871             : 
    3872             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3873             : 
    3874             : #define BSSK_ENABLED 1
    3875             : 
    3876           0 :     module procedure setRankModifiedDefCom_D1_BSSK
    3877             :         use pm_kind, only: SKC => SK
    3878             :         use pm_container, only: css_type
    3879             : #include "pm_arrayRank@routines.inc.F90"
    3880             :     end procedure
    3881             : 
    3882             : #undef BSSK_ENABLED
    3883             : 
    3884             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3885             : 
    3886             : #undef D1_ENABLED
    3887             : 
    3888             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3889             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3890             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3891             : 
    3892             : #undef DefCom_ENABLED
    3893             : 
    3894             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3895             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3896             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3897             : 
    3898             : #define CusCom_ENABLED 1
    3899             : 
    3900             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3901             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3902             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3903             : 
    3904             : #define D0_ENABLED 1
    3905             : 
    3906             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3907             : 
    3908             : #define SK_ENABLED 1
    3909             : 
    3910             : #if SK5_ENABLED
    3911             :     module procedure setRankModifiedCusCom_D0_SK5
    3912             :         use pm_kind, only: SKC => SK5
    3913             : #include "pm_arrayRank@routines.inc.F90"
    3914             :     end procedure
    3915             : #endif
    3916             : 
    3917             : #if SK4_ENABLED
    3918             :     module procedure setRankModifiedCusCom_D0_SK4
    3919             :         use pm_kind, only: SKC => SK4
    3920             : #include "pm_arrayRank@routines.inc.F90"
    3921             :     end procedure
    3922             : #endif
    3923             : 
    3924             : #if SK3_ENABLED
    3925             :     module procedure setRankModifiedCusCom_D0_SK3
    3926             :         use pm_kind, only: SKC => SK3
    3927             : #include "pm_arrayRank@routines.inc.F90"
    3928             :     end procedure
    3929             : #endif
    3930             : 
    3931             : #if SK2_ENABLED
    3932             :     module procedure setRankModifiedCusCom_D0_SK2
    3933             :         use pm_kind, only: SKC => SK2
    3934             : #include "pm_arrayRank@routines.inc.F90"
    3935             :     end procedure
    3936             : #endif
    3937             : 
    3938             : #if SK1_ENABLED
    3939         210 :     module procedure setRankModifiedCusCom_D0_SK1
    3940             :         use pm_kind, only: SKC => SK1
    3941             : #include "pm_arrayRank@routines.inc.F90"
    3942             :     end procedure
    3943             : #endif
    3944             : 
    3945             : #undef SK_ENABLED
    3946             : 
    3947             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3948             : 
    3949             : #undef D0_ENABLED
    3950             : 
    3951             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3952             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3953             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3954             : 
    3955             : #define D1_ENABLED 1
    3956             : 
    3957             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3958             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3959             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3960             : 
    3961             : #define SK_ENABLED 1
    3962             : 
    3963             : #if SK5_ENABLED
    3964             :     module procedure setRankModifiedCusCom_D1_SK5
    3965             :         use pm_kind, only: SKC => SK5
    3966             : #include "pm_arrayRank@routines.inc.F90"
    3967             :     end procedure
    3968             : #endif
    3969             : 
    3970             : #if SK4_ENABLED
    3971             :     module procedure setRankModifiedCusCom_D1_SK4
    3972             :         use pm_kind, only: SKC => SK4
    3973             : #include "pm_arrayRank@routines.inc.F90"
    3974             :     end procedure
    3975             : #endif
    3976             : 
    3977             : #if SK3_ENABLED
    3978             :     module procedure setRankModifiedCusCom_D1_SK3
    3979             :         use pm_kind, only: SKC => SK3
    3980             : #include "pm_arrayRank@routines.inc.F90"
    3981             :     end procedure
    3982             : #endif
    3983             : 
    3984             : #if SK2_ENABLED
    3985             :     module procedure setRankModifiedCusCom_D1_SK2
    3986             :         use pm_kind, only: SKC => SK2
    3987             : #include "pm_arrayRank@routines.inc.F90"
    3988             :     end procedure
    3989             : #endif
    3990             : 
    3991             : #if SK1_ENABLED
    3992         206 :     module procedure setRankModifiedCusCom_D1_SK1
    3993             :         use pm_kind, only: SKC => SK1
    3994             : #include "pm_arrayRank@routines.inc.F90"
    3995             :     end procedure
    3996             : #endif
    3997             : 
    3998             : #undef SK_ENABLED
    3999             : 
    4000             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4001             : 
    4002             : #define IK_ENABLED 1
    4003             : 
    4004             : #if IK5_ENABLED
    4005         206 :     module procedure setRankModifiedCusCom_D1_IK5
    4006             :         use pm_kind, only: IKC => IK5
    4007             : #include "pm_arrayRank@routines.inc.F90"
    4008             :     end procedure
    4009             : #endif
    4010             : 
    4011             : #if IK4_ENABLED
    4012         206 :     module procedure setRankModifiedCusCom_D1_IK4
    4013             :         use pm_kind, only: IKC => IK4
    4014             : #include "pm_arrayRank@routines.inc.F90"
    4015             :     end procedure
    4016             : #endif
    4017             : 
    4018             : #if IK3_ENABLED
    4019         208 :     module procedure setRankModifiedCusCom_D1_IK3
    4020             :         use pm_kind, only: IKC => IK3
    4021             : #include "pm_arrayRank@routines.inc.F90"
    4022             :     end procedure
    4023             : #endif
    4024             : 
    4025             : #if IK2_ENABLED
    4026         206 :     module procedure setRankModifiedCusCom_D1_IK2
    4027             :         use pm_kind, only: IKC => IK2
    4028             : #include "pm_arrayRank@routines.inc.F90"
    4029             :     end procedure
    4030             : #endif
    4031             : 
    4032             : #if IK1_ENABLED
    4033         206 :     module procedure setRankModifiedCusCom_D1_IK1
    4034             :         use pm_kind, only: IKC => IK1
    4035             : #include "pm_arrayRank@routines.inc.F90"
    4036             :     end procedure
    4037             : #endif
    4038             : 
    4039             : #undef IK_ENABLED
    4040             : 
    4041             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4042             : 
    4043             : #define LK_ENABLED 1
    4044             : 
    4045             : #if LK5_ENABLED
    4046         206 :     module procedure setRankModifiedCusCom_D1_LK5
    4047             :         use pm_kind, only: LKC => LK5
    4048             : #include "pm_arrayRank@routines.inc.F90"
    4049             :     end procedure
    4050             : #endif
    4051             : 
    4052             : #if LK4_ENABLED
    4053         206 :     module procedure setRankModifiedCusCom_D1_LK4
    4054             :         use pm_kind, only: LKC => LK4
    4055             : #include "pm_arrayRank@routines.inc.F90"
    4056             :     end procedure
    4057             : #endif
    4058             : 
    4059             : #if LK3_ENABLED
    4060         206 :     module procedure setRankModifiedCusCom_D1_LK3
    4061             :         use pm_kind, only: LKC => LK3
    4062             : #include "pm_arrayRank@routines.inc.F90"
    4063             :     end procedure
    4064             : #endif
    4065             : 
    4066             : #if LK2_ENABLED
    4067         206 :     module procedure setRankModifiedCusCom_D1_LK2
    4068             :         use pm_kind, only: LKC => LK2
    4069             : #include "pm_arrayRank@routines.inc.F90"
    4070             :     end procedure
    4071             : #endif
    4072             : 
    4073             : #if LK1_ENABLED
    4074         206 :     module procedure setRankModifiedCusCom_D1_LK1
    4075             :         use pm_kind, only: LKC => LK1
    4076             : #include "pm_arrayRank@routines.inc.F90"
    4077             :     end procedure
    4078             : #endif
    4079             : 
    4080             : #undef LK_ENABLED
    4081             : 
    4082             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4083             : 
    4084             : #define CK_ENABLED 1
    4085             : 
    4086             : #if CK5_ENABLED
    4087             :     module procedure setRankModifiedCusCom_D1_CK5
    4088             :         use pm_kind, only: CKC => CK5
    4089             : #include "pm_arrayRank@routines.inc.F90"
    4090             :     end procedure
    4091             : #endif
    4092             : 
    4093             : #if CK4_ENABLED
    4094         206 :     module procedure setRankModifiedCusCom_D1_CK4
    4095             :         use pm_kind, only: CKC => CK4
    4096             : #include "pm_arrayRank@routines.inc.F90"
    4097             :     end procedure
    4098             : #endif
    4099             : 
    4100             : #if CK3_ENABLED
    4101         206 :     module procedure setRankModifiedCusCom_D1_CK3
    4102             :         use pm_kind, only: CKC => CK3
    4103             : #include "pm_arrayRank@routines.inc.F90"
    4104             :     end procedure
    4105             : #endif
    4106             : 
    4107             : #if CK2_ENABLED
    4108         206 :     module procedure setRankModifiedCusCom_D1_CK2
    4109             :         use pm_kind, only: CKC => CK2
    4110             : #include "pm_arrayRank@routines.inc.F90"
    4111             :     end procedure
    4112             : #endif
    4113             : 
    4114             : #if CK1_ENABLED
    4115         206 :     module procedure setRankModifiedCusCom_D1_CK1
    4116             :         use pm_kind, only: CKC => CK1
    4117             : #include "pm_arrayRank@routines.inc.F90"
    4118             :     end procedure
    4119             : #endif
    4120             : 
    4121             : #undef CK_ENABLED
    4122             : 
    4123             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4124             : 
    4125             : #define RK_ENABLED 1
    4126             : 
    4127             : #if RK5_ENABLED
    4128             :     module procedure setRankModifiedCusCom_D1_RK5
    4129             :         use pm_kind, only: RKC => RK5
    4130             : #include "pm_arrayRank@routines.inc.F90"
    4131             :     end procedure
    4132             : #endif
    4133             : 
    4134             : #if RK4_ENABLED
    4135         206 :     module procedure setRankModifiedCusCom_D1_RK4
    4136             :         use pm_kind, only: RKC => RK4
    4137             : #include "pm_arrayRank@routines.inc.F90"
    4138             :     end procedure
    4139             : #endif
    4140             : 
    4141             : #if RK3_ENABLED
    4142         206 :     module procedure setRankModifiedCusCom_D1_RK3
    4143             :         use pm_kind, only: RKC => RK3
    4144             : #include "pm_arrayRank@routines.inc.F90"
    4145             :     end procedure
    4146             : #endif
    4147             : 
    4148             : #if RK2_ENABLED
    4149         208 :     module procedure setRankModifiedCusCom_D1_RK2
    4150             :         use pm_kind, only: RKC => RK2
    4151             : #include "pm_arrayRank@routines.inc.F90"
    4152             :     end procedure
    4153             : #endif
    4154             : 
    4155             : #if RK1_ENABLED
    4156         206 :     module procedure setRankModifiedCusCom_D1_RK1
    4157             :         use pm_kind, only: RKC => RK1
    4158             : #include "pm_arrayRank@routines.inc.F90"
    4159             :     end procedure
    4160             : #endif
    4161             : 
    4162             : #undef RK_ENABLED
    4163             : 
    4164             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4165             : 
    4166             : #if !__GFORTRAN__
    4167             : #define PSSK_ENABLED 1
    4168             : 
    4169             : #if SK5_ENABLED
    4170             :     module procedure setRankModifiedCusCom_D1_PSSK5
    4171             :         use pm_kind, only: SKC => SK5
    4172             :         use pm_container, only: css_pdt
    4173             : #include "pm_arrayRank@routines.inc.F90"
    4174             :     end procedure
    4175             : #endif
    4176             : 
    4177             : #if SK4_ENABLED
    4178             :     module procedure setRankModifiedCusCom_D1_PSSK4
    4179             :         use pm_kind, only: SKC => SK4
    4180             :         use pm_container, only: css_pdt
    4181             : #include "pm_arrayRank@routines.inc.F90"
    4182             :     end procedure
    4183             : #endif
    4184             : 
    4185             : #if SK3_ENABLED
    4186             :     module procedure setRankModifiedCusCom_D1_PSSK3
    4187             :         use pm_kind, only: SKC => SK3
    4188             :         use pm_container, only: css_pdt
    4189             : #include "pm_arrayRank@routines.inc.F90"
    4190             :     end procedure
    4191             : #endif
    4192             : 
    4193             : #if SK2_ENABLED
    4194             :     module procedure setRankModifiedCusCom_D1_PSSK2
    4195             :         use pm_kind, only: SKC => SK2
    4196             :         use pm_container, only: css_pdt
    4197             : #include "pm_arrayRank@routines.inc.F90"
    4198             :     end procedure
    4199             : #endif
    4200             : 
    4201             : #if SK1_ENABLED
    4202             :     module procedure setRankModifiedCusCom_D1_PSSK1
    4203             :         use pm_kind, only: SKC => SK1
    4204             :         use pm_container, only: css_pdt
    4205             : #include "pm_arrayRank@routines.inc.F90"
    4206             :     end procedure
    4207             : #endif
    4208             : 
    4209             : #undef PSSK_ENABLED
    4210             : #endif
    4211             : 
    4212             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4213             : 
    4214             : #define BSSK_ENABLED 1
    4215             : 
    4216           0 :     module procedure setRankModifiedCusCom_D1_BSSK
    4217             :         use pm_kind, only: SKC => SK
    4218             :         use pm_container, only: css_type
    4219             : #include "pm_arrayRank@routines.inc.F90"
    4220             :     end procedure
    4221             : 
    4222             : #undef BSSK_ENABLED
    4223             : 
    4224             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4225             : 
    4226             : #undef D1_ENABLED
    4227             : 
    4228             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4229             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4230             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4231             : 
    4232             : #undef CusCom_ENABLED
    4233             : 
    4234             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4235             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4236             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4237             : 
    4238             : #undef Modified_ENABLED
    4239             : 
    4240             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4241             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4242             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4243             : 
    4244             : #undef setRank_ENABLED
    4245             : 
    4246             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4247             : 
    4248             : #define getRank_ENABLED 1
    4249             : 
    4250             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4251             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4252             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4253             : 
    4254             : #define Ordinal_ENABLED 1
    4255             : 
    4256             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4257             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4258             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4259             : 
    4260             : #define DefCom_ENABLED 1
    4261             : 
    4262             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4263             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4264             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4265             : 
    4266             : #define D0_ENABLED 1
    4267             : 
    4268             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4269             : 
    4270             : #define SK_ENABLED 1
    4271             : 
    4272             : #if SK5_ENABLED
    4273             :     module procedure getRankOrdinalDefCom_D0_SK5
    4274             :         use pm_kind, only: SKC => SK5
    4275             : #include "pm_arrayRank@routines.inc.F90"
    4276             :     end procedure
    4277             : #endif
    4278             : 
    4279             : #if SK4_ENABLED
    4280             :     module procedure getRankOrdinalDefCom_D0_SK4
    4281             :         use pm_kind, only: SKC => SK4
    4282             : #include "pm_arrayRank@routines.inc.F90"
    4283             :     end procedure
    4284             : #endif
    4285             : 
    4286             : #if SK3_ENABLED
    4287             :     module procedure getRankOrdinalDefCom_D0_SK3
    4288             :         use pm_kind, only: SKC => SK3
    4289             : #include "pm_arrayRank@routines.inc.F90"
    4290             :     end procedure
    4291             : #endif
    4292             : 
    4293             : #if SK2_ENABLED
    4294             :     module procedure getRankOrdinalDefCom_D0_SK2
    4295             :         use pm_kind, only: SKC => SK2
    4296             : #include "pm_arrayRank@routines.inc.F90"
    4297             :     end procedure
    4298             : #endif
    4299             : 
    4300             : #if SK1_ENABLED
    4301         104 :     module procedure getRankOrdinalDefCom_D0_SK1
    4302             :         use pm_kind, only: SKC => SK1
    4303             : #include "pm_arrayRank@routines.inc.F90"
    4304         104 :     end procedure
    4305             : #endif
    4306             : 
    4307             : #undef SK_ENABLED
    4308             : 
    4309             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4310             : 
    4311             : #undef D0_ENABLED
    4312             : 
    4313             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4314             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4315             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4316             : 
    4317             : #define D1_ENABLED 1
    4318             : 
    4319             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4320             : 
    4321             : #define SK_ENABLED 1
    4322             : 
    4323             : #if SK5_ENABLED
    4324             :     module procedure getRankOrdinalDefCom_D1_SK5
    4325             :         use pm_kind, only: SKC => SK5
    4326             : #include "pm_arrayRank@routines.inc.F90"
    4327             :     end procedure
    4328             : #endif
    4329             : 
    4330             : #if SK4_ENABLED
    4331             :     module procedure getRankOrdinalDefCom_D1_SK4
    4332             :         use pm_kind, only: SKC => SK4
    4333             : #include "pm_arrayRank@routines.inc.F90"
    4334             :     end procedure
    4335             : #endif
    4336             : 
    4337             : #if SK3_ENABLED
    4338             :     module procedure getRankOrdinalDefCom_D1_SK3
    4339             :         use pm_kind, only: SKC => SK3
    4340             : #include "pm_arrayRank@routines.inc.F90"
    4341             :     end procedure
    4342             : #endif
    4343             : 
    4344             : #if SK2_ENABLED
    4345             :     module procedure getRankOrdinalDefCom_D1_SK2
    4346             :         use pm_kind, only: SKC => SK2
    4347             : #include "pm_arrayRank@routines.inc.F90"
    4348             :     end procedure
    4349             : #endif
    4350             : 
    4351             : #if SK1_ENABLED
    4352         104 :     module procedure getRankOrdinalDefCom_D1_SK1
    4353             :         use pm_kind, only: SKC => SK1
    4354             : #include "pm_arrayRank@routines.inc.F90"
    4355         104 :     end procedure
    4356             : #endif
    4357             : 
    4358             : #undef SK_ENABLED
    4359             : 
    4360             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4361             : 
    4362             : #define IK_ENABLED 1
    4363             : 
    4364             : #if IK5_ENABLED
    4365         103 :     module procedure getRankOrdinalDefCom_D1_IK5
    4366             :         use pm_kind, only: IKC => IK5
    4367             : #include "pm_arrayRank@routines.inc.F90"
    4368         103 :     end procedure
    4369             : #endif
    4370             : 
    4371             : #if IK4_ENABLED
    4372         103 :     module procedure getRankOrdinalDefCom_D1_IK4
    4373             :         use pm_kind, only: IKC => IK4
    4374             : #include "pm_arrayRank@routines.inc.F90"
    4375         103 :     end procedure
    4376             : #endif
    4377             : 
    4378             : #if IK3_ENABLED
    4379         105 :     module procedure getRankOrdinalDefCom_D1_IK3
    4380             :         use pm_kind, only: IKC => IK3
    4381             : #include "pm_arrayRank@routines.inc.F90"
    4382         105 :     end procedure
    4383             : #endif
    4384             : 
    4385             : #if IK2_ENABLED
    4386         103 :     module procedure getRankOrdinalDefCom_D1_IK2
    4387             :         use pm_kind, only: IKC => IK2
    4388             : #include "pm_arrayRank@routines.inc.F90"
    4389         103 :     end procedure
    4390             : #endif
    4391             : 
    4392             : #if IK1_ENABLED
    4393         103 :     module procedure getRankOrdinalDefCom_D1_IK1
    4394             :         use pm_kind, only: IKC => IK1
    4395             : #include "pm_arrayRank@routines.inc.F90"
    4396         103 :     end procedure
    4397             : #endif
    4398             : 
    4399             : #undef IK_ENABLED
    4400             : 
    4401             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4402             : 
    4403             : #define LK_ENABLED 1
    4404             : 
    4405             : #if LK5_ENABLED
    4406         103 :     module procedure getRankOrdinalDefCom_D1_LK5
    4407             :         use pm_kind, only: LKC => LK5
    4408             : #include "pm_arrayRank@routines.inc.F90"
    4409         103 :     end procedure
    4410             : #endif
    4411             : 
    4412             : #if LK4_ENABLED
    4413         103 :     module procedure getRankOrdinalDefCom_D1_LK4
    4414             :         use pm_kind, only: LKC => LK4
    4415             : #include "pm_arrayRank@routines.inc.F90"
    4416         103 :     end procedure
    4417             : #endif
    4418             : 
    4419             : #if LK3_ENABLED
    4420         104 :     module procedure getRankOrdinalDefCom_D1_LK3
    4421             :         use pm_kind, only: LKC => LK3
    4422             : #include "pm_arrayRank@routines.inc.F90"
    4423         104 :     end procedure
    4424             : #endif
    4425             : 
    4426             : #if LK2_ENABLED
    4427         103 :     module procedure getRankOrdinalDefCom_D1_LK2
    4428             :         use pm_kind, only: LKC => LK2
    4429             : #include "pm_arrayRank@routines.inc.F90"
    4430         103 :     end procedure
    4431             : #endif
    4432             : 
    4433             : #if LK1_ENABLED
    4434         103 :     module procedure getRankOrdinalDefCom_D1_LK1
    4435             :         use pm_kind, only: LKC => LK1
    4436             : #include "pm_arrayRank@routines.inc.F90"
    4437         103 :     end procedure
    4438             : #endif
    4439             : 
    4440             : #undef LK_ENABLED
    4441             : 
    4442             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4443             : 
    4444             : #define CK_ENABLED 1
    4445             : 
    4446             : #if CK5_ENABLED
    4447             :     module procedure getRankOrdinalDefCom_D1_CK5
    4448             :         use pm_kind, only: CKC => CK5
    4449             : #include "pm_arrayRank@routines.inc.F90"
    4450             :     end procedure
    4451             : #endif
    4452             : 
    4453             : #if CK4_ENABLED
    4454         103 :     module procedure getRankOrdinalDefCom_D1_CK4
    4455             :         use pm_kind, only: CKC => CK4
    4456             : #include "pm_arrayRank@routines.inc.F90"
    4457         103 :     end procedure
    4458             : #endif
    4459             : 
    4460             : #if CK3_ENABLED
    4461         103 :     module procedure getRankOrdinalDefCom_D1_CK3
    4462             :         use pm_kind, only: CKC => CK3
    4463             : #include "pm_arrayRank@routines.inc.F90"
    4464         103 :     end procedure
    4465             : #endif
    4466             : 
    4467             : #if CK2_ENABLED
    4468         103 :     module procedure getRankOrdinalDefCom_D1_CK2
    4469             :         use pm_kind, only: CKC => CK2
    4470             : #include "pm_arrayRank@routines.inc.F90"
    4471         103 :     end procedure
    4472             : #endif
    4473             : 
    4474             : #if CK1_ENABLED
    4475         103 :     module procedure getRankOrdinalDefCom_D1_CK1
    4476             :         use pm_kind, only: CKC => CK1
    4477             : #include "pm_arrayRank@routines.inc.F90"
    4478         103 :     end procedure
    4479             : #endif
    4480             : 
    4481             : #undef CK_ENABLED
    4482             : 
    4483             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4484             : 
    4485             : #define RK_ENABLED 1
    4486             : 
    4487             : #if RK5_ENABLED
    4488             :     module procedure getRankOrdinalDefCom_D1_RK5
    4489             :         use pm_kind, only: RKC => RK5
    4490             : #include "pm_arrayRank@routines.inc.F90"
    4491             :     end procedure
    4492             : #endif
    4493             : 
    4494             : #if RK4_ENABLED
    4495         103 :     module procedure getRankOrdinalDefCom_D1_RK4
    4496             :         use pm_kind, only: RKC => RK4
    4497             : #include "pm_arrayRank@routines.inc.F90"
    4498         103 :     end procedure
    4499             : #endif
    4500             : 
    4501             : #if RK3_ENABLED
    4502         103 :     module procedure getRankOrdinalDefCom_D1_RK3
    4503             :         use pm_kind, only: RKC => RK3
    4504             : #include "pm_arrayRank@routines.inc.F90"
    4505         103 :     end procedure
    4506             : #endif
    4507             : 
    4508             : #if RK2_ENABLED
    4509         104 :     module procedure getRankOrdinalDefCom_D1_RK2
    4510             :         use pm_kind, only: RKC => RK2
    4511             : #include "pm_arrayRank@routines.inc.F90"
    4512         104 :     end procedure
    4513             : #endif
    4514             : 
    4515             : #if RK1_ENABLED
    4516         104 :     module procedure getRankOrdinalDefCom_D1_RK1
    4517             :         use pm_kind, only: RKC => RK1
    4518             : #include "pm_arrayRank@routines.inc.F90"
    4519         104 :     end procedure
    4520             : #endif
    4521             : 
    4522             : #undef RK_ENABLED
    4523             : 
    4524             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4525             : 
    4526             : #if !__GFORTRAN__
    4527             : #define PSSK_ENABLED 1
    4528             : 
    4529             : #if SK5_ENABLED
    4530             :     module procedure getRankOrdinalDefCom_D1_PSSK5
    4531             :         use pm_kind, only: SKC => SK5
    4532             :         use pm_container, only: css_pdt
    4533             : #include "pm_arrayRank@routines.inc.F90"
    4534             :     end procedure
    4535             : #endif
    4536             : 
    4537             : #if SK4_ENABLED
    4538             :     module procedure getRankOrdinalDefCom_D1_PSSK4
    4539             :         use pm_kind, only: SKC => SK4
    4540             :         use pm_container, only: css_pdt
    4541             : #include "pm_arrayRank@routines.inc.F90"
    4542             :     end procedure
    4543             : #endif
    4544             : 
    4545             : #if SK3_ENABLED
    4546             :     module procedure getRankOrdinalDefCom_D1_PSSK3
    4547             :         use pm_kind, only: SKC => SK3
    4548             :         use pm_container, only: css_pdt
    4549             : #include "pm_arrayRank@routines.inc.F90"
    4550             :     end procedure
    4551             : #endif
    4552             : 
    4553             : #if SK2_ENABLED
    4554             :     module procedure getRankOrdinalDefCom_D1_PSSK2
    4555             :         use pm_kind, only: SKC => SK2
    4556             :         use pm_container, only: css_pdt
    4557             : #include "pm_arrayRank@routines.inc.F90"
    4558             :     end procedure
    4559             : #endif
    4560             : 
    4561             : #if SK1_ENABLED
    4562             :     module procedure getRankOrdinalDefCom_D1_PSSK1
    4563             :         use pm_kind, only: SKC => SK1
    4564             :         use pm_container, only: css_pdt
    4565             : #include "pm_arrayRank@routines.inc.F90"
    4566             :     end procedure
    4567             : #endif
    4568             : 
    4569             : #undef PSSK_ENABLED
    4570             : #endif
    4571             : 
    4572             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4573             : 
    4574             : #define BSSK_ENABLED 1
    4575             : 
    4576           0 :     module procedure getRankOrdinalDefCom_D1_BSSK
    4577             :         use pm_kind, only: SKC => SK
    4578             :         use pm_container, only: css_type
    4579             : #include "pm_arrayRank@routines.inc.F90"
    4580           0 :     end procedure
    4581             : 
    4582             : #undef BSSK_ENABLED
    4583             : 
    4584             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4585             : 
    4586             : #undef D1_ENABLED
    4587             : 
    4588             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4589             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4590             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4591             : 
    4592             : #undef DefCom_ENABLED
    4593             : 
    4594             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4595             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4596             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4597             : 
    4598             : #define CusCom_ENABLED 1
    4599             : 
    4600             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4601             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4602             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4603             : 
    4604             : #define D0_ENABLED 1
    4605             : 
    4606             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4607             : 
    4608             : #define SK_ENABLED 1
    4609             : 
    4610             : #if SK5_ENABLED
    4611             :     module procedure getRankOrdinalCusCom_D0_SK5
    4612             :         use pm_kind, only: SKC => SK5
    4613             : #include "pm_arrayRank@routines.inc.F90"
    4614             :     end procedure
    4615             : #endif
    4616             : 
    4617             : #if SK4_ENABLED
    4618             :     module procedure getRankOrdinalCusCom_D0_SK4
    4619             :         use pm_kind, only: SKC => SK4
    4620             : #include "pm_arrayRank@routines.inc.F90"
    4621             :     end procedure
    4622             : #endif
    4623             : 
    4624             : #if SK3_ENABLED
    4625             :     module procedure getRankOrdinalCusCom_D0_SK3
    4626             :         use pm_kind, only: SKC => SK3
    4627             : #include "pm_arrayRank@routines.inc.F90"
    4628             :     end procedure
    4629             : #endif
    4630             : 
    4631             : #if SK2_ENABLED
    4632             :     module procedure getRankOrdinalCusCom_D0_SK2
    4633             :         use pm_kind, only: SKC => SK2
    4634             : #include "pm_arrayRank@routines.inc.F90"
    4635             :     end procedure
    4636             : #endif
    4637             : 
    4638             : #if SK1_ENABLED
    4639         105 :     module procedure getRankOrdinalCusCom_D0_SK1
    4640             :         use pm_kind, only: SKC => SK1
    4641             : #include "pm_arrayRank@routines.inc.F90"
    4642         105 :     end procedure
    4643             : #endif
    4644             : 
    4645             : #undef SK_ENABLED
    4646             : 
    4647             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4648             : 
    4649             : #undef D0_ENABLED
    4650             : 
    4651             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4652             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4653             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4654             : 
    4655             : #define D1_ENABLED 1
    4656             : 
    4657             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4658             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4659             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4660             : 
    4661             : #define SK_ENABLED 1
    4662             : 
    4663             : #if SK5_ENABLED
    4664             :     module procedure getRankOrdinalCusCom_D1_SK5
    4665             :         use pm_kind, only: SKC => SK5
    4666             : #include "pm_arrayRank@routines.inc.F90"
    4667             :     end procedure
    4668             : #endif
    4669             : 
    4670             : #if SK4_ENABLED
    4671             :     module procedure getRankOrdinalCusCom_D1_SK4
    4672             :         use pm_kind, only: SKC => SK4
    4673             : #include "pm_arrayRank@routines.inc.F90"
    4674             :     end procedure
    4675             : #endif
    4676             : 
    4677             : #if SK3_ENABLED
    4678             :     module procedure getRankOrdinalCusCom_D1_SK3
    4679             :         use pm_kind, only: SKC => SK3
    4680             : #include "pm_arrayRank@routines.inc.F90"
    4681             :     end procedure
    4682             : #endif
    4683             : 
    4684             : #if SK2_ENABLED
    4685             :     module procedure getRankOrdinalCusCom_D1_SK2
    4686             :         use pm_kind, only: SKC => SK2
    4687             : #include "pm_arrayRank@routines.inc.F90"
    4688             :     end procedure
    4689             : #endif
    4690             : 
    4691             : #if SK1_ENABLED
    4692         103 :     module procedure getRankOrdinalCusCom_D1_SK1
    4693             :         use pm_kind, only: SKC => SK1
    4694             : #include "pm_arrayRank@routines.inc.F90"
    4695         103 :     end procedure
    4696             : #endif
    4697             : 
    4698             : #undef SK_ENABLED
    4699             : 
    4700             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4701             : 
    4702             : #define IK_ENABLED 1
    4703             : 
    4704             : #if IK5_ENABLED
    4705         103 :     module procedure getRankOrdinalCusCom_D1_IK5
    4706             :         use pm_kind, only: IKC => IK5
    4707             : #include "pm_arrayRank@routines.inc.F90"
    4708         103 :     end procedure
    4709             : #endif
    4710             : 
    4711             : #if IK4_ENABLED
    4712         103 :     module procedure getRankOrdinalCusCom_D1_IK4
    4713             :         use pm_kind, only: IKC => IK4
    4714             : #include "pm_arrayRank@routines.inc.F90"
    4715         103 :     end procedure
    4716             : #endif
    4717             : 
    4718             : #if IK3_ENABLED
    4719         104 :     module procedure getRankOrdinalCusCom_D1_IK3
    4720             :         use pm_kind, only: IKC => IK3
    4721             : #include "pm_arrayRank@routines.inc.F90"
    4722         104 :     end procedure
    4723             : #endif
    4724             : 
    4725             : #if IK2_ENABLED
    4726         103 :     module procedure getRankOrdinalCusCom_D1_IK2
    4727             :         use pm_kind, only: IKC => IK2
    4728             : #include "pm_arrayRank@routines.inc.F90"
    4729         103 :     end procedure
    4730             : #endif
    4731             : 
    4732             : #if IK1_ENABLED
    4733         103 :     module procedure getRankOrdinalCusCom_D1_IK1
    4734             :         use pm_kind, only: IKC => IK1
    4735             : #include "pm_arrayRank@routines.inc.F90"
    4736         103 :     end procedure
    4737             : #endif
    4738             : 
    4739             : #undef IK_ENABLED
    4740             : 
    4741             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4742             : 
    4743             : #define LK_ENABLED 1
    4744             : 
    4745             : #if LK5_ENABLED
    4746         103 :     module procedure getRankOrdinalCusCom_D1_LK5
    4747             :         use pm_kind, only: LKC => LK5
    4748             : #include "pm_arrayRank@routines.inc.F90"
    4749         103 :     end procedure
    4750             : #endif
    4751             : 
    4752             : #if LK4_ENABLED
    4753         103 :     module procedure getRankOrdinalCusCom_D1_LK4
    4754             :         use pm_kind, only: LKC => LK4
    4755             : #include "pm_arrayRank@routines.inc.F90"
    4756         103 :     end procedure
    4757             : #endif
    4758             : 
    4759             : #if LK3_ENABLED
    4760         103 :     module procedure getRankOrdinalCusCom_D1_LK3
    4761             :         use pm_kind, only: LKC => LK3
    4762             : #include "pm_arrayRank@routines.inc.F90"
    4763         103 :     end procedure
    4764             : #endif
    4765             : 
    4766             : #if LK2_ENABLED
    4767         103 :     module procedure getRankOrdinalCusCom_D1_LK2
    4768             :         use pm_kind, only: LKC => LK2
    4769             : #include "pm_arrayRank@routines.inc.F90"
    4770         103 :     end procedure
    4771             : #endif
    4772             : 
    4773             : #if LK1_ENABLED
    4774         103 :     module procedure getRankOrdinalCusCom_D1_LK1
    4775             :         use pm_kind, only: LKC => LK1
    4776             : #include "pm_arrayRank@routines.inc.F90"
    4777         103 :     end procedure
    4778             : #endif
    4779             : 
    4780             : #undef LK_ENABLED
    4781             : 
    4782             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4783             : 
    4784             : #define CK_ENABLED 1
    4785             : 
    4786             : #if CK5_ENABLED
    4787             :     module procedure getRankOrdinalCusCom_D1_CK5
    4788             :         use pm_kind, only: CKC => CK5
    4789             : #include "pm_arrayRank@routines.inc.F90"
    4790             :     end procedure
    4791             : #endif
    4792             : 
    4793             : #if CK4_ENABLED
    4794         103 :     module procedure getRankOrdinalCusCom_D1_CK4
    4795             :         use pm_kind, only: CKC => CK4
    4796             : #include "pm_arrayRank@routines.inc.F90"
    4797         103 :     end procedure
    4798             : #endif
    4799             : 
    4800             : #if CK3_ENABLED
    4801         103 :     module procedure getRankOrdinalCusCom_D1_CK3
    4802             :         use pm_kind, only: CKC => CK3
    4803             : #include "pm_arrayRank@routines.inc.F90"
    4804         103 :     end procedure
    4805             : #endif
    4806             : 
    4807             : #if CK2_ENABLED
    4808         103 :     module procedure getRankOrdinalCusCom_D1_CK2
    4809             :         use pm_kind, only: CKC => CK2
    4810             : #include "pm_arrayRank@routines.inc.F90"
    4811         103 :     end procedure
    4812             : #endif
    4813             : 
    4814             : #if CK1_ENABLED
    4815         103 :     module procedure getRankOrdinalCusCom_D1_CK1
    4816             :         use pm_kind, only: CKC => CK1
    4817             : #include "pm_arrayRank@routines.inc.F90"
    4818         103 :     end procedure
    4819             : #endif
    4820             : 
    4821             : #undef CK_ENABLED
    4822             : 
    4823             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4824             : 
    4825             : #define RK_ENABLED 1
    4826             : 
    4827             : #if RK5_ENABLED
    4828             :     module procedure getRankOrdinalCusCom_D1_RK5
    4829             :         use pm_kind, only: RKC => RK5
    4830             : #include "pm_arrayRank@routines.inc.F90"
    4831             :     end procedure
    4832             : #endif
    4833             : 
    4834             : #if RK4_ENABLED
    4835         103 :     module procedure getRankOrdinalCusCom_D1_RK4
    4836             :         use pm_kind, only: RKC => RK4
    4837             : #include "pm_arrayRank@routines.inc.F90"
    4838         103 :     end procedure
    4839             : #endif
    4840             : 
    4841             : #if RK3_ENABLED
    4842         103 :     module procedure getRankOrdinalCusCom_D1_RK3
    4843             :         use pm_kind, only: RKC => RK3
    4844             : #include "pm_arrayRank@routines.inc.F90"
    4845         103 :     end procedure
    4846             : #endif
    4847             : 
    4848             : #if RK2_ENABLED
    4849         104 :     module procedure getRankOrdinalCusCom_D1_RK2
    4850             :         use pm_kind, only: RKC => RK2
    4851             : #include "pm_arrayRank@routines.inc.F90"
    4852         104 :     end procedure
    4853             : #endif
    4854             : 
    4855             : #if RK1_ENABLED
    4856         103 :     module procedure getRankOrdinalCusCom_D1_RK1
    4857             :         use pm_kind, only: RKC => RK1
    4858             : #include "pm_arrayRank@routines.inc.F90"
    4859         103 :     end procedure
    4860             : #endif
    4861             : 
    4862             : #undef RK_ENABLED
    4863             : 
    4864             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4865             : 
    4866             : #if !__GFORTRAN__
    4867             : #define PSSK_ENABLED 1
    4868             : 
    4869             : #if SK5_ENABLED
    4870             :     module procedure getRankOrdinalCusCom_D1_PSSK5
    4871             :         use pm_kind, only: SKC => SK5
    4872             :         use pm_container, only: css_pdt
    4873             : #include "pm_arrayRank@routines.inc.F90"
    4874             :     end procedure
    4875             : #endif
    4876             : 
    4877             : #if SK4_ENABLED
    4878             :     module procedure getRankOrdinalCusCom_D1_PSSK4
    4879             :         use pm_kind, only: SKC => SK4
    4880             :         use pm_container, only: css_pdt
    4881             : #include "pm_arrayRank@routines.inc.F90"
    4882             :     end procedure
    4883             : #endif
    4884             : 
    4885             : #if SK3_ENABLED
    4886             :     module procedure getRankOrdinalCusCom_D1_PSSK3
    4887             :         use pm_kind, only: SKC => SK3
    4888             :         use pm_container, only: css_pdt
    4889             : #include "pm_arrayRank@routines.inc.F90"
    4890             :     end procedure
    4891             : #endif
    4892             : 
    4893             : #if SK2_ENABLED
    4894             :     module procedure getRankOrdinalCusCom_D1_PSSK2
    4895             :         use pm_kind, only: SKC => SK2
    4896             :         use pm_container, only: css_pdt
    4897             : #include "pm_arrayRank@routines.inc.F90"
    4898             :     end procedure
    4899             : #endif
    4900             : 
    4901             : #if SK1_ENABLED
    4902             :     module procedure getRankOrdinalCusCom_D1_PSSK1
    4903             :         use pm_kind, only: SKC => SK1
    4904             :         use pm_container, only: css_pdt
    4905             : #include "pm_arrayRank@routines.inc.F90"
    4906             :     end procedure
    4907             : #endif
    4908             : 
    4909             : #undef PSSK_ENABLED
    4910             : #endif
    4911             : 
    4912             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4913             : 
    4914             : #define BSSK_ENABLED 1
    4915             : 
    4916           0 :     module procedure getRankOrdinalCusCom_D1_BSSK
    4917             :         use pm_kind, only: SKC => SK
    4918             :         use pm_container, only: css_type
    4919             : #include "pm_arrayRank@routines.inc.F90"
    4920           0 :     end procedure
    4921             : 
    4922             : #undef BSSK_ENABLED
    4923             : 
    4924             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4925             : 
    4926             : #undef D1_ENABLED
    4927             : 
    4928             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4929             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4930             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4931             : 
    4932             : #undef CusCom_ENABLED
    4933             : 
    4934             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4935             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4936             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4937             : 
    4938             : #undef Ordinal_ENABLED
    4939             : 
    4940             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4941             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4942             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4943             : 
    4944             : #undef getRank_ENABLED
    4945             : 
    4946             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4947             : 
    4948             : #define setRank_ENABLED 1
    4949             : 
    4950             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4951             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4952             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4953             : 
    4954             : #define Ordinal_ENABLED 1
    4955             : 
    4956             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4957             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4958             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4959             : 
    4960             : #define DefCom_ENABLED 1
    4961             : 
    4962             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4963             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4964             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4965             : 
    4966             : #define D0_ENABLED 1
    4967             : 
    4968             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4969             : 
    4970             : #define SK_ENABLED 1
    4971             : 
    4972             : #if SK5_ENABLED
    4973             :     module procedure setRankOrdinalDefCom_D0_SK5
    4974             :         use pm_kind, only: SKC => SK5
    4975             : #include "pm_arrayRank@routines.inc.F90"
    4976             :     end procedure
    4977             : #endif
    4978             : 
    4979             : #if SK4_ENABLED
    4980             :     module procedure setRankOrdinalDefCom_D0_SK4
    4981             :         use pm_kind, only: SKC => SK4
    4982             : #include "pm_arrayRank@routines.inc.F90"
    4983             :     end procedure
    4984             : #endif
    4985             : 
    4986             : #if SK3_ENABLED
    4987             :     module procedure setRankOrdinalDefCom_D0_SK3
    4988             :         use pm_kind, only: SKC => SK3
    4989             : #include "pm_arrayRank@routines.inc.F90"
    4990             :     end procedure
    4991             : #endif
    4992             : 
    4993             : #if SK2_ENABLED
    4994             :     module procedure setRankOrdinalDefCom_D0_SK2
    4995             :         use pm_kind, only: SKC => SK2
    4996             : #include "pm_arrayRank@routines.inc.F90"
    4997             :     end procedure
    4998             : #endif
    4999             : 
    5000             : #if SK1_ENABLED
    5001         208 :     module procedure setRankOrdinalDefCom_D0_SK1
    5002             :         use pm_kind, only: SKC => SK1
    5003             : #include "pm_arrayRank@routines.inc.F90"
    5004         208 :     end procedure
    5005             : #endif
    5006             : 
    5007             : #undef SK_ENABLED
    5008             : 
    5009             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5010             : 
    5011             : #undef D0_ENABLED
    5012             : 
    5013             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5014             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5015             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5016             : 
    5017             : #define D1_ENABLED 1
    5018             : 
    5019             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5020             : 
    5021             : #define SK_ENABLED 1
    5022             : 
    5023             : #if SK5_ENABLED
    5024             :     module procedure setRankOrdinalDefCom_D1_SK5
    5025             :         use pm_kind, only: SKC => SK5
    5026             : #include "pm_arrayRank@routines.inc.F90"
    5027             :     end procedure
    5028             : #endif
    5029             : 
    5030             : #if SK4_ENABLED
    5031             :     module procedure setRankOrdinalDefCom_D1_SK4
    5032             :         use pm_kind, only: SKC => SK4
    5033             : #include "pm_arrayRank@routines.inc.F90"
    5034             :     end procedure
    5035             : #endif
    5036             : 
    5037             : #if SK3_ENABLED
    5038             :     module procedure setRankOrdinalDefCom_D1_SK3
    5039             :         use pm_kind, only: SKC => SK3
    5040             : #include "pm_arrayRank@routines.inc.F90"
    5041             :     end procedure
    5042             : #endif
    5043             : 
    5044             : #if SK2_ENABLED
    5045             :     module procedure setRankOrdinalDefCom_D1_SK2
    5046             :         use pm_kind, only: SKC => SK2
    5047             : #include "pm_arrayRank@routines.inc.F90"
    5048             :     end procedure
    5049             : #endif
    5050             : 
    5051             : #if SK1_ENABLED
    5052         208 :     module procedure setRankOrdinalDefCom_D1_SK1
    5053             :         use pm_kind, only: SKC => SK1
    5054             : #include "pm_arrayRank@routines.inc.F90"
    5055         208 :     end procedure
    5056             : #endif
    5057             : 
    5058             : #undef SK_ENABLED
    5059             : 
    5060             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5061             : 
    5062             : #define IK_ENABLED 1
    5063             : 
    5064             : #if IK5_ENABLED
    5065         206 :     module procedure setRankOrdinalDefCom_D1_IK5
    5066             :         use pm_kind, only: IKC => IK5
    5067             : #include "pm_arrayRank@routines.inc.F90"
    5068         206 :     end procedure
    5069             : #endif
    5070             : 
    5071             : #if IK4_ENABLED
    5072         206 :     module procedure setRankOrdinalDefCom_D1_IK4
    5073             :         use pm_kind, only: IKC => IK4
    5074             : #include "pm_arrayRank@routines.inc.F90"
    5075         206 :     end procedure
    5076             : #endif
    5077             : 
    5078             : #if IK3_ENABLED
    5079         210 :     module procedure setRankOrdinalDefCom_D1_IK3
    5080             :         use pm_kind, only: IKC => IK3
    5081             : #include "pm_arrayRank@routines.inc.F90"
    5082         210 :     end procedure
    5083             : #endif
    5084             : 
    5085             : #if IK2_ENABLED
    5086         206 :     module procedure setRankOrdinalDefCom_D1_IK2
    5087             :         use pm_kind, only: IKC => IK2
    5088             : #include "pm_arrayRank@routines.inc.F90"
    5089         206 :     end procedure
    5090             : #endif
    5091             : 
    5092             : #if IK1_ENABLED
    5093         206 :     module procedure setRankOrdinalDefCom_D1_IK1
    5094             :         use pm_kind, only: IKC => IK1
    5095             : #include "pm_arrayRank@routines.inc.F90"
    5096         206 :     end procedure
    5097             : #endif
    5098             : 
    5099             : #undef IK_ENABLED
    5100             : 
    5101             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5102             : 
    5103             : #define LK_ENABLED 1
    5104             : 
    5105             : #if LK5_ENABLED
    5106         206 :     module procedure setRankOrdinalDefCom_D1_LK5
    5107             :         use pm_kind, only: LKC => LK5
    5108             : #include "pm_arrayRank@routines.inc.F90"
    5109         206 :     end procedure
    5110             : #endif
    5111             : 
    5112             : #if LK4_ENABLED
    5113         206 :     module procedure setRankOrdinalDefCom_D1_LK4
    5114             :         use pm_kind, only: LKC => LK4
    5115             : #include "pm_arrayRank@routines.inc.F90"
    5116         206 :     end procedure
    5117             : #endif
    5118             : 
    5119             : #if LK3_ENABLED
    5120         208 :     module procedure setRankOrdinalDefCom_D1_LK3
    5121             :         use pm_kind, only: LKC => LK3
    5122             : #include "pm_arrayRank@routines.inc.F90"
    5123         208 :     end procedure
    5124             : #endif
    5125             : 
    5126             : #if LK2_ENABLED
    5127         206 :     module procedure setRankOrdinalDefCom_D1_LK2
    5128             :         use pm_kind, only: LKC => LK2
    5129             : #include "pm_arrayRank@routines.inc.F90"
    5130         206 :     end procedure
    5131             : #endif
    5132             : 
    5133             : #if LK1_ENABLED
    5134         206 :     module procedure setRankOrdinalDefCom_D1_LK1
    5135             :         use pm_kind, only: LKC => LK1
    5136             : #include "pm_arrayRank@routines.inc.F90"
    5137         206 :     end procedure
    5138             : #endif
    5139             : 
    5140             : #undef LK_ENABLED
    5141             : 
    5142             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5143             : 
    5144             : #define CK_ENABLED 1
    5145             : 
    5146             : #if CK5_ENABLED
    5147             :     module procedure setRankOrdinalDefCom_D1_CK5
    5148             :         use pm_kind, only: CKC => CK5
    5149             : #include "pm_arrayRank@routines.inc.F90"
    5150             :     end procedure
    5151             : #endif
    5152             : 
    5153             : #if CK4_ENABLED
    5154         206 :     module procedure setRankOrdinalDefCom_D1_CK4
    5155             :         use pm_kind, only: CKC => CK4
    5156             : #include "pm_arrayRank@routines.inc.F90"
    5157         206 :     end procedure
    5158             : #endif
    5159             : 
    5160             : #if CK3_ENABLED
    5161         206 :     module procedure setRankOrdinalDefCom_D1_CK3
    5162             :         use pm_kind, only: CKC => CK3
    5163             : #include "pm_arrayRank@routines.inc.F90"
    5164         206 :     end procedure
    5165             : #endif
    5166             : 
    5167             : #if CK2_ENABLED
    5168         206 :     module procedure setRankOrdinalDefCom_D1_CK2
    5169             :         use pm_kind, only: CKC => CK2
    5170             : #include "pm_arrayRank@routines.inc.F90"
    5171         206 :     end procedure
    5172             : #endif
    5173             : 
    5174             : #if CK1_ENABLED
    5175         206 :     module procedure setRankOrdinalDefCom_D1_CK1
    5176             :         use pm_kind, only: CKC => CK1
    5177             : #include "pm_arrayRank@routines.inc.F90"
    5178         206 :     end procedure
    5179             : #endif
    5180             : 
    5181             : #undef CK_ENABLED
    5182             : 
    5183             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5184             : 
    5185             : #define RK_ENABLED 1
    5186             : 
    5187             : #if RK5_ENABLED
    5188             :     module procedure setRankOrdinalDefCom_D1_RK5
    5189             :         use pm_kind, only: RKC => RK5
    5190             : #include "pm_arrayRank@routines.inc.F90"
    5191             :     end procedure
    5192             : #endif
    5193             : 
    5194             : #if RK4_ENABLED
    5195         206 :     module procedure setRankOrdinalDefCom_D1_RK4
    5196             :         use pm_kind, only: RKC => RK4
    5197             : #include "pm_arrayRank@routines.inc.F90"
    5198         206 :     end procedure
    5199             : #endif
    5200             : 
    5201             : #if RK3_ENABLED
    5202         206 :     module procedure setRankOrdinalDefCom_D1_RK3
    5203             :         use pm_kind, only: RKC => RK3
    5204             : #include "pm_arrayRank@routines.inc.F90"
    5205         206 :     end procedure
    5206             : #endif
    5207             : 
    5208             : #if RK2_ENABLED
    5209         208 :     module procedure setRankOrdinalDefCom_D1_RK2
    5210             :         use pm_kind, only: RKC => RK2
    5211             : #include "pm_arrayRank@routines.inc.F90"
    5212         208 :     end procedure
    5213             : #endif
    5214             : 
    5215             : #if RK1_ENABLED
    5216         208 :     module procedure setRankOrdinalDefCom_D1_RK1
    5217             :         use pm_kind, only: RKC => RK1
    5218             : #include "pm_arrayRank@routines.inc.F90"
    5219         208 :     end procedure
    5220             : #endif
    5221             : 
    5222             : #undef RK_ENABLED
    5223             : 
    5224             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5225             : 
    5226             : #if !__GFORTRAN__
    5227             : #define PSSK_ENABLED 1
    5228             : 
    5229             : #if SK5_ENABLED
    5230             :     module procedure setRankOrdinalDefCom_D1_PSSK5
    5231             :         use pm_kind, only: SKC => SK5
    5232             :         use pm_container, only: css_pdt
    5233             : #include "pm_arrayRank@routines.inc.F90"
    5234             :     end procedure
    5235             : #endif
    5236             : 
    5237             : #if SK4_ENABLED
    5238             :     module procedure setRankOrdinalDefCom_D1_PSSK4
    5239             :         use pm_kind, only: SKC => SK4
    5240             :         use pm_container, only: css_pdt
    5241             : #include "pm_arrayRank@routines.inc.F90"
    5242             :     end procedure
    5243             : #endif
    5244             : 
    5245             : #if SK3_ENABLED
    5246             :     module procedure setRankOrdinalDefCom_D1_PSSK3
    5247             :         use pm_kind, only: SKC => SK3
    5248             :         use pm_container, only: css_pdt
    5249             : #include "pm_arrayRank@routines.inc.F90"
    5250             :     end procedure
    5251             : #endif
    5252             : 
    5253             : #if SK2_ENABLED
    5254             :     module procedure setRankOrdinalDefCom_D1_PSSK2
    5255             :         use pm_kind, only: SKC => SK2
    5256             :         use pm_container, only: css_pdt
    5257             : #include "pm_arrayRank@routines.inc.F90"
    5258             :     end procedure
    5259             : #endif
    5260             : 
    5261             : #if SK1_ENABLED
    5262             :     module procedure setRankOrdinalDefCom_D1_PSSK1
    5263             :         use pm_kind, only: SKC => SK1
    5264             :         use pm_container, only: css_pdt
    5265             : #include "pm_arrayRank@routines.inc.F90"
    5266             :     end procedure
    5267             : #endif
    5268             : 
    5269             : #undef PSSK_ENABLED
    5270             : #endif
    5271             : 
    5272             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5273             : 
    5274             : #define BSSK_ENABLED 1
    5275             : 
    5276           0 :     module procedure setRankOrdinalDefCom_D1_BSSK
    5277             :         use pm_kind, only: SKC => SK
    5278             :         use pm_container, only: css_type
    5279             : #include "pm_arrayRank@routines.inc.F90"
    5280           0 :     end procedure
    5281             : 
    5282             : #undef BSSK_ENABLED
    5283             : 
    5284             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5285             : 
    5286             : #undef D1_ENABLED
    5287             : 
    5288             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5289             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5290             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5291             : 
    5292             : #undef DefCom_ENABLED
    5293             : 
    5294             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5295             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5296             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5297             : 
    5298             : #define CusCom_ENABLED 1
    5299             : 
    5300             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5301             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5302             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5303             : 
    5304             : #define D0_ENABLED 1
    5305             : 
    5306             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5307             : 
    5308             : #define SK_ENABLED 1
    5309             : 
    5310             : #if SK5_ENABLED
    5311             :     module procedure setRankOrdinalCusCom_D0_SK5
    5312             :         use pm_kind, only: SKC => SK5
    5313             : #include "pm_arrayRank@routines.inc.F90"
    5314             :     end procedure
    5315             : #endif
    5316             : 
    5317             : #if SK4_ENABLED
    5318             :     module procedure setRankOrdinalCusCom_D0_SK4
    5319             :         use pm_kind, only: SKC => SK4
    5320             : #include "pm_arrayRank@routines.inc.F90"
    5321             :     end procedure
    5322             : #endif
    5323             : 
    5324             : #if SK3_ENABLED
    5325             :     module procedure setRankOrdinalCusCom_D0_SK3
    5326             :         use pm_kind, only: SKC => SK3
    5327             : #include "pm_arrayRank@routines.inc.F90"
    5328             :     end procedure
    5329             : #endif
    5330             : 
    5331             : #if SK2_ENABLED
    5332             :     module procedure setRankOrdinalCusCom_D0_SK2
    5333             :         use pm_kind, only: SKC => SK2
    5334             : #include "pm_arrayRank@routines.inc.F90"
    5335             :     end procedure
    5336             : #endif
    5337             : 
    5338             : #if SK1_ENABLED
    5339         210 :     module procedure setRankOrdinalCusCom_D0_SK1
    5340             :         use pm_kind, only: SKC => SK1
    5341             : #include "pm_arrayRank@routines.inc.F90"
    5342         210 :     end procedure
    5343             : #endif
    5344             : 
    5345             : #undef SK_ENABLED
    5346             : 
    5347             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5348             : 
    5349             : #undef D0_ENABLED
    5350             : 
    5351             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5352             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5353             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5354             : 
    5355             : #define D1_ENABLED 1
    5356             : 
    5357             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5358             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5359             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5360             : 
    5361             : #define SK_ENABLED 1
    5362             : 
    5363             : #if SK5_ENABLED
    5364             :     module procedure setRankOrdinalCusCom_D1_SK5
    5365             :         use pm_kind, only: SKC => SK5
    5366             : #include "pm_arrayRank@routines.inc.F90"
    5367             :     end procedure
    5368             : #endif
    5369             : 
    5370             : #if SK4_ENABLED
    5371             :     module procedure setRankOrdinalCusCom_D1_SK4
    5372             :         use pm_kind, only: SKC => SK4
    5373             : #include "pm_arrayRank@routines.inc.F90"
    5374             :     end procedure
    5375             : #endif
    5376             : 
    5377             : #if SK3_ENABLED
    5378             :     module procedure setRankOrdinalCusCom_D1_SK3
    5379             :         use pm_kind, only: SKC => SK3
    5380             : #include "pm_arrayRank@routines.inc.F90"
    5381             :     end procedure
    5382             : #endif
    5383             : 
    5384             : #if SK2_ENABLED
    5385             :     module procedure setRankOrdinalCusCom_D1_SK2
    5386             :         use pm_kind, only: SKC => SK2
    5387             : #include "pm_arrayRank@routines.inc.F90"
    5388             :     end procedure
    5389             : #endif
    5390             : 
    5391             : #if SK1_ENABLED
    5392         206 :     module procedure setRankOrdinalCusCom_D1_SK1
    5393             :         use pm_kind, only: SKC => SK1
    5394             : #include "pm_arrayRank@routines.inc.F90"
    5395         206 :     end procedure
    5396             : #endif
    5397             : 
    5398             : #undef SK_ENABLED
    5399             : 
    5400             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5401             : 
    5402             : #define IK_ENABLED 1
    5403             : 
    5404             : #if IK5_ENABLED
    5405         206 :     module procedure setRankOrdinalCusCom_D1_IK5
    5406             :         use pm_kind, only: IKC => IK5
    5407             : #include "pm_arrayRank@routines.inc.F90"
    5408         206 :     end procedure
    5409             : #endif
    5410             : 
    5411             : #if IK4_ENABLED
    5412         206 :     module procedure setRankOrdinalCusCom_D1_IK4
    5413             :         use pm_kind, only: IKC => IK4
    5414             : #include "pm_arrayRank@routines.inc.F90"
    5415         206 :     end procedure
    5416             : #endif
    5417             : 
    5418             : #if IK3_ENABLED
    5419         208 :     module procedure setRankOrdinalCusCom_D1_IK3
    5420             :         use pm_kind, only: IKC => IK3
    5421             : #include "pm_arrayRank@routines.inc.F90"
    5422         208 :     end procedure
    5423             : #endif
    5424             : 
    5425             : #if IK2_ENABLED
    5426         206 :     module procedure setRankOrdinalCusCom_D1_IK2
    5427             :         use pm_kind, only: IKC => IK2
    5428             : #include "pm_arrayRank@routines.inc.F90"
    5429         206 :     end procedure
    5430             : #endif
    5431             : 
    5432             : #if IK1_ENABLED
    5433         206 :     module procedure setRankOrdinalCusCom_D1_IK1
    5434             :         use pm_kind, only: IKC => IK1
    5435             : #include "pm_arrayRank@routines.inc.F90"
    5436         206 :     end procedure
    5437             : #endif
    5438             : 
    5439             : #undef IK_ENABLED
    5440             : 
    5441             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5442             : 
    5443             : #define LK_ENABLED 1
    5444             : 
    5445             : #if LK5_ENABLED
    5446         206 :     module procedure setRankOrdinalCusCom_D1_LK5
    5447             :         use pm_kind, only: LKC => LK5
    5448             : #include "pm_arrayRank@routines.inc.F90"
    5449         206 :     end procedure
    5450             : #endif
    5451             : 
    5452             : #if LK4_ENABLED
    5453         206 :     module procedure setRankOrdinalCusCom_D1_LK4
    5454             :         use pm_kind, only: LKC => LK4
    5455             : #include "pm_arrayRank@routines.inc.F90"
    5456         206 :     end procedure
    5457             : #endif
    5458             : 
    5459             : #if LK3_ENABLED
    5460         206 :     module procedure setRankOrdinalCusCom_D1_LK3
    5461             :         use pm_kind, only: LKC => LK3
    5462             : #include "pm_arrayRank@routines.inc.F90"
    5463         206 :     end procedure
    5464             : #endif
    5465             : 
    5466             : #if LK2_ENABLED
    5467         206 :     module procedure setRankOrdinalCusCom_D1_LK2
    5468             :         use pm_kind, only: LKC => LK2
    5469             : #include "pm_arrayRank@routines.inc.F90"
    5470         206 :     end procedure
    5471             : #endif
    5472             : 
    5473             : #if LK1_ENABLED
    5474         206 :     module procedure setRankOrdinalCusCom_D1_LK1
    5475             :         use pm_kind, only: LKC => LK1
    5476             : #include "pm_arrayRank@routines.inc.F90"
    5477         206 :     end procedure
    5478             : #endif
    5479             : 
    5480             : #undef LK_ENABLED
    5481             : 
    5482             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5483             : 
    5484             : #define CK_ENABLED 1
    5485             : 
    5486             : #if CK5_ENABLED
    5487             :     module procedure setRankOrdinalCusCom_D1_CK5
    5488             :         use pm_kind, only: CKC => CK5
    5489             : #include "pm_arrayRank@routines.inc.F90"
    5490             :     end procedure
    5491             : #endif
    5492             : 
    5493             : #if CK4_ENABLED
    5494         206 :     module procedure setRankOrdinalCusCom_D1_CK4
    5495             :         use pm_kind, only: CKC => CK4
    5496             : #include "pm_arrayRank@routines.inc.F90"
    5497         206 :     end procedure
    5498             : #endif
    5499             : 
    5500             : #if CK3_ENABLED
    5501         206 :     module procedure setRankOrdinalCusCom_D1_CK3
    5502             :         use pm_kind, only: CKC => CK3
    5503             : #include "pm_arrayRank@routines.inc.F90"
    5504         206 :     end procedure
    5505             : #endif
    5506             : 
    5507             : #if CK2_ENABLED
    5508         206 :     module procedure setRankOrdinalCusCom_D1_CK2
    5509             :         use pm_kind, only: CKC => CK2
    5510             : #include "pm_arrayRank@routines.inc.F90"
    5511         206 :     end procedure
    5512             : #endif
    5513             : 
    5514             : #if CK1_ENABLED
    5515         206 :     module procedure setRankOrdinalCusCom_D1_CK1
    5516             :         use pm_kind, only: CKC => CK1
    5517             : #include "pm_arrayRank@routines.inc.F90"
    5518         206 :     end procedure
    5519             : #endif
    5520             : 
    5521             : #undef CK_ENABLED
    5522             : 
    5523             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5524             : 
    5525             : #define RK_ENABLED 1
    5526             : 
    5527             : #if RK5_ENABLED
    5528             :     module procedure setRankOrdinalCusCom_D1_RK5
    5529             :         use pm_kind, only: RKC => RK5
    5530             : #include "pm_arrayRank@routines.inc.F90"
    5531             :     end procedure
    5532             : #endif
    5533             : 
    5534             : #if RK4_ENABLED
    5535         206 :     module procedure setRankOrdinalCusCom_D1_RK4
    5536             :         use pm_kind, only: RKC => RK4
    5537             : #include "pm_arrayRank@routines.inc.F90"
    5538         206 :     end procedure
    5539             : #endif
    5540             : 
    5541             : #if RK3_ENABLED
    5542         206 :     module procedure setRankOrdinalCusCom_D1_RK3
    5543             :         use pm_kind, only: RKC => RK3
    5544             : #include "pm_arrayRank@routines.inc.F90"
    5545         206 :     end procedure
    5546             : #endif
    5547             : 
    5548             : #if RK2_ENABLED
    5549         208 :     module procedure setRankOrdinalCusCom_D1_RK2
    5550             :         use pm_kind, only: RKC => RK2
    5551             : #include "pm_arrayRank@routines.inc.F90"
    5552         208 :     end procedure
    5553             : #endif
    5554             : 
    5555             : #if RK1_ENABLED
    5556         206 :     module procedure setRankOrdinalCusCom_D1_RK1
    5557             :         use pm_kind, only: RKC => RK1
    5558             : #include "pm_arrayRank@routines.inc.F90"
    5559         206 :     end procedure
    5560             : #endif
    5561             : 
    5562             : #undef RK_ENABLED
    5563             : 
    5564             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5565             : 
    5566             : #if !__GFORTRAN__
    5567             : #define PSSK_ENABLED 1
    5568             : 
    5569             : #if SK5_ENABLED
    5570             :     module procedure setRankOrdinalCusCom_D1_PSSK5
    5571             :         use pm_kind, only: SKC => SK5
    5572             :         use pm_container, only: css_pdt
    5573             : #include "pm_arrayRank@routines.inc.F90"
    5574             :     end procedure
    5575             : #endif
    5576             : 
    5577             : #if SK4_ENABLED
    5578             :     module procedure setRankOrdinalCusCom_D1_PSSK4
    5579             :         use pm_kind, only: SKC => SK4
    5580             :         use pm_container, only: css_pdt
    5581             : #include "pm_arrayRank@routines.inc.F90"
    5582             :     end procedure
    5583             : #endif
    5584             : 
    5585             : #if SK3_ENABLED
    5586             :     module procedure setRankOrdinalCusCom_D1_PSSK3
    5587             :         use pm_kind, only: SKC => SK3
    5588             :         use pm_container, only: css_pdt
    5589             : #include "pm_arrayRank@routines.inc.F90"
    5590             :     end procedure
    5591             : #endif
    5592             : 
    5593             : #if SK2_ENABLED
    5594             :     module procedure setRankOrdinalCusCom_D1_PSSK2
    5595             :         use pm_kind, only: SKC => SK2
    5596             :         use pm_container, only: css_pdt
    5597             : #include "pm_arrayRank@routines.inc.F90"
    5598             :     end procedure
    5599             : #endif
    5600             : 
    5601             : #if SK1_ENABLED
    5602             :     module procedure setRankOrdinalCusCom_D1_PSSK1
    5603             :         use pm_kind, only: SKC => SK1
    5604             :         use pm_container, only: css_pdt
    5605             : #include "pm_arrayRank@routines.inc.F90"
    5606             :     end procedure
    5607             : #endif
    5608             : 
    5609             : #undef PSSK_ENABLED
    5610             : #endif
    5611             : 
    5612             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5613             : 
    5614             : #define BSSK_ENABLED 1
    5615             : 
    5616           0 :     module procedure setRankOrdinalCusCom_D1_BSSK
    5617             :         use pm_kind, only: SKC => SK
    5618             :         use pm_container, only: css_type
    5619             : #include "pm_arrayRank@routines.inc.F90"
    5620           0 :     end procedure
    5621             : 
    5622             : #undef BSSK_ENABLED
    5623             : 
    5624             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5625             : 
    5626             : #undef D1_ENABLED
    5627             : 
    5628             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5629             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5630             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5631             : 
    5632             : #undef CusCom_ENABLED
    5633             : 
    5634             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5635             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5636             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5637             : 
    5638             : #undef Ordinal_ENABLED
    5639             : 
    5640             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5641             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5642             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5643             : 
    5644             : #undef setRank_ENABLED
    5645             : 
    5646             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5647             : 
    5648             : #define getRank_ENABLED 1
    5649             : 
    5650             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5651             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5652             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5653             : 
    5654             : #define Standard_ENABLED 1
    5655             : 
    5656             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5657             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5658             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5659             : 
    5660             : #define DefCom_ENABLED 1
    5661             : 
    5662             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5663             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5664             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5665             : 
    5666             : #define D0_ENABLED 1
    5667             : 
    5668             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5669             : 
    5670             : #define SK_ENABLED 1
    5671             : 
    5672             : #if SK5_ENABLED
    5673             :     module procedure getRankStandardDefCom_D0_SK5
    5674             :         use pm_kind, only: SKC => SK5
    5675             : #include "pm_arrayRank@routines.inc.F90"
    5676             :     end procedure
    5677             : #endif
    5678             : 
    5679             : #if SK4_ENABLED
    5680             :     module procedure getRankStandardDefCom_D0_SK4
    5681             :         use pm_kind, only: SKC => SK4
    5682             : #include "pm_arrayRank@routines.inc.F90"
    5683             :     end procedure
    5684             : #endif
    5685             : 
    5686             : #if SK3_ENABLED
    5687             :     module procedure getRankStandardDefCom_D0_SK3
    5688             :         use pm_kind, only: SKC => SK3
    5689             : #include "pm_arrayRank@routines.inc.F90"
    5690             :     end procedure
    5691             : #endif
    5692             : 
    5693             : #if SK2_ENABLED
    5694             :     module procedure getRankStandardDefCom_D0_SK2
    5695             :         use pm_kind, only: SKC => SK2
    5696             : #include "pm_arrayRank@routines.inc.F90"
    5697             :     end procedure
    5698             : #endif
    5699             : 
    5700             : #if SK1_ENABLED
    5701         104 :     module procedure getRankStandardDefCom_D0_SK1
    5702             :         use pm_kind, only: SKC => SK1
    5703             : #include "pm_arrayRank@routines.inc.F90"
    5704         104 :     end procedure
    5705             : #endif
    5706             : 
    5707             : #undef SK_ENABLED
    5708             : 
    5709             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5710             : 
    5711             : #undef D0_ENABLED
    5712             : 
    5713             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5714             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5715             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5716             : 
    5717             : #define D1_ENABLED 1
    5718             : 
    5719             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5720             : 
    5721             : #define SK_ENABLED 1
    5722             : 
    5723             : #if SK5_ENABLED
    5724             :     module procedure getRankStandardDefCom_D1_SK5
    5725             :         use pm_kind, only: SKC => SK5
    5726             : #include "pm_arrayRank@routines.inc.F90"
    5727             :     end procedure
    5728             : #endif
    5729             : 
    5730             : #if SK4_ENABLED
    5731             :     module procedure getRankStandardDefCom_D1_SK4
    5732             :         use pm_kind, only: SKC => SK4
    5733             : #include "pm_arrayRank@routines.inc.F90"
    5734             :     end procedure
    5735             : #endif
    5736             : 
    5737             : #if SK3_ENABLED
    5738             :     module procedure getRankStandardDefCom_D1_SK3
    5739             :         use pm_kind, only: SKC => SK3
    5740             : #include "pm_arrayRank@routines.inc.F90"
    5741             :     end procedure
    5742             : #endif
    5743             : 
    5744             : #if SK2_ENABLED
    5745             :     module procedure getRankStandardDefCom_D1_SK2
    5746             :         use pm_kind, only: SKC => SK2
    5747             : #include "pm_arrayRank@routines.inc.F90"
    5748             :     end procedure
    5749             : #endif
    5750             : 
    5751             : #if SK1_ENABLED
    5752         104 :     module procedure getRankStandardDefCom_D1_SK1
    5753             :         use pm_kind, only: SKC => SK1
    5754             : #include "pm_arrayRank@routines.inc.F90"
    5755         104 :     end procedure
    5756             : #endif
    5757             : 
    5758             : #undef SK_ENABLED
    5759             : 
    5760             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5761             : 
    5762             : #define IK_ENABLED 1
    5763             : 
    5764             : #if IK5_ENABLED
    5765         103 :     module procedure getRankStandardDefCom_D1_IK5
    5766             :         use pm_kind, only: IKC => IK5
    5767             : #include "pm_arrayRank@routines.inc.F90"
    5768         103 :     end procedure
    5769             : #endif
    5770             : 
    5771             : #if IK4_ENABLED
    5772         103 :     module procedure getRankStandardDefCom_D1_IK4
    5773             :         use pm_kind, only: IKC => IK4
    5774             : #include "pm_arrayRank@routines.inc.F90"
    5775         103 :     end procedure
    5776             : #endif
    5777             : 
    5778             : #if IK3_ENABLED
    5779         105 :     module procedure getRankStandardDefCom_D1_IK3
    5780             :         use pm_kind, only: IKC => IK3
    5781             : #include "pm_arrayRank@routines.inc.F90"
    5782         105 :     end procedure
    5783             : #endif
    5784             : 
    5785             : #if IK2_ENABLED
    5786         103 :     module procedure getRankStandardDefCom_D1_IK2
    5787             :         use pm_kind, only: IKC => IK2
    5788             : #include "pm_arrayRank@routines.inc.F90"
    5789         103 :     end procedure
    5790             : #endif
    5791             : 
    5792             : #if IK1_ENABLED
    5793         103 :     module procedure getRankStandardDefCom_D1_IK1
    5794             :         use pm_kind, only: IKC => IK1
    5795             : #include "pm_arrayRank@routines.inc.F90"
    5796         103 :     end procedure
    5797             : #endif
    5798             : 
    5799             : #undef IK_ENABLED
    5800             : 
    5801             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5802             : 
    5803             : #define LK_ENABLED 1
    5804             : 
    5805             : #if LK5_ENABLED
    5806         103 :     module procedure getRankStandardDefCom_D1_LK5
    5807             :         use pm_kind, only: LKC => LK5
    5808             : #include "pm_arrayRank@routines.inc.F90"
    5809         103 :     end procedure
    5810             : #endif
    5811             : 
    5812             : #if LK4_ENABLED
    5813         103 :     module procedure getRankStandardDefCom_D1_LK4
    5814             :         use pm_kind, only: LKC => LK4
    5815             : #include "pm_arrayRank@routines.inc.F90"
    5816         103 :     end procedure
    5817             : #endif
    5818             : 
    5819             : #if LK3_ENABLED
    5820         104 :     module procedure getRankStandardDefCom_D1_LK3
    5821             :         use pm_kind, only: LKC => LK3
    5822             : #include "pm_arrayRank@routines.inc.F90"
    5823         104 :     end procedure
    5824             : #endif
    5825             : 
    5826             : #if LK2_ENABLED
    5827         103 :     module procedure getRankStandardDefCom_D1_LK2
    5828             :         use pm_kind, only: LKC => LK2
    5829             : #include "pm_arrayRank@routines.inc.F90"
    5830         103 :     end procedure
    5831             : #endif
    5832             : 
    5833             : #if LK1_ENABLED
    5834         103 :     module procedure getRankStandardDefCom_D1_LK1
    5835             :         use pm_kind, only: LKC => LK1
    5836             : #include "pm_arrayRank@routines.inc.F90"
    5837         103 :     end procedure
    5838             : #endif
    5839             : 
    5840             : #undef LK_ENABLED
    5841             : 
    5842             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5843             : 
    5844             : #define CK_ENABLED 1
    5845             : 
    5846             : #if CK5_ENABLED
    5847             :     module procedure getRankStandardDefCom_D1_CK5
    5848             :         use pm_kind, only: CKC => CK5
    5849             : #include "pm_arrayRank@routines.inc.F90"
    5850             :     end procedure
    5851             : #endif
    5852             : 
    5853             : #if CK4_ENABLED
    5854         103 :     module procedure getRankStandardDefCom_D1_CK4
    5855             :         use pm_kind, only: CKC => CK4
    5856             : #include "pm_arrayRank@routines.inc.F90"
    5857         103 :     end procedure
    5858             : #endif
    5859             : 
    5860             : #if CK3_ENABLED
    5861         103 :     module procedure getRankStandardDefCom_D1_CK3
    5862             :         use pm_kind, only: CKC => CK3
    5863             : #include "pm_arrayRank@routines.inc.F90"
    5864         103 :     end procedure
    5865             : #endif
    5866             : 
    5867             : #if CK2_ENABLED
    5868         103 :     module procedure getRankStandardDefCom_D1_CK2
    5869             :         use pm_kind, only: CKC => CK2
    5870             : #include "pm_arrayRank@routines.inc.F90"
    5871         103 :     end procedure
    5872             : #endif
    5873             : 
    5874             : #if CK1_ENABLED
    5875         103 :     module procedure getRankStandardDefCom_D1_CK1
    5876             :         use pm_kind, only: CKC => CK1
    5877             : #include "pm_arrayRank@routines.inc.F90"
    5878         103 :     end procedure
    5879             : #endif
    5880             : 
    5881             : #undef CK_ENABLED
    5882             : 
    5883             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5884             : 
    5885             : #define RK_ENABLED 1
    5886             : 
    5887             : #if RK5_ENABLED
    5888             :     module procedure getRankStandardDefCom_D1_RK5
    5889             :         use pm_kind, only: RKC => RK5
    5890             : #include "pm_arrayRank@routines.inc.F90"
    5891             :     end procedure
    5892             : #endif
    5893             : 
    5894             : #if RK4_ENABLED
    5895         103 :     module procedure getRankStandardDefCom_D1_RK4
    5896             :         use pm_kind, only: RKC => RK4
    5897             : #include "pm_arrayRank@routines.inc.F90"
    5898         103 :     end procedure
    5899             : #endif
    5900             : 
    5901             : #if RK3_ENABLED
    5902         103 :     module procedure getRankStandardDefCom_D1_RK3
    5903             :         use pm_kind, only: RKC => RK3
    5904             : #include "pm_arrayRank@routines.inc.F90"
    5905         103 :     end procedure
    5906             : #endif
    5907             : 
    5908             : #if RK2_ENABLED
    5909         104 :     module procedure getRankStandardDefCom_D1_RK2
    5910             :         use pm_kind, only: RKC => RK2
    5911             : #include "pm_arrayRank@routines.inc.F90"
    5912         104 :     end procedure
    5913             : #endif
    5914             : 
    5915             : #if RK1_ENABLED
    5916         104 :     module procedure getRankStandardDefCom_D1_RK1
    5917             :         use pm_kind, only: RKC => RK1
    5918             : #include "pm_arrayRank@routines.inc.F90"
    5919         104 :     end procedure
    5920             : #endif
    5921             : 
    5922             : #undef RK_ENABLED
    5923             : 
    5924             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5925             : 
    5926             : #if !__GFORTRAN__
    5927             : #define PSSK_ENABLED 1
    5928             : 
    5929             : #if SK5_ENABLED
    5930             :     module procedure getRankStandardDefCom_D1_PSSK5
    5931             :         use pm_kind, only: SKC => SK5
    5932             :         use pm_container, only: css_pdt
    5933             : #include "pm_arrayRank@routines.inc.F90"
    5934             :     end procedure
    5935             : #endif
    5936             : 
    5937             : #if SK4_ENABLED
    5938             :     module procedure getRankStandardDefCom_D1_PSSK4
    5939             :         use pm_kind, only: SKC => SK4
    5940             :         use pm_container, only: css_pdt
    5941             : #include "pm_arrayRank@routines.inc.F90"
    5942             :     end procedure
    5943             : #endif
    5944             : 
    5945             : #if SK3_ENABLED
    5946             :     module procedure getRankStandardDefCom_D1_PSSK3
    5947             :         use pm_kind, only: SKC => SK3
    5948             :         use pm_container, only: css_pdt
    5949             : #include "pm_arrayRank@routines.inc.F90"
    5950             :     end procedure
    5951             : #endif
    5952             : 
    5953             : #if SK2_ENABLED
    5954             :     module procedure getRankStandardDefCom_D1_PSSK2
    5955             :         use pm_kind, only: SKC => SK2
    5956             :         use pm_container, only: css_pdt
    5957             : #include "pm_arrayRank@routines.inc.F90"
    5958             :     end procedure
    5959             : #endif
    5960             : 
    5961             : #if SK1_ENABLED
    5962             :     module procedure getRankStandardDefCom_D1_PSSK1
    5963             :         use pm_kind, only: SKC => SK1
    5964             :         use pm_container, only: css_pdt
    5965             : #include "pm_arrayRank@routines.inc.F90"
    5966             :     end procedure
    5967             : #endif
    5968             : 
    5969             : #undef PSSK_ENABLED
    5970             : #endif
    5971             : 
    5972             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5973             : 
    5974             : #define BSSK_ENABLED 1
    5975             : 
    5976           0 :     module procedure getRankStandardDefCom_D1_BSSK
    5977             :         use pm_kind, only: SKC => SK
    5978             :         use pm_container, only: css_type
    5979             : #include "pm_arrayRank@routines.inc.F90"
    5980           0 :     end procedure
    5981             : 
    5982             : #undef BSSK_ENABLED
    5983             : 
    5984             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5985             : 
    5986             : #undef D1_ENABLED
    5987             : 
    5988             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5989             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5990             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5991             : 
    5992             : #undef DefCom_ENABLED
    5993             : 
    5994             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5995             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5996             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5997             : 
    5998             : #define CusCom_ENABLED 1
    5999             : 
    6000             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6001             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6002             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6003             : 
    6004             : #define D0_ENABLED 1
    6005             : 
    6006             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6007             : 
    6008             : #define SK_ENABLED 1
    6009             : 
    6010             : #if SK5_ENABLED
    6011             :     module procedure getRankStandardCusCom_D0_SK5
    6012             :         use pm_kind, only: SKC => SK5
    6013             : #include "pm_arrayRank@routines.inc.F90"
    6014             :     end procedure
    6015             : #endif
    6016             : 
    6017             : #if SK4_ENABLED
    6018             :     module procedure getRankStandardCusCom_D0_SK4
    6019             :         use pm_kind, only: SKC => SK4
    6020             : #include "pm_arrayRank@routines.inc.F90"
    6021             :     end procedure
    6022             : #endif
    6023             : 
    6024             : #if SK3_ENABLED
    6025             :     module procedure getRankStandardCusCom_D0_SK3
    6026             :         use pm_kind, only: SKC => SK3
    6027             : #include "pm_arrayRank@routines.inc.F90"
    6028             :     end procedure
    6029             : #endif
    6030             : 
    6031             : #if SK2_ENABLED
    6032             :     module procedure getRankStandardCusCom_D0_SK2
    6033             :         use pm_kind, only: SKC => SK2
    6034             : #include "pm_arrayRank@routines.inc.F90"
    6035             :     end procedure
    6036             : #endif
    6037             : 
    6038             : #if SK1_ENABLED
    6039         105 :     module procedure getRankStandardCusCom_D0_SK1
    6040             :         use pm_kind, only: SKC => SK1
    6041             : #include "pm_arrayRank@routines.inc.F90"
    6042         105 :     end procedure
    6043             : #endif
    6044             : 
    6045             : #undef SK_ENABLED
    6046             : 
    6047             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6048             : 
    6049             : #undef D0_ENABLED
    6050             : 
    6051             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6052             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6053             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6054             : 
    6055             : #define D1_ENABLED 1
    6056             : 
    6057             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6058             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6059             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6060             : 
    6061             : #define SK_ENABLED 1
    6062             : 
    6063             : #if SK5_ENABLED
    6064             :     module procedure getRankStandardCusCom_D1_SK5
    6065             :         use pm_kind, only: SKC => SK5
    6066             : #include "pm_arrayRank@routines.inc.F90"
    6067             :     end procedure
    6068             : #endif
    6069             : 
    6070             : #if SK4_ENABLED
    6071             :     module procedure getRankStandardCusCom_D1_SK4
    6072             :         use pm_kind, only: SKC => SK4
    6073             : #include "pm_arrayRank@routines.inc.F90"
    6074             :     end procedure
    6075             : #endif
    6076             : 
    6077             : #if SK3_ENABLED
    6078             :     module procedure getRankStandardCusCom_D1_SK3
    6079             :         use pm_kind, only: SKC => SK3
    6080             : #include "pm_arrayRank@routines.inc.F90"
    6081             :     end procedure
    6082             : #endif
    6083             : 
    6084             : #if SK2_ENABLED
    6085             :     module procedure getRankStandardCusCom_D1_SK2
    6086             :         use pm_kind, only: SKC => SK2
    6087             : #include "pm_arrayRank@routines.inc.F90"
    6088             :     end procedure
    6089             : #endif
    6090             : 
    6091             : #if SK1_ENABLED
    6092         103 :     module procedure getRankStandardCusCom_D1_SK1
    6093             :         use pm_kind, only: SKC => SK1
    6094             : #include "pm_arrayRank@routines.inc.F90"
    6095         103 :     end procedure
    6096             : #endif
    6097             : 
    6098             : #undef SK_ENABLED
    6099             : 
    6100             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6101             : 
    6102             : #define IK_ENABLED 1
    6103             : 
    6104             : #if IK5_ENABLED
    6105         103 :     module procedure getRankStandardCusCom_D1_IK5
    6106             :         use pm_kind, only: IKC => IK5
    6107             : #include "pm_arrayRank@routines.inc.F90"
    6108         103 :     end procedure
    6109             : #endif
    6110             : 
    6111             : #if IK4_ENABLED
    6112         103 :     module procedure getRankStandardCusCom_D1_IK4
    6113             :         use pm_kind, only: IKC => IK4
    6114             : #include "pm_arrayRank@routines.inc.F90"
    6115         103 :     end procedure
    6116             : #endif
    6117             : 
    6118             : #if IK3_ENABLED
    6119         104 :     module procedure getRankStandardCusCom_D1_IK3
    6120             :         use pm_kind, only: IKC => IK3
    6121             : #include "pm_arrayRank@routines.inc.F90"
    6122         104 :     end procedure
    6123             : #endif
    6124             : 
    6125             : #if IK2_ENABLED
    6126         103 :     module procedure getRankStandardCusCom_D1_IK2
    6127             :         use pm_kind, only: IKC => IK2
    6128             : #include "pm_arrayRank@routines.inc.F90"
    6129         103 :     end procedure
    6130             : #endif
    6131             : 
    6132             : #if IK1_ENABLED
    6133         103 :     module procedure getRankStandardCusCom_D1_IK1
    6134             :         use pm_kind, only: IKC => IK1
    6135             : #include "pm_arrayRank@routines.inc.F90"
    6136         103 :     end procedure
    6137             : #endif
    6138             : 
    6139             : #undef IK_ENABLED
    6140             : 
    6141             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6142             : 
    6143             : #define LK_ENABLED 1
    6144             : 
    6145             : #if LK5_ENABLED
    6146         103 :     module procedure getRankStandardCusCom_D1_LK5
    6147             :         use pm_kind, only: LKC => LK5
    6148             : #include "pm_arrayRank@routines.inc.F90"
    6149         103 :     end procedure
    6150             : #endif
    6151             : 
    6152             : #if LK4_ENABLED
    6153         103 :     module procedure getRankStandardCusCom_D1_LK4
    6154             :         use pm_kind, only: LKC => LK4
    6155             : #include "pm_arrayRank@routines.inc.F90"
    6156         103 :     end procedure
    6157             : #endif
    6158             : 
    6159             : #if LK3_ENABLED
    6160         103 :     module procedure getRankStandardCusCom_D1_LK3
    6161             :         use pm_kind, only: LKC => LK3
    6162             : #include "pm_arrayRank@routines.inc.F90"
    6163         103 :     end procedure
    6164             : #endif
    6165             : 
    6166             : #if LK2_ENABLED
    6167         103 :     module procedure getRankStandardCusCom_D1_LK2
    6168             :         use pm_kind, only: LKC => LK2
    6169             : #include "pm_arrayRank@routines.inc.F90"
    6170         103 :     end procedure
    6171             : #endif
    6172             : 
    6173             : #if LK1_ENABLED
    6174         103 :     module procedure getRankStandardCusCom_D1_LK1
    6175             :         use pm_kind, only: LKC => LK1
    6176             : #include "pm_arrayRank@routines.inc.F90"
    6177         103 :     end procedure
    6178             : #endif
    6179             : 
    6180             : #undef LK_ENABLED
    6181             : 
    6182             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6183             : 
    6184             : #define CK_ENABLED 1
    6185             : 
    6186             : #if CK5_ENABLED
    6187             :     module procedure getRankStandardCusCom_D1_CK5
    6188             :         use pm_kind, only: CKC => CK5
    6189             : #include "pm_arrayRank@routines.inc.F90"
    6190             :     end procedure
    6191             : #endif
    6192             : 
    6193             : #if CK4_ENABLED
    6194         103 :     module procedure getRankStandardCusCom_D1_CK4
    6195             :         use pm_kind, only: CKC => CK4
    6196             : #include "pm_arrayRank@routines.inc.F90"
    6197         103 :     end procedure
    6198             : #endif
    6199             : 
    6200             : #if CK3_ENABLED
    6201         103 :     module procedure getRankStandardCusCom_D1_CK3
    6202             :         use pm_kind, only: CKC => CK3
    6203             : #include "pm_arrayRank@routines.inc.F90"
    6204         103 :     end procedure
    6205             : #endif
    6206             : 
    6207             : #if CK2_ENABLED
    6208         103 :     module procedure getRankStandardCusCom_D1_CK2
    6209             :         use pm_kind, only: CKC => CK2
    6210             : #include "pm_arrayRank@routines.inc.F90"
    6211         103 :     end procedure
    6212             : #endif
    6213             : 
    6214             : #if CK1_ENABLED
    6215         103 :     module procedure getRankStandardCusCom_D1_CK1
    6216             :         use pm_kind, only: CKC => CK1
    6217             : #include "pm_arrayRank@routines.inc.F90"
    6218         103 :     end procedure
    6219             : #endif
    6220             : 
    6221             : #undef CK_ENABLED
    6222             : 
    6223             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6224             : 
    6225             : #define RK_ENABLED 1
    6226             : 
    6227             : #if RK5_ENABLED
    6228             :     module procedure getRankStandardCusCom_D1_RK5
    6229             :         use pm_kind, only: RKC => RK5
    6230             : #include "pm_arrayRank@routines.inc.F90"
    6231             :     end procedure
    6232             : #endif
    6233             : 
    6234             : #if RK4_ENABLED
    6235         103 :     module procedure getRankStandardCusCom_D1_RK4
    6236             :         use pm_kind, only: RKC => RK4
    6237             : #include "pm_arrayRank@routines.inc.F90"
    6238         103 :     end procedure
    6239             : #endif
    6240             : 
    6241             : #if RK3_ENABLED
    6242         103 :     module procedure getRankStandardCusCom_D1_RK3
    6243             :         use pm_kind, only: RKC => RK3
    6244             : #include "pm_arrayRank@routines.inc.F90"
    6245         103 :     end procedure
    6246             : #endif
    6247             : 
    6248             : #if RK2_ENABLED
    6249         104 :     module procedure getRankStandardCusCom_D1_RK2
    6250             :         use pm_kind, only: RKC => RK2
    6251             : #include "pm_arrayRank@routines.inc.F90"
    6252         104 :     end procedure
    6253             : #endif
    6254             : 
    6255             : #if RK1_ENABLED
    6256         103 :     module procedure getRankStandardCusCom_D1_RK1
    6257             :         use pm_kind, only: RKC => RK1
    6258             : #include "pm_arrayRank@routines.inc.F90"
    6259         103 :     end procedure
    6260             : #endif
    6261             : 
    6262             : #undef RK_ENABLED
    6263             : 
    6264             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6265             : 
    6266             : #if !__GFORTRAN__
    6267             : #define PSSK_ENABLED 1
    6268             : 
    6269             : #if SK5_ENABLED
    6270             :     module procedure getRankStandardCusCom_D1_PSSK5
    6271             :         use pm_kind, only: SKC => SK5
    6272             :         use pm_container, only: css_pdt
    6273             : #include "pm_arrayRank@routines.inc.F90"
    6274             :     end procedure
    6275             : #endif
    6276             : 
    6277             : #if SK4_ENABLED
    6278             :     module procedure getRankStandardCusCom_D1_PSSK4
    6279             :         use pm_kind, only: SKC => SK4
    6280             :         use pm_container, only: css_pdt
    6281             : #include "pm_arrayRank@routines.inc.F90"
    6282             :     end procedure
    6283             : #endif
    6284             : 
    6285             : #if SK3_ENABLED
    6286             :     module procedure getRankStandardCusCom_D1_PSSK3
    6287             :         use pm_kind, only: SKC => SK3
    6288             :         use pm_container, only: css_pdt
    6289             : #include "pm_arrayRank@routines.inc.F90"
    6290             :     end procedure
    6291             : #endif
    6292             : 
    6293             : #if SK2_ENABLED
    6294             :     module procedure getRankStandardCusCom_D1_PSSK2
    6295             :         use pm_kind, only: SKC => SK2
    6296             :         use pm_container, only: css_pdt
    6297             : #include "pm_arrayRank@routines.inc.F90"
    6298             :     end procedure
    6299             : #endif
    6300             : 
    6301             : #if SK1_ENABLED
    6302             :     module procedure getRankStandardCusCom_D1_PSSK1
    6303             :         use pm_kind, only: SKC => SK1
    6304             :         use pm_container, only: css_pdt
    6305             : #include "pm_arrayRank@routines.inc.F90"
    6306             :     end procedure
    6307             : #endif
    6308             : 
    6309             : #undef PSSK_ENABLED
    6310             : #endif
    6311             : 
    6312             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6313             : 
    6314             : #define BSSK_ENABLED 1
    6315             : 
    6316           0 :     module procedure getRankStandardCusCom_D1_BSSK
    6317             :         use pm_kind, only: SKC => SK
    6318             :         use pm_container, only: css_type
    6319             : #include "pm_arrayRank@routines.inc.F90"
    6320           0 :     end procedure
    6321             : 
    6322             : #undef BSSK_ENABLED
    6323             : 
    6324             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6325             : 
    6326             : #undef D1_ENABLED
    6327             : 
    6328             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6329             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6330             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6331             : 
    6332             : #undef CusCom_ENABLED
    6333             : 
    6334             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6335             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6336             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6337             : 
    6338             : #undef Standard_ENABLED
    6339             : 
    6340             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6341             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6342             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6343             : 
    6344             : #undef getRank_ENABLED
    6345             : 
    6346             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6347             : 
    6348             : #define setRank_ENABLED 1
    6349             : 
    6350             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6351             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6352             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6353             : 
    6354             : #define Standard_ENABLED 1
    6355             : 
    6356             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6357             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6358             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6359             : 
    6360             : #define DefCom_ENABLED 1
    6361             : 
    6362             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6363             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6364             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6365             : 
    6366             : #define D0_ENABLED 1
    6367             : 
    6368             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6369             : 
    6370             : #define SK_ENABLED 1
    6371             : 
    6372             : #if SK5_ENABLED
    6373             :     module procedure setRankStandardDefCom_D0_SK5
    6374             :         use pm_kind, only: SKC => SK5
    6375             : #include "pm_arrayRank@routines.inc.F90"
    6376             :     end procedure
    6377             : #endif
    6378             : 
    6379             : #if SK4_ENABLED
    6380             :     module procedure setRankStandardDefCom_D0_SK4
    6381             :         use pm_kind, only: SKC => SK4
    6382             : #include "pm_arrayRank@routines.inc.F90"
    6383             :     end procedure
    6384             : #endif
    6385             : 
    6386             : #if SK3_ENABLED
    6387             :     module procedure setRankStandardDefCom_D0_SK3
    6388             :         use pm_kind, only: SKC => SK3
    6389             : #include "pm_arrayRank@routines.inc.F90"
    6390             :     end procedure
    6391             : #endif
    6392             : 
    6393             : #if SK2_ENABLED
    6394             :     module procedure setRankStandardDefCom_D0_SK2
    6395             :         use pm_kind, only: SKC => SK2
    6396             : #include "pm_arrayRank@routines.inc.F90"
    6397             :     end procedure
    6398             : #endif
    6399             : 
    6400             : #if SK1_ENABLED
    6401         208 :     module procedure setRankStandardDefCom_D0_SK1
    6402             :         use pm_kind, only: SKC => SK1
    6403             : #include "pm_arrayRank@routines.inc.F90"
    6404             :     end procedure
    6405             : #endif
    6406             : 
    6407             : #undef SK_ENABLED
    6408             : 
    6409             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6410             : 
    6411             : #undef D0_ENABLED
    6412             : 
    6413             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6414             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6415             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6416             : 
    6417             : #define D1_ENABLED 1
    6418             : 
    6419             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6420             : 
    6421             : #define SK_ENABLED 1
    6422             : 
    6423             : #if SK5_ENABLED
    6424             :     module procedure setRankStandardDefCom_D1_SK5
    6425             :         use pm_kind, only: SKC => SK5
    6426             : #include "pm_arrayRank@routines.inc.F90"
    6427             :     end procedure
    6428             : #endif
    6429             : 
    6430             : #if SK4_ENABLED
    6431             :     module procedure setRankStandardDefCom_D1_SK4
    6432             :         use pm_kind, only: SKC => SK4
    6433             : #include "pm_arrayRank@routines.inc.F90"
    6434             :     end procedure
    6435             : #endif
    6436             : 
    6437             : #if SK3_ENABLED
    6438             :     module procedure setRankStandardDefCom_D1_SK3
    6439             :         use pm_kind, only: SKC => SK3
    6440             : #include "pm_arrayRank@routines.inc.F90"
    6441             :     end procedure
    6442             : #endif
    6443             : 
    6444             : #if SK2_ENABLED
    6445             :     module procedure setRankStandardDefCom_D1_SK2
    6446             :         use pm_kind, only: SKC => SK2
    6447             : #include "pm_arrayRank@routines.inc.F90"
    6448             :     end procedure
    6449             : #endif
    6450             : 
    6451             : #if SK1_ENABLED
    6452         208 :     module procedure setRankStandardDefCom_D1_SK1
    6453             :         use pm_kind, only: SKC => SK1
    6454             : #include "pm_arrayRank@routines.inc.F90"
    6455             :     end procedure
    6456             : #endif
    6457             : 
    6458             : #undef SK_ENABLED
    6459             : 
    6460             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6461             : 
    6462             : #define IK_ENABLED 1
    6463             : 
    6464             : #if IK5_ENABLED
    6465         206 :     module procedure setRankStandardDefCom_D1_IK5
    6466             :         use pm_kind, only: IKC => IK5
    6467             : #include "pm_arrayRank@routines.inc.F90"
    6468             :     end procedure
    6469             : #endif
    6470             : 
    6471             : #if IK4_ENABLED
    6472         206 :     module procedure setRankStandardDefCom_D1_IK4
    6473             :         use pm_kind, only: IKC => IK4
    6474             : #include "pm_arrayRank@routines.inc.F90"
    6475             :     end procedure
    6476             : #endif
    6477             : 
    6478             : #if IK3_ENABLED
    6479         210 :     module procedure setRankStandardDefCom_D1_IK3
    6480             :         use pm_kind, only: IKC => IK3
    6481             : #include "pm_arrayRank@routines.inc.F90"
    6482             :     end procedure
    6483             : #endif
    6484             : 
    6485             : #if IK2_ENABLED
    6486         206 :     module procedure setRankStandardDefCom_D1_IK2
    6487             :         use pm_kind, only: IKC => IK2
    6488             : #include "pm_arrayRank@routines.inc.F90"
    6489             :     end procedure
    6490             : #endif
    6491             : 
    6492             : #if IK1_ENABLED
    6493         206 :     module procedure setRankStandardDefCom_D1_IK1
    6494             :         use pm_kind, only: IKC => IK1
    6495             : #include "pm_arrayRank@routines.inc.F90"
    6496             :     end procedure
    6497             : #endif
    6498             : 
    6499             : #undef IK_ENABLED
    6500             : 
    6501             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6502             : 
    6503             : #define LK_ENABLED 1
    6504             : 
    6505             : #if LK5_ENABLED
    6506         206 :     module procedure setRankStandardDefCom_D1_LK5
    6507             :         use pm_kind, only: LKC => LK5
    6508             : #include "pm_arrayRank@routines.inc.F90"
    6509             :     end procedure
    6510             : #endif
    6511             : 
    6512             : #if LK4_ENABLED
    6513         206 :     module procedure setRankStandardDefCom_D1_LK4
    6514             :         use pm_kind, only: LKC => LK4
    6515             : #include "pm_arrayRank@routines.inc.F90"
    6516             :     end procedure
    6517             : #endif
    6518             : 
    6519             : #if LK3_ENABLED
    6520         208 :     module procedure setRankStandardDefCom_D1_LK3
    6521             :         use pm_kind, only: LKC => LK3
    6522             : #include "pm_arrayRank@routines.inc.F90"
    6523             :     end procedure
    6524             : #endif
    6525             : 
    6526             : #if LK2_ENABLED
    6527         206 :     module procedure setRankStandardDefCom_D1_LK2
    6528             :         use pm_kind, only: LKC => LK2
    6529             : #include "pm_arrayRank@routines.inc.F90"
    6530             :     end procedure
    6531             : #endif
    6532             : 
    6533             : #if LK1_ENABLED
    6534         206 :     module procedure setRankStandardDefCom_D1_LK1
    6535             :         use pm_kind, only: LKC => LK1
    6536             : #include "pm_arrayRank@routines.inc.F90"
    6537             :     end procedure
    6538             : #endif
    6539             : 
    6540             : #undef LK_ENABLED
    6541             : 
    6542             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6543             : 
    6544             : #define CK_ENABLED 1
    6545             : 
    6546             : #if CK5_ENABLED
    6547             :     module procedure setRankStandardDefCom_D1_CK5
    6548             :         use pm_kind, only: CKC => CK5
    6549             : #include "pm_arrayRank@routines.inc.F90"
    6550             :     end procedure
    6551             : #endif
    6552             : 
    6553             : #if CK4_ENABLED
    6554         206 :     module procedure setRankStandardDefCom_D1_CK4
    6555             :         use pm_kind, only: CKC => CK4
    6556             : #include "pm_arrayRank@routines.inc.F90"
    6557             :     end procedure
    6558             : #endif
    6559             : 
    6560             : #if CK3_ENABLED
    6561         206 :     module procedure setRankStandardDefCom_D1_CK3
    6562             :         use pm_kind, only: CKC => CK3
    6563             : #include "pm_arrayRank@routines.inc.F90"
    6564             :     end procedure
    6565             : #endif
    6566             : 
    6567             : #if CK2_ENABLED
    6568         206 :     module procedure setRankStandardDefCom_D1_CK2
    6569             :         use pm_kind, only: CKC => CK2
    6570             : #include "pm_arrayRank@routines.inc.F90"
    6571             :     end procedure
    6572             : #endif
    6573             : 
    6574             : #if CK1_ENABLED
    6575         206 :     module procedure setRankStandardDefCom_D1_CK1
    6576             :         use pm_kind, only: CKC => CK1
    6577             : #include "pm_arrayRank@routines.inc.F90"
    6578             :     end procedure
    6579             : #endif
    6580             : 
    6581             : #undef CK_ENABLED
    6582             : 
    6583             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6584             : 
    6585             : #define RK_ENABLED 1
    6586             : 
    6587             : #if RK5_ENABLED
    6588             :     module procedure setRankStandardDefCom_D1_RK5
    6589             :         use pm_kind, only: RKC => RK5
    6590             : #include "pm_arrayRank@routines.inc.F90"
    6591             :     end procedure
    6592             : #endif
    6593             : 
    6594             : #if RK4_ENABLED
    6595         206 :     module procedure setRankStandardDefCom_D1_RK4
    6596             :         use pm_kind, only: RKC => RK4
    6597             : #include "pm_arrayRank@routines.inc.F90"
    6598             :     end procedure
    6599             : #endif
    6600             : 
    6601             : #if RK3_ENABLED
    6602         206 :     module procedure setRankStandardDefCom_D1_RK3
    6603             :         use pm_kind, only: RKC => RK3
    6604             : #include "pm_arrayRank@routines.inc.F90"
    6605             :     end procedure
    6606             : #endif
    6607             : 
    6608             : #if RK2_ENABLED
    6609         208 :     module procedure setRankStandardDefCom_D1_RK2
    6610             :         use pm_kind, only: RKC => RK2
    6611             : #include "pm_arrayRank@routines.inc.F90"
    6612             :     end procedure
    6613             : #endif
    6614             : 
    6615             : #if RK1_ENABLED
    6616         208 :     module procedure setRankStandardDefCom_D1_RK1
    6617             :         use pm_kind, only: RKC => RK1
    6618             : #include "pm_arrayRank@routines.inc.F90"
    6619             :     end procedure
    6620             : #endif
    6621             : 
    6622             : #undef RK_ENABLED
    6623             : 
    6624             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6625             : 
    6626             : #if !__GFORTRAN__
    6627             : #define PSSK_ENABLED 1
    6628             : 
    6629             : #if SK5_ENABLED
    6630             :     module procedure setRankStandardDefCom_D1_PSSK5
    6631             :         use pm_kind, only: SKC => SK5
    6632             :         use pm_container, only: css_pdt
    6633             : #include "pm_arrayRank@routines.inc.F90"
    6634             :     end procedure
    6635             : #endif
    6636             : 
    6637             : #if SK4_ENABLED
    6638             :     module procedure setRankStandardDefCom_D1_PSSK4
    6639             :         use pm_kind, only: SKC => SK4
    6640             :         use pm_container, only: css_pdt
    6641             : #include "pm_arrayRank@routines.inc.F90"
    6642             :     end procedure
    6643             : #endif
    6644             : 
    6645             : #if SK3_ENABLED
    6646             :     module procedure setRankStandardDefCom_D1_PSSK3
    6647             :         use pm_kind, only: SKC => SK3
    6648             :         use pm_container, only: css_pdt
    6649             : #include "pm_arrayRank@routines.inc.F90"
    6650             :     end procedure
    6651             : #endif
    6652             : 
    6653             : #if SK2_ENABLED
    6654             :     module procedure setRankStandardDefCom_D1_PSSK2
    6655             :         use pm_kind, only: SKC => SK2
    6656             :         use pm_container, only: css_pdt
    6657             : #include "pm_arrayRank@routines.inc.F90"
    6658             :     end procedure
    6659             : #endif
    6660             : 
    6661             : #if SK1_ENABLED
    6662             :     module procedure setRankStandardDefCom_D1_PSSK1
    6663             :         use pm_kind, only: SKC => SK1
    6664             :         use pm_container, only: css_pdt
    6665             : #include "pm_arrayRank@routines.inc.F90"
    6666             :     end procedure
    6667             : #endif
    6668             : 
    6669             : #undef PSSK_ENABLED
    6670             : #endif
    6671             : 
    6672             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6673             : 
    6674             : #define BSSK_ENABLED 1
    6675             : 
    6676           0 :     module procedure setRankStandardDefCom_D1_BSSK
    6677             :         use pm_kind, only: SKC => SK
    6678             :         use pm_container, only: css_type
    6679             : #include "pm_arrayRank@routines.inc.F90"
    6680             :     end procedure
    6681             : 
    6682             : #undef BSSK_ENABLED
    6683             : 
    6684             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6685             : 
    6686             : #undef D1_ENABLED
    6687             : 
    6688             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6689             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6690             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6691             : 
    6692             : #undef DefCom_ENABLED
    6693             : 
    6694             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6695             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6696             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6697             : 
    6698             : #define CusCom_ENABLED 1
    6699             : 
    6700             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6701             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6702             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6703             : 
    6704             : #define D0_ENABLED 1
    6705             : 
    6706             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6707             : 
    6708             : #define SK_ENABLED 1
    6709             : 
    6710             : #if SK5_ENABLED
    6711             :     module procedure setRankStandardCusCom_D0_SK5
    6712             :         use pm_kind, only: SKC => SK5
    6713             : #include "pm_arrayRank@routines.inc.F90"
    6714             :     end procedure
    6715             : #endif
    6716             : 
    6717             : #if SK4_ENABLED
    6718             :     module procedure setRankStandardCusCom_D0_SK4
    6719             :         use pm_kind, only: SKC => SK4
    6720             : #include "pm_arrayRank@routines.inc.F90"
    6721             :     end procedure
    6722             : #endif
    6723             : 
    6724             : #if SK3_ENABLED
    6725             :     module procedure setRankStandardCusCom_D0_SK3
    6726             :         use pm_kind, only: SKC => SK3
    6727             : #include "pm_arrayRank@routines.inc.F90"
    6728             :     end procedure
    6729             : #endif
    6730             : 
    6731             : #if SK2_ENABLED
    6732             :     module procedure setRankStandardCusCom_D0_SK2
    6733             :         use pm_kind, only: SKC => SK2
    6734             : #include "pm_arrayRank@routines.inc.F90"
    6735             :     end procedure
    6736             : #endif
    6737             : 
    6738             : #if SK1_ENABLED
    6739         210 :     module procedure setRankStandardCusCom_D0_SK1
    6740             :         use pm_kind, only: SKC => SK1
    6741             : #include "pm_arrayRank@routines.inc.F90"
    6742             :     end procedure
    6743             : #endif
    6744             : 
    6745             : #undef SK_ENABLED
    6746             : 
    6747             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6748             : 
    6749             : #undef D0_ENABLED
    6750             : 
    6751             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6752             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6753             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6754             : 
    6755             : #define D1_ENABLED 1
    6756             : 
    6757             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6758             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6759             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6760             : 
    6761             : #define SK_ENABLED 1
    6762             : 
    6763             : #if SK5_ENABLED
    6764             :     module procedure setRankStandardCusCom_D1_SK5
    6765             :         use pm_kind, only: SKC => SK5
    6766             : #include "pm_arrayRank@routines.inc.F90"
    6767             :     end procedure
    6768             : #endif
    6769             : 
    6770             : #if SK4_ENABLED
    6771             :     module procedure setRankStandardCusCom_D1_SK4
    6772             :         use pm_kind, only: SKC => SK4
    6773             : #include "pm_arrayRank@routines.inc.F90"
    6774             :     end procedure
    6775             : #endif
    6776             : 
    6777             : #if SK3_ENABLED
    6778             :     module procedure setRankStandardCusCom_D1_SK3
    6779             :         use pm_kind, only: SKC => SK3
    6780             : #include "pm_arrayRank@routines.inc.F90"
    6781             :     end procedure
    6782             : #endif
    6783             : 
    6784             : #if SK2_ENABLED
    6785             :     module procedure setRankStandardCusCom_D1_SK2
    6786             :         use pm_kind, only: SKC => SK2
    6787             : #include "pm_arrayRank@routines.inc.F90"
    6788             :     end procedure
    6789             : #endif
    6790             : 
    6791             : #if SK1_ENABLED
    6792         206 :     module procedure setRankStandardCusCom_D1_SK1
    6793             :         use pm_kind, only: SKC => SK1
    6794             : #include "pm_arrayRank@routines.inc.F90"
    6795             :     end procedure
    6796             : #endif
    6797             : 
    6798             : #undef SK_ENABLED
    6799             : 
    6800             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6801             : 
    6802             : #define IK_ENABLED 1
    6803             : 
    6804             : #if IK5_ENABLED
    6805         206 :     module procedure setRankStandardCusCom_D1_IK5
    6806             :         use pm_kind, only: IKC => IK5
    6807             : #include "pm_arrayRank@routines.inc.F90"
    6808             :     end procedure
    6809             : #endif
    6810             : 
    6811             : #if IK4_ENABLED
    6812         206 :     module procedure setRankStandardCusCom_D1_IK4
    6813             :         use pm_kind, only: IKC => IK4
    6814             : #include "pm_arrayRank@routines.inc.F90"
    6815             :     end procedure
    6816             : #endif
    6817             : 
    6818             : #if IK3_ENABLED
    6819         208 :     module procedure setRankStandardCusCom_D1_IK3
    6820             :         use pm_kind, only: IKC => IK3
    6821             : #include "pm_arrayRank@routines.inc.F90"
    6822             :     end procedure
    6823             : #endif
    6824             : 
    6825             : #if IK2_ENABLED
    6826         206 :     module procedure setRankStandardCusCom_D1_IK2
    6827             :         use pm_kind, only: IKC => IK2
    6828             : #include "pm_arrayRank@routines.inc.F90"
    6829             :     end procedure
    6830             : #endif
    6831             : 
    6832             : #if IK1_ENABLED
    6833         206 :     module procedure setRankStandardCusCom_D1_IK1
    6834             :         use pm_kind, only: IKC => IK1
    6835             : #include "pm_arrayRank@routines.inc.F90"
    6836             :     end procedure
    6837             : #endif
    6838             : 
    6839             : #undef IK_ENABLED
    6840             : 
    6841             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6842             : 
    6843             : #define LK_ENABLED 1
    6844             : 
    6845             : #if LK5_ENABLED
    6846         206 :     module procedure setRankStandardCusCom_D1_LK5
    6847             :         use pm_kind, only: LKC => LK5
    6848             : #include "pm_arrayRank@routines.inc.F90"
    6849             :     end procedure
    6850             : #endif
    6851             : 
    6852             : #if LK4_ENABLED
    6853         206 :     module procedure setRankStandardCusCom_D1_LK4
    6854             :         use pm_kind, only: LKC => LK4
    6855             : #include "pm_arrayRank@routines.inc.F90"
    6856             :     end procedure
    6857             : #endif
    6858             : 
    6859             : #if LK3_ENABLED
    6860         206 :     module procedure setRankStandardCusCom_D1_LK3
    6861             :         use pm_kind, only: LKC => LK3
    6862             : #include "pm_arrayRank@routines.inc.F90"
    6863             :     end procedure
    6864             : #endif
    6865             : 
    6866             : #if LK2_ENABLED
    6867         206 :     module procedure setRankStandardCusCom_D1_LK2
    6868             :         use pm_kind, only: LKC => LK2
    6869             : #include "pm_arrayRank@routines.inc.F90"
    6870             :     end procedure
    6871             : #endif
    6872             : 
    6873             : #if LK1_ENABLED
    6874         206 :     module procedure setRankStandardCusCom_D1_LK1
    6875             :         use pm_kind, only: LKC => LK1
    6876             : #include "pm_arrayRank@routines.inc.F90"
    6877             :     end procedure
    6878             : #endif
    6879             : 
    6880             : #undef LK_ENABLED
    6881             : 
    6882             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6883             : 
    6884             : #define CK_ENABLED 1
    6885             : 
    6886             : #if CK5_ENABLED
    6887             :     module procedure setRankStandardCusCom_D1_CK5
    6888             :         use pm_kind, only: CKC => CK5
    6889             : #include "pm_arrayRank@routines.inc.F90"
    6890             :     end procedure
    6891             : #endif
    6892             : 
    6893             : #if CK4_ENABLED
    6894         206 :     module procedure setRankStandardCusCom_D1_CK4
    6895             :         use pm_kind, only: CKC => CK4
    6896             : #include "pm_arrayRank@routines.inc.F90"
    6897             :     end procedure
    6898             : #endif
    6899             : 
    6900             : #if CK3_ENABLED
    6901         206 :     module procedure setRankStandardCusCom_D1_CK3
    6902             :         use pm_kind, only: CKC => CK3
    6903             : #include "pm_arrayRank@routines.inc.F90"
    6904             :     end procedure
    6905             : #endif
    6906             : 
    6907             : #if CK2_ENABLED
    6908         206 :     module procedure setRankStandardCusCom_D1_CK2
    6909             :         use pm_kind, only: CKC => CK2
    6910             : #include "pm_arrayRank@routines.inc.F90"
    6911             :     end procedure
    6912             : #endif
    6913             : 
    6914             : #if CK1_ENABLED
    6915         206 :     module procedure setRankStandardCusCom_D1_CK1
    6916             :         use pm_kind, only: CKC => CK1
    6917             : #include "pm_arrayRank@routines.inc.F90"
    6918             :     end procedure
    6919             : #endif
    6920             : 
    6921             : #undef CK_ENABLED
    6922             : 
    6923             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6924             : 
    6925             : #define RK_ENABLED 1
    6926             : 
    6927             : #if RK5_ENABLED
    6928             :     module procedure setRankStandardCusCom_D1_RK5
    6929             :         use pm_kind, only: RKC => RK5
    6930             : #include "pm_arrayRank@routines.inc.F90"
    6931             :     end procedure
    6932             : #endif
    6933             : 
    6934             : #if RK4_ENABLED
    6935         206 :     module procedure setRankStandardCusCom_D1_RK4
    6936             :         use pm_kind, only: RKC => RK4
    6937             : #include "pm_arrayRank@routines.inc.F90"
    6938             :     end procedure
    6939             : #endif
    6940             : 
    6941             : #if RK3_ENABLED
    6942         206 :     module procedure setRankStandardCusCom_D1_RK3
    6943             :         use pm_kind, only: RKC => RK3
    6944             : #include "pm_arrayRank@routines.inc.F90"
    6945             :     end procedure
    6946             : #endif
    6947             : 
    6948             : #if RK2_ENABLED
    6949         208 :     module procedure setRankStandardCusCom_D1_RK2
    6950             :         use pm_kind, only: RKC => RK2
    6951             : #include "pm_arrayRank@routines.inc.F90"
    6952             :     end procedure
    6953             : #endif
    6954             : 
    6955             : #if RK1_ENABLED
    6956         206 :     module procedure setRankStandardCusCom_D1_RK1
    6957             :         use pm_kind, only: RKC => RK1
    6958             : #include "pm_arrayRank@routines.inc.F90"
    6959             :     end procedure
    6960             : #endif
    6961             : 
    6962             : #undef RK_ENABLED
    6963             : 
    6964             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6965             : 
    6966             : #if !__GFORTRAN__
    6967             : #define PSSK_ENABLED 1
    6968             : 
    6969             : #if SK5_ENABLED
    6970             :     module procedure setRankStandardCusCom_D1_PSSK5
    6971             :         use pm_kind, only: SKC => SK5
    6972             :         use pm_container, only: css_pdt
    6973             : #include "pm_arrayRank@routines.inc.F90"
    6974             :     end procedure
    6975             : #endif
    6976             : 
    6977             : #if SK4_ENABLED
    6978             :     module procedure setRankStandardCusCom_D1_PSSK4
    6979             :         use pm_kind, only: SKC => SK4
    6980             :         use pm_container, only: css_pdt
    6981             : #include "pm_arrayRank@routines.inc.F90"
    6982             :     end procedure
    6983             : #endif
    6984             : 
    6985             : #if SK3_ENABLED
    6986             :     module procedure setRankStandardCusCom_D1_PSSK3
    6987             :         use pm_kind, only: SKC => SK3
    6988             :         use pm_container, only: css_pdt
    6989             : #include "pm_arrayRank@routines.inc.F90"
    6990             :     end procedure
    6991             : #endif
    6992             : 
    6993             : #if SK2_ENABLED
    6994             :     module procedure setRankStandardCusCom_D1_PSSK2
    6995             :         use pm_kind, only: SKC => SK2
    6996             :         use pm_container, only: css_pdt
    6997             : #include "pm_arrayRank@routines.inc.F90"
    6998             :     end procedure
    6999             : #endif
    7000             : 
    7001             : #if SK1_ENABLED
    7002             :     module procedure setRankStandardCusCom_D1_PSSK1
    7003             :         use pm_kind, only: SKC => SK1
    7004             :         use pm_container, only: css_pdt
    7005             : #include "pm_arrayRank@routines.inc.F90"
    7006             :     end procedure
    7007             : #endif
    7008             : 
    7009             : #undef PSSK_ENABLED
    7010             : #endif
    7011             : 
    7012             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7013             : 
    7014             : #define BSSK_ENABLED 1
    7015             : 
    7016           0 :     module procedure setRankStandardCusCom_D1_BSSK
    7017             :         use pm_kind, only: SKC => SK
    7018             :         use pm_container, only: css_type
    7019             : #include "pm_arrayRank@routines.inc.F90"
    7020             :     end procedure
    7021             : 
    7022             : #undef BSSK_ENABLED
    7023             : 
    7024             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7025             : 
    7026             : #undef D1_ENABLED
    7027             : 
    7028             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7029             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7030             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7031             : 
    7032             : #undef CusCom_ENABLED
    7033             : 
    7034             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7035             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7036             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7037             : 
    7038             : #undef Standard_ENABLED
    7039             : 
    7040             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7041             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7042             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7043             : 
    7044             : #undef setRank_ENABLED
    7045             : 
    7046             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7047             : 
    7048             : #undef CHECK_ASSERTION
    7049             : 
    7050             : end submodule routines

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