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_distUnifPar](@ref pm_distUnifPar).
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_distUnifPar) 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_matrixDet, only: setMatDetSqrtLog, uppDia, transHerm
40 : use pm_distUnif, only: setUnifRand
41 : implicit none
42 :
43 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44 :
45 : contains
46 :
47 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
48 :
49 : #define getUnifParLogPDF_ENABLED 1
50 :
51 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
54 :
55 : #define Cub_ENABLED 1
56 :
57 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
58 :
59 : #define RK_ENABLED 1
60 :
61 : #if RK5_ENABLED
62 : module procedure getUnifCubLogPDF_RK5
63 : use pm_kind, only: RKC => RK5
64 : #include "pm_distUnifPar@routines.inc.F90"
65 : end procedure
66 : #endif
67 :
68 : #if RK4_ENABLED
69 0 : module procedure getUnifCubLogPDF_RK4
70 : use pm_kind, only: RKC => RK4
71 : #include "pm_distUnifPar@routines.inc.F90"
72 0 : end procedure
73 : #endif
74 :
75 : #if RK3_ENABLED
76 0 : module procedure getUnifCubLogPDF_RK3
77 : use pm_kind, only: RKC => RK3
78 : #include "pm_distUnifPar@routines.inc.F90"
79 0 : end procedure
80 : #endif
81 :
82 : #if RK2_ENABLED
83 0 : module procedure getUnifCubLogPDF_RK2
84 : use pm_kind, only: RKC => RK2
85 : #include "pm_distUnifPar@routines.inc.F90"
86 0 : end procedure
87 : #endif
88 :
89 : #if RK1_ENABLED
90 4 : module procedure getUnifCubLogPDF_RK1
91 : use pm_kind, only: RKC => RK1
92 : #include "pm_distUnifPar@routines.inc.F90"
93 4 : end procedure
94 : #endif
95 :
96 : #undef RK_ENABLED
97 :
98 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
99 :
100 : #undef Cub_ENABLED
101 :
102 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
103 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
104 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
105 :
106 : #define Rec_ENABLED 1
107 :
108 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
109 :
110 : #define RK_ENABLED 1
111 :
112 : #if RK5_ENABLED
113 : module procedure getUnifRecLogPDF_RK5
114 : use pm_kind, only: RKC => RK5
115 : #include "pm_distUnifPar@routines.inc.F90"
116 : end procedure
117 : #endif
118 :
119 : #if RK4_ENABLED
120 0 : module procedure getUnifRecLogPDF_RK4
121 : use pm_kind, only: RKC => RK4
122 : #include "pm_distUnifPar@routines.inc.F90"
123 0 : end procedure
124 : #endif
125 :
126 : #if RK3_ENABLED
127 0 : module procedure getUnifRecLogPDF_RK3
128 : use pm_kind, only: RKC => RK3
129 : #include "pm_distUnifPar@routines.inc.F90"
130 0 : end procedure
131 : #endif
132 :
133 : #if RK2_ENABLED
134 0 : module procedure getUnifRecLogPDF_RK2
135 : use pm_kind, only: RKC => RK2
136 : #include "pm_distUnifPar@routines.inc.F90"
137 0 : end procedure
138 : #endif
139 :
140 : #if RK1_ENABLED
141 1 : module procedure getUnifRecLogPDF_RK1
142 : use pm_kind, only: RKC => RK1
143 : #include "pm_distUnifPar@routines.inc.F90"
144 1 : end procedure
145 : #endif
146 :
147 : #undef RK_ENABLED
148 :
149 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
150 :
151 : #undef Rec_ENABLED
152 :
153 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
154 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
155 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
156 :
157 : #define Par_ENABLED 1
158 :
159 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
160 :
161 : #define RK_ENABLED 1
162 :
163 : #if RK5_ENABLED
164 : module procedure getUnifParLogPDF_RK5
165 : use pm_kind, only: RKC => RK5
166 : #include "pm_distUnifPar@routines.inc.F90"
167 : end procedure
168 : #endif
169 :
170 : #if RK4_ENABLED
171 0 : module procedure getUnifParLogPDF_RK4
172 : use pm_kind, only: RKC => RK4
173 : #include "pm_distUnifPar@routines.inc.F90"
174 0 : end procedure
175 : #endif
176 :
177 : #if RK3_ENABLED
178 0 : module procedure getUnifParLogPDF_RK3
179 : use pm_kind, only: RKC => RK3
180 : #include "pm_distUnifPar@routines.inc.F90"
181 0 : end procedure
182 : #endif
183 :
184 : #if RK2_ENABLED
185 0 : module procedure getUnifParLogPDF_RK2
186 : use pm_kind, only: RKC => RK2
187 : #include "pm_distUnifPar@routines.inc.F90"
188 0 : end procedure
189 : #endif
190 :
191 : #if RK1_ENABLED
192 0 : module procedure getUnifParLogPDF_RK1
193 : use pm_kind, only: RKC => RK1
194 : #include "pm_distUnifPar@routines.inc.F90"
195 0 : end procedure
196 : #endif
197 :
198 : #undef RK_ENABLED
199 :
200 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
201 :
202 : #undef Par_ENABLED
203 :
204 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
205 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
206 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
207 :
208 : #undef getUnifParLogPDF_ENABLED
209 :
210 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
211 :
212 : #define getUnifParRand_ENABLED 1
213 :
214 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
215 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
216 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
217 :
218 : #define Cub_ENABLED 1
219 :
220 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
221 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
222 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
223 :
224 : #define DU_ENABLED 1
225 :
226 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
227 :
228 : #define RK_ENABLED 1
229 :
230 : #if RK5_ENABLED
231 : module procedure getUnifCubRandDU_RK5
232 : use pm_kind, only: RKC => RK5
233 : #include "pm_distUnifPar@routines.inc.F90"
234 : end procedure
235 : #endif
236 :
237 : #if RK4_ENABLED
238 0 : module procedure getUnifCubRandDU_RK4
239 : use pm_kind, only: RKC => RK4
240 : #include "pm_distUnifPar@routines.inc.F90"
241 0 : end procedure
242 : #endif
243 :
244 : #if RK3_ENABLED
245 0 : module procedure getUnifCubRandDU_RK3
246 : use pm_kind, only: RKC => RK3
247 : #include "pm_distUnifPar@routines.inc.F90"
248 0 : end procedure
249 : #endif
250 :
251 : #if RK2_ENABLED
252 0 : module procedure getUnifCubRandDU_RK2
253 : use pm_kind, only: RKC => RK2
254 : #include "pm_distUnifPar@routines.inc.F90"
255 0 : end procedure
256 : #endif
257 :
258 : #if RK1_ENABLED
259 1 : module procedure getUnifCubRandDU_RK1
260 : use pm_kind, only: RKC => RK1
261 : #include "pm_distUnifPar@routines.inc.F90"
262 1 : end procedure
263 : #endif
264 :
265 : #undef RK_ENABLED
266 :
267 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
268 :
269 : #undef DU_ENABLED
270 :
271 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
272 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
273 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
274 :
275 : #define LU_ENABLED 1
276 :
277 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
278 :
279 : #define RK_ENABLED 1
280 :
281 : #if RK5_ENABLED
282 : module procedure getUnifCubRandLU_RK5
283 : use pm_kind, only: RKC => RK5
284 : #include "pm_distUnifPar@routines.inc.F90"
285 : end procedure
286 : #endif
287 :
288 : #if RK4_ENABLED
289 0 : module procedure getUnifCubRandLU_RK4
290 : use pm_kind, only: RKC => RK4
291 : #include "pm_distUnifPar@routines.inc.F90"
292 0 : end procedure
293 : #endif
294 :
295 : #if RK3_ENABLED
296 0 : module procedure getUnifCubRandLU_RK3
297 : use pm_kind, only: RKC => RK3
298 : #include "pm_distUnifPar@routines.inc.F90"
299 0 : end procedure
300 : #endif
301 :
302 : #if RK2_ENABLED
303 0 : module procedure getUnifCubRandLU_RK2
304 : use pm_kind, only: RKC => RK2
305 : #include "pm_distUnifPar@routines.inc.F90"
306 0 : end procedure
307 : #endif
308 :
309 : #if RK1_ENABLED
310 1 : module procedure getUnifCubRandLU_RK1
311 : use pm_kind, only: RKC => RK1
312 : #include "pm_distUnifPar@routines.inc.F90"
313 1 : end procedure
314 : #endif
315 :
316 : #undef RK_ENABLED
317 :
318 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
319 :
320 : #undef LU_ENABLED
321 :
322 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
323 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
324 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
325 :
326 : #undef Cub_ENABLED
327 :
328 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
329 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
330 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
331 :
332 : #define Rec_ENABLED 1
333 :
334 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
335 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
336 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
337 :
338 : #define DU_ENABLED 1
339 :
340 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
341 :
342 : #define RK_ENABLED 1
343 :
344 : #if RK5_ENABLED
345 : module procedure getUnifRecRandDU_RK5
346 : use pm_kind, only: RKC => RK5
347 : #include "pm_distUnifPar@routines.inc.F90"
348 : end procedure
349 : #endif
350 :
351 : #if RK4_ENABLED
352 0 : module procedure getUnifRecRandDU_RK4
353 : use pm_kind, only: RKC => RK4
354 : #include "pm_distUnifPar@routines.inc.F90"
355 0 : end procedure
356 : #endif
357 :
358 : #if RK3_ENABLED
359 0 : module procedure getUnifRecRandDU_RK3
360 : use pm_kind, only: RKC => RK3
361 : #include "pm_distUnifPar@routines.inc.F90"
362 0 : end procedure
363 : #endif
364 :
365 : #if RK2_ENABLED
366 0 : module procedure getUnifRecRandDU_RK2
367 : use pm_kind, only: RKC => RK2
368 : #include "pm_distUnifPar@routines.inc.F90"
369 0 : end procedure
370 : #endif
371 :
372 : #if RK1_ENABLED
373 1 : module procedure getUnifRecRandDU_RK1
374 : use pm_kind, only: RKC => RK1
375 : #include "pm_distUnifPar@routines.inc.F90"
376 1 : end procedure
377 : #endif
378 :
379 : #undef RK_ENABLED
380 :
381 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
382 :
383 : #undef DU_ENABLED
384 :
385 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
386 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
387 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
388 :
389 : #define LU_ENABLED 1
390 :
391 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
392 :
393 : #define RK_ENABLED 1
394 :
395 : #if RK5_ENABLED
396 : module procedure getUnifRecRandLU_RK5
397 : use pm_kind, only: RKC => RK5
398 : #include "pm_distUnifPar@routines.inc.F90"
399 : end procedure
400 : #endif
401 :
402 : #if RK4_ENABLED
403 0 : module procedure getUnifRecRandLU_RK4
404 : use pm_kind, only: RKC => RK4
405 : #include "pm_distUnifPar@routines.inc.F90"
406 0 : end procedure
407 : #endif
408 :
409 : #if RK3_ENABLED
410 0 : module procedure getUnifRecRandLU_RK3
411 : use pm_kind, only: RKC => RK3
412 : #include "pm_distUnifPar@routines.inc.F90"
413 0 : end procedure
414 : #endif
415 :
416 : #if RK2_ENABLED
417 0 : module procedure getUnifRecRandLU_RK2
418 : use pm_kind, only: RKC => RK2
419 : #include "pm_distUnifPar@routines.inc.F90"
420 0 : end procedure
421 : #endif
422 :
423 : #if RK1_ENABLED
424 1001 : module procedure getUnifRecRandLU_RK1
425 : use pm_kind, only: RKC => RK1
426 : #include "pm_distUnifPar@routines.inc.F90"
427 1001 : end procedure
428 : #endif
429 :
430 : #undef RK_ENABLED
431 :
432 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
433 :
434 : #undef LU_ENABLED
435 :
436 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
437 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
438 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
439 :
440 : #define DU_ENABLED 1
441 :
442 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
443 :
444 : #define RK_ENABLED 1
445 :
446 : #if RK5_ENABLED
447 : module procedure getUnifParRandDU_RK5
448 : use pm_kind, only: RKC => RK5
449 : #include "pm_distUnifPar@routines.inc.F90"
450 : end procedure
451 : #endif
452 :
453 : #if RK4_ENABLED
454 0 : module procedure getUnifParRandDU_RK4
455 : use pm_kind, only: RKC => RK4
456 : #include "pm_distUnifPar@routines.inc.F90"
457 0 : end procedure
458 : #endif
459 :
460 : #if RK3_ENABLED
461 0 : module procedure getUnifParRandDU_RK3
462 : use pm_kind, only: RKC => RK3
463 : #include "pm_distUnifPar@routines.inc.F90"
464 0 : end procedure
465 : #endif
466 :
467 : #if RK2_ENABLED
468 0 : module procedure getUnifParRandDU_RK2
469 : use pm_kind, only: RKC => RK2
470 : #include "pm_distUnifPar@routines.inc.F90"
471 0 : end procedure
472 : #endif
473 :
474 : #if RK1_ENABLED
475 1001 : module procedure getUnifParRandDU_RK1
476 : use pm_kind, only: RKC => RK1
477 : #include "pm_distUnifPar@routines.inc.F90"
478 1001 : end procedure
479 : #endif
480 :
481 : #undef RK_ENABLED
482 :
483 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
484 :
485 : #undef DU_ENABLED
486 :
487 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
488 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
489 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
490 :
491 : #define LU_ENABLED 1
492 :
493 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
494 :
495 : #define RK_ENABLED 1
496 :
497 : #if RK5_ENABLED
498 : module procedure getUnifParRandLU_RK5
499 : use pm_kind, only: RKC => RK5
500 : #include "pm_distUnifPar@routines.inc.F90"
501 : end procedure
502 : #endif
503 :
504 : #if RK4_ENABLED
505 0 : module procedure getUnifParRandLU_RK4
506 : use pm_kind, only: RKC => RK4
507 : #include "pm_distUnifPar@routines.inc.F90"
508 0 : end procedure
509 : #endif
510 :
511 : #if RK3_ENABLED
512 0 : module procedure getUnifParRandLU_RK3
513 : use pm_kind, only: RKC => RK3
514 : #include "pm_distUnifPar@routines.inc.F90"
515 0 : end procedure
516 : #endif
517 :
518 : #if RK2_ENABLED
519 0 : module procedure getUnifParRandLU_RK2
520 : use pm_kind, only: RKC => RK2
521 : #include "pm_distUnifPar@routines.inc.F90"
522 0 : end procedure
523 : #endif
524 :
525 : #if RK1_ENABLED
526 2001 : module procedure getUnifParRandLU_RK1
527 : use pm_kind, only: RKC => RK1
528 : #include "pm_distUnifPar@routines.inc.F90"
529 2001 : end procedure
530 : #endif
531 :
532 : #undef RK_ENABLED
533 :
534 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
535 :
536 : #undef LU_ENABLED
537 :
538 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
539 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
540 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
541 :
542 : #undef Rec_ENABLED
543 :
544 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
545 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
546 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
547 :
548 : #undef getUnifParRand_ENABLED
549 :
550 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
551 :
552 : #define setUnifParRand_ENABLED 1
553 :
554 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
555 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
556 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
557 :
558 : #define Cub_ENABLED 1
559 :
560 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
561 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
562 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
563 :
564 : #define DU_ENABLED 1
565 :
566 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
567 :
568 : #define RK_ENABLED 1
569 :
570 : #if RK5_ENABLED
571 : module procedure setUnifCubRandDU_RK5
572 : use pm_kind, only: RKC => RK5
573 : #include "pm_distUnifPar@routines.inc.F90"
574 : end procedure
575 : #endif
576 :
577 : #if RK4_ENABLED
578 0 : module procedure setUnifCubRandDU_RK4
579 : use pm_kind, only: RKC => RK4
580 : #include "pm_distUnifPar@routines.inc.F90"
581 0 : end procedure
582 : #endif
583 :
584 : #if RK3_ENABLED
585 0 : module procedure setUnifCubRandDU_RK3
586 : use pm_kind, only: RKC => RK3
587 : #include "pm_distUnifPar@routines.inc.F90"
588 0 : end procedure
589 : #endif
590 :
591 : #if RK2_ENABLED
592 0 : module procedure setUnifCubRandDU_RK2
593 : use pm_kind, only: RKC => RK2
594 : #include "pm_distUnifPar@routines.inc.F90"
595 0 : end procedure
596 : #endif
597 :
598 : #if RK1_ENABLED
599 2 : module procedure setUnifCubRandDU_RK1
600 : use pm_kind, only: RKC => RK1
601 : #include "pm_distUnifPar@routines.inc.F90"
602 2 : end procedure
603 : #endif
604 :
605 : #undef RK_ENABLED
606 :
607 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
608 :
609 : #undef DU_ENABLED
610 :
611 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
612 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
613 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
614 :
615 : #define LU_ENABLED 1
616 :
617 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
618 :
619 : #define RK_ENABLED 1
620 :
621 : #if RK5_ENABLED
622 : module procedure setUnifCubRandLU_RK5
623 : use pm_kind, only: RKC => RK5
624 : #include "pm_distUnifPar@routines.inc.F90"
625 : end procedure
626 : #endif
627 :
628 : #if RK4_ENABLED
629 0 : module procedure setUnifCubRandLU_RK4
630 : use pm_kind, only: RKC => RK4
631 : #include "pm_distUnifPar@routines.inc.F90"
632 0 : end procedure
633 : #endif
634 :
635 : #if RK3_ENABLED
636 0 : module procedure setUnifCubRandLU_RK3
637 : use pm_kind, only: RKC => RK3
638 : #include "pm_distUnifPar@routines.inc.F90"
639 0 : end procedure
640 : #endif
641 :
642 : #if RK2_ENABLED
643 0 : module procedure setUnifCubRandLU_RK2
644 : use pm_kind, only: RKC => RK2
645 : #include "pm_distUnifPar@routines.inc.F90"
646 0 : end procedure
647 : #endif
648 :
649 : #if RK1_ENABLED
650 2 : module procedure setUnifCubRandLU_RK1
651 : use pm_kind, only: RKC => RK1
652 : #include "pm_distUnifPar@routines.inc.F90"
653 2 : end procedure
654 : #endif
655 :
656 : #undef RK_ENABLED
657 :
658 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
659 :
660 : #undef LU_ENABLED
661 :
662 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
663 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
664 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
665 :
666 : #undef Cub_ENABLED
667 :
668 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
669 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
670 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
671 :
672 : #define Rec_ENABLED 1
673 :
674 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
675 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
676 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
677 :
678 : #define DU_ENABLED 1
679 :
680 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
681 :
682 : #define RK_ENABLED 1
683 :
684 : #if RK5_ENABLED
685 : module procedure setUnifRecRandDU_RK5
686 : use pm_kind, only: RKC => RK5
687 : #include "pm_distUnifPar@routines.inc.F90"
688 : end procedure
689 : #endif
690 :
691 : #if RK4_ENABLED
692 0 : module procedure setUnifRecRandDU_RK4
693 : use pm_kind, only: RKC => RK4
694 : #include "pm_distUnifPar@routines.inc.F90"
695 0 : end procedure
696 : #endif
697 :
698 : #if RK3_ENABLED
699 0 : module procedure setUnifRecRandDU_RK3
700 : use pm_kind, only: RKC => RK3
701 : #include "pm_distUnifPar@routines.inc.F90"
702 0 : end procedure
703 : #endif
704 :
705 : #if RK2_ENABLED
706 0 : module procedure setUnifRecRandDU_RK2
707 : use pm_kind, only: RKC => RK2
708 : #include "pm_distUnifPar@routines.inc.F90"
709 0 : end procedure
710 : #endif
711 :
712 : #if RK1_ENABLED
713 2 : module procedure setUnifRecRandDU_RK1
714 : use pm_kind, only: RKC => RK1
715 : #include "pm_distUnifPar@routines.inc.F90"
716 2 : end procedure
717 : #endif
718 :
719 : #undef RK_ENABLED
720 :
721 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
722 :
723 : #undef DU_ENABLED
724 :
725 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
726 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
727 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
728 :
729 : #define LU_ENABLED 1
730 :
731 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
732 :
733 : #define RK_ENABLED 1
734 :
735 : #if RK5_ENABLED
736 : module procedure setUnifRecRandLU_RK5
737 : use pm_kind, only: RKC => RK5
738 : #include "pm_distUnifPar@routines.inc.F90"
739 : end procedure
740 : #endif
741 :
742 : #if RK4_ENABLED
743 0 : module procedure setUnifRecRandLU_RK4
744 : use pm_kind, only: RKC => RK4
745 : #include "pm_distUnifPar@routines.inc.F90"
746 0 : end procedure
747 : #endif
748 :
749 : #if RK3_ENABLED
750 0 : module procedure setUnifRecRandLU_RK3
751 : use pm_kind, only: RKC => RK3
752 : #include "pm_distUnifPar@routines.inc.F90"
753 0 : end procedure
754 : #endif
755 :
756 : #if RK2_ENABLED
757 0 : module procedure setUnifRecRandLU_RK2
758 : use pm_kind, only: RKC => RK2
759 : #include "pm_distUnifPar@routines.inc.F90"
760 0 : end procedure
761 : #endif
762 :
763 : #if RK1_ENABLED
764 2002 : module procedure setUnifRecRandLU_RK1
765 : use pm_kind, only: RKC => RK1
766 : #include "pm_distUnifPar@routines.inc.F90"
767 2002 : end procedure
768 : #endif
769 :
770 : #undef RK_ENABLED
771 :
772 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
773 :
774 : #undef LU_ENABLED
775 :
776 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
777 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
778 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
779 :
780 : #undef Rec_ENABLED
781 :
782 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
783 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
784 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
785 :
786 : #define Par_ENABLED 1
787 :
788 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
789 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
790 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
791 :
792 : #define DU_ENABLED 1
793 :
794 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
795 :
796 : #define RK_ENABLED 1
797 :
798 : #if RK5_ENABLED
799 : module procedure setUnifParRandDU_RK5
800 : use pm_kind, only: RKC => RK5
801 : #include "pm_distUnifPar@routines.inc.F90"
802 : end procedure
803 : #endif
804 :
805 : #if RK4_ENABLED
806 0 : module procedure setUnifParRandDU_RK4
807 : use pm_kind, only: RKC => RK4
808 : #include "pm_distUnifPar@routines.inc.F90"
809 0 : end procedure
810 : #endif
811 :
812 : #if RK3_ENABLED
813 0 : module procedure setUnifParRandDU_RK3
814 : use pm_kind, only: RKC => RK3
815 : #include "pm_distUnifPar@routines.inc.F90"
816 0 : end procedure
817 : #endif
818 :
819 : #if RK2_ENABLED
820 0 : module procedure setUnifParRandDU_RK2
821 : use pm_kind, only: RKC => RK2
822 : #include "pm_distUnifPar@routines.inc.F90"
823 0 : end procedure
824 : #endif
825 :
826 : #if RK1_ENABLED
827 2002 : module procedure setUnifParRandDU_RK1
828 : use pm_kind, only: RKC => RK1
829 : #include "pm_distUnifPar@routines.inc.F90"
830 2002 : end procedure
831 : #endif
832 :
833 : #undef RK_ENABLED
834 :
835 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
836 :
837 : #undef DU_ENABLED
838 :
839 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
840 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
841 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
842 :
843 : #define LU_ENABLED 1
844 :
845 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
846 :
847 : #define RK_ENABLED 1
848 :
849 : #if RK5_ENABLED
850 : module procedure setUnifParRandLU_RK5
851 : use pm_kind, only: RKC => RK5
852 : #include "pm_distUnifPar@routines.inc.F90"
853 : end procedure
854 : #endif
855 :
856 : #if RK4_ENABLED
857 0 : module procedure setUnifParRandLU_RK4
858 : use pm_kind, only: RKC => RK4
859 : #include "pm_distUnifPar@routines.inc.F90"
860 0 : end procedure
861 : #endif
862 :
863 : #if RK3_ENABLED
864 0 : module procedure setUnifParRandLU_RK3
865 : use pm_kind, only: RKC => RK3
866 : #include "pm_distUnifPar@routines.inc.F90"
867 0 : end procedure
868 : #endif
869 :
870 : #if RK2_ENABLED
871 0 : module procedure setUnifParRandLU_RK2
872 : use pm_kind, only: RKC => RK2
873 : #include "pm_distUnifPar@routines.inc.F90"
874 0 : end procedure
875 : #endif
876 :
877 : #if RK1_ENABLED
878 4002 : module procedure setUnifParRandLU_RK1
879 : use pm_kind, only: RKC => RK1
880 : #include "pm_distUnifPar@routines.inc.F90"
881 4002 : end procedure
882 : #endif
883 :
884 : #undef RK_ENABLED
885 :
886 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
887 :
888 : #undef LU_ENABLED
889 :
890 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
891 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
892 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
893 :
894 : #undef Par_ENABLED
895 :
896 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
897 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
898 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
899 :
900 : #undef setUnifParRand_ENABLED
901 :
902 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
903 :
904 : #undef CHECK_ASSERTION
905 :
906 : end submodule routines
|