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

          Line data    Source code
       1             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       2             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       3             : !!!!                                                                                                                            !!!!
       4             : !!!!    ParaMonte: Parallel Monte Carlo and Machine Learning Library.                                                           !!!!
       5             : !!!!                                                                                                                            !!!!
       6             : !!!!    Copyright (C) 2012-present, The Computational Data Science Lab                                                          !!!!
       7             : !!!!                                                                                                                            !!!!
       8             : !!!!    This file is part of the ParaMonte library.                                                                             !!!!
       9             : !!!!                                                                                                                            !!!!
      10             : !!!!    LICENSE                                                                                                                 !!!!
      11             : !!!!                                                                                                                            !!!!
      12             : !!!!       https://github.com/cdslaborg/paramonte/blob/main/LICENSE.md                                                          !!!!
      13             : !!!!                                                                                                                            !!!!
      14             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      15             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      16             : 
      17             : !>  \brief
      18             : !>  This file contains procedure implementations of [pm_arrayPad](@ref pm_arrayPad).
      19             : !>
      20             : !>  \finmain
      21             : !>
      22             : !>  \author
      23             : !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
      24             : 
      25             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      26             : 
      27             : submodule (pm_arrayPad) 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             :     implicit none
      40             : 
      41             : contains
      42             : 
      43             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      44             : 
      45             : #define getPadded_ENABLED 1
      46             : 
      47             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      48             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      49             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      50             : 
      51             : #define SB_ENABLED 1
      52             : 
      53             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      54             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      55             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      56             : 
      57             : #define Asis_ENABLED 1
      58             : 
      59             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      60             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      61             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      62             : 
      63             : #define D0_ENABLED 1
      64             : 
      65             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      66             : 
      67             : #define SK_ENABLED 1
      68             : 
      69             : #if SK5_ENABLED
      70             :     module procedure getPaddedAsisSB_D0_SK5
      71             :         use pm_kind, only: SKC => SK5
      72             : #include "pm_arrayPad@routines.inc.F90"
      73             :     end procedure
      74             : #endif
      75             : 
      76             : #if SK4_ENABLED
      77             :     module procedure getPaddedAsisSB_D0_SK4
      78             :         use pm_kind, only: SKC => SK4
      79             : #include "pm_arrayPad@routines.inc.F90"
      80             :     end procedure
      81             : #endif
      82             : 
      83             : #if SK3_ENABLED
      84             :     module procedure getPaddedAsisSB_D0_SK3
      85             :         use pm_kind, only: SKC => SK3
      86             : #include "pm_arrayPad@routines.inc.F90"
      87             :     end procedure
      88             : #endif
      89             : 
      90             : #if SK2_ENABLED
      91             :     module procedure getPaddedAsisSB_D0_SK2
      92             :         use pm_kind, only: SKC => SK2
      93             : #include "pm_arrayPad@routines.inc.F90"
      94             :     end procedure
      95             : #endif
      96             : 
      97             : #if SK1_ENABLED
      98          28 :     module procedure getPaddedAsisSB_D0_SK1
      99             :         use pm_kind, only: SKC => SK1
     100             : #include "pm_arrayPad@routines.inc.F90"
     101          28 :     end procedure
     102             : #endif
     103             : 
     104             : #undef SK_ENABLED
     105             : 
     106             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     107             : 
     108             : #undef D0_ENABLED
     109             : 
     110             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     111             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     112             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     113             : 
     114             : #define D1_ENABLED 1
     115             : 
     116             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     117             : 
     118             : #define SK_ENABLED 1
     119             : 
     120             : #if SK5_ENABLED
     121             :     module procedure getPaddedAsisSB_D1_SK5
     122             :         use pm_kind, only: SKC => SK5
     123             : #include "pm_arrayPad@routines.inc.F90"
     124             :     end procedure
     125             : #endif
     126             : 
     127             : #if SK4_ENABLED
     128             :     module procedure getPaddedAsisSB_D1_SK4
     129             :         use pm_kind, only: SKC => SK4
     130             : #include "pm_arrayPad@routines.inc.F90"
     131             :     end procedure
     132             : #endif
     133             : 
     134             : #if SK3_ENABLED
     135             :     module procedure getPaddedAsisSB_D1_SK3
     136             :         use pm_kind, only: SKC => SK3
     137             : #include "pm_arrayPad@routines.inc.F90"
     138             :     end procedure
     139             : #endif
     140             : 
     141             : #if SK2_ENABLED
     142             :     module procedure getPaddedAsisSB_D1_SK2
     143             :         use pm_kind, only: SKC => SK2
     144             : #include "pm_arrayPad@routines.inc.F90"
     145             :     end procedure
     146             : #endif
     147             : 
     148             : #if SK1_ENABLED
     149          28 :     module procedure getPaddedAsisSB_D1_SK1
     150             :         use pm_kind, only: SKC => SK1
     151             : #include "pm_arrayPad@routines.inc.F90"
     152          28 :     end procedure
     153             : #endif
     154             : 
     155             : #undef SK_ENABLED
     156             : 
     157             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     158             : 
     159             : #define IK_ENABLED 1
     160             : 
     161             : #if IK5_ENABLED
     162          27 :     module procedure getPaddedAsisSB_D1_IK5
     163             :         use pm_kind, only: IKC => IK5
     164             : #include "pm_arrayPad@routines.inc.F90"
     165          27 :     end procedure
     166             : #endif
     167             : 
     168             : #if IK4_ENABLED
     169          27 :     module procedure getPaddedAsisSB_D1_IK4
     170             :         use pm_kind, only: IKC => IK4
     171             : #include "pm_arrayPad@routines.inc.F90"
     172          27 :     end procedure
     173             : #endif
     174             : 
     175             : #if IK3_ENABLED
     176          28 :     module procedure getPaddedAsisSB_D1_IK3
     177             :         use pm_kind, only: IKC => IK3
     178             : #include "pm_arrayPad@routines.inc.F90"
     179          28 :     end procedure
     180             : #endif
     181             : 
     182             : #if IK2_ENABLED
     183          27 :     module procedure getPaddedAsisSB_D1_IK2
     184             :         use pm_kind, only: IKC => IK2
     185             : #include "pm_arrayPad@routines.inc.F90"
     186          27 :     end procedure
     187             : #endif
     188             : 
     189             : #if IK1_ENABLED
     190          27 :     module procedure getPaddedAsisSB_D1_IK1
     191             :         use pm_kind, only: IKC => IK1
     192             : #include "pm_arrayPad@routines.inc.F90"
     193          27 :     end procedure
     194             : #endif
     195             : 
     196             : #undef IK_ENABLED
     197             : 
     198             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     199             : 
     200             : #define LK_ENABLED 1
     201             : 
     202             : #if LK5_ENABLED
     203          27 :     module procedure getPaddedAsisSB_D1_LK5
     204             :         use pm_kind, only: LKC => LK5
     205             : #include "pm_arrayPad@routines.inc.F90"
     206          27 :     end procedure
     207             : #endif
     208             : 
     209             : #if LK4_ENABLED
     210          27 :     module procedure getPaddedAsisSB_D1_LK4
     211             :         use pm_kind, only: LKC => LK4
     212             : #include "pm_arrayPad@routines.inc.F90"
     213          27 :     end procedure
     214             : #endif
     215             : 
     216             : #if LK3_ENABLED
     217          28 :     module procedure getPaddedAsisSB_D1_LK3
     218             :         use pm_kind, only: LKC => LK3
     219             : #include "pm_arrayPad@routines.inc.F90"
     220          28 :     end procedure
     221             : #endif
     222             : 
     223             : #if LK2_ENABLED
     224          27 :     module procedure getPaddedAsisSB_D1_LK2
     225             :         use pm_kind, only: LKC => LK2
     226             : #include "pm_arrayPad@routines.inc.F90"
     227          27 :     end procedure
     228             : #endif
     229             : 
     230             : #if LK1_ENABLED
     231          27 :     module procedure getPaddedAsisSB_D1_LK1
     232             :         use pm_kind, only: LKC => LK1
     233             : #include "pm_arrayPad@routines.inc.F90"
     234          27 :     end procedure
     235             : #endif
     236             : 
     237             : #undef LK_ENABLED
     238             : 
     239             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     240             : 
     241             : #define CK_ENABLED 1
     242             : 
     243             : #if CK5_ENABLED
     244             :     module procedure getPaddedAsisSB_D1_CK5
     245             :         use pm_kind, only: CKC => CK5
     246             : #include "pm_arrayPad@routines.inc.F90"
     247             :     end procedure
     248             : #endif
     249             : 
     250             : #if CK4_ENABLED
     251          27 :     module procedure getPaddedAsisSB_D1_CK4
     252             :         use pm_kind, only: CKC => CK4
     253             : #include "pm_arrayPad@routines.inc.F90"
     254          27 :     end procedure
     255             : #endif
     256             : 
     257             : #if CK3_ENABLED
     258          27 :     module procedure getPaddedAsisSB_D1_CK3
     259             :         use pm_kind, only: CKC => CK3
     260             : #include "pm_arrayPad@routines.inc.F90"
     261          27 :     end procedure
     262             : #endif
     263             : 
     264             : #if CK2_ENABLED
     265          28 :     module procedure getPaddedAsisSB_D1_CK2
     266             :         use pm_kind, only: CKC => CK2
     267             : #include "pm_arrayPad@routines.inc.F90"
     268          28 :     end procedure
     269             : #endif
     270             : 
     271             : #if CK1_ENABLED
     272          27 :     module procedure getPaddedAsisSB_D1_CK1
     273             :         use pm_kind, only: CKC => CK1
     274             : #include "pm_arrayPad@routines.inc.F90"
     275          27 :     end procedure
     276             : #endif
     277             : 
     278             : #undef CK_ENABLED
     279             : 
     280             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     281             : 
     282             : #define RK_ENABLED 1
     283             : 
     284             : #if RK5_ENABLED
     285             :     module procedure getPaddedAsisSB_D1_RK5
     286             :         use pm_kind, only: RKC => RK5
     287             : #include "pm_arrayPad@routines.inc.F90"
     288             :     end procedure
     289             : #endif
     290             : 
     291             : #if RK4_ENABLED
     292          27 :     module procedure getPaddedAsisSB_D1_RK4
     293             :         use pm_kind, only: RKC => RK4
     294             : #include "pm_arrayPad@routines.inc.F90"
     295          27 :     end procedure
     296             : #endif
     297             : 
     298             : #if RK3_ENABLED
     299          27 :     module procedure getPaddedAsisSB_D1_RK3
     300             :         use pm_kind, only: RKC => RK3
     301             : #include "pm_arrayPad@routines.inc.F90"
     302          27 :     end procedure
     303             : #endif
     304             : 
     305             : #if RK2_ENABLED
     306          28 :     module procedure getPaddedAsisSB_D1_RK2
     307             :         use pm_kind, only: RKC => RK2
     308             : #include "pm_arrayPad@routines.inc.F90"
     309          28 :     end procedure
     310             : #endif
     311             : 
     312             : #if RK1_ENABLED
     313          27 :     module procedure getPaddedAsisSB_D1_RK1
     314             :         use pm_kind, only: RKC => RK1
     315             : #include "pm_arrayPad@routines.inc.F90"
     316          27 :     end procedure
     317             : #endif
     318             : 
     319             : #undef RK_ENABLED
     320             : 
     321             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     322             : 
     323             : #undef D1_ENABLED
     324             : 
     325             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     326             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     327             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     328             : 
     329             : #undef Asis_ENABLED
     330             : 
     331             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     332             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     333             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     334             : 
     335             : #define Marg_ENABLED 1
     336             : 
     337             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     338             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     339             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     340             : 
     341             : #define D0_ENABLED 1
     342             : 
     343             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     344             : 
     345             : #define SK_ENABLED 1
     346             : 
     347             : #if SK5_ENABLED
     348             :     module procedure getPaddedMargSB_D0_SK5
     349             :         use pm_kind, only: SKC => SK5
     350             : #include "pm_arrayPad@routines.inc.F90"
     351             :     end procedure
     352             : #endif
     353             : 
     354             : #if SK4_ENABLED
     355             :     module procedure getPaddedMargSB_D0_SK4
     356             :         use pm_kind, only: SKC => SK4
     357             : #include "pm_arrayPad@routines.inc.F90"
     358             :     end procedure
     359             : #endif
     360             : 
     361             : #if SK3_ENABLED
     362             :     module procedure getPaddedMargSB_D0_SK3
     363             :         use pm_kind, only: SKC => SK3
     364             : #include "pm_arrayPad@routines.inc.F90"
     365             :     end procedure
     366             : #endif
     367             : 
     368             : #if SK2_ENABLED
     369             :     module procedure getPaddedMargSB_D0_SK2
     370             :         use pm_kind, only: SKC => SK2
     371             : #include "pm_arrayPad@routines.inc.F90"
     372             :     end procedure
     373             : #endif
     374             : 
     375             : #if SK1_ENABLED
     376         109 :     module procedure getPaddedMargSB_D0_SK1
     377             :         use pm_kind, only: SKC => SK1
     378             : #include "pm_arrayPad@routines.inc.F90"
     379         109 :     end procedure
     380             : #endif
     381             : 
     382             : #undef SK_ENABLED
     383             : 
     384             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     385             : 
     386             : #undef D0_ENABLED
     387             : 
     388             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     389             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     390             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     391             : 
     392             : #define D1_ENABLED 1
     393             : 
     394             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     395             : 
     396             : #define SK_ENABLED 1
     397             : 
     398             : #if SK5_ENABLED
     399             :     module procedure getPaddedMargSB_D1_SK5
     400             :         use pm_kind, only: SKC => SK5
     401             : #include "pm_arrayPad@routines.inc.F90"
     402             :     end procedure
     403             : #endif
     404             : 
     405             : #if SK4_ENABLED
     406             :     module procedure getPaddedMargSB_D1_SK4
     407             :         use pm_kind, only: SKC => SK4
     408             : #include "pm_arrayPad@routines.inc.F90"
     409             :     end procedure
     410             : #endif
     411             : 
     412             : #if SK3_ENABLED
     413             :     module procedure getPaddedMargSB_D1_SK3
     414             :         use pm_kind, only: SKC => SK3
     415             : #include "pm_arrayPad@routines.inc.F90"
     416             :     end procedure
     417             : #endif
     418             : 
     419             : #if SK2_ENABLED
     420             :     module procedure getPaddedMargSB_D1_SK2
     421             :         use pm_kind, only: SKC => SK2
     422             : #include "pm_arrayPad@routines.inc.F90"
     423             :     end procedure
     424             : #endif
     425             : 
     426             : #if SK1_ENABLED
     427         108 :     module procedure getPaddedMargSB_D1_SK1
     428             :         use pm_kind, only: SKC => SK1
     429             : #include "pm_arrayPad@routines.inc.F90"
     430         108 :     end procedure
     431             : #endif
     432             : 
     433             : #undef SK_ENABLED
     434             : 
     435             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     436             : 
     437             : #define IK_ENABLED 1
     438             : 
     439             : #if IK5_ENABLED
     440         108 :     module procedure getPaddedMargSB_D1_IK5
     441             :         use pm_kind, only: IKC => IK5
     442             : #include "pm_arrayPad@routines.inc.F90"
     443         108 :     end procedure
     444             : #endif
     445             : 
     446             : #if IK4_ENABLED
     447         108 :     module procedure getPaddedMargSB_D1_IK4
     448             :         use pm_kind, only: IKC => IK4
     449             : #include "pm_arrayPad@routines.inc.F90"
     450         108 :     end procedure
     451             : #endif
     452             : 
     453             : #if IK3_ENABLED
     454         108 :     module procedure getPaddedMargSB_D1_IK3
     455             :         use pm_kind, only: IKC => IK3
     456             : #include "pm_arrayPad@routines.inc.F90"
     457         108 :     end procedure
     458             : #endif
     459             : 
     460             : #if IK2_ENABLED
     461         108 :     module procedure getPaddedMargSB_D1_IK2
     462             :         use pm_kind, only: IKC => IK2
     463             : #include "pm_arrayPad@routines.inc.F90"
     464         108 :     end procedure
     465             : #endif
     466             : 
     467             : #if IK1_ENABLED
     468         108 :     module procedure getPaddedMargSB_D1_IK1
     469             :         use pm_kind, only: IKC => IK1
     470             : #include "pm_arrayPad@routines.inc.F90"
     471         108 :     end procedure
     472             : #endif
     473             : 
     474             : #undef IK_ENABLED
     475             : 
     476             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     477             : 
     478             : #define LK_ENABLED 1
     479             : 
     480             : #if LK5_ENABLED
     481         108 :     module procedure getPaddedMargSB_D1_LK5
     482             :         use pm_kind, only: LKC => LK5
     483             : #include "pm_arrayPad@routines.inc.F90"
     484         108 :     end procedure
     485             : #endif
     486             : 
     487             : #if LK4_ENABLED
     488         108 :     module procedure getPaddedMargSB_D1_LK4
     489             :         use pm_kind, only: LKC => LK4
     490             : #include "pm_arrayPad@routines.inc.F90"
     491         108 :     end procedure
     492             : #endif
     493             : 
     494             : #if LK3_ENABLED
     495         108 :     module procedure getPaddedMargSB_D1_LK3
     496             :         use pm_kind, only: LKC => LK3
     497             : #include "pm_arrayPad@routines.inc.F90"
     498         108 :     end procedure
     499             : #endif
     500             : 
     501             : #if LK2_ENABLED
     502         108 :     module procedure getPaddedMargSB_D1_LK2
     503             :         use pm_kind, only: LKC => LK2
     504             : #include "pm_arrayPad@routines.inc.F90"
     505         108 :     end procedure
     506             : #endif
     507             : 
     508             : #if LK1_ENABLED
     509         108 :     module procedure getPaddedMargSB_D1_LK1
     510             :         use pm_kind, only: LKC => LK1
     511             : #include "pm_arrayPad@routines.inc.F90"
     512         108 :     end procedure
     513             : #endif
     514             : 
     515             : #undef LK_ENABLED
     516             : 
     517             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     518             : 
     519             : #define CK_ENABLED 1
     520             : 
     521             : #if CK5_ENABLED
     522             :     module procedure getPaddedMargSB_D1_CK5
     523             :         use pm_kind, only: CKC => CK5
     524             : #include "pm_arrayPad@routines.inc.F90"
     525             :     end procedure
     526             : #endif
     527             : 
     528             : #if CK4_ENABLED
     529         108 :     module procedure getPaddedMargSB_D1_CK4
     530             :         use pm_kind, only: CKC => CK4
     531             : #include "pm_arrayPad@routines.inc.F90"
     532         108 :     end procedure
     533             : #endif
     534             : 
     535             : #if CK3_ENABLED
     536         108 :     module procedure getPaddedMargSB_D1_CK3
     537             :         use pm_kind, only: CKC => CK3
     538             : #include "pm_arrayPad@routines.inc.F90"
     539         108 :     end procedure
     540             : #endif
     541             : 
     542             : #if CK2_ENABLED
     543         108 :     module procedure getPaddedMargSB_D1_CK2
     544             :         use pm_kind, only: CKC => CK2
     545             : #include "pm_arrayPad@routines.inc.F90"
     546         108 :     end procedure
     547             : #endif
     548             : 
     549             : #if CK1_ENABLED
     550         108 :     module procedure getPaddedMargSB_D1_CK1
     551             :         use pm_kind, only: CKC => CK1
     552             : #include "pm_arrayPad@routines.inc.F90"
     553         108 :     end procedure
     554             : #endif
     555             : 
     556             : #undef CK_ENABLED
     557             : 
     558             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     559             : 
     560             : #define RK_ENABLED 1
     561             : 
     562             : #if RK5_ENABLED
     563             :     module procedure getPaddedMargSB_D1_RK5
     564             :         use pm_kind, only: RKC => RK5
     565             : #include "pm_arrayPad@routines.inc.F90"
     566             :     end procedure
     567             : #endif
     568             : 
     569             : #if RK4_ENABLED
     570         108 :     module procedure getPaddedMargSB_D1_RK4
     571             :         use pm_kind, only: RKC => RK4
     572             : #include "pm_arrayPad@routines.inc.F90"
     573         108 :     end procedure
     574             : #endif
     575             : 
     576             : #if RK3_ENABLED
     577         108 :     module procedure getPaddedMargSB_D1_RK3
     578             :         use pm_kind, only: RKC => RK3
     579             : #include "pm_arrayPad@routines.inc.F90"
     580         108 :     end procedure
     581             : #endif
     582             : 
     583             : #if RK2_ENABLED
     584         108 :     module procedure getPaddedMargSB_D1_RK2
     585             :         use pm_kind, only: RKC => RK2
     586             : #include "pm_arrayPad@routines.inc.F90"
     587         108 :     end procedure
     588             : #endif
     589             : 
     590             : #if RK1_ENABLED
     591         108 :     module procedure getPaddedMargSB_D1_RK1
     592             :         use pm_kind, only: RKC => RK1
     593             : #include "pm_arrayPad@routines.inc.F90"
     594         108 :     end procedure
     595             : #endif
     596             : 
     597             : #undef RK_ENABLED
     598             : 
     599             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     600             : 
     601             : #undef D1_ENABLED
     602             : 
     603             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     604             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     605             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     606             : 
     607             : #undef Marg_ENABLED
     608             : 
     609             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     610             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     611             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     612             : 
     613             : #undef SB_ENABLED
     614             : 
     615             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     616             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     617             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     618             : 
     619             : #undef getPadded_ENABLED
     620             : 
     621             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     622             : 
     623             : #define setPadded_ENABLED 1
     624             : 
     625             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     626             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     627             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     628             : 
     629             : #define SB_ENABLED 1
     630             : 
     631             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     632             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     633             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     634             : 
     635             : #define Asis_ENABLED 1
     636             : 
     637             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     638             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     639             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     640             : 
     641             : #define D0_ENABLED 1
     642             : 
     643             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     644             : 
     645             : #define SK_ENABLED 1
     646             : 
     647             : #if SK5_ENABLED
     648             :     module procedure setPaddedAsisSB_D0_SK5
     649             :         use pm_kind, only: SKC => SK5
     650             : #include "pm_arrayPad@routines.inc.F90"
     651             :     end procedure
     652             : #endif
     653             : 
     654             : #if SK4_ENABLED
     655             :     module procedure setPaddedAsisSB_D0_SK4
     656             :         use pm_kind, only: SKC => SK4
     657             : #include "pm_arrayPad@routines.inc.F90"
     658             :     end procedure
     659             : #endif
     660             : 
     661             : #if SK3_ENABLED
     662             :     module procedure setPaddedAsisSB_D0_SK3
     663             :         use pm_kind, only: SKC => SK3
     664             : #include "pm_arrayPad@routines.inc.F90"
     665             :     end procedure
     666             : #endif
     667             : 
     668             : #if SK2_ENABLED
     669             :     module procedure setPaddedAsisSB_D0_SK2
     670             :         use pm_kind, only: SKC => SK2
     671             : #include "pm_arrayPad@routines.inc.F90"
     672             :     end procedure
     673             : #endif
     674             : 
     675             : #if SK1_ENABLED
     676          55 :     module procedure setPaddedAsisSB_D0_SK1
     677             :         use pm_kind, only: SKC => SK1
     678             : #include "pm_arrayPad@routines.inc.F90"
     679           0 :     end procedure
     680             : #endif
     681             : 
     682             : #undef SK_ENABLED
     683             : 
     684             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     685             : 
     686             : #undef D0_ENABLED
     687             : 
     688             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     689             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     690             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     691             : 
     692             : #define D1_ENABLED 1
     693             : 
     694             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     695             : 
     696             : #define SK_ENABLED 1
     697             : 
     698             : #if SK5_ENABLED
     699             :     module procedure setPaddedAsisSB_D1_SK5
     700             :         use pm_kind, only: SKC => SK5
     701             : #include "pm_arrayPad@routines.inc.F90"
     702             :     end procedure
     703             : #endif
     704             : 
     705             : #if SK4_ENABLED
     706             :     module procedure setPaddedAsisSB_D1_SK4
     707             :         use pm_kind, only: SKC => SK4
     708             : #include "pm_arrayPad@routines.inc.F90"
     709             :     end procedure
     710             : #endif
     711             : 
     712             : #if SK3_ENABLED
     713             :     module procedure setPaddedAsisSB_D1_SK3
     714             :         use pm_kind, only: SKC => SK3
     715             : #include "pm_arrayPad@routines.inc.F90"
     716             :     end procedure
     717             : #endif
     718             : 
     719             : #if SK2_ENABLED
     720             :     module procedure setPaddedAsisSB_D1_SK2
     721             :         use pm_kind, only: SKC => SK2
     722             : #include "pm_arrayPad@routines.inc.F90"
     723             :     end procedure
     724             : #endif
     725             : 
     726             : #if SK1_ENABLED
     727          55 :     module procedure setPaddedAsisSB_D1_SK1
     728             :         use pm_kind, only: SKC => SK1
     729             : #include "pm_arrayPad@routines.inc.F90"
     730          55 :     end procedure
     731             : #endif
     732             : 
     733             : #undef SK_ENABLED
     734             : 
     735             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     736             : 
     737             : #define IK_ENABLED 1
     738             : 
     739             : #if IK5_ENABLED
     740          54 :     module procedure setPaddedAsisSB_D1_IK5
     741             :         use pm_kind, only: IKC => IK5
     742             : #include "pm_arrayPad@routines.inc.F90"
     743             :     end procedure
     744             : #endif
     745             : 
     746             : #if IK4_ENABLED
     747          54 :     module procedure setPaddedAsisSB_D1_IK4
     748             :         use pm_kind, only: IKC => IK4
     749             : #include "pm_arrayPad@routines.inc.F90"
     750             :     end procedure
     751             : #endif
     752             : 
     753             : #if IK3_ENABLED
     754          55 :     module procedure setPaddedAsisSB_D1_IK3
     755             :         use pm_kind, only: IKC => IK3
     756             : #include "pm_arrayPad@routines.inc.F90"
     757             :     end procedure
     758             : #endif
     759             : 
     760             : #if IK2_ENABLED
     761          54 :     module procedure setPaddedAsisSB_D1_IK2
     762             :         use pm_kind, only: IKC => IK2
     763             : #include "pm_arrayPad@routines.inc.F90"
     764             :     end procedure
     765             : #endif
     766             : 
     767             : #if IK1_ENABLED
     768          54 :     module procedure setPaddedAsisSB_D1_IK1
     769             :         use pm_kind, only: IKC => IK1
     770             : #include "pm_arrayPad@routines.inc.F90"
     771             :     end procedure
     772             : #endif
     773             : 
     774             : #undef IK_ENABLED
     775             : 
     776             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     777             : 
     778             : #define LK_ENABLED 1
     779             : 
     780             : #if LK5_ENABLED
     781          54 :     module procedure setPaddedAsisSB_D1_LK5
     782             :         use pm_kind, only: LKC => LK5
     783             : #include "pm_arrayPad@routines.inc.F90"
     784             :     end procedure
     785             : #endif
     786             : 
     787             : #if LK4_ENABLED
     788          54 :     module procedure setPaddedAsisSB_D1_LK4
     789             :         use pm_kind, only: LKC => LK4
     790             : #include "pm_arrayPad@routines.inc.F90"
     791             :     end procedure
     792             : #endif
     793             : 
     794             : #if LK3_ENABLED
     795          55 :     module procedure setPaddedAsisSB_D1_LK3
     796             :         use pm_kind, only: LKC => LK3
     797             : #include "pm_arrayPad@routines.inc.F90"
     798             :     end procedure
     799             : #endif
     800             : 
     801             : #if LK2_ENABLED
     802          54 :     module procedure setPaddedAsisSB_D1_LK2
     803             :         use pm_kind, only: LKC => LK2
     804             : #include "pm_arrayPad@routines.inc.F90"
     805             :     end procedure
     806             : #endif
     807             : 
     808             : #if LK1_ENABLED
     809          54 :     module procedure setPaddedAsisSB_D1_LK1
     810             :         use pm_kind, only: LKC => LK1
     811             : #include "pm_arrayPad@routines.inc.F90"
     812             :     end procedure
     813             : #endif
     814             : 
     815             : #undef LK_ENABLED
     816             : 
     817             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     818             : 
     819             : #define CK_ENABLED 1
     820             : 
     821             : #if CK5_ENABLED
     822             :     module procedure setPaddedAsisSB_D1_CK5
     823             :         use pm_kind, only: CKC => CK5
     824             : #include "pm_arrayPad@routines.inc.F90"
     825             :     end procedure
     826             : #endif
     827             : 
     828             : #if CK4_ENABLED
     829          54 :     module procedure setPaddedAsisSB_D1_CK4
     830             :         use pm_kind, only: CKC => CK4
     831             : #include "pm_arrayPad@routines.inc.F90"
     832             :     end procedure
     833             : #endif
     834             : 
     835             : #if CK3_ENABLED
     836          54 :     module procedure setPaddedAsisSB_D1_CK3
     837             :         use pm_kind, only: CKC => CK3
     838             : #include "pm_arrayPad@routines.inc.F90"
     839             :     end procedure
     840             : #endif
     841             : 
     842             : #if CK2_ENABLED
     843          55 :     module procedure setPaddedAsisSB_D1_CK2
     844             :         use pm_kind, only: CKC => CK2
     845             : #include "pm_arrayPad@routines.inc.F90"
     846             :     end procedure
     847             : #endif
     848             : 
     849             : #if CK1_ENABLED
     850          54 :     module procedure setPaddedAsisSB_D1_CK1
     851             :         use pm_kind, only: CKC => CK1
     852             : #include "pm_arrayPad@routines.inc.F90"
     853             :     end procedure
     854             : #endif
     855             : 
     856             : #undef CK_ENABLED
     857             : 
     858             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     859             : 
     860             : #define RK_ENABLED 1
     861             : 
     862             : #if RK5_ENABLED
     863             :     module procedure setPaddedAsisSB_D1_RK5
     864             :         use pm_kind, only: RKC => RK5
     865             : #include "pm_arrayPad@routines.inc.F90"
     866             :     end procedure
     867             : #endif
     868             : 
     869             : #if RK4_ENABLED
     870          54 :     module procedure setPaddedAsisSB_D1_RK4
     871             :         use pm_kind, only: RKC => RK4
     872             : #include "pm_arrayPad@routines.inc.F90"
     873             :     end procedure
     874             : #endif
     875             : 
     876             : #if RK3_ENABLED
     877          54 :     module procedure setPaddedAsisSB_D1_RK3
     878             :         use pm_kind, only: RKC => RK3
     879             : #include "pm_arrayPad@routines.inc.F90"
     880             :     end procedure
     881             : #endif
     882             : 
     883             : #if RK2_ENABLED
     884          55 :     module procedure setPaddedAsisSB_D1_RK2
     885             :         use pm_kind, only: RKC => RK2
     886             : #include "pm_arrayPad@routines.inc.F90"
     887             :     end procedure
     888             : #endif
     889             : 
     890             : #if RK1_ENABLED
     891          54 :     module procedure setPaddedAsisSB_D1_RK1
     892             :         use pm_kind, only: RKC => RK1
     893             : #include "pm_arrayPad@routines.inc.F90"
     894             :     end procedure
     895             : #endif
     896             : 
     897             : #undef RK_ENABLED
     898             : 
     899             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     900             : 
     901             : #undef D1_ENABLED
     902             : 
     903             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     904             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     905             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     906             : 
     907             : #undef Asis_ENABLED
     908             : 
     909             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     910             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     911             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     912             : 
     913             : #define Marg_ENABLED 1
     914             : 
     915             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     916             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     917             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     918             : 
     919             : #define D0_ENABLED 1
     920             : 
     921             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     922             : 
     923             : #define SK_ENABLED 1
     924             : 
     925             : #if SK5_ENABLED
     926             :     module procedure setPaddedMargSB_D0_SK5
     927             :         use pm_kind, only: SKC => SK5
     928             : #include "pm_arrayPad@routines.inc.F90"
     929             :     end procedure
     930             : #endif
     931             : 
     932             : #if SK4_ENABLED
     933             :     module procedure setPaddedMargSB_D0_SK4
     934             :         use pm_kind, only: SKC => SK4
     935             : #include "pm_arrayPad@routines.inc.F90"
     936             :     end procedure
     937             : #endif
     938             : 
     939             : #if SK3_ENABLED
     940             :     module procedure setPaddedMargSB_D0_SK3
     941             :         use pm_kind, only: SKC => SK3
     942             : #include "pm_arrayPad@routines.inc.F90"
     943             :     end procedure
     944             : #endif
     945             : 
     946             : #if SK2_ENABLED
     947             :     module procedure setPaddedMargSB_D0_SK2
     948             :         use pm_kind, only: SKC => SK2
     949             : #include "pm_arrayPad@routines.inc.F90"
     950             :     end procedure
     951             : #endif
     952             : 
     953             : #if SK1_ENABLED
     954         217 :     module procedure setPaddedMargSB_D0_SK1
     955             :         use pm_kind, only: SKC => SK1
     956             : #include "pm_arrayPad@routines.inc.F90"
     957           0 :     end procedure
     958             : #endif
     959             : 
     960             : #undef SK_ENABLED
     961             : 
     962             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     963             : 
     964             : #undef D0_ENABLED
     965             : 
     966             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     967             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     968             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     969             : 
     970             : #define D1_ENABLED 1
     971             : 
     972             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     973             : 
     974             : #define SK_ENABLED 1
     975             : 
     976             : #if SK5_ENABLED
     977             :     module procedure setPaddedMargSB_D1_SK5
     978             :         use pm_kind, only: SKC => SK5
     979             : #include "pm_arrayPad@routines.inc.F90"
     980             :     end procedure
     981             : #endif
     982             : 
     983             : #if SK4_ENABLED
     984             :     module procedure setPaddedMargSB_D1_SK4
     985             :         use pm_kind, only: SKC => SK4
     986             : #include "pm_arrayPad@routines.inc.F90"
     987             :     end procedure
     988             : #endif
     989             : 
     990             : #if SK3_ENABLED
     991             :     module procedure setPaddedMargSB_D1_SK3
     992             :         use pm_kind, only: SKC => SK3
     993             : #include "pm_arrayPad@routines.inc.F90"
     994             :     end procedure
     995             : #endif
     996             : 
     997             : #if SK2_ENABLED
     998             :     module procedure setPaddedMargSB_D1_SK2
     999             :         use pm_kind, only: SKC => SK2
    1000             : #include "pm_arrayPad@routines.inc.F90"
    1001             :     end procedure
    1002             : #endif
    1003             : 
    1004             : #if SK1_ENABLED
    1005         216 :     module procedure setPaddedMargSB_D1_SK1
    1006             :         use pm_kind, only: SKC => SK1
    1007             : #include "pm_arrayPad@routines.inc.F90"
    1008         216 :     end procedure
    1009             : #endif
    1010             : 
    1011             : #undef SK_ENABLED
    1012             : 
    1013             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1014             : 
    1015             : #define IK_ENABLED 1
    1016             : 
    1017             : #if IK5_ENABLED
    1018         216 :     module procedure setPaddedMargSB_D1_IK5
    1019             :         use pm_kind, only: IKC => IK5
    1020             : #include "pm_arrayPad@routines.inc.F90"
    1021             :     end procedure
    1022             : #endif
    1023             : 
    1024             : #if IK4_ENABLED
    1025         216 :     module procedure setPaddedMargSB_D1_IK4
    1026             :         use pm_kind, only: IKC => IK4
    1027             : #include "pm_arrayPad@routines.inc.F90"
    1028             :     end procedure
    1029             : #endif
    1030             : 
    1031             : #if IK3_ENABLED
    1032         216 :     module procedure setPaddedMargSB_D1_IK3
    1033             :         use pm_kind, only: IKC => IK3
    1034             : #include "pm_arrayPad@routines.inc.F90"
    1035             :     end procedure
    1036             : #endif
    1037             : 
    1038             : #if IK2_ENABLED
    1039         216 :     module procedure setPaddedMargSB_D1_IK2
    1040             :         use pm_kind, only: IKC => IK2
    1041             : #include "pm_arrayPad@routines.inc.F90"
    1042             :     end procedure
    1043             : #endif
    1044             : 
    1045             : #if IK1_ENABLED
    1046         216 :     module procedure setPaddedMargSB_D1_IK1
    1047             :         use pm_kind, only: IKC => IK1
    1048             : #include "pm_arrayPad@routines.inc.F90"
    1049             :     end procedure
    1050             : #endif
    1051             : 
    1052             : #undef IK_ENABLED
    1053             : 
    1054             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1055             : 
    1056             : #define LK_ENABLED 1
    1057             : 
    1058             : #if LK5_ENABLED
    1059         216 :     module procedure setPaddedMargSB_D1_LK5
    1060             :         use pm_kind, only: LKC => LK5
    1061             : #include "pm_arrayPad@routines.inc.F90"
    1062             :     end procedure
    1063             : #endif
    1064             : 
    1065             : #if LK4_ENABLED
    1066         216 :     module procedure setPaddedMargSB_D1_LK4
    1067             :         use pm_kind, only: LKC => LK4
    1068             : #include "pm_arrayPad@routines.inc.F90"
    1069             :     end procedure
    1070             : #endif
    1071             : 
    1072             : #if LK3_ENABLED
    1073         216 :     module procedure setPaddedMargSB_D1_LK3
    1074             :         use pm_kind, only: LKC => LK3
    1075             : #include "pm_arrayPad@routines.inc.F90"
    1076             :     end procedure
    1077             : #endif
    1078             : 
    1079             : #if LK2_ENABLED
    1080         216 :     module procedure setPaddedMargSB_D1_LK2
    1081             :         use pm_kind, only: LKC => LK2
    1082             : #include "pm_arrayPad@routines.inc.F90"
    1083             :     end procedure
    1084             : #endif
    1085             : 
    1086             : #if LK1_ENABLED
    1087         216 :     module procedure setPaddedMargSB_D1_LK1
    1088             :         use pm_kind, only: LKC => LK1
    1089             : #include "pm_arrayPad@routines.inc.F90"
    1090             :     end procedure
    1091             : #endif
    1092             : 
    1093             : #undef LK_ENABLED
    1094             : 
    1095             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1096             : 
    1097             : #define CK_ENABLED 1
    1098             : 
    1099             : #if CK5_ENABLED
    1100             :     module procedure setPaddedMargSB_D1_CK5
    1101             :         use pm_kind, only: CKC => CK5
    1102             : #include "pm_arrayPad@routines.inc.F90"
    1103             :     end procedure
    1104             : #endif
    1105             : 
    1106             : #if CK4_ENABLED
    1107         216 :     module procedure setPaddedMargSB_D1_CK4
    1108             :         use pm_kind, only: CKC => CK4
    1109             : #include "pm_arrayPad@routines.inc.F90"
    1110             :     end procedure
    1111             : #endif
    1112             : 
    1113             : #if CK3_ENABLED
    1114         216 :     module procedure setPaddedMargSB_D1_CK3
    1115             :         use pm_kind, only: CKC => CK3
    1116             : #include "pm_arrayPad@routines.inc.F90"
    1117             :     end procedure
    1118             : #endif
    1119             : 
    1120             : #if CK2_ENABLED
    1121         216 :     module procedure setPaddedMargSB_D1_CK2
    1122             :         use pm_kind, only: CKC => CK2
    1123             : #include "pm_arrayPad@routines.inc.F90"
    1124             :     end procedure
    1125             : #endif
    1126             : 
    1127             : #if CK1_ENABLED
    1128         216 :     module procedure setPaddedMargSB_D1_CK1
    1129             :         use pm_kind, only: CKC => CK1
    1130             : #include "pm_arrayPad@routines.inc.F90"
    1131             :     end procedure
    1132             : #endif
    1133             : 
    1134             : #undef CK_ENABLED
    1135             : 
    1136             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1137             : 
    1138             : #define RK_ENABLED 1
    1139             : 
    1140             : #if RK5_ENABLED
    1141             :     module procedure setPaddedMargSB_D1_RK5
    1142             :         use pm_kind, only: RKC => RK5
    1143             : #include "pm_arrayPad@routines.inc.F90"
    1144             :     end procedure
    1145             : #endif
    1146             : 
    1147             : #if RK4_ENABLED
    1148         216 :     module procedure setPaddedMargSB_D1_RK4
    1149             :         use pm_kind, only: RKC => RK4
    1150             : #include "pm_arrayPad@routines.inc.F90"
    1151             :     end procedure
    1152             : #endif
    1153             : 
    1154             : #if RK3_ENABLED
    1155         216 :     module procedure setPaddedMargSB_D1_RK3
    1156             :         use pm_kind, only: RKC => RK3
    1157             : #include "pm_arrayPad@routines.inc.F90"
    1158             :     end procedure
    1159             : #endif
    1160             : 
    1161             : #if RK2_ENABLED
    1162         216 :     module procedure setPaddedMargSB_D1_RK2
    1163             :         use pm_kind, only: RKC => RK2
    1164             : #include "pm_arrayPad@routines.inc.F90"
    1165             :     end procedure
    1166             : #endif
    1167             : 
    1168             : #if RK1_ENABLED
    1169         216 :     module procedure setPaddedMargSB_D1_RK1
    1170             :         use pm_kind, only: RKC => RK1
    1171             : #include "pm_arrayPad@routines.inc.F90"
    1172             :     end procedure
    1173             : #endif
    1174             : 
    1175             : #undef RK_ENABLED
    1176             : 
    1177             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1178             : 
    1179             : #undef D1_ENABLED
    1180             : 
    1181             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1182             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1183             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1184             : 
    1185             : #undef Marg_ENABLED
    1186             : 
    1187             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1188             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1189             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1190             : 
    1191             : #undef SB_ENABLED
    1192             : 
    1193             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1194             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1195             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1196             : 
    1197             : #undef setPadded_ENABLED
    1198             : 
    1199             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1200             : 
    1201             : #define getPadded_ENABLED 1
    1202             : 
    1203             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1204             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1205             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1206             : 
    1207             : #define SL_ENABLED 1
    1208             : 
    1209             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1210             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1211             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1212             : 
    1213             : #define Asis_ENABLED 1
    1214             : 
    1215             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1216             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1217             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1218             : 
    1219             : #define D0_ENABLED 1
    1220             : 
    1221             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1222             : 
    1223             : #define SK_ENABLED 1
    1224             : 
    1225             : #if SK5_ENABLED
    1226             :     module procedure getPaddedAsisSL_D0_SK5
    1227             :         use pm_kind, only: SKC => SK5
    1228             : #include "pm_arrayPad@routines.inc.F90"
    1229             :     end procedure
    1230             : #endif
    1231             : 
    1232             : #if SK4_ENABLED
    1233             :     module procedure getPaddedAsisSL_D0_SK4
    1234             :         use pm_kind, only: SKC => SK4
    1235             : #include "pm_arrayPad@routines.inc.F90"
    1236             :     end procedure
    1237             : #endif
    1238             : 
    1239             : #if SK3_ENABLED
    1240             :     module procedure getPaddedAsisSL_D0_SK3
    1241             :         use pm_kind, only: SKC => SK3
    1242             : #include "pm_arrayPad@routines.inc.F90"
    1243             :     end procedure
    1244             : #endif
    1245             : 
    1246             : #if SK2_ENABLED
    1247             :     module procedure getPaddedAsisSL_D0_SK2
    1248             :         use pm_kind, only: SKC => SK2
    1249             : #include "pm_arrayPad@routines.inc.F90"
    1250             :     end procedure
    1251             : #endif
    1252             : 
    1253             : #if SK1_ENABLED
    1254          28 :     module procedure getPaddedAsisSL_D0_SK1
    1255             :         use pm_kind, only: SKC => SK1
    1256             : #include "pm_arrayPad@routines.inc.F90"
    1257          28 :     end procedure
    1258             : #endif
    1259             : 
    1260             : #undef SK_ENABLED
    1261             : 
    1262             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1263             : 
    1264             : #undef D0_ENABLED
    1265             : 
    1266             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1267             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1268             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1269             : 
    1270             : #define D1_ENABLED 1
    1271             : 
    1272             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1273             : 
    1274             : #define SK_ENABLED 1
    1275             : 
    1276             : #if SK5_ENABLED
    1277             :     module procedure getPaddedAsisSL_D1_SK5
    1278             :         use pm_kind, only: SKC => SK5
    1279             : #include "pm_arrayPad@routines.inc.F90"
    1280             :     end procedure
    1281             : #endif
    1282             : 
    1283             : #if SK4_ENABLED
    1284             :     module procedure getPaddedAsisSL_D1_SK4
    1285             :         use pm_kind, only: SKC => SK4
    1286             : #include "pm_arrayPad@routines.inc.F90"
    1287             :     end procedure
    1288             : #endif
    1289             : 
    1290             : #if SK3_ENABLED
    1291             :     module procedure getPaddedAsisSL_D1_SK3
    1292             :         use pm_kind, only: SKC => SK3
    1293             : #include "pm_arrayPad@routines.inc.F90"
    1294             :     end procedure
    1295             : #endif
    1296             : 
    1297             : #if SK2_ENABLED
    1298             :     module procedure getPaddedAsisSL_D1_SK2
    1299             :         use pm_kind, only: SKC => SK2
    1300             : #include "pm_arrayPad@routines.inc.F90"
    1301             :     end procedure
    1302             : #endif
    1303             : 
    1304             : #if SK1_ENABLED
    1305          28 :     module procedure getPaddedAsisSL_D1_SK1
    1306             :         use pm_kind, only: SKC => SK1
    1307             : #include "pm_arrayPad@routines.inc.F90"
    1308          28 :     end procedure
    1309             : #endif
    1310             : 
    1311             : #undef SK_ENABLED
    1312             : 
    1313             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1314             : 
    1315             : #define IK_ENABLED 1
    1316             : 
    1317             : #if IK5_ENABLED
    1318          27 :     module procedure getPaddedAsisSL_D1_IK5
    1319             :         use pm_kind, only: IKC => IK5
    1320             : #include "pm_arrayPad@routines.inc.F90"
    1321          27 :     end procedure
    1322             : #endif
    1323             : 
    1324             : #if IK4_ENABLED
    1325          27 :     module procedure getPaddedAsisSL_D1_IK4
    1326             :         use pm_kind, only: IKC => IK4
    1327             : #include "pm_arrayPad@routines.inc.F90"
    1328          27 :     end procedure
    1329             : #endif
    1330             : 
    1331             : #if IK3_ENABLED
    1332          28 :     module procedure getPaddedAsisSL_D1_IK3
    1333             :         use pm_kind, only: IKC => IK3
    1334             : #include "pm_arrayPad@routines.inc.F90"
    1335          28 :     end procedure
    1336             : #endif
    1337             : 
    1338             : #if IK2_ENABLED
    1339          27 :     module procedure getPaddedAsisSL_D1_IK2
    1340             :         use pm_kind, only: IKC => IK2
    1341             : #include "pm_arrayPad@routines.inc.F90"
    1342          27 :     end procedure
    1343             : #endif
    1344             : 
    1345             : #if IK1_ENABLED
    1346          27 :     module procedure getPaddedAsisSL_D1_IK1
    1347             :         use pm_kind, only: IKC => IK1
    1348             : #include "pm_arrayPad@routines.inc.F90"
    1349          27 :     end procedure
    1350             : #endif
    1351             : 
    1352             : #undef IK_ENABLED
    1353             : 
    1354             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1355             : 
    1356             : #define LK_ENABLED 1
    1357             : 
    1358             : #if LK5_ENABLED
    1359          27 :     module procedure getPaddedAsisSL_D1_LK5
    1360             :         use pm_kind, only: LKC => LK5
    1361             : #include "pm_arrayPad@routines.inc.F90"
    1362          27 :     end procedure
    1363             : #endif
    1364             : 
    1365             : #if LK4_ENABLED
    1366          27 :     module procedure getPaddedAsisSL_D1_LK4
    1367             :         use pm_kind, only: LKC => LK4
    1368             : #include "pm_arrayPad@routines.inc.F90"
    1369          27 :     end procedure
    1370             : #endif
    1371             : 
    1372             : #if LK3_ENABLED
    1373          28 :     module procedure getPaddedAsisSL_D1_LK3
    1374             :         use pm_kind, only: LKC => LK3
    1375             : #include "pm_arrayPad@routines.inc.F90"
    1376          28 :     end procedure
    1377             : #endif
    1378             : 
    1379             : #if LK2_ENABLED
    1380          27 :     module procedure getPaddedAsisSL_D1_LK2
    1381             :         use pm_kind, only: LKC => LK2
    1382             : #include "pm_arrayPad@routines.inc.F90"
    1383          27 :     end procedure
    1384             : #endif
    1385             : 
    1386             : #if LK1_ENABLED
    1387          27 :     module procedure getPaddedAsisSL_D1_LK1
    1388             :         use pm_kind, only: LKC => LK1
    1389             : #include "pm_arrayPad@routines.inc.F90"
    1390          27 :     end procedure
    1391             : #endif
    1392             : 
    1393             : #undef LK_ENABLED
    1394             : 
    1395             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1396             : 
    1397             : #define CK_ENABLED 1
    1398             : 
    1399             : #if CK5_ENABLED
    1400             :     module procedure getPaddedAsisSL_D1_CK5
    1401             :         use pm_kind, only: CKC => CK5
    1402             : #include "pm_arrayPad@routines.inc.F90"
    1403             :     end procedure
    1404             : #endif
    1405             : 
    1406             : #if CK4_ENABLED
    1407          27 :     module procedure getPaddedAsisSL_D1_CK4
    1408             :         use pm_kind, only: CKC => CK4
    1409             : #include "pm_arrayPad@routines.inc.F90"
    1410          27 :     end procedure
    1411             : #endif
    1412             : 
    1413             : #if CK3_ENABLED
    1414          27 :     module procedure getPaddedAsisSL_D1_CK3
    1415             :         use pm_kind, only: CKC => CK3
    1416             : #include "pm_arrayPad@routines.inc.F90"
    1417          27 :     end procedure
    1418             : #endif
    1419             : 
    1420             : #if CK2_ENABLED
    1421          28 :     module procedure getPaddedAsisSL_D1_CK2
    1422             :         use pm_kind, only: CKC => CK2
    1423             : #include "pm_arrayPad@routines.inc.F90"
    1424          28 :     end procedure
    1425             : #endif
    1426             : 
    1427             : #if CK1_ENABLED
    1428          27 :     module procedure getPaddedAsisSL_D1_CK1
    1429             :         use pm_kind, only: CKC => CK1
    1430             : #include "pm_arrayPad@routines.inc.F90"
    1431          27 :     end procedure
    1432             : #endif
    1433             : 
    1434             : #undef CK_ENABLED
    1435             : 
    1436             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1437             : 
    1438             : #define RK_ENABLED 1
    1439             : 
    1440             : #if RK5_ENABLED
    1441             :     module procedure getPaddedAsisSL_D1_RK5
    1442             :         use pm_kind, only: RKC => RK5
    1443             : #include "pm_arrayPad@routines.inc.F90"
    1444             :     end procedure
    1445             : #endif
    1446             : 
    1447             : #if RK4_ENABLED
    1448          27 :     module procedure getPaddedAsisSL_D1_RK4
    1449             :         use pm_kind, only: RKC => RK4
    1450             : #include "pm_arrayPad@routines.inc.F90"
    1451          27 :     end procedure
    1452             : #endif
    1453             : 
    1454             : #if RK3_ENABLED
    1455          27 :     module procedure getPaddedAsisSL_D1_RK3
    1456             :         use pm_kind, only: RKC => RK3
    1457             : #include "pm_arrayPad@routines.inc.F90"
    1458          27 :     end procedure
    1459             : #endif
    1460             : 
    1461             : #if RK2_ENABLED
    1462          28 :     module procedure getPaddedAsisSL_D1_RK2
    1463             :         use pm_kind, only: RKC => RK2
    1464             : #include "pm_arrayPad@routines.inc.F90"
    1465          28 :     end procedure
    1466             : #endif
    1467             : 
    1468             : #if RK1_ENABLED
    1469          27 :     module procedure getPaddedAsisSL_D1_RK1
    1470             :         use pm_kind, only: RKC => RK1
    1471             : #include "pm_arrayPad@routines.inc.F90"
    1472          27 :     end procedure
    1473             : #endif
    1474             : 
    1475             : #undef RK_ENABLED
    1476             : 
    1477             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1478             : 
    1479             : #undef D1_ENABLED
    1480             : 
    1481             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1482             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1483             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1484             : 
    1485             : #undef Asis_ENABLED
    1486             : 
    1487             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1488             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1489             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1490             : 
    1491             : #define Marg_ENABLED 1
    1492             : 
    1493             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1494             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1495             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1496             : 
    1497             : #define D0_ENABLED 1
    1498             : 
    1499             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1500             : 
    1501             : #define SK_ENABLED 1
    1502             : 
    1503             : #if SK5_ENABLED
    1504             :     module procedure getPaddedMargSL_D0_SK5
    1505             :         use pm_kind, only: SKC => SK5
    1506             : #include "pm_arrayPad@routines.inc.F90"
    1507             :     end procedure
    1508             : #endif
    1509             : 
    1510             : #if SK4_ENABLED
    1511             :     module procedure getPaddedMargSL_D0_SK4
    1512             :         use pm_kind, only: SKC => SK4
    1513             : #include "pm_arrayPad@routines.inc.F90"
    1514             :     end procedure
    1515             : #endif
    1516             : 
    1517             : #if SK3_ENABLED
    1518             :     module procedure getPaddedMargSL_D0_SK3
    1519             :         use pm_kind, only: SKC => SK3
    1520             : #include "pm_arrayPad@routines.inc.F90"
    1521             :     end procedure
    1522             : #endif
    1523             : 
    1524             : #if SK2_ENABLED
    1525             :     module procedure getPaddedMargSL_D0_SK2
    1526             :         use pm_kind, only: SKC => SK2
    1527             : #include "pm_arrayPad@routines.inc.F90"
    1528             :     end procedure
    1529             : #endif
    1530             : 
    1531             : #if SK1_ENABLED
    1532          55 :     module procedure getPaddedMargSL_D0_SK1
    1533             :         use pm_kind, only: SKC => SK1
    1534             : #include "pm_arrayPad@routines.inc.F90"
    1535          55 :     end procedure
    1536             : #endif
    1537             : 
    1538             : #undef SK_ENABLED
    1539             : 
    1540             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1541             : 
    1542             : #undef D0_ENABLED
    1543             : 
    1544             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1545             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1546             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1547             : 
    1548             : #define D1_ENABLED 1
    1549             : 
    1550             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1551             : 
    1552             : #define SK_ENABLED 1
    1553             : 
    1554             : #if SK5_ENABLED
    1555             :     module procedure getPaddedMargSL_D1_SK5
    1556             :         use pm_kind, only: SKC => SK5
    1557             : #include "pm_arrayPad@routines.inc.F90"
    1558             :     end procedure
    1559             : #endif
    1560             : 
    1561             : #if SK4_ENABLED
    1562             :     module procedure getPaddedMargSL_D1_SK4
    1563             :         use pm_kind, only: SKC => SK4
    1564             : #include "pm_arrayPad@routines.inc.F90"
    1565             :     end procedure
    1566             : #endif
    1567             : 
    1568             : #if SK3_ENABLED
    1569             :     module procedure getPaddedMargSL_D1_SK3
    1570             :         use pm_kind, only: SKC => SK3
    1571             : #include "pm_arrayPad@routines.inc.F90"
    1572             :     end procedure
    1573             : #endif
    1574             : 
    1575             : #if SK2_ENABLED
    1576             :     module procedure getPaddedMargSL_D1_SK2
    1577             :         use pm_kind, only: SKC => SK2
    1578             : #include "pm_arrayPad@routines.inc.F90"
    1579             :     end procedure
    1580             : #endif
    1581             : 
    1582             : #if SK1_ENABLED
    1583          54 :     module procedure getPaddedMargSL_D1_SK1
    1584             :         use pm_kind, only: SKC => SK1
    1585             : #include "pm_arrayPad@routines.inc.F90"
    1586          54 :     end procedure
    1587             : #endif
    1588             : 
    1589             : #undef SK_ENABLED
    1590             : 
    1591             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1592             : 
    1593             : #define IK_ENABLED 1
    1594             : 
    1595             : #if IK5_ENABLED
    1596          54 :     module procedure getPaddedMargSL_D1_IK5
    1597             :         use pm_kind, only: IKC => IK5
    1598             : #include "pm_arrayPad@routines.inc.F90"
    1599          54 :     end procedure
    1600             : #endif
    1601             : 
    1602             : #if IK4_ENABLED
    1603          54 :     module procedure getPaddedMargSL_D1_IK4
    1604             :         use pm_kind, only: IKC => IK4
    1605             : #include "pm_arrayPad@routines.inc.F90"
    1606          54 :     end procedure
    1607             : #endif
    1608             : 
    1609             : #if IK3_ENABLED
    1610          54 :     module procedure getPaddedMargSL_D1_IK3
    1611             :         use pm_kind, only: IKC => IK3
    1612             : #include "pm_arrayPad@routines.inc.F90"
    1613          54 :     end procedure
    1614             : #endif
    1615             : 
    1616             : #if IK2_ENABLED
    1617          54 :     module procedure getPaddedMargSL_D1_IK2
    1618             :         use pm_kind, only: IKC => IK2
    1619             : #include "pm_arrayPad@routines.inc.F90"
    1620          54 :     end procedure
    1621             : #endif
    1622             : 
    1623             : #if IK1_ENABLED
    1624          54 :     module procedure getPaddedMargSL_D1_IK1
    1625             :         use pm_kind, only: IKC => IK1
    1626             : #include "pm_arrayPad@routines.inc.F90"
    1627          54 :     end procedure
    1628             : #endif
    1629             : 
    1630             : #undef IK_ENABLED
    1631             : 
    1632             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1633             : 
    1634             : #define LK_ENABLED 1
    1635             : 
    1636             : #if LK5_ENABLED
    1637          54 :     module procedure getPaddedMargSL_D1_LK5
    1638             :         use pm_kind, only: LKC => LK5
    1639             : #include "pm_arrayPad@routines.inc.F90"
    1640          54 :     end procedure
    1641             : #endif
    1642             : 
    1643             : #if LK4_ENABLED
    1644          54 :     module procedure getPaddedMargSL_D1_LK4
    1645             :         use pm_kind, only: LKC => LK4
    1646             : #include "pm_arrayPad@routines.inc.F90"
    1647          54 :     end procedure
    1648             : #endif
    1649             : 
    1650             : #if LK3_ENABLED
    1651          54 :     module procedure getPaddedMargSL_D1_LK3
    1652             :         use pm_kind, only: LKC => LK3
    1653             : #include "pm_arrayPad@routines.inc.F90"
    1654          54 :     end procedure
    1655             : #endif
    1656             : 
    1657             : #if LK2_ENABLED
    1658          54 :     module procedure getPaddedMargSL_D1_LK2
    1659             :         use pm_kind, only: LKC => LK2
    1660             : #include "pm_arrayPad@routines.inc.F90"
    1661          54 :     end procedure
    1662             : #endif
    1663             : 
    1664             : #if LK1_ENABLED
    1665          54 :     module procedure getPaddedMargSL_D1_LK1
    1666             :         use pm_kind, only: LKC => LK1
    1667             : #include "pm_arrayPad@routines.inc.F90"
    1668          54 :     end procedure
    1669             : #endif
    1670             : 
    1671             : #undef LK_ENABLED
    1672             : 
    1673             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1674             : 
    1675             : #define CK_ENABLED 1
    1676             : 
    1677             : #if CK5_ENABLED
    1678             :     module procedure getPaddedMargSL_D1_CK5
    1679             :         use pm_kind, only: CKC => CK5
    1680             : #include "pm_arrayPad@routines.inc.F90"
    1681             :     end procedure
    1682             : #endif
    1683             : 
    1684             : #if CK4_ENABLED
    1685          54 :     module procedure getPaddedMargSL_D1_CK4
    1686             :         use pm_kind, only: CKC => CK4
    1687             : #include "pm_arrayPad@routines.inc.F90"
    1688          54 :     end procedure
    1689             : #endif
    1690             : 
    1691             : #if CK3_ENABLED
    1692          54 :     module procedure getPaddedMargSL_D1_CK3
    1693             :         use pm_kind, only: CKC => CK3
    1694             : #include "pm_arrayPad@routines.inc.F90"
    1695          54 :     end procedure
    1696             : #endif
    1697             : 
    1698             : #if CK2_ENABLED
    1699          54 :     module procedure getPaddedMargSL_D1_CK2
    1700             :         use pm_kind, only: CKC => CK2
    1701             : #include "pm_arrayPad@routines.inc.F90"
    1702          54 :     end procedure
    1703             : #endif
    1704             : 
    1705             : #if CK1_ENABLED
    1706          54 :     module procedure getPaddedMargSL_D1_CK1
    1707             :         use pm_kind, only: CKC => CK1
    1708             : #include "pm_arrayPad@routines.inc.F90"
    1709          54 :     end procedure
    1710             : #endif
    1711             : 
    1712             : #undef CK_ENABLED
    1713             : 
    1714             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1715             : 
    1716             : #define RK_ENABLED 1
    1717             : 
    1718             : #if RK5_ENABLED
    1719             :     module procedure getPaddedMargSL_D1_RK5
    1720             :         use pm_kind, only: RKC => RK5
    1721             : #include "pm_arrayPad@routines.inc.F90"
    1722             :     end procedure
    1723             : #endif
    1724             : 
    1725             : #if RK4_ENABLED
    1726          54 :     module procedure getPaddedMargSL_D1_RK4
    1727             :         use pm_kind, only: RKC => RK4
    1728             : #include "pm_arrayPad@routines.inc.F90"
    1729          54 :     end procedure
    1730             : #endif
    1731             : 
    1732             : #if RK3_ENABLED
    1733          54 :     module procedure getPaddedMargSL_D1_RK3
    1734             :         use pm_kind, only: RKC => RK3
    1735             : #include "pm_arrayPad@routines.inc.F90"
    1736          54 :     end procedure
    1737             : #endif
    1738             : 
    1739             : #if RK2_ENABLED
    1740          54 :     module procedure getPaddedMargSL_D1_RK2
    1741             :         use pm_kind, only: RKC => RK2
    1742             : #include "pm_arrayPad@routines.inc.F90"
    1743          54 :     end procedure
    1744             : #endif
    1745             : 
    1746             : #if RK1_ENABLED
    1747          54 :     module procedure getPaddedMargSL_D1_RK1
    1748             :         use pm_kind, only: RKC => RK1
    1749             : #include "pm_arrayPad@routines.inc.F90"
    1750          54 :     end procedure
    1751             : #endif
    1752             : 
    1753             : #undef RK_ENABLED
    1754             : 
    1755             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1756             : 
    1757             : #undef D1_ENABLED
    1758             : 
    1759             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1760             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1761             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1762             : 
    1763             : #undef Marg_ENABLED
    1764             : 
    1765             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1766             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1767             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1768             : 
    1769             : #undef SL_ENABLED
    1770             : 
    1771             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1772             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1773             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1774             : 
    1775             : #undef getPadded_ENABLED
    1776             : 
    1777             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1778             : 
    1779             : #define setPadded_ENABLED 1
    1780             : 
    1781             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1782             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1783             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1784             : 
    1785             : #define SL_ENABLED 1
    1786             : 
    1787             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1788             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1789             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1790             : 
    1791             : #define Asis_ENABLED 1
    1792             : 
    1793             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1794             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1795             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1796             : 
    1797             : #define D0_ENABLED 1
    1798             : 
    1799             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1800             : 
    1801             : #define SK_ENABLED 1
    1802             : 
    1803             : #if SK5_ENABLED
    1804             :     module procedure setPaddedAsisSL_D0_SK5
    1805             :         use pm_kind, only: SKC => SK5
    1806             : #include "pm_arrayPad@routines.inc.F90"
    1807             :     end procedure
    1808             : #endif
    1809             : 
    1810             : #if SK4_ENABLED
    1811             :     module procedure setPaddedAsisSL_D0_SK4
    1812             :         use pm_kind, only: SKC => SK4
    1813             : #include "pm_arrayPad@routines.inc.F90"
    1814             :     end procedure
    1815             : #endif
    1816             : 
    1817             : #if SK3_ENABLED
    1818             :     module procedure setPaddedAsisSL_D0_SK3
    1819             :         use pm_kind, only: SKC => SK3
    1820             : #include "pm_arrayPad@routines.inc.F90"
    1821             :     end procedure
    1822             : #endif
    1823             : 
    1824             : #if SK2_ENABLED
    1825             :     module procedure setPaddedAsisSL_D0_SK2
    1826             :         use pm_kind, only: SKC => SK2
    1827             : #include "pm_arrayPad@routines.inc.F90"
    1828             :     end procedure
    1829             : #endif
    1830             : 
    1831             : #if SK1_ENABLED
    1832          55 :     module procedure setPaddedAsisSL_D0_SK1
    1833             :         use pm_kind, only: SKC => SK1
    1834             : #include "pm_arrayPad@routines.inc.F90"
    1835           0 :     end procedure
    1836             : #endif
    1837             : 
    1838             : #undef SK_ENABLED
    1839             : 
    1840             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1841             : 
    1842             : #undef D0_ENABLED
    1843             : 
    1844             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1845             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1846             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1847             : 
    1848             : #define D1_ENABLED 1
    1849             : 
    1850             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1851             : 
    1852             : #define SK_ENABLED 1
    1853             : 
    1854             : #if SK5_ENABLED
    1855             :     module procedure setPaddedAsisSL_D1_SK5
    1856             :         use pm_kind, only: SKC => SK5
    1857             : #include "pm_arrayPad@routines.inc.F90"
    1858             :     end procedure
    1859             : #endif
    1860             : 
    1861             : #if SK4_ENABLED
    1862             :     module procedure setPaddedAsisSL_D1_SK4
    1863             :         use pm_kind, only: SKC => SK4
    1864             : #include "pm_arrayPad@routines.inc.F90"
    1865             :     end procedure
    1866             : #endif
    1867             : 
    1868             : #if SK3_ENABLED
    1869             :     module procedure setPaddedAsisSL_D1_SK3
    1870             :         use pm_kind, only: SKC => SK3
    1871             : #include "pm_arrayPad@routines.inc.F90"
    1872             :     end procedure
    1873             : #endif
    1874             : 
    1875             : #if SK2_ENABLED
    1876             :     module procedure setPaddedAsisSL_D1_SK2
    1877             :         use pm_kind, only: SKC => SK2
    1878             : #include "pm_arrayPad@routines.inc.F90"
    1879             :     end procedure
    1880             : #endif
    1881             : 
    1882             : #if SK1_ENABLED
    1883          55 :     module procedure setPaddedAsisSL_D1_SK1
    1884             :         use pm_kind, only: SKC => SK1
    1885             : #include "pm_arrayPad@routines.inc.F90"
    1886          55 :     end procedure
    1887             : #endif
    1888             : 
    1889             : #undef SK_ENABLED
    1890             : 
    1891             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1892             : 
    1893             : #define IK_ENABLED 1
    1894             : 
    1895             : #if IK5_ENABLED
    1896          54 :     module procedure setPaddedAsisSL_D1_IK5
    1897             :         use pm_kind, only: IKC => IK5
    1898             : #include "pm_arrayPad@routines.inc.F90"
    1899             :     end procedure
    1900             : #endif
    1901             : 
    1902             : #if IK4_ENABLED
    1903          54 :     module procedure setPaddedAsisSL_D1_IK4
    1904             :         use pm_kind, only: IKC => IK4
    1905             : #include "pm_arrayPad@routines.inc.F90"
    1906             :     end procedure
    1907             : #endif
    1908             : 
    1909             : #if IK3_ENABLED
    1910          55 :     module procedure setPaddedAsisSL_D1_IK3
    1911             :         use pm_kind, only: IKC => IK3
    1912             : #include "pm_arrayPad@routines.inc.F90"
    1913             :     end procedure
    1914             : #endif
    1915             : 
    1916             : #if IK2_ENABLED
    1917          54 :     module procedure setPaddedAsisSL_D1_IK2
    1918             :         use pm_kind, only: IKC => IK2
    1919             : #include "pm_arrayPad@routines.inc.F90"
    1920             :     end procedure
    1921             : #endif
    1922             : 
    1923             : #if IK1_ENABLED
    1924          54 :     module procedure setPaddedAsisSL_D1_IK1
    1925             :         use pm_kind, only: IKC => IK1
    1926             : #include "pm_arrayPad@routines.inc.F90"
    1927             :     end procedure
    1928             : #endif
    1929             : 
    1930             : #undef IK_ENABLED
    1931             : 
    1932             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1933             : 
    1934             : #define LK_ENABLED 1
    1935             : 
    1936             : #if LK5_ENABLED
    1937          54 :     module procedure setPaddedAsisSL_D1_LK5
    1938             :         use pm_kind, only: LKC => LK5
    1939             : #include "pm_arrayPad@routines.inc.F90"
    1940             :     end procedure
    1941             : #endif
    1942             : 
    1943             : #if LK4_ENABLED
    1944          54 :     module procedure setPaddedAsisSL_D1_LK4
    1945             :         use pm_kind, only: LKC => LK4
    1946             : #include "pm_arrayPad@routines.inc.F90"
    1947             :     end procedure
    1948             : #endif
    1949             : 
    1950             : #if LK3_ENABLED
    1951          55 :     module procedure setPaddedAsisSL_D1_LK3
    1952             :         use pm_kind, only: LKC => LK3
    1953             : #include "pm_arrayPad@routines.inc.F90"
    1954             :     end procedure
    1955             : #endif
    1956             : 
    1957             : #if LK2_ENABLED
    1958          54 :     module procedure setPaddedAsisSL_D1_LK2
    1959             :         use pm_kind, only: LKC => LK2
    1960             : #include "pm_arrayPad@routines.inc.F90"
    1961             :     end procedure
    1962             : #endif
    1963             : 
    1964             : #if LK1_ENABLED
    1965          54 :     module procedure setPaddedAsisSL_D1_LK1
    1966             :         use pm_kind, only: LKC => LK1
    1967             : #include "pm_arrayPad@routines.inc.F90"
    1968             :     end procedure
    1969             : #endif
    1970             : 
    1971             : #undef LK_ENABLED
    1972             : 
    1973             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1974             : 
    1975             : #define CK_ENABLED 1
    1976             : 
    1977             : #if CK5_ENABLED
    1978             :     module procedure setPaddedAsisSL_D1_CK5
    1979             :         use pm_kind, only: CKC => CK5
    1980             : #include "pm_arrayPad@routines.inc.F90"
    1981             :     end procedure
    1982             : #endif
    1983             : 
    1984             : #if CK4_ENABLED
    1985          54 :     module procedure setPaddedAsisSL_D1_CK4
    1986             :         use pm_kind, only: CKC => CK4
    1987             : #include "pm_arrayPad@routines.inc.F90"
    1988             :     end procedure
    1989             : #endif
    1990             : 
    1991             : #if CK3_ENABLED
    1992          54 :     module procedure setPaddedAsisSL_D1_CK3
    1993             :         use pm_kind, only: CKC => CK3
    1994             : #include "pm_arrayPad@routines.inc.F90"
    1995             :     end procedure
    1996             : #endif
    1997             : 
    1998             : #if CK2_ENABLED
    1999          55 :     module procedure setPaddedAsisSL_D1_CK2
    2000             :         use pm_kind, only: CKC => CK2
    2001             : #include "pm_arrayPad@routines.inc.F90"
    2002             :     end procedure
    2003             : #endif
    2004             : 
    2005             : #if CK1_ENABLED
    2006          54 :     module procedure setPaddedAsisSL_D1_CK1
    2007             :         use pm_kind, only: CKC => CK1
    2008             : #include "pm_arrayPad@routines.inc.F90"
    2009             :     end procedure
    2010             : #endif
    2011             : 
    2012             : #undef CK_ENABLED
    2013             : 
    2014             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2015             : 
    2016             : #define RK_ENABLED 1
    2017             : 
    2018             : #if RK5_ENABLED
    2019             :     module procedure setPaddedAsisSL_D1_RK5
    2020             :         use pm_kind, only: RKC => RK5
    2021             : #include "pm_arrayPad@routines.inc.F90"
    2022             :     end procedure
    2023             : #endif
    2024             : 
    2025             : #if RK4_ENABLED
    2026          54 :     module procedure setPaddedAsisSL_D1_RK4
    2027             :         use pm_kind, only: RKC => RK4
    2028             : #include "pm_arrayPad@routines.inc.F90"
    2029             :     end procedure
    2030             : #endif
    2031             : 
    2032             : #if RK3_ENABLED
    2033          54 :     module procedure setPaddedAsisSL_D1_RK3
    2034             :         use pm_kind, only: RKC => RK3
    2035             : #include "pm_arrayPad@routines.inc.F90"
    2036             :     end procedure
    2037             : #endif
    2038             : 
    2039             : #if RK2_ENABLED
    2040          55 :     module procedure setPaddedAsisSL_D1_RK2
    2041             :         use pm_kind, only: RKC => RK2
    2042             : #include "pm_arrayPad@routines.inc.F90"
    2043             :     end procedure
    2044             : #endif
    2045             : 
    2046             : #if RK1_ENABLED
    2047          54 :     module procedure setPaddedAsisSL_D1_RK1
    2048             :         use pm_kind, only: RKC => RK1
    2049             : #include "pm_arrayPad@routines.inc.F90"
    2050             :     end procedure
    2051             : #endif
    2052             : 
    2053             : #undef RK_ENABLED
    2054             : 
    2055             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2056             : 
    2057             : #undef D1_ENABLED
    2058             : 
    2059             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2060             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2061             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2062             : 
    2063             : #undef Asis_ENABLED
    2064             : 
    2065             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2066             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2067             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2068             : 
    2069             : #define Marg_ENABLED 1
    2070             : 
    2071             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2072             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2073             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2074             : 
    2075             : #define D0_ENABLED 1
    2076             : 
    2077             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2078             : 
    2079             : #define SK_ENABLED 1
    2080             : 
    2081             : #if SK5_ENABLED
    2082             :     module procedure setPaddedMargSL_D0_SK5
    2083             :         use pm_kind, only: SKC => SK5
    2084             : #include "pm_arrayPad@routines.inc.F90"
    2085             :     end procedure
    2086             : #endif
    2087             : 
    2088             : #if SK4_ENABLED
    2089             :     module procedure setPaddedMargSL_D0_SK4
    2090             :         use pm_kind, only: SKC => SK4
    2091             : #include "pm_arrayPad@routines.inc.F90"
    2092             :     end procedure
    2093             : #endif
    2094             : 
    2095             : #if SK3_ENABLED
    2096             :     module procedure setPaddedMargSL_D0_SK3
    2097             :         use pm_kind, only: SKC => SK3
    2098             : #include "pm_arrayPad@routines.inc.F90"
    2099             :     end procedure
    2100             : #endif
    2101             : 
    2102             : #if SK2_ENABLED
    2103             :     module procedure setPaddedMargSL_D0_SK2
    2104             :         use pm_kind, only: SKC => SK2
    2105             : #include "pm_arrayPad@routines.inc.F90"
    2106             :     end procedure
    2107             : #endif
    2108             : 
    2109             : #if SK1_ENABLED
    2110         109 :     module procedure setPaddedMargSL_D0_SK1
    2111             :         use pm_kind, only: SKC => SK1
    2112             : #include "pm_arrayPad@routines.inc.F90"
    2113           0 :     end procedure
    2114             : #endif
    2115             : 
    2116             : #undef SK_ENABLED
    2117             : 
    2118             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2119             : 
    2120             : #undef D0_ENABLED
    2121             : 
    2122             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2123             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2124             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2125             : 
    2126             : #define D1_ENABLED 1
    2127             : 
    2128             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2129             : 
    2130             : #define SK_ENABLED 1
    2131             : 
    2132             : #if SK5_ENABLED
    2133             :     module procedure setPaddedMargSL_D1_SK5
    2134             :         use pm_kind, only: SKC => SK5
    2135             : #include "pm_arrayPad@routines.inc.F90"
    2136             :     end procedure
    2137             : #endif
    2138             : 
    2139             : #if SK4_ENABLED
    2140             :     module procedure setPaddedMargSL_D1_SK4
    2141             :         use pm_kind, only: SKC => SK4
    2142             : #include "pm_arrayPad@routines.inc.F90"
    2143             :     end procedure
    2144             : #endif
    2145             : 
    2146             : #if SK3_ENABLED
    2147             :     module procedure setPaddedMargSL_D1_SK3
    2148             :         use pm_kind, only: SKC => SK3
    2149             : #include "pm_arrayPad@routines.inc.F90"
    2150             :     end procedure
    2151             : #endif
    2152             : 
    2153             : #if SK2_ENABLED
    2154             :     module procedure setPaddedMargSL_D1_SK2
    2155             :         use pm_kind, only: SKC => SK2
    2156             : #include "pm_arrayPad@routines.inc.F90"
    2157             :     end procedure
    2158             : #endif
    2159             : 
    2160             : #if SK1_ENABLED
    2161         108 :     module procedure setPaddedMargSL_D1_SK1
    2162             :         use pm_kind, only: SKC => SK1
    2163             : #include "pm_arrayPad@routines.inc.F90"
    2164         108 :     end procedure
    2165             : #endif
    2166             : 
    2167             : #undef SK_ENABLED
    2168             : 
    2169             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2170             : 
    2171             : #define IK_ENABLED 1
    2172             : 
    2173             : #if IK5_ENABLED
    2174         108 :     module procedure setPaddedMargSL_D1_IK5
    2175             :         use pm_kind, only: IKC => IK5
    2176             : #include "pm_arrayPad@routines.inc.F90"
    2177             :     end procedure
    2178             : #endif
    2179             : 
    2180             : #if IK4_ENABLED
    2181         108 :     module procedure setPaddedMargSL_D1_IK4
    2182             :         use pm_kind, only: IKC => IK4
    2183             : #include "pm_arrayPad@routines.inc.F90"
    2184             :     end procedure
    2185             : #endif
    2186             : 
    2187             : #if IK3_ENABLED
    2188         108 :     module procedure setPaddedMargSL_D1_IK3
    2189             :         use pm_kind, only: IKC => IK3
    2190             : #include "pm_arrayPad@routines.inc.F90"
    2191             :     end procedure
    2192             : #endif
    2193             : 
    2194             : #if IK2_ENABLED
    2195         108 :     module procedure setPaddedMargSL_D1_IK2
    2196             :         use pm_kind, only: IKC => IK2
    2197             : #include "pm_arrayPad@routines.inc.F90"
    2198             :     end procedure
    2199             : #endif
    2200             : 
    2201             : #if IK1_ENABLED
    2202         108 :     module procedure setPaddedMargSL_D1_IK1
    2203             :         use pm_kind, only: IKC => IK1
    2204             : #include "pm_arrayPad@routines.inc.F90"
    2205             :     end procedure
    2206             : #endif
    2207             : 
    2208             : #undef IK_ENABLED
    2209             : 
    2210             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2211             : 
    2212             : #define LK_ENABLED 1
    2213             : 
    2214             : #if LK5_ENABLED
    2215         108 :     module procedure setPaddedMargSL_D1_LK5
    2216             :         use pm_kind, only: LKC => LK5
    2217             : #include "pm_arrayPad@routines.inc.F90"
    2218             :     end procedure
    2219             : #endif
    2220             : 
    2221             : #if LK4_ENABLED
    2222         108 :     module procedure setPaddedMargSL_D1_LK4
    2223             :         use pm_kind, only: LKC => LK4
    2224             : #include "pm_arrayPad@routines.inc.F90"
    2225             :     end procedure
    2226             : #endif
    2227             : 
    2228             : #if LK3_ENABLED
    2229         108 :     module procedure setPaddedMargSL_D1_LK3
    2230             :         use pm_kind, only: LKC => LK3
    2231             : #include "pm_arrayPad@routines.inc.F90"
    2232             :     end procedure
    2233             : #endif
    2234             : 
    2235             : #if LK2_ENABLED
    2236         108 :     module procedure setPaddedMargSL_D1_LK2
    2237             :         use pm_kind, only: LKC => LK2
    2238             : #include "pm_arrayPad@routines.inc.F90"
    2239             :     end procedure
    2240             : #endif
    2241             : 
    2242             : #if LK1_ENABLED
    2243         108 :     module procedure setPaddedMargSL_D1_LK1
    2244             :         use pm_kind, only: LKC => LK1
    2245             : #include "pm_arrayPad@routines.inc.F90"
    2246             :     end procedure
    2247             : #endif
    2248             : 
    2249             : #undef LK_ENABLED
    2250             : 
    2251             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2252             : 
    2253             : #define CK_ENABLED 1
    2254             : 
    2255             : #if CK5_ENABLED
    2256             :     module procedure setPaddedMargSL_D1_CK5
    2257             :         use pm_kind, only: CKC => CK5
    2258             : #include "pm_arrayPad@routines.inc.F90"
    2259             :     end procedure
    2260             : #endif
    2261             : 
    2262             : #if CK4_ENABLED
    2263         108 :     module procedure setPaddedMargSL_D1_CK4
    2264             :         use pm_kind, only: CKC => CK4
    2265             : #include "pm_arrayPad@routines.inc.F90"
    2266             :     end procedure
    2267             : #endif
    2268             : 
    2269             : #if CK3_ENABLED
    2270         108 :     module procedure setPaddedMargSL_D1_CK3
    2271             :         use pm_kind, only: CKC => CK3
    2272             : #include "pm_arrayPad@routines.inc.F90"
    2273             :     end procedure
    2274             : #endif
    2275             : 
    2276             : #if CK2_ENABLED
    2277         108 :     module procedure setPaddedMargSL_D1_CK2
    2278             :         use pm_kind, only: CKC => CK2
    2279             : #include "pm_arrayPad@routines.inc.F90"
    2280             :     end procedure
    2281             : #endif
    2282             : 
    2283             : #if CK1_ENABLED
    2284         108 :     module procedure setPaddedMargSL_D1_CK1
    2285             :         use pm_kind, only: CKC => CK1
    2286             : #include "pm_arrayPad@routines.inc.F90"
    2287             :     end procedure
    2288             : #endif
    2289             : 
    2290             : #undef CK_ENABLED
    2291             : 
    2292             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2293             : 
    2294             : #define RK_ENABLED 1
    2295             : 
    2296             : #if RK5_ENABLED
    2297             :     module procedure setPaddedMargSL_D1_RK5
    2298             :         use pm_kind, only: RKC => RK5
    2299             : #include "pm_arrayPad@routines.inc.F90"
    2300             :     end procedure
    2301             : #endif
    2302             : 
    2303             : #if RK4_ENABLED
    2304         108 :     module procedure setPaddedMargSL_D1_RK4
    2305             :         use pm_kind, only: RKC => RK4
    2306             : #include "pm_arrayPad@routines.inc.F90"
    2307             :     end procedure
    2308             : #endif
    2309             : 
    2310             : #if RK3_ENABLED
    2311         108 :     module procedure setPaddedMargSL_D1_RK3
    2312             :         use pm_kind, only: RKC => RK3
    2313             : #include "pm_arrayPad@routines.inc.F90"
    2314             :     end procedure
    2315             : #endif
    2316             : 
    2317             : #if RK2_ENABLED
    2318         108 :     module procedure setPaddedMargSL_D1_RK2
    2319             :         use pm_kind, only: RKC => RK2
    2320             : #include "pm_arrayPad@routines.inc.F90"
    2321             :     end procedure
    2322             : #endif
    2323             : 
    2324             : #if RK1_ENABLED
    2325         108 :     module procedure setPaddedMargSL_D1_RK1
    2326             :         use pm_kind, only: RKC => RK1
    2327             : #include "pm_arrayPad@routines.inc.F90"
    2328             :     end procedure
    2329             : #endif
    2330             : 
    2331             : #undef RK_ENABLED
    2332             : 
    2333             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2334             : 
    2335             : #undef D1_ENABLED
    2336             : 
    2337             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2338             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2339             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2340             : 
    2341             : #undef Marg_ENABLED
    2342             : 
    2343             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2344             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2345             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2346             : 
    2347             : #undef SL_ENABLED
    2348             : 
    2349             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2350             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2351             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2352             : 
    2353             : #undef setPadded_ENABLED
    2354             : 
    2355             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2356             : 
    2357             : #define getPadded_ENABLED 1
    2358             : 
    2359             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2360             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2361             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2362             : 
    2363             : #define SR_ENABLED 1
    2364             : 
    2365             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2366             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2367             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2368             : 
    2369             : #define Asis_ENABLED 1
    2370             : 
    2371             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2372             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2373             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2374             : 
    2375             : #define D0_ENABLED 1
    2376             : 
    2377             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2378             : 
    2379             : #define SK_ENABLED 1
    2380             : 
    2381             : #if SK5_ENABLED
    2382             :     module procedure getPaddedAsisSR_D0_SK5
    2383             :         use pm_kind, only: SKC => SK5
    2384             : #include "pm_arrayPad@routines.inc.F90"
    2385             :     end procedure
    2386             : #endif
    2387             : 
    2388             : #if SK4_ENABLED
    2389             :     module procedure getPaddedAsisSR_D0_SK4
    2390             :         use pm_kind, only: SKC => SK4
    2391             : #include "pm_arrayPad@routines.inc.F90"
    2392             :     end procedure
    2393             : #endif
    2394             : 
    2395             : #if SK3_ENABLED
    2396             :     module procedure getPaddedAsisSR_D0_SK3
    2397             :         use pm_kind, only: SKC => SK3
    2398             : #include "pm_arrayPad@routines.inc.F90"
    2399             :     end procedure
    2400             : #endif
    2401             : 
    2402             : #if SK2_ENABLED
    2403             :     module procedure getPaddedAsisSR_D0_SK2
    2404             :         use pm_kind, only: SKC => SK2
    2405             : #include "pm_arrayPad@routines.inc.F90"
    2406             :     end procedure
    2407             : #endif
    2408             : 
    2409             : #if SK1_ENABLED
    2410          28 :     module procedure getPaddedAsisSR_D0_SK1
    2411             :         use pm_kind, only: SKC => SK1
    2412             : #include "pm_arrayPad@routines.inc.F90"
    2413          28 :     end procedure
    2414             : #endif
    2415             : 
    2416             : #undef SK_ENABLED
    2417             : 
    2418             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2419             : 
    2420             : #undef D0_ENABLED
    2421             : 
    2422             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2423             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2424             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2425             : 
    2426             : #define D1_ENABLED 1
    2427             : 
    2428             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2429             : 
    2430             : #define SK_ENABLED 1
    2431             : 
    2432             : #if SK5_ENABLED
    2433             :     module procedure getPaddedAsisSR_D1_SK5
    2434             :         use pm_kind, only: SKC => SK5
    2435             : #include "pm_arrayPad@routines.inc.F90"
    2436             :     end procedure
    2437             : #endif
    2438             : 
    2439             : #if SK4_ENABLED
    2440             :     module procedure getPaddedAsisSR_D1_SK4
    2441             :         use pm_kind, only: SKC => SK4
    2442             : #include "pm_arrayPad@routines.inc.F90"
    2443             :     end procedure
    2444             : #endif
    2445             : 
    2446             : #if SK3_ENABLED
    2447             :     module procedure getPaddedAsisSR_D1_SK3
    2448             :         use pm_kind, only: SKC => SK3
    2449             : #include "pm_arrayPad@routines.inc.F90"
    2450             :     end procedure
    2451             : #endif
    2452             : 
    2453             : #if SK2_ENABLED
    2454             :     module procedure getPaddedAsisSR_D1_SK2
    2455             :         use pm_kind, only: SKC => SK2
    2456             : #include "pm_arrayPad@routines.inc.F90"
    2457             :     end procedure
    2458             : #endif
    2459             : 
    2460             : #if SK1_ENABLED
    2461          28 :     module procedure getPaddedAsisSR_D1_SK1
    2462             :         use pm_kind, only: SKC => SK1
    2463             : #include "pm_arrayPad@routines.inc.F90"
    2464          28 :     end procedure
    2465             : #endif
    2466             : 
    2467             : #undef SK_ENABLED
    2468             : 
    2469             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2470             : 
    2471             : #define IK_ENABLED 1
    2472             : 
    2473             : #if IK5_ENABLED
    2474          27 :     module procedure getPaddedAsisSR_D1_IK5
    2475             :         use pm_kind, only: IKC => IK5
    2476             : #include "pm_arrayPad@routines.inc.F90"
    2477          27 :     end procedure
    2478             : #endif
    2479             : 
    2480             : #if IK4_ENABLED
    2481          27 :     module procedure getPaddedAsisSR_D1_IK4
    2482             :         use pm_kind, only: IKC => IK4
    2483             : #include "pm_arrayPad@routines.inc.F90"
    2484          27 :     end procedure
    2485             : #endif
    2486             : 
    2487             : #if IK3_ENABLED
    2488          28 :     module procedure getPaddedAsisSR_D1_IK3
    2489             :         use pm_kind, only: IKC => IK3
    2490             : #include "pm_arrayPad@routines.inc.F90"
    2491          28 :     end procedure
    2492             : #endif
    2493             : 
    2494             : #if IK2_ENABLED
    2495          27 :     module procedure getPaddedAsisSR_D1_IK2
    2496             :         use pm_kind, only: IKC => IK2
    2497             : #include "pm_arrayPad@routines.inc.F90"
    2498          27 :     end procedure
    2499             : #endif
    2500             : 
    2501             : #if IK1_ENABLED
    2502          27 :     module procedure getPaddedAsisSR_D1_IK1
    2503             :         use pm_kind, only: IKC => IK1
    2504             : #include "pm_arrayPad@routines.inc.F90"
    2505          27 :     end procedure
    2506             : #endif
    2507             : 
    2508             : #undef IK_ENABLED
    2509             : 
    2510             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2511             : 
    2512             : #define LK_ENABLED 1
    2513             : 
    2514             : #if LK5_ENABLED
    2515          27 :     module procedure getPaddedAsisSR_D1_LK5
    2516             :         use pm_kind, only: LKC => LK5
    2517             : #include "pm_arrayPad@routines.inc.F90"
    2518          27 :     end procedure
    2519             : #endif
    2520             : 
    2521             : #if LK4_ENABLED
    2522          27 :     module procedure getPaddedAsisSR_D1_LK4
    2523             :         use pm_kind, only: LKC => LK4
    2524             : #include "pm_arrayPad@routines.inc.F90"
    2525          27 :     end procedure
    2526             : #endif
    2527             : 
    2528             : #if LK3_ENABLED
    2529          28 :     module procedure getPaddedAsisSR_D1_LK3
    2530             :         use pm_kind, only: LKC => LK3
    2531             : #include "pm_arrayPad@routines.inc.F90"
    2532          28 :     end procedure
    2533             : #endif
    2534             : 
    2535             : #if LK2_ENABLED
    2536          27 :     module procedure getPaddedAsisSR_D1_LK2
    2537             :         use pm_kind, only: LKC => LK2
    2538             : #include "pm_arrayPad@routines.inc.F90"
    2539          27 :     end procedure
    2540             : #endif
    2541             : 
    2542             : #if LK1_ENABLED
    2543          27 :     module procedure getPaddedAsisSR_D1_LK1
    2544             :         use pm_kind, only: LKC => LK1
    2545             : #include "pm_arrayPad@routines.inc.F90"
    2546          27 :     end procedure
    2547             : #endif
    2548             : 
    2549             : #undef LK_ENABLED
    2550             : 
    2551             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2552             : 
    2553             : #define CK_ENABLED 1
    2554             : 
    2555             : #if CK5_ENABLED
    2556             :     module procedure getPaddedAsisSR_D1_CK5
    2557             :         use pm_kind, only: CKC => CK5
    2558             : #include "pm_arrayPad@routines.inc.F90"
    2559             :     end procedure
    2560             : #endif
    2561             : 
    2562             : #if CK4_ENABLED
    2563          27 :     module procedure getPaddedAsisSR_D1_CK4
    2564             :         use pm_kind, only: CKC => CK4
    2565             : #include "pm_arrayPad@routines.inc.F90"
    2566          27 :     end procedure
    2567             : #endif
    2568             : 
    2569             : #if CK3_ENABLED
    2570          27 :     module procedure getPaddedAsisSR_D1_CK3
    2571             :         use pm_kind, only: CKC => CK3
    2572             : #include "pm_arrayPad@routines.inc.F90"
    2573          27 :     end procedure
    2574             : #endif
    2575             : 
    2576             : #if CK2_ENABLED
    2577          28 :     module procedure getPaddedAsisSR_D1_CK2
    2578             :         use pm_kind, only: CKC => CK2
    2579             : #include "pm_arrayPad@routines.inc.F90"
    2580          28 :     end procedure
    2581             : #endif
    2582             : 
    2583             : #if CK1_ENABLED
    2584          27 :     module procedure getPaddedAsisSR_D1_CK1
    2585             :         use pm_kind, only: CKC => CK1
    2586             : #include "pm_arrayPad@routines.inc.F90"
    2587          27 :     end procedure
    2588             : #endif
    2589             : 
    2590             : #undef CK_ENABLED
    2591             : 
    2592             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2593             : 
    2594             : #define RK_ENABLED 1
    2595             : 
    2596             : #if RK5_ENABLED
    2597             :     module procedure getPaddedAsisSR_D1_RK5
    2598             :         use pm_kind, only: RKC => RK5
    2599             : #include "pm_arrayPad@routines.inc.F90"
    2600             :     end procedure
    2601             : #endif
    2602             : 
    2603             : #if RK4_ENABLED
    2604          27 :     module procedure getPaddedAsisSR_D1_RK4
    2605             :         use pm_kind, only: RKC => RK4
    2606             : #include "pm_arrayPad@routines.inc.F90"
    2607          27 :     end procedure
    2608             : #endif
    2609             : 
    2610             : #if RK3_ENABLED
    2611          27 :     module procedure getPaddedAsisSR_D1_RK3
    2612             :         use pm_kind, only: RKC => RK3
    2613             : #include "pm_arrayPad@routines.inc.F90"
    2614          27 :     end procedure
    2615             : #endif
    2616             : 
    2617             : #if RK2_ENABLED
    2618          28 :     module procedure getPaddedAsisSR_D1_RK2
    2619             :         use pm_kind, only: RKC => RK2
    2620             : #include "pm_arrayPad@routines.inc.F90"
    2621          28 :     end procedure
    2622             : #endif
    2623             : 
    2624             : #if RK1_ENABLED
    2625          30 :     module procedure getPaddedAsisSR_D1_RK1
    2626             :         use pm_kind, only: RKC => RK1
    2627             : #include "pm_arrayPad@routines.inc.F90"
    2628          30 :     end procedure
    2629             : #endif
    2630             : 
    2631             : #undef RK_ENABLED
    2632             : 
    2633             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2634             : 
    2635             : #undef D1_ENABLED
    2636             : 
    2637             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2638             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2639             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2640             : 
    2641             : #undef Asis_ENABLED
    2642             : 
    2643             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2644             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2645             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2646             : 
    2647             : #define Marg_ENABLED 1
    2648             : 
    2649             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2650             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2651             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2652             : 
    2653             : #define D0_ENABLED 1
    2654             : 
    2655             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2656             : 
    2657             : #define SK_ENABLED 1
    2658             : 
    2659             : #if SK5_ENABLED
    2660             :     module procedure getPaddedMargSR_D0_SK5
    2661             :         use pm_kind, only: SKC => SK5
    2662             : #include "pm_arrayPad@routines.inc.F90"
    2663             :     end procedure
    2664             : #endif
    2665             : 
    2666             : #if SK4_ENABLED
    2667             :     module procedure getPaddedMargSR_D0_SK4
    2668             :         use pm_kind, only: SKC => SK4
    2669             : #include "pm_arrayPad@routines.inc.F90"
    2670             :     end procedure
    2671             : #endif
    2672             : 
    2673             : #if SK3_ENABLED
    2674             :     module procedure getPaddedMargSR_D0_SK3
    2675             :         use pm_kind, only: SKC => SK3
    2676             : #include "pm_arrayPad@routines.inc.F90"
    2677             :     end procedure
    2678             : #endif
    2679             : 
    2680             : #if SK2_ENABLED
    2681             :     module procedure getPaddedMargSR_D0_SK2
    2682             :         use pm_kind, only: SKC => SK2
    2683             : #include "pm_arrayPad@routines.inc.F90"
    2684             :     end procedure
    2685             : #endif
    2686             : 
    2687             : #if SK1_ENABLED
    2688          55 :     module procedure getPaddedMargSR_D0_SK1
    2689             :         use pm_kind, only: SKC => SK1
    2690             : #include "pm_arrayPad@routines.inc.F90"
    2691          55 :     end procedure
    2692             : #endif
    2693             : 
    2694             : #undef SK_ENABLED
    2695             : 
    2696             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2697             : 
    2698             : #undef D0_ENABLED
    2699             : 
    2700             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2701             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2702             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2703             : 
    2704             : #define D1_ENABLED 1
    2705             : 
    2706             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2707             : 
    2708             : #define SK_ENABLED 1
    2709             : 
    2710             : #if SK5_ENABLED
    2711             :     module procedure getPaddedMargSR_D1_SK5
    2712             :         use pm_kind, only: SKC => SK5
    2713             : #include "pm_arrayPad@routines.inc.F90"
    2714             :     end procedure
    2715             : #endif
    2716             : 
    2717             : #if SK4_ENABLED
    2718             :     module procedure getPaddedMargSR_D1_SK4
    2719             :         use pm_kind, only: SKC => SK4
    2720             : #include "pm_arrayPad@routines.inc.F90"
    2721             :     end procedure
    2722             : #endif
    2723             : 
    2724             : #if SK3_ENABLED
    2725             :     module procedure getPaddedMargSR_D1_SK3
    2726             :         use pm_kind, only: SKC => SK3
    2727             : #include "pm_arrayPad@routines.inc.F90"
    2728             :     end procedure
    2729             : #endif
    2730             : 
    2731             : #if SK2_ENABLED
    2732             :     module procedure getPaddedMargSR_D1_SK2
    2733             :         use pm_kind, only: SKC => SK2
    2734             : #include "pm_arrayPad@routines.inc.F90"
    2735             :     end procedure
    2736             : #endif
    2737             : 
    2738             : #if SK1_ENABLED
    2739          54 :     module procedure getPaddedMargSR_D1_SK1
    2740             :         use pm_kind, only: SKC => SK1
    2741             : #include "pm_arrayPad@routines.inc.F90"
    2742          54 :     end procedure
    2743             : #endif
    2744             : 
    2745             : #undef SK_ENABLED
    2746             : 
    2747             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2748             : 
    2749             : #define IK_ENABLED 1
    2750             : 
    2751             : #if IK5_ENABLED
    2752          54 :     module procedure getPaddedMargSR_D1_IK5
    2753             :         use pm_kind, only: IKC => IK5
    2754             : #include "pm_arrayPad@routines.inc.F90"
    2755          54 :     end procedure
    2756             : #endif
    2757             : 
    2758             : #if IK4_ENABLED
    2759          54 :     module procedure getPaddedMargSR_D1_IK4
    2760             :         use pm_kind, only: IKC => IK4
    2761             : #include "pm_arrayPad@routines.inc.F90"
    2762          54 :     end procedure
    2763             : #endif
    2764             : 
    2765             : #if IK3_ENABLED
    2766          54 :     module procedure getPaddedMargSR_D1_IK3
    2767             :         use pm_kind, only: IKC => IK3
    2768             : #include "pm_arrayPad@routines.inc.F90"
    2769          54 :     end procedure
    2770             : #endif
    2771             : 
    2772             : #if IK2_ENABLED
    2773          54 :     module procedure getPaddedMargSR_D1_IK2
    2774             :         use pm_kind, only: IKC => IK2
    2775             : #include "pm_arrayPad@routines.inc.F90"
    2776          54 :     end procedure
    2777             : #endif
    2778             : 
    2779             : #if IK1_ENABLED
    2780          54 :     module procedure getPaddedMargSR_D1_IK1
    2781             :         use pm_kind, only: IKC => IK1
    2782             : #include "pm_arrayPad@routines.inc.F90"
    2783          54 :     end procedure
    2784             : #endif
    2785             : 
    2786             : #undef IK_ENABLED
    2787             : 
    2788             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2789             : 
    2790             : #define LK_ENABLED 1
    2791             : 
    2792             : #if LK5_ENABLED
    2793          54 :     module procedure getPaddedMargSR_D1_LK5
    2794             :         use pm_kind, only: LKC => LK5
    2795             : #include "pm_arrayPad@routines.inc.F90"
    2796          54 :     end procedure
    2797             : #endif
    2798             : 
    2799             : #if LK4_ENABLED
    2800          54 :     module procedure getPaddedMargSR_D1_LK4
    2801             :         use pm_kind, only: LKC => LK4
    2802             : #include "pm_arrayPad@routines.inc.F90"
    2803          54 :     end procedure
    2804             : #endif
    2805             : 
    2806             : #if LK3_ENABLED
    2807          54 :     module procedure getPaddedMargSR_D1_LK3
    2808             :         use pm_kind, only: LKC => LK3
    2809             : #include "pm_arrayPad@routines.inc.F90"
    2810          54 :     end procedure
    2811             : #endif
    2812             : 
    2813             : #if LK2_ENABLED
    2814          54 :     module procedure getPaddedMargSR_D1_LK2
    2815             :         use pm_kind, only: LKC => LK2
    2816             : #include "pm_arrayPad@routines.inc.F90"
    2817          54 :     end procedure
    2818             : #endif
    2819             : 
    2820             : #if LK1_ENABLED
    2821          54 :     module procedure getPaddedMargSR_D1_LK1
    2822             :         use pm_kind, only: LKC => LK1
    2823             : #include "pm_arrayPad@routines.inc.F90"
    2824          54 :     end procedure
    2825             : #endif
    2826             : 
    2827             : #undef LK_ENABLED
    2828             : 
    2829             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2830             : 
    2831             : #define CK_ENABLED 1
    2832             : 
    2833             : #if CK5_ENABLED
    2834             :     module procedure getPaddedMargSR_D1_CK5
    2835             :         use pm_kind, only: CKC => CK5
    2836             : #include "pm_arrayPad@routines.inc.F90"
    2837             :     end procedure
    2838             : #endif
    2839             : 
    2840             : #if CK4_ENABLED
    2841          54 :     module procedure getPaddedMargSR_D1_CK4
    2842             :         use pm_kind, only: CKC => CK4
    2843             : #include "pm_arrayPad@routines.inc.F90"
    2844          54 :     end procedure
    2845             : #endif
    2846             : 
    2847             : #if CK3_ENABLED
    2848          54 :     module procedure getPaddedMargSR_D1_CK3
    2849             :         use pm_kind, only: CKC => CK3
    2850             : #include "pm_arrayPad@routines.inc.F90"
    2851          54 :     end procedure
    2852             : #endif
    2853             : 
    2854             : #if CK2_ENABLED
    2855          54 :     module procedure getPaddedMargSR_D1_CK2
    2856             :         use pm_kind, only: CKC => CK2
    2857             : #include "pm_arrayPad@routines.inc.F90"
    2858          54 :     end procedure
    2859             : #endif
    2860             : 
    2861             : #if CK1_ENABLED
    2862          54 :     module procedure getPaddedMargSR_D1_CK1
    2863             :         use pm_kind, only: CKC => CK1
    2864             : #include "pm_arrayPad@routines.inc.F90"
    2865          54 :     end procedure
    2866             : #endif
    2867             : 
    2868             : #undef CK_ENABLED
    2869             : 
    2870             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2871             : 
    2872             : #define RK_ENABLED 1
    2873             : 
    2874             : #if RK5_ENABLED
    2875             :     module procedure getPaddedMargSR_D1_RK5
    2876             :         use pm_kind, only: RKC => RK5
    2877             : #include "pm_arrayPad@routines.inc.F90"
    2878             :     end procedure
    2879             : #endif
    2880             : 
    2881             : #if RK4_ENABLED
    2882          54 :     module procedure getPaddedMargSR_D1_RK4
    2883             :         use pm_kind, only: RKC => RK4
    2884             : #include "pm_arrayPad@routines.inc.F90"
    2885          54 :     end procedure
    2886             : #endif
    2887             : 
    2888             : #if RK3_ENABLED
    2889          54 :     module procedure getPaddedMargSR_D1_RK3
    2890             :         use pm_kind, only: RKC => RK3
    2891             : #include "pm_arrayPad@routines.inc.F90"
    2892          54 :     end procedure
    2893             : #endif
    2894             : 
    2895             : #if RK2_ENABLED
    2896          54 :     module procedure getPaddedMargSR_D1_RK2
    2897             :         use pm_kind, only: RKC => RK2
    2898             : #include "pm_arrayPad@routines.inc.F90"
    2899          54 :     end procedure
    2900             : #endif
    2901             : 
    2902             : #if RK1_ENABLED
    2903          54 :     module procedure getPaddedMargSR_D1_RK1
    2904             :         use pm_kind, only: RKC => RK1
    2905             : #include "pm_arrayPad@routines.inc.F90"
    2906          54 :     end procedure
    2907             : #endif
    2908             : 
    2909             : #undef RK_ENABLED
    2910             : 
    2911             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2912             : 
    2913             : #undef D1_ENABLED
    2914             : 
    2915             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2916             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2917             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2918             : 
    2919             : #undef Marg_ENABLED
    2920             : 
    2921             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2922             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2923             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2924             : 
    2925             : #undef SR_ENABLED
    2926             : 
    2927             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2928             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2929             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2930             : 
    2931             : #undef getPadded_ENABLED
    2932             : 
    2933             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2934             : 
    2935             : #define setPadded_ENABLED 1
    2936             : 
    2937             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2938             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2939             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2940             : 
    2941             : #define SR_ENABLED 1
    2942             : 
    2943             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2944             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2945             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2946             : 
    2947             : #define Asis_ENABLED 1
    2948             : 
    2949             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2950             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2951             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2952             : 
    2953             : #define D0_ENABLED 1
    2954             : 
    2955             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2956             : 
    2957             : #define SK_ENABLED 1
    2958             : 
    2959             : #if SK5_ENABLED
    2960             :     module procedure setPaddedAsisSR_D0_SK5
    2961             :         use pm_kind, only: SKC => SK5
    2962             : #include "pm_arrayPad@routines.inc.F90"
    2963             :     end procedure
    2964             : #endif
    2965             : 
    2966             : #if SK4_ENABLED
    2967             :     module procedure setPaddedAsisSR_D0_SK4
    2968             :         use pm_kind, only: SKC => SK4
    2969             : #include "pm_arrayPad@routines.inc.F90"
    2970             :     end procedure
    2971             : #endif
    2972             : 
    2973             : #if SK3_ENABLED
    2974             :     module procedure setPaddedAsisSR_D0_SK3
    2975             :         use pm_kind, only: SKC => SK3
    2976             : #include "pm_arrayPad@routines.inc.F90"
    2977             :     end procedure
    2978             : #endif
    2979             : 
    2980             : #if SK2_ENABLED
    2981             :     module procedure setPaddedAsisSR_D0_SK2
    2982             :         use pm_kind, only: SKC => SK2
    2983             : #include "pm_arrayPad@routines.inc.F90"
    2984             :     end procedure
    2985             : #endif
    2986             : 
    2987             : #if SK1_ENABLED
    2988          55 :     module procedure setPaddedAsisSR_D0_SK1
    2989             :         use pm_kind, only: SKC => SK1
    2990             : #include "pm_arrayPad@routines.inc.F90"
    2991           0 :     end procedure
    2992             : #endif
    2993             : 
    2994             : #undef SK_ENABLED
    2995             : 
    2996             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2997             : 
    2998             : #undef D0_ENABLED
    2999             : 
    3000             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3001             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3002             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3003             : 
    3004             : #define D1_ENABLED 1
    3005             : 
    3006             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3007             : 
    3008             : #define SK_ENABLED 1
    3009             : 
    3010             : #if SK5_ENABLED
    3011             :     module procedure setPaddedAsisSR_D1_SK5
    3012             :         use pm_kind, only: SKC => SK5
    3013             : #include "pm_arrayPad@routines.inc.F90"
    3014             :     end procedure
    3015             : #endif
    3016             : 
    3017             : #if SK4_ENABLED
    3018             :     module procedure setPaddedAsisSR_D1_SK4
    3019             :         use pm_kind, only: SKC => SK4
    3020             : #include "pm_arrayPad@routines.inc.F90"
    3021             :     end procedure
    3022             : #endif
    3023             : 
    3024             : #if SK3_ENABLED
    3025             :     module procedure setPaddedAsisSR_D1_SK3
    3026             :         use pm_kind, only: SKC => SK3
    3027             : #include "pm_arrayPad@routines.inc.F90"
    3028             :     end procedure
    3029             : #endif
    3030             : 
    3031             : #if SK2_ENABLED
    3032             :     module procedure setPaddedAsisSR_D1_SK2
    3033             :         use pm_kind, only: SKC => SK2
    3034             : #include "pm_arrayPad@routines.inc.F90"
    3035             :     end procedure
    3036             : #endif
    3037             : 
    3038             : #if SK1_ENABLED
    3039          55 :     module procedure setPaddedAsisSR_D1_SK1
    3040             :         use pm_kind, only: SKC => SK1
    3041             : #include "pm_arrayPad@routines.inc.F90"
    3042          55 :     end procedure
    3043             : #endif
    3044             : 
    3045             : #undef SK_ENABLED
    3046             : 
    3047             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3048             : 
    3049             : #define IK_ENABLED 1
    3050             : 
    3051             : #if IK5_ENABLED
    3052          54 :     module procedure setPaddedAsisSR_D1_IK5
    3053             :         use pm_kind, only: IKC => IK5
    3054             : #include "pm_arrayPad@routines.inc.F90"
    3055             :     end procedure
    3056             : #endif
    3057             : 
    3058             : #if IK4_ENABLED
    3059          54 :     module procedure setPaddedAsisSR_D1_IK4
    3060             :         use pm_kind, only: IKC => IK4
    3061             : #include "pm_arrayPad@routines.inc.F90"
    3062             :     end procedure
    3063             : #endif
    3064             : 
    3065             : #if IK3_ENABLED
    3066          55 :     module procedure setPaddedAsisSR_D1_IK3
    3067             :         use pm_kind, only: IKC => IK3
    3068             : #include "pm_arrayPad@routines.inc.F90"
    3069             :     end procedure
    3070             : #endif
    3071             : 
    3072             : #if IK2_ENABLED
    3073          54 :     module procedure setPaddedAsisSR_D1_IK2
    3074             :         use pm_kind, only: IKC => IK2
    3075             : #include "pm_arrayPad@routines.inc.F90"
    3076             :     end procedure
    3077             : #endif
    3078             : 
    3079             : #if IK1_ENABLED
    3080          54 :     module procedure setPaddedAsisSR_D1_IK1
    3081             :         use pm_kind, only: IKC => IK1
    3082             : #include "pm_arrayPad@routines.inc.F90"
    3083             :     end procedure
    3084             : #endif
    3085             : 
    3086             : #undef IK_ENABLED
    3087             : 
    3088             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3089             : 
    3090             : #define LK_ENABLED 1
    3091             : 
    3092             : #if LK5_ENABLED
    3093          54 :     module procedure setPaddedAsisSR_D1_LK5
    3094             :         use pm_kind, only: LKC => LK5
    3095             : #include "pm_arrayPad@routines.inc.F90"
    3096             :     end procedure
    3097             : #endif
    3098             : 
    3099             : #if LK4_ENABLED
    3100          54 :     module procedure setPaddedAsisSR_D1_LK4
    3101             :         use pm_kind, only: LKC => LK4
    3102             : #include "pm_arrayPad@routines.inc.F90"
    3103             :     end procedure
    3104             : #endif
    3105             : 
    3106             : #if LK3_ENABLED
    3107          55 :     module procedure setPaddedAsisSR_D1_LK3
    3108             :         use pm_kind, only: LKC => LK3
    3109             : #include "pm_arrayPad@routines.inc.F90"
    3110             :     end procedure
    3111             : #endif
    3112             : 
    3113             : #if LK2_ENABLED
    3114          54 :     module procedure setPaddedAsisSR_D1_LK2
    3115             :         use pm_kind, only: LKC => LK2
    3116             : #include "pm_arrayPad@routines.inc.F90"
    3117             :     end procedure
    3118             : #endif
    3119             : 
    3120             : #if LK1_ENABLED
    3121          54 :     module procedure setPaddedAsisSR_D1_LK1
    3122             :         use pm_kind, only: LKC => LK1
    3123             : #include "pm_arrayPad@routines.inc.F90"
    3124             :     end procedure
    3125             : #endif
    3126             : 
    3127             : #undef LK_ENABLED
    3128             : 
    3129             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3130             : 
    3131             : #define CK_ENABLED 1
    3132             : 
    3133             : #if CK5_ENABLED
    3134             :     module procedure setPaddedAsisSR_D1_CK5
    3135             :         use pm_kind, only: CKC => CK5
    3136             : #include "pm_arrayPad@routines.inc.F90"
    3137             :     end procedure
    3138             : #endif
    3139             : 
    3140             : #if CK4_ENABLED
    3141          54 :     module procedure setPaddedAsisSR_D1_CK4
    3142             :         use pm_kind, only: CKC => CK4
    3143             : #include "pm_arrayPad@routines.inc.F90"
    3144             :     end procedure
    3145             : #endif
    3146             : 
    3147             : #if CK3_ENABLED
    3148          54 :     module procedure setPaddedAsisSR_D1_CK3
    3149             :         use pm_kind, only: CKC => CK3
    3150             : #include "pm_arrayPad@routines.inc.F90"
    3151             :     end procedure
    3152             : #endif
    3153             : 
    3154             : #if CK2_ENABLED
    3155          55 :     module procedure setPaddedAsisSR_D1_CK2
    3156             :         use pm_kind, only: CKC => CK2
    3157             : #include "pm_arrayPad@routines.inc.F90"
    3158             :     end procedure
    3159             : #endif
    3160             : 
    3161             : #if CK1_ENABLED
    3162          54 :     module procedure setPaddedAsisSR_D1_CK1
    3163             :         use pm_kind, only: CKC => CK1
    3164             : #include "pm_arrayPad@routines.inc.F90"
    3165             :     end procedure
    3166             : #endif
    3167             : 
    3168             : #undef CK_ENABLED
    3169             : 
    3170             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3171             : 
    3172             : #define RK_ENABLED 1
    3173             : 
    3174             : #if RK5_ENABLED
    3175             :     module procedure setPaddedAsisSR_D1_RK5
    3176             :         use pm_kind, only: RKC => RK5
    3177             : #include "pm_arrayPad@routines.inc.F90"
    3178             :     end procedure
    3179             : #endif
    3180             : 
    3181             : #if RK4_ENABLED
    3182          54 :     module procedure setPaddedAsisSR_D1_RK4
    3183             :         use pm_kind, only: RKC => RK4
    3184             : #include "pm_arrayPad@routines.inc.F90"
    3185             :     end procedure
    3186             : #endif
    3187             : 
    3188             : #if RK3_ENABLED
    3189          54 :     module procedure setPaddedAsisSR_D1_RK3
    3190             :         use pm_kind, only: RKC => RK3
    3191             : #include "pm_arrayPad@routines.inc.F90"
    3192             :     end procedure
    3193             : #endif
    3194             : 
    3195             : #if RK2_ENABLED
    3196          55 :     module procedure setPaddedAsisSR_D1_RK2
    3197             :         use pm_kind, only: RKC => RK2
    3198             : #include "pm_arrayPad@routines.inc.F90"
    3199             :     end procedure
    3200             : #endif
    3201             : 
    3202             : #if RK1_ENABLED
    3203          54 :     module procedure setPaddedAsisSR_D1_RK1
    3204             :         use pm_kind, only: RKC => RK1
    3205             : #include "pm_arrayPad@routines.inc.F90"
    3206             :     end procedure
    3207             : #endif
    3208             : 
    3209             : #undef RK_ENABLED
    3210             : 
    3211             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3212             : 
    3213             : #undef D1_ENABLED
    3214             : 
    3215             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3216             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3217             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3218             : 
    3219             : #undef Asis_ENABLED
    3220             : 
    3221             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3222             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3223             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3224             : 
    3225             : #define Marg_ENABLED 1
    3226             : 
    3227             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3228             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3229             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3230             : 
    3231             : #define D0_ENABLED 1
    3232             : 
    3233             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3234             : 
    3235             : #define SK_ENABLED 1
    3236             : 
    3237             : #if SK5_ENABLED
    3238             :     module procedure setPaddedMargSR_D0_SK5
    3239             :         use pm_kind, only: SKC => SK5
    3240             : #include "pm_arrayPad@routines.inc.F90"
    3241             :     end procedure
    3242             : #endif
    3243             : 
    3244             : #if SK4_ENABLED
    3245             :     module procedure setPaddedMargSR_D0_SK4
    3246             :         use pm_kind, only: SKC => SK4
    3247             : #include "pm_arrayPad@routines.inc.F90"
    3248             :     end procedure
    3249             : #endif
    3250             : 
    3251             : #if SK3_ENABLED
    3252             :     module procedure setPaddedMargSR_D0_SK3
    3253             :         use pm_kind, only: SKC => SK3
    3254             : #include "pm_arrayPad@routines.inc.F90"
    3255             :     end procedure
    3256             : #endif
    3257             : 
    3258             : #if SK2_ENABLED
    3259             :     module procedure setPaddedMargSR_D0_SK2
    3260             :         use pm_kind, only: SKC => SK2
    3261             : #include "pm_arrayPad@routines.inc.F90"
    3262             :     end procedure
    3263             : #endif
    3264             : 
    3265             : #if SK1_ENABLED
    3266         109 :     module procedure setPaddedMargSR_D0_SK1
    3267             :         use pm_kind, only: SKC => SK1
    3268             : #include "pm_arrayPad@routines.inc.F90"
    3269           0 :     end procedure
    3270             : #endif
    3271             : 
    3272             : #undef SK_ENABLED
    3273             : 
    3274             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3275             : 
    3276             : #undef D0_ENABLED
    3277             : 
    3278             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3279             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3280             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3281             : 
    3282             : #define D1_ENABLED 1
    3283             : 
    3284             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3285             : 
    3286             : #define SK_ENABLED 1
    3287             : 
    3288             : #if SK5_ENABLED
    3289             :     module procedure setPaddedMargSR_D1_SK5
    3290             :         use pm_kind, only: SKC => SK5
    3291             : #include "pm_arrayPad@routines.inc.F90"
    3292             :     end procedure
    3293             : #endif
    3294             : 
    3295             : #if SK4_ENABLED
    3296             :     module procedure setPaddedMargSR_D1_SK4
    3297             :         use pm_kind, only: SKC => SK4
    3298             : #include "pm_arrayPad@routines.inc.F90"
    3299             :     end procedure
    3300             : #endif
    3301             : 
    3302             : #if SK3_ENABLED
    3303             :     module procedure setPaddedMargSR_D1_SK3
    3304             :         use pm_kind, only: SKC => SK3
    3305             : #include "pm_arrayPad@routines.inc.F90"
    3306             :     end procedure
    3307             : #endif
    3308             : 
    3309             : #if SK2_ENABLED
    3310             :     module procedure setPaddedMargSR_D1_SK2
    3311             :         use pm_kind, only: SKC => SK2
    3312             : #include "pm_arrayPad@routines.inc.F90"
    3313             :     end procedure
    3314             : #endif
    3315             : 
    3316             : #if SK1_ENABLED
    3317         108 :     module procedure setPaddedMargSR_D1_SK1
    3318             :         use pm_kind, only: SKC => SK1
    3319             : #include "pm_arrayPad@routines.inc.F90"
    3320         108 :     end procedure
    3321             : #endif
    3322             : 
    3323             : #undef SK_ENABLED
    3324             : 
    3325             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3326             : 
    3327             : #define IK_ENABLED 1
    3328             : 
    3329             : #if IK5_ENABLED
    3330         108 :     module procedure setPaddedMargSR_D1_IK5
    3331             :         use pm_kind, only: IKC => IK5
    3332             : #include "pm_arrayPad@routines.inc.F90"
    3333             :     end procedure
    3334             : #endif
    3335             : 
    3336             : #if IK4_ENABLED
    3337         108 :     module procedure setPaddedMargSR_D1_IK4
    3338             :         use pm_kind, only: IKC => IK4
    3339             : #include "pm_arrayPad@routines.inc.F90"
    3340             :     end procedure
    3341             : #endif
    3342             : 
    3343             : #if IK3_ENABLED
    3344         108 :     module procedure setPaddedMargSR_D1_IK3
    3345             :         use pm_kind, only: IKC => IK3
    3346             : #include "pm_arrayPad@routines.inc.F90"
    3347             :     end procedure
    3348             : #endif
    3349             : 
    3350             : #if IK2_ENABLED
    3351         108 :     module procedure setPaddedMargSR_D1_IK2
    3352             :         use pm_kind, only: IKC => IK2
    3353             : #include "pm_arrayPad@routines.inc.F90"
    3354             :     end procedure
    3355             : #endif
    3356             : 
    3357             : #if IK1_ENABLED
    3358         108 :     module procedure setPaddedMargSR_D1_IK1
    3359             :         use pm_kind, only: IKC => IK1
    3360             : #include "pm_arrayPad@routines.inc.F90"
    3361             :     end procedure
    3362             : #endif
    3363             : 
    3364             : #undef IK_ENABLED
    3365             : 
    3366             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3367             : 
    3368             : #define LK_ENABLED 1
    3369             : 
    3370             : #if LK5_ENABLED
    3371         108 :     module procedure setPaddedMargSR_D1_LK5
    3372             :         use pm_kind, only: LKC => LK5
    3373             : #include "pm_arrayPad@routines.inc.F90"
    3374             :     end procedure
    3375             : #endif
    3376             : 
    3377             : #if LK4_ENABLED
    3378         108 :     module procedure setPaddedMargSR_D1_LK4
    3379             :         use pm_kind, only: LKC => LK4
    3380             : #include "pm_arrayPad@routines.inc.F90"
    3381             :     end procedure
    3382             : #endif
    3383             : 
    3384             : #if LK3_ENABLED
    3385         108 :     module procedure setPaddedMargSR_D1_LK3
    3386             :         use pm_kind, only: LKC => LK3
    3387             : #include "pm_arrayPad@routines.inc.F90"
    3388             :     end procedure
    3389             : #endif
    3390             : 
    3391             : #if LK2_ENABLED
    3392         108 :     module procedure setPaddedMargSR_D1_LK2
    3393             :         use pm_kind, only: LKC => LK2
    3394             : #include "pm_arrayPad@routines.inc.F90"
    3395             :     end procedure
    3396             : #endif
    3397             : 
    3398             : #if LK1_ENABLED
    3399         108 :     module procedure setPaddedMargSR_D1_LK1
    3400             :         use pm_kind, only: LKC => LK1
    3401             : #include "pm_arrayPad@routines.inc.F90"
    3402             :     end procedure
    3403             : #endif
    3404             : 
    3405             : #undef LK_ENABLED
    3406             : 
    3407             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3408             : 
    3409             : #define CK_ENABLED 1
    3410             : 
    3411             : #if CK5_ENABLED
    3412             :     module procedure setPaddedMargSR_D1_CK5
    3413             :         use pm_kind, only: CKC => CK5
    3414             : #include "pm_arrayPad@routines.inc.F90"
    3415             :     end procedure
    3416             : #endif
    3417             : 
    3418             : #if CK4_ENABLED
    3419         108 :     module procedure setPaddedMargSR_D1_CK4
    3420             :         use pm_kind, only: CKC => CK4
    3421             : #include "pm_arrayPad@routines.inc.F90"
    3422             :     end procedure
    3423             : #endif
    3424             : 
    3425             : #if CK3_ENABLED
    3426         108 :     module procedure setPaddedMargSR_D1_CK3
    3427             :         use pm_kind, only: CKC => CK3
    3428             : #include "pm_arrayPad@routines.inc.F90"
    3429             :     end procedure
    3430             : #endif
    3431             : 
    3432             : #if CK2_ENABLED
    3433         108 :     module procedure setPaddedMargSR_D1_CK2
    3434             :         use pm_kind, only: CKC => CK2
    3435             : #include "pm_arrayPad@routines.inc.F90"
    3436             :     end procedure
    3437             : #endif
    3438             : 
    3439             : #if CK1_ENABLED
    3440         108 :     module procedure setPaddedMargSR_D1_CK1
    3441             :         use pm_kind, only: CKC => CK1
    3442             : #include "pm_arrayPad@routines.inc.F90"
    3443             :     end procedure
    3444             : #endif
    3445             : 
    3446             : #undef CK_ENABLED
    3447             : 
    3448             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3449             : 
    3450             : #define RK_ENABLED 1
    3451             : 
    3452             : #if RK5_ENABLED
    3453             :     module procedure setPaddedMargSR_D1_RK5
    3454             :         use pm_kind, only: RKC => RK5
    3455             : #include "pm_arrayPad@routines.inc.F90"
    3456             :     end procedure
    3457             : #endif
    3458             : 
    3459             : #if RK4_ENABLED
    3460         108 :     module procedure setPaddedMargSR_D1_RK4
    3461             :         use pm_kind, only: RKC => RK4
    3462             : #include "pm_arrayPad@routines.inc.F90"
    3463             :     end procedure
    3464             : #endif
    3465             : 
    3466             : #if RK3_ENABLED
    3467         108 :     module procedure setPaddedMargSR_D1_RK3
    3468             :         use pm_kind, only: RKC => RK3
    3469             : #include "pm_arrayPad@routines.inc.F90"
    3470             :     end procedure
    3471             : #endif
    3472             : 
    3473             : #if RK2_ENABLED
    3474         108 :     module procedure setPaddedMargSR_D1_RK2
    3475             :         use pm_kind, only: RKC => RK2
    3476             : #include "pm_arrayPad@routines.inc.F90"
    3477             :     end procedure
    3478             : #endif
    3479             : 
    3480             : #if RK1_ENABLED
    3481         108 :     module procedure setPaddedMargSR_D1_RK1
    3482             :         use pm_kind, only: RKC => RK1
    3483             : #include "pm_arrayPad@routines.inc.F90"
    3484             :     end procedure
    3485             : #endif
    3486             : 
    3487             : #undef RK_ENABLED
    3488             : 
    3489             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3490             : 
    3491             : #undef D1_ENABLED
    3492             : 
    3493             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3494             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3495             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3496             : 
    3497             : #undef Marg_ENABLED
    3498             : 
    3499             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3500             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3501             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3502             : 
    3503             : #undef SR_ENABLED
    3504             : 
    3505             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3506             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3507             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3508             : 
    3509             : #undef setPadded_ENABLED
    3510             : 
    3511             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3512             : 
    3513             : #undef CHECK_ASSERTION
    3514             : 
    3515             : end submodule routines

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