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_distGeom](@ref pm_distGeom).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_distGeom) 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_distUnif, only: setUnifRand
40 : use pm_math1mexp, only: get1mexp
41 : implicit none
42 :
43 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44 :
45 : contains
46 :
47 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
48 :
49 : #define getGeomLogPMF_ENABLED 1
50 :
51 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 :
53 : #define RK_ENABLED 1
54 :
55 : #if RK5_ENABLED
56 : module procedure getGeomLogPMF_RK5
57 : use pm_kind, only: RKC => RK5
58 : #include "pm_distGeom@routines.inc.F90"
59 : end procedure
60 : #endif
61 :
62 : #if RK4_ENABLED
63 0 : module procedure getGeomLogPMF_RK4
64 : use pm_kind, only: RKC => RK4
65 : #include "pm_distGeom@routines.inc.F90"
66 0 : end procedure
67 : #endif
68 :
69 : #if RK3_ENABLED
70 0 : module procedure getGeomLogPMF_RK3
71 : use pm_kind, only: RKC => RK3
72 : #include "pm_distGeom@routines.inc.F90"
73 0 : end procedure
74 : #endif
75 :
76 : #if RK2_ENABLED
77 50 : module procedure getGeomLogPMF_RK2
78 : use pm_kind, only: RKC => RK2
79 : #include "pm_distGeom@routines.inc.F90"
80 50 : end procedure
81 : #endif
82 :
83 : #if RK1_ENABLED
84 0 : module procedure getGeomLogPMF_RK1
85 : use pm_kind, only: RKC => RK1
86 : #include "pm_distGeom@routines.inc.F90"
87 0 : end procedure
88 : #endif
89 :
90 : #undef RK_ENABLED
91 :
92 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
93 :
94 : #undef getGeomLogPMF_ENABLED
95 :
96 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
97 :
98 : #define setGeomLogPMF_ENABLED 1
99 :
100 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
101 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
102 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
103 :
104 : #define Def_ENABLED 1
105 :
106 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
107 :
108 : #define RK_ENABLED 1
109 :
110 : #if RK5_ENABLED
111 : module procedure setGeomLogPMFDef_RK5
112 : use pm_kind, only: RKC => RK5
113 : #include "pm_distGeom@routines.inc.F90"
114 : end procedure
115 : #endif
116 :
117 : #if RK4_ENABLED
118 0 : module procedure setGeomLogPMFDef_RK4
119 : use pm_kind, only: RKC => RK4
120 : #include "pm_distGeom@routines.inc.F90"
121 0 : end procedure
122 : #endif
123 :
124 : #if RK3_ENABLED
125 0 : module procedure setGeomLogPMFDef_RK3
126 : use pm_kind, only: RKC => RK3
127 : #include "pm_distGeom@routines.inc.F90"
128 0 : end procedure
129 : #endif
130 :
131 : #if RK2_ENABLED
132 97 : module procedure setGeomLogPMFDef_RK2
133 : use pm_kind, only: RKC => RK2
134 : #include "pm_distGeom@routines.inc.F90"
135 97 : end procedure
136 : #endif
137 :
138 : #if RK1_ENABLED
139 0 : module procedure setGeomLogPMFDef_RK1
140 : use pm_kind, only: RKC => RK1
141 : #include "pm_distGeom@routines.inc.F90"
142 0 : end procedure
143 : #endif
144 :
145 : #undef RK_ENABLED
146 :
147 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
148 :
149 : #undef Def_ENABLED
150 :
151 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
152 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
153 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
154 :
155 : #define Log_ENABLED 1
156 :
157 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
158 :
159 : #define RK_ENABLED 1
160 :
161 : #if RK5_ENABLED
162 : module procedure setGeomLogPMFLog_RK5
163 : use pm_kind, only: RKC => RK5
164 : #include "pm_distGeom@routines.inc.F90"
165 : end procedure
166 : #endif
167 :
168 : #if RK4_ENABLED
169 0 : module procedure setGeomLogPMFLog_RK4
170 : use pm_kind, only: RKC => RK4
171 : #include "pm_distGeom@routines.inc.F90"
172 0 : end procedure
173 : #endif
174 :
175 : #if RK3_ENABLED
176 0 : module procedure setGeomLogPMFLog_RK3
177 : use pm_kind, only: RKC => RK3
178 : #include "pm_distGeom@routines.inc.F90"
179 0 : end procedure
180 : #endif
181 :
182 : #if RK2_ENABLED
183 3 : module procedure setGeomLogPMFLog_RK2
184 : use pm_kind, only: RKC => RK2
185 : #include "pm_distGeom@routines.inc.F90"
186 3 : end procedure
187 : #endif
188 :
189 : #if RK1_ENABLED
190 0 : module procedure setGeomLogPMFLog_RK1
191 : use pm_kind, only: RKC => RK1
192 : #include "pm_distGeom@routines.inc.F90"
193 0 : end procedure
194 : #endif
195 :
196 : #undef RK_ENABLED
197 :
198 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
199 :
200 : #undef Log_ENABLED
201 :
202 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
203 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
204 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
205 :
206 : #undef setGeomLogPMF_ENABLED
207 :
208 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
209 :
210 : #define getGeomCDF_ENABLED 1
211 :
212 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
213 :
214 : #define RK_ENABLED 1
215 :
216 : #if RK5_ENABLED
217 : module procedure getGeomCDF_RK5
218 : use pm_kind, only: RKC => RK5
219 : #include "pm_distGeom@routines.inc.F90"
220 : end procedure
221 : #endif
222 :
223 : #if RK4_ENABLED
224 0 : module procedure getGeomCDF_RK4
225 : use pm_kind, only: RKC => RK4
226 : #include "pm_distGeom@routines.inc.F90"
227 0 : end procedure
228 : #endif
229 :
230 : #if RK3_ENABLED
231 0 : module procedure getGeomCDF_RK3
232 : use pm_kind, only: RKC => RK3
233 : #include "pm_distGeom@routines.inc.F90"
234 0 : end procedure
235 : #endif
236 :
237 : #if RK2_ENABLED
238 50 : module procedure getGeomCDF_RK2
239 : use pm_kind, only: RKC => RK2
240 : #include "pm_distGeom@routines.inc.F90"
241 50 : end procedure
242 : #endif
243 :
244 : #if RK1_ENABLED
245 0 : module procedure getGeomCDF_RK1
246 : use pm_kind, only: RKC => RK1
247 : #include "pm_distGeom@routines.inc.F90"
248 0 : end procedure
249 : #endif
250 :
251 : #undef RK_ENABLED
252 :
253 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
254 :
255 : #undef getGeomCDF_ENABLED
256 :
257 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
258 :
259 : #define setGeomCDF_ENABLED 1
260 :
261 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
262 :
263 : #define RK_ENABLED 1
264 :
265 : #if RK5_ENABLED
266 : module procedure setGeomCDF_RK5
267 : use pm_kind, only: RKC => RK5
268 : #include "pm_distGeom@routines.inc.F90"
269 : end procedure
270 : #endif
271 :
272 : #if RK4_ENABLED
273 0 : module procedure setGeomCDF_RK4
274 : use pm_kind, only: RKC => RK4
275 : #include "pm_distGeom@routines.inc.F90"
276 0 : end procedure
277 : #endif
278 :
279 : #if RK3_ENABLED
280 0 : module procedure setGeomCDF_RK3
281 : use pm_kind, only: RKC => RK3
282 : #include "pm_distGeom@routines.inc.F90"
283 0 : end procedure
284 : #endif
285 :
286 : #if RK2_ENABLED
287 50 : module procedure setGeomCDF_RK2
288 : use pm_kind, only: RKC => RK2
289 : #include "pm_distGeom@routines.inc.F90"
290 50 : end procedure
291 : #endif
292 :
293 : #if RK1_ENABLED
294 0 : module procedure setGeomCDF_RK1
295 : use pm_kind, only: RKC => RK1
296 : #include "pm_distGeom@routines.inc.F90"
297 0 : end procedure
298 : #endif
299 :
300 : #undef RK_ENABLED
301 :
302 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
303 :
304 : #undef setGeomCDF_ENABLED
305 :
306 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
307 :
308 : #define getGeomRand_ENABLED 1
309 :
310 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
311 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
312 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
313 :
314 : #define RNGD_ENABLED 1
315 :
316 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
317 :
318 : #define RK_ENABLED 1
319 :
320 : #if RK5_ENABLED
321 : module procedure getGeomRand_RK5
322 : use pm_kind, only: RKC => RK5
323 : #include "pm_distGeom@routines.inc.F90"
324 : end procedure
325 : #endif
326 :
327 : #if RK4_ENABLED
328 0 : module procedure getGeomRand_RK4
329 : use pm_kind, only: RKC => RK4
330 : #include "pm_distGeom@routines.inc.F90"
331 0 : end procedure
332 : #endif
333 :
334 : #if RK3_ENABLED
335 0 : module procedure getGeomRand_RK3
336 : use pm_kind, only: RKC => RK3
337 : #include "pm_distGeom@routines.inc.F90"
338 0 : end procedure
339 : #endif
340 :
341 : #if RK2_ENABLED
342 0 : module procedure getGeomRand_RK2
343 : use pm_kind, only: RKC => RK2
344 : #include "pm_distGeom@routines.inc.F90"
345 0 : end procedure
346 : #endif
347 :
348 : #if RK1_ENABLED
349 20006 : module procedure getGeomRand_RK1
350 : use pm_kind, only: RKC => RK1
351 : #include "pm_distGeom@routines.inc.F90"
352 20006 : end procedure
353 : #endif
354 :
355 : #undef RK_ENABLED
356 :
357 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
358 :
359 : #undef RNGD_ENABLED
360 :
361 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
362 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
363 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
364 :
365 : #undef getGeomRand_ENABLED
366 :
367 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
368 :
369 : #define setGeomRand_ENABLED 1
370 :
371 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
372 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
373 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
374 :
375 : #define D0_ENABLED 1
376 :
377 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
378 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
379 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
380 :
381 : #define RNGD_ENABLED 1
382 :
383 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
384 :
385 : #define RK_ENABLED 1
386 :
387 : #if RK5_ENABLED
388 : module procedure setGeomRandRNGD_D0_RK5
389 : use pm_kind, only: RKC => RK5
390 : #include "pm_distGeom@routines.inc.F90"
391 : end procedure
392 : #endif
393 :
394 : #if RK4_ENABLED
395 2000 : module procedure setGeomRandRNGD_D0_RK4
396 : use pm_kind, only: RKC => RK4
397 : #include "pm_distGeom@routines.inc.F90"
398 2000 : end procedure
399 : #endif
400 :
401 : #if RK3_ENABLED
402 0 : module procedure setGeomRandRNGD_D0_RK3
403 : use pm_kind, only: RKC => RK3
404 : #include "pm_distGeom@routines.inc.F90"
405 0 : end procedure
406 : #endif
407 :
408 : #if RK2_ENABLED
409 0 : module procedure setGeomRandRNGD_D0_RK2
410 : use pm_kind, only: RKC => RK2
411 : #include "pm_distGeom@routines.inc.F90"
412 0 : end procedure
413 : #endif
414 :
415 : #if RK1_ENABLED
416 80018 : module procedure setGeomRandRNGD_D0_RK1
417 : use pm_kind, only: RKC => RK1
418 : #include "pm_distGeom@routines.inc.F90"
419 80018 : end procedure
420 : #endif
421 :
422 : #undef RK_ENABLED
423 :
424 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
425 :
426 : #undef RNGD_ENABLED
427 :
428 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
429 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
430 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
431 :
432 : #define RNGF_ENABLED 1
433 :
434 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
435 :
436 : #define RK_ENABLED 1
437 :
438 : #if RK5_ENABLED
439 : module procedure setGeomRandRNGF_D0_RK5
440 : use pm_kind, only: RKC => RK5
441 : #include "pm_distGeom@routines.inc.F90"
442 : end procedure
443 : #endif
444 :
445 : #if RK4_ENABLED
446 0 : module procedure setGeomRandRNGF_D0_RK4
447 : use pm_kind, only: RKC => RK4
448 : #include "pm_distGeom@routines.inc.F90"
449 0 : end procedure
450 : #endif
451 :
452 : #if RK3_ENABLED
453 0 : module procedure setGeomRandRNGF_D0_RK3
454 : use pm_kind, only: RKC => RK3
455 : #include "pm_distGeom@routines.inc.F90"
456 0 : end procedure
457 : #endif
458 :
459 : #if RK2_ENABLED
460 0 : module procedure setGeomRandRNGF_D0_RK2
461 : use pm_kind, only: RKC => RK2
462 : #include "pm_distGeom@routines.inc.F90"
463 0 : end procedure
464 : #endif
465 :
466 : #if RK1_ENABLED
467 0 : module procedure setGeomRandRNGF_D0_RK1
468 : use pm_kind, only: RKC => RK1
469 : #include "pm_distGeom@routines.inc.F90"
470 0 : end procedure
471 : #endif
472 :
473 : #undef RK_ENABLED
474 :
475 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
476 :
477 : #undef RNGF_ENABLED
478 :
479 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
480 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
481 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
482 :
483 : #define RNGX_ENABLED 1
484 :
485 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
486 :
487 : #define RK_ENABLED 1
488 :
489 : #if RK5_ENABLED
490 : module procedure setGeomRandRNGX_D0_RK5
491 : use pm_kind, only: RKC => RK5
492 : #include "pm_distGeom@routines.inc.F90"
493 : end procedure
494 : #endif
495 :
496 : #if RK4_ENABLED
497 0 : module procedure setGeomRandRNGX_D0_RK4
498 : use pm_kind, only: RKC => RK4
499 : #include "pm_distGeom@routines.inc.F90"
500 0 : end procedure
501 : #endif
502 :
503 : #if RK3_ENABLED
504 0 : module procedure setGeomRandRNGX_D0_RK3
505 : use pm_kind, only: RKC => RK3
506 : #include "pm_distGeom@routines.inc.F90"
507 0 : end procedure
508 : #endif
509 :
510 : #if RK2_ENABLED
511 0 : module procedure setGeomRandRNGX_D0_RK2
512 : use pm_kind, only: RKC => RK2
513 : #include "pm_distGeom@routines.inc.F90"
514 0 : end procedure
515 : #endif
516 :
517 : #if RK1_ENABLED
518 0 : module procedure setGeomRandRNGX_D0_RK1
519 : use pm_kind, only: RKC => RK1
520 : #include "pm_distGeom@routines.inc.F90"
521 0 : end procedure
522 : #endif
523 :
524 : #undef RK_ENABLED
525 :
526 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
527 :
528 : #undef RNGX_ENABLED
529 :
530 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
531 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
532 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
533 :
534 : #undef D0_ENABLED
535 :
536 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
537 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
538 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
539 :
540 : #define D1_ENABLED 1
541 :
542 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
543 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
544 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
545 :
546 : #define RNGD_ENABLED 1
547 :
548 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
549 :
550 : #define RK_ENABLED 1
551 :
552 : #if RK5_ENABLED
553 : module procedure setGeomRandRNGD_D1_RK5
554 : use pm_kind, only: RKC => RK5
555 : #include "pm_distGeom@routines.inc.F90"
556 : end procedure
557 : #endif
558 :
559 : #if RK4_ENABLED
560 0 : module procedure setGeomRandRNGD_D1_RK4
561 : use pm_kind, only: RKC => RK4
562 : #include "pm_distGeom@routines.inc.F90"
563 0 : end procedure
564 : #endif
565 :
566 : #if RK3_ENABLED
567 0 : module procedure setGeomRandRNGD_D1_RK3
568 : use pm_kind, only: RKC => RK3
569 : #include "pm_distGeom@routines.inc.F90"
570 0 : end procedure
571 : #endif
572 :
573 : #if RK2_ENABLED
574 0 : module procedure setGeomRandRNGD_D1_RK2
575 : use pm_kind, only: RKC => RK2
576 : #include "pm_distGeom@routines.inc.F90"
577 0 : end procedure
578 : #endif
579 :
580 : #if RK1_ENABLED
581 2 : module procedure setGeomRandRNGD_D1_RK1
582 : use pm_kind, only: RKC => RK1
583 : #include "pm_distGeom@routines.inc.F90"
584 2 : end procedure
585 : #endif
586 :
587 : #undef RK_ENABLED
588 :
589 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
590 :
591 : #undef RNGD_ENABLED
592 :
593 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
594 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
595 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
596 :
597 : #define RNGF_ENABLED 1
598 :
599 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
600 :
601 : #define RK_ENABLED 1
602 :
603 : #if RK5_ENABLED
604 : module procedure setGeomRandRNGF_D1_RK5
605 : use pm_kind, only: RKC => RK5
606 : #include "pm_distGeom@routines.inc.F90"
607 : end procedure
608 : #endif
609 :
610 : #if RK4_ENABLED
611 0 : module procedure setGeomRandRNGF_D1_RK4
612 : use pm_kind, only: RKC => RK4
613 : #include "pm_distGeom@routines.inc.F90"
614 0 : end procedure
615 : #endif
616 :
617 : #if RK3_ENABLED
618 0 : module procedure setGeomRandRNGF_D1_RK3
619 : use pm_kind, only: RKC => RK3
620 : #include "pm_distGeom@routines.inc.F90"
621 0 : end procedure
622 : #endif
623 :
624 : #if RK2_ENABLED
625 0 : module procedure setGeomRandRNGF_D1_RK2
626 : use pm_kind, only: RKC => RK2
627 : #include "pm_distGeom@routines.inc.F90"
628 0 : end procedure
629 : #endif
630 :
631 : #if RK1_ENABLED
632 0 : module procedure setGeomRandRNGF_D1_RK1
633 : use pm_kind, only: RKC => RK1
634 : #include "pm_distGeom@routines.inc.F90"
635 0 : end procedure
636 : #endif
637 :
638 : #undef RK_ENABLED
639 :
640 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
641 :
642 : #undef RNGF_ENABLED
643 :
644 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
645 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
646 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
647 :
648 : #define RNGX_ENABLED 1
649 :
650 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
651 :
652 : #define RK_ENABLED 1
653 :
654 : #if RK5_ENABLED
655 : module procedure setGeomRandRNGX_D1_RK5
656 : use pm_kind, only: RKC => RK5
657 : #include "pm_distGeom@routines.inc.F90"
658 : end procedure
659 : #endif
660 :
661 : #if RK4_ENABLED
662 0 : module procedure setGeomRandRNGX_D1_RK4
663 : use pm_kind, only: RKC => RK4
664 : #include "pm_distGeom@routines.inc.F90"
665 0 : end procedure
666 : #endif
667 :
668 : #if RK3_ENABLED
669 0 : module procedure setGeomRandRNGX_D1_RK3
670 : use pm_kind, only: RKC => RK3
671 : #include "pm_distGeom@routines.inc.F90"
672 0 : end procedure
673 : #endif
674 :
675 : #if RK2_ENABLED
676 0 : module procedure setGeomRandRNGX_D1_RK2
677 : use pm_kind, only: RKC => RK2
678 : #include "pm_distGeom@routines.inc.F90"
679 0 : end procedure
680 : #endif
681 :
682 : #if RK1_ENABLED
683 2 : module procedure setGeomRandRNGX_D1_RK1
684 : use pm_kind, only: RKC => RK1
685 : #include "pm_distGeom@routines.inc.F90"
686 2 : end procedure
687 : #endif
688 :
689 : #undef RK_ENABLED
690 :
691 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
692 :
693 : #undef RNGX_ENABLED
694 :
695 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
696 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
697 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
698 :
699 : #undef D1_ENABLED
700 :
701 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
702 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
703 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
704 :
705 : #undef setGeomRand_ENABLED
706 :
707 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
708 :
709 : #undef CHECK_ASSERTION
710 :
711 : end submodule routines
|