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_ziggurat](@ref pm_ziggurat).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \AmirShahmoradi, April 25, 2015, 2:21 PM, National Institute for Fusion Studies, The University of Texas at Austin
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_ziggurat) routines ! LCOV_EXCL_LINE
28 :
29 : #if CHECK_ENABLED
30 : use pm_err, only: getFine
31 : use pm_val2str, only: getStr
32 : use pm_err, only: setAsserted
33 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
34 : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
35 : #else
36 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) continue;
37 : #endif
38 :
39 : use pm_mathRoot, only: getRoot
40 :
41 : implicit none
42 :
43 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44 :
45 : contains
46 :
47 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
48 :
49 : #define getZig_ENABLED 1
50 :
51 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 :
53 : #define RK_ENABLED 1
54 :
55 : #if RK5_ENABLED
56 : module procedure getZig_RK5
57 : use pm_kind, only: RKC => RK5
58 : #include "pm_ziggurat@routines.inc.F90"
59 : end procedure
60 : #endif
61 :
62 : #if RK4_ENABLED
63 2 : module procedure getZig_RK4
64 : use pm_kind, only: RKC => RK4
65 : #include "pm_ziggurat@routines.inc.F90"
66 : end procedure
67 : #endif
68 :
69 : #if RK3_ENABLED
70 0 : module procedure getZig_RK3
71 : use pm_kind, only: RKC => RK3
72 : #include "pm_ziggurat@routines.inc.F90"
73 : end procedure
74 : #endif
75 :
76 : #if RK2_ENABLED
77 1 : module procedure getZig_RK2
78 : use pm_kind, only: RKC => RK2
79 : #include "pm_ziggurat@routines.inc.F90"
80 : end procedure
81 : #endif
82 :
83 : #if RK1_ENABLED
84 0 : module procedure getZig_RK1
85 : use pm_kind, only: RKC => RK1
86 : #include "pm_ziggurat@routines.inc.F90"
87 : end procedure
88 : #endif
89 :
90 : #undef RK_ENABLED
91 :
92 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
93 :
94 : #undef getZig_ENABLED
95 :
96 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
97 :
98 : !#define getZigCRD_ENABLED 1
99 : !
100 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
101 : !
102 : !#define RK_ENABLED 1
103 : !
104 : !#if RK5_ENABLED
105 : ! module procedure getZigCRD_RK5
106 : ! use pm_kind, only: RKC => RK5
107 : !#include "pm_ziggurat@routines.inc.F90"
108 : ! end procedure
109 : !#endif
110 : !
111 : !#if RK4_ENABLED
112 : ! module procedure getZigCRD_RK4
113 : ! use pm_kind, only: RKC => RK4
114 : !#include "pm_ziggurat@routines.inc.F90"
115 : ! end procedure
116 : !#endif
117 : !
118 : !#if RK3_ENABLED
119 : ! module procedure getZigCRD_RK3
120 : ! use pm_kind, only: RKC => RK3
121 : !#include "pm_ziggurat@routines.inc.F90"
122 : ! end procedure
123 : !#endif
124 : !
125 : !#if RK2_ENABLED
126 : ! module procedure getZigCRD_RK2
127 : ! use pm_kind, only: RKC => RK2
128 : !#include "pm_ziggurat@routines.inc.F90"
129 : ! end procedure
130 : !#endif
131 : !
132 : !#if RK1_ENABLED
133 : ! module procedure getZigCRD_RK1
134 : ! use pm_kind, only: RKC => RK1
135 : !#include "pm_ziggurat@routines.inc.F90"
136 : ! end procedure
137 : !#endif
138 : !
139 : !#undef RK_ENABLED
140 : !
141 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
142 : !
143 : !#undef getZigCRD_ENABLED
144 : !
145 : !!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
146 :
147 : #undef CHECK_ASSERTION
148 :
149 : end submodule routines
|