https://www.cdslab.org/paramonte/fortran/2
Current view: top level - main - pm_mathDivMul@routines.F90 (source / functions) Hit Total Coverage
Test: ParaMonte 2.0.0 :: Serial Fortran - Code Coverage Report Lines: 12 52 23.1 %
Date: 2024-04-08 03:18:57 Functions: 6 26 23.1 %
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_mathDivMul](@ref pm_mathDivMul).
      19             : !>
      20             : !>  \finmain
      21             : !>
      22             : !>  \author
      23             : !>  \AmirShahmoradi, April 23, 2017, 1:36 AM, Institute for Computational Engineering and Sciences (ICES), University of Texas at Austin
      24             : 
      25             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      26             : 
      27             : submodule (pm_mathDivMul) 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             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      42             : 
      43             : contains
      44             : 
      45             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      46             : 
      47             : #define getDivMul_ENABLED 1
      48             : 
      49             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      50             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      51             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      52             : 
      53             : #define Unary_ENABLED 1
      54             : 
      55             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      56             : 
      57             : #define IK_ENABLED 1
      58             : 
      59             : #if IK5_ENABLED
      60           0 :     module procedure getDivMulUnary_IK5
      61             :         use pm_kind, only: IKC => IK5
      62             : #include "pm_mathDivMul@routines.inc.F90"
      63           0 :     end procedure
      64             : #endif
      65             : 
      66             : #if IK4_ENABLED
      67           0 :     module procedure getDivMulUnary_IK4
      68             :         use pm_kind, only: IKC => IK4
      69             : #include "pm_mathDivMul@routines.inc.F90"
      70           0 :     end procedure
      71             : #endif
      72             : 
      73             : #if IK3_ENABLED
      74           2 :     module procedure getDivMulUnary_IK3
      75             :         use pm_kind, only: IKC => IK3
      76             : #include "pm_mathDivMul@routines.inc.F90"
      77           2 :     end procedure
      78             : #endif
      79             : 
      80             : #if IK2_ENABLED
      81           0 :     module procedure getDivMulUnary_IK2
      82             :         use pm_kind, only: IKC => IK2
      83             : #include "pm_mathDivMul@routines.inc.F90"
      84           0 :     end procedure
      85             : #endif
      86             : 
      87             : #if IK1_ENABLED
      88           0 :     module procedure getDivMulUnary_IK1
      89             :         use pm_kind, only: IKC => IK1
      90             : #include "pm_mathDivMul@routines.inc.F90"
      91           0 :     end procedure
      92             : #endif
      93             : 
      94             : #undef IK_ENABLED
      95             : 
      96             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      97             : 
      98             : #define RK_ENABLED 1
      99             : 
     100             : #if RK5_ENABLED
     101             :     module procedure getDivMulUnary_RK5
     102             :         use pm_kind, only: RKC => RK5
     103             : #include "pm_mathDivMul@routines.inc.F90"
     104             :     end procedure
     105             : #endif
     106             : 
     107             : #if RK4_ENABLED
     108           0 :     module procedure getDivMulUnary_RK4
     109             :         use pm_kind, only: RKC => RK4
     110             : #include "pm_mathDivMul@routines.inc.F90"
     111           0 :     end procedure
     112             : #endif
     113             : 
     114             : #if RK3_ENABLED
     115           0 :     module procedure getDivMulUnary_RK3
     116             :         use pm_kind, only: RKC => RK3
     117             : #include "pm_mathDivMul@routines.inc.F90"
     118           0 :     end procedure
     119             : #endif
     120             : 
     121             : #if RK2_ENABLED
     122           0 :     module procedure getDivMulUnary_RK2
     123             :         use pm_kind, only: RKC => RK2
     124             : #include "pm_mathDivMul@routines.inc.F90"
     125           0 :     end procedure
     126             : #endif
     127             : 
     128             : #if RK1_ENABLED
     129           2 :     module procedure getDivMulUnary_RK1
     130             :         use pm_kind, only: RKC => RK1
     131             : #include "pm_mathDivMul@routines.inc.F90"
     132           2 :     end procedure
     133             : #endif
     134             : 
     135             : #undef RK_ENABLED
     136             : 
     137             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     138             : 
     139             : #define CK_ENABLED 1
     140             : 
     141             : #if CK5_ENABLED
     142             :     module procedure getDivMulUnary_CK5
     143             :         use pm_kind, only: CKC => CK5
     144             : #include "pm_mathDivMul@routines.inc.F90"
     145             :     end procedure
     146             : #endif
     147             : 
     148             : #if CK4_ENABLED
     149           0 :     module procedure getDivMulUnary_CK4
     150             :         use pm_kind, only: CKC => CK4
     151             : #include "pm_mathDivMul@routines.inc.F90"
     152           0 :     end procedure
     153             : #endif
     154             : 
     155             : #if CK3_ENABLED
     156           0 :     module procedure getDivMulUnary_CK3
     157             :         use pm_kind, only: CKC => CK3
     158             : #include "pm_mathDivMul@routines.inc.F90"
     159           0 :     end procedure
     160             : #endif
     161             : 
     162             : #if CK2_ENABLED
     163           0 :     module procedure getDivMulUnary_CK2
     164             :         use pm_kind, only: CKC => CK2
     165             : #include "pm_mathDivMul@routines.inc.F90"
     166           0 :     end procedure
     167             : #endif
     168             : 
     169             : #if CK1_ENABLED
     170           2 :     module procedure getDivMulUnary_CK1
     171             :         use pm_kind, only: CKC => CK1
     172             : #include "pm_mathDivMul@routines.inc.F90"
     173           2 :     end procedure
     174             : #endif
     175             : 
     176             : #undef CK_ENABLED
     177             : 
     178             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     179             : 
     180             : #undef Unary_ENABLED
     181             : 
     182             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     183             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     184             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     185             : 
     186             : #define Binary_ENABLED 1
     187             : 
     188             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     189             : 
     190             : #define IK_ENABLED 1
     191             : 
     192             : #if IK5_ENABLED
     193           0 :     module procedure getDivMulBinary_IK5
     194             :         use pm_kind, only: IKC => IK5
     195             : #include "pm_mathDivMul@routines.inc.F90"
     196           0 :     end procedure
     197             : #endif
     198             : 
     199             : #if IK4_ENABLED
     200           0 :     module procedure getDivMulBinary_IK4
     201             :         use pm_kind, only: IKC => IK4
     202             : #include "pm_mathDivMul@routines.inc.F90"
     203           0 :     end procedure
     204             : #endif
     205             : 
     206             : #if IK3_ENABLED
     207           1 :     module procedure getDivMulBinary_IK3
     208             :         use pm_kind, only: IKC => IK3
     209             : #include "pm_mathDivMul@routines.inc.F90"
     210           1 :     end procedure
     211             : #endif
     212             : 
     213             : #if IK2_ENABLED
     214           0 :     module procedure getDivMulBinary_IK2
     215             :         use pm_kind, only: IKC => IK2
     216             : #include "pm_mathDivMul@routines.inc.F90"
     217           0 :     end procedure
     218             : #endif
     219             : 
     220             : #if IK1_ENABLED
     221           0 :     module procedure getDivMulBinary_IK1
     222             :         use pm_kind, only: IKC => IK1
     223             : #include "pm_mathDivMul@routines.inc.F90"
     224           0 :     end procedure
     225             : #endif
     226             : 
     227             : #undef IK_ENABLED
     228             : 
     229             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     230             : 
     231             : #define RK_ENABLED 1
     232             : 
     233             : #if RK5_ENABLED
     234             :     module procedure getDivMulBinary_RK5
     235             :         use pm_kind, only: RKC => RK5
     236             : #include "pm_mathDivMul@routines.inc.F90"
     237             :     end procedure
     238             : #endif
     239             : 
     240             : #if RK4_ENABLED
     241           0 :     module procedure getDivMulBinary_RK4
     242             :         use pm_kind, only: RKC => RK4
     243             : #include "pm_mathDivMul@routines.inc.F90"
     244           0 :     end procedure
     245             : #endif
     246             : 
     247             : #if RK3_ENABLED
     248           0 :     module procedure getDivMulBinary_RK3
     249             :         use pm_kind, only: RKC => RK3
     250             : #include "pm_mathDivMul@routines.inc.F90"
     251           0 :     end procedure
     252             : #endif
     253             : 
     254             : #if RK2_ENABLED
     255           1 :     module procedure getDivMulBinary_RK2
     256             :         use pm_kind, only: RKC => RK2
     257             : #include "pm_mathDivMul@routines.inc.F90"
     258           1 :     end procedure
     259             : #endif
     260             : 
     261             : #if RK1_ENABLED
     262           0 :     module procedure getDivMulBinary_RK1
     263             :         use pm_kind, only: RKC => RK1
     264             : #include "pm_mathDivMul@routines.inc.F90"
     265           0 :     end procedure
     266             : #endif
     267             : 
     268             : #undef RK_ENABLED
     269             : 
     270             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     271             : 
     272             : #define CK_ENABLED 1
     273             : 
     274             : #if CK5_ENABLED
     275             :     module procedure getDivMulBinary_CK5
     276             :         use pm_kind, only: CKC => CK5
     277             : #include "pm_mathDivMul@routines.inc.F90"
     278             :     end procedure
     279             : #endif
     280             : 
     281             : #if CK4_ENABLED
     282           1 :     module procedure getDivMulBinary_CK4
     283             :         use pm_kind, only: CKC => CK4
     284             : #include "pm_mathDivMul@routines.inc.F90"
     285           1 :     end procedure
     286             : #endif
     287             : 
     288             : #if CK3_ENABLED
     289           0 :     module procedure getDivMulBinary_CK3
     290             :         use pm_kind, only: CKC => CK3
     291             : #include "pm_mathDivMul@routines.inc.F90"
     292           0 :     end procedure
     293             : #endif
     294             : 
     295             : #if CK2_ENABLED
     296           0 :     module procedure getDivMulBinary_CK2
     297             :         use pm_kind, only: CKC => CK2
     298             : #include "pm_mathDivMul@routines.inc.F90"
     299           0 :     end procedure
     300             : #endif
     301             : 
     302             : #if CK1_ENABLED
     303           0 :     module procedure getDivMulBinary_CK1
     304             :         use pm_kind, only: CKC => CK1
     305             : #include "pm_mathDivMul@routines.inc.F90"
     306           0 :     end procedure
     307             : #endif
     308             : 
     309             : #undef CK_ENABLED
     310             : 
     311             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     312             : 
     313             : #undef Binary_ENABLED
     314             : 
     315             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     316             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     317             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     318             : 
     319             : #undef getDivMul_ENABLED
     320             : 
     321             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     322             : 
     323             : end submodule routines

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