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_distExp](@ref pm_distExp).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_distExp) 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 : implicit none
41 :
42 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
43 :
44 : contains
45 :
46 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
47 :
48 : #define getExpLogPDF_ENABLED 1
49 :
50 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53 :
54 : #define XMI_ENABLED 1
55 :
56 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
57 :
58 : #define RK_ENABLED 1
59 :
60 : #if RK5_ENABLED
61 : module procedure getExpLogPDFXMI_RK5
62 : use pm_kind, only: TKC => RK5
63 : #include "pm_distExp@routines.inc.F90"
64 : end procedure
65 : #endif
66 :
67 : #if RK4_ENABLED
68 1420 : module procedure getExpLogPDFXMI_RK4
69 : use pm_kind, only: TKC => RK4
70 : #include "pm_distExp@routines.inc.F90"
71 1420 : end procedure
72 : #endif
73 :
74 : #if RK3_ENABLED
75 231 : module procedure getExpLogPDFXMI_RK3
76 : use pm_kind, only: TKC => RK3
77 : #include "pm_distExp@routines.inc.F90"
78 231 : end procedure
79 : #endif
80 :
81 : #if RK2_ENABLED
82 282 : module procedure getExpLogPDFXMI_RK2
83 : use pm_kind, only: TKC => RK2
84 : #include "pm_distExp@routines.inc.F90"
85 282 : end procedure
86 : #endif
87 :
88 : #if RK1_ENABLED
89 2302 : module procedure getExpLogPDFXMI_RK1
90 : use pm_kind, only: TKC => RK1
91 : #include "pm_distExp@routines.inc.F90"
92 2302 : end procedure
93 : #endif
94 :
95 : #undef RK_ENABLED
96 :
97 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
98 :
99 : #undef XMI_ENABLED
100 :
101 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
102 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
103 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
104 :
105 : #undef getExpLogPDF_ENABLED
106 :
107 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
108 :
109 : #define setExpLogPDF_ENABLED 1
110 :
111 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
112 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
113 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
114 :
115 : #define XDD_ENABLED 1
116 :
117 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
118 :
119 : #define RK_ENABLED 1
120 :
121 : #if RK5_ENABLED
122 : module procedure setExpLogPDFXDD_RK5
123 : use pm_kind, only: TKC => RK5
124 : #include "pm_distExp@routines.inc.F90"
125 : end procedure
126 : #endif
127 :
128 : #if RK4_ENABLED
129 1194 : module procedure setExpLogPDFXDD_RK4
130 : use pm_kind, only: TKC => RK4
131 : #include "pm_distExp@routines.inc.F90"
132 1194 : end procedure
133 : #endif
134 :
135 : #if RK3_ENABLED
136 47 : module procedure setExpLogPDFXDD_RK3
137 : use pm_kind, only: TKC => RK3
138 : #include "pm_distExp@routines.inc.F90"
139 47 : end procedure
140 : #endif
141 :
142 : #if RK2_ENABLED
143 53 : module procedure setExpLogPDFXDD_RK2
144 : use pm_kind, only: TKC => RK2
145 : #include "pm_distExp@routines.inc.F90"
146 53 : end procedure
147 : #endif
148 :
149 : #if RK1_ENABLED
150 56 : module procedure setExpLogPDFXDD_RK1
151 : use pm_kind, only: TKC => RK1
152 : #include "pm_distExp@routines.inc.F90"
153 56 : end procedure
154 : #endif
155 :
156 : #undef RK_ENABLED
157 :
158 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
159 :
160 : #undef XDD_ENABLED
161 :
162 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
163 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
164 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
165 :
166 : #define XMD_ENABLED 1
167 :
168 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
169 :
170 : #define RK_ENABLED 1
171 :
172 : #if RK5_ENABLED
173 : module procedure setExpLogPDFXMD_RK5
174 : use pm_kind, only: TKC => RK5
175 : #include "pm_distExp@routines.inc.F90"
176 : end procedure
177 : #endif
178 :
179 : #if RK4_ENABLED
180 50 : module procedure setExpLogPDFXMD_RK4
181 : use pm_kind, only: TKC => RK4
182 : #include "pm_distExp@routines.inc.F90"
183 50 : end procedure
184 : #endif
185 :
186 : #if RK3_ENABLED
187 52 : module procedure setExpLogPDFXMD_RK3
188 : use pm_kind, only: TKC => RK3
189 : #include "pm_distExp@routines.inc.F90"
190 52 : end procedure
191 : #endif
192 :
193 : #if RK2_ENABLED
194 50 : module procedure setExpLogPDFXMD_RK2
195 : use pm_kind, only: TKC => RK2
196 : #include "pm_distExp@routines.inc.F90"
197 50 : end procedure
198 : #endif
199 :
200 : #if RK1_ENABLED
201 57 : module procedure setExpLogPDFXMD_RK1
202 : use pm_kind, only: TKC => RK1
203 : #include "pm_distExp@routines.inc.F90"
204 57 : end procedure
205 : #endif
206 :
207 : #undef RK_ENABLED
208 :
209 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
210 :
211 : #undef XMD_ENABLED
212 :
213 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
214 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
215 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
216 :
217 : #define XDI_ENABLED 1
218 :
219 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
220 :
221 : #define RK_ENABLED 1
222 :
223 : #if RK5_ENABLED
224 : module procedure setExpLogPDFXDI_RK5
225 : use pm_kind, only: TKC => RK5
226 : #include "pm_distExp@routines.inc.F90"
227 : end procedure
228 : #endif
229 :
230 : #if RK4_ENABLED
231 145 : module procedure setExpLogPDFXDI_RK4
232 : use pm_kind, only: TKC => RK4
233 : #include "pm_distExp@routines.inc.F90"
234 145 : end procedure
235 : #endif
236 :
237 : #if RK3_ENABLED
238 88 : module procedure setExpLogPDFXDI_RK3
239 : use pm_kind, only: TKC => RK3
240 : #include "pm_distExp@routines.inc.F90"
241 88 : end procedure
242 : #endif
243 :
244 : #if RK2_ENABLED
245 153 : module procedure setExpLogPDFXDI_RK2
246 : use pm_kind, only: TKC => RK2
247 : #include "pm_distExp@routines.inc.F90"
248 153 : end procedure
249 : #endif
250 :
251 : #if RK1_ENABLED
252 158 : module procedure setExpLogPDFXDI_RK1
253 : use pm_kind, only: TKC => RK1
254 : #include "pm_distExp@routines.inc.F90"
255 158 : end procedure
256 : #endif
257 :
258 : #undef RK_ENABLED
259 :
260 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
261 :
262 : #undef XDI_ENABLED
263 :
264 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
265 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
266 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
267 :
268 : #define XMI_ENABLED 1
269 :
270 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
271 :
272 : #define RK_ENABLED 1
273 :
274 : #if RK5_ENABLED
275 : module procedure setExpLogPDFXMI_RK5
276 : use pm_kind, only: TKC => RK5
277 : #include "pm_distExp@routines.inc.F90"
278 : end procedure
279 : #endif
280 :
281 : #if RK4_ENABLED
282 200 : module procedure setExpLogPDFXMI_RK4
283 : use pm_kind, only: TKC => RK4
284 : #include "pm_distExp@routines.inc.F90"
285 200 : end procedure
286 : #endif
287 :
288 : #if RK3_ENABLED
289 200 : module procedure setExpLogPDFXMI_RK3
290 : use pm_kind, only: TKC => RK3
291 : #include "pm_distExp@routines.inc.F90"
292 200 : end procedure
293 : #endif
294 :
295 : #if RK2_ENABLED
296 200 : module procedure setExpLogPDFXMI_RK2
297 : use pm_kind, only: TKC => RK2
298 : #include "pm_distExp@routines.inc.F90"
299 200 : end procedure
300 : #endif
301 :
302 : #if RK1_ENABLED
303 4208 : module procedure setExpLogPDFXMI_RK1
304 : use pm_kind, only: TKC => RK1
305 : #include "pm_distExp@routines.inc.F90"
306 4208 : end procedure
307 : #endif
308 :
309 : #undef RK_ENABLED
310 :
311 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
312 :
313 : #undef XMI_ENABLED
314 :
315 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
316 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
317 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
318 :
319 : #undef setExpLogPDF_ENABLED
320 :
321 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
322 :
323 : #define getExpCDF_ENABLED 1
324 :
325 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
326 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
327 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
328 :
329 : #define XMI_ENABLED 1
330 :
331 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
332 :
333 : #define RK_ENABLED 1
334 :
335 : #if RK5_ENABLED
336 : module procedure getExpCDFXMI_RK5
337 : use pm_kind, only: TKC => RK5
338 : #include "pm_distExp@routines.inc.F90"
339 : end procedure
340 : #endif
341 :
342 : #if RK4_ENABLED
343 231 : module procedure getExpCDFXMI_RK4
344 : use pm_kind, only: TKC => RK4
345 : #include "pm_distExp@routines.inc.F90"
346 231 : end procedure
347 : #endif
348 :
349 : #if RK3_ENABLED
350 233 : module procedure getExpCDFXMI_RK3
351 : use pm_kind, only: TKC => RK3
352 : #include "pm_distExp@routines.inc.F90"
353 233 : end procedure
354 : #endif
355 :
356 : #if RK2_ENABLED
357 236 : module procedure getExpCDFXMI_RK2
358 : use pm_kind, only: TKC => RK2
359 : #include "pm_distExp@routines.inc.F90"
360 236 : end procedure
361 : #endif
362 :
363 : #if RK1_ENABLED
364 2249 : module procedure getExpCDFXMI_RK1
365 : use pm_kind, only: TKC => RK1
366 : #include "pm_distExp@routines.inc.F90"
367 2249 : end procedure
368 : #endif
369 :
370 : #undef RK_ENABLED
371 :
372 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
373 :
374 : #undef XMI_ENABLED
375 :
376 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
377 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
378 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
379 :
380 : #undef getExpCDF_ENABLED
381 :
382 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
383 :
384 : #define setExpCDF_ENABLED 1
385 :
386 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
387 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
388 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
389 :
390 : #define XDD_ENABLED 1
391 :
392 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
393 :
394 : #define RK_ENABLED 1
395 :
396 : #if RK5_ENABLED
397 : module procedure setExpCDFXDD_RK5
398 : use pm_kind, only: TKC => RK5
399 : #include "pm_distExp@routines.inc.F90"
400 : end procedure
401 : #endif
402 :
403 : #if RK4_ENABLED
404 103 : module procedure setExpCDFXDD_RK4
405 : use pm_kind, only: TKC => RK4
406 : #include "pm_distExp@routines.inc.F90"
407 103 : end procedure
408 : #endif
409 :
410 : #if RK3_ENABLED
411 116 : module procedure setExpCDFXDD_RK3
412 : use pm_kind, only: TKC => RK3
413 : #include "pm_distExp@routines.inc.F90"
414 116 : end procedure
415 : #endif
416 :
417 : #if RK2_ENABLED
418 108 : module procedure setExpCDFXDD_RK2
419 : use pm_kind, only: TKC => RK2
420 : #include "pm_distExp@routines.inc.F90"
421 108 : end procedure
422 : #endif
423 :
424 : #if RK1_ENABLED
425 118 : module procedure setExpCDFXDD_RK1
426 : use pm_kind, only: TKC => RK1
427 : #include "pm_distExp@routines.inc.F90"
428 118 : end procedure
429 : #endif
430 :
431 : #undef RK_ENABLED
432 :
433 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
434 :
435 : #undef XDD_ENABLED
436 :
437 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
438 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
439 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
440 :
441 : #define XDI_ENABLED 1
442 :
443 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
444 :
445 : #define RK_ENABLED 1
446 :
447 : #if RK5_ENABLED
448 : module procedure setExpCDFXDI_RK5
449 : use pm_kind, only: TKC => RK5
450 : #include "pm_distExp@routines.inc.F90"
451 : end procedure
452 : #endif
453 :
454 : #if RK4_ENABLED
455 104 : module procedure setExpCDFXDI_RK4
456 : use pm_kind, only: TKC => RK4
457 : #include "pm_distExp@routines.inc.F90"
458 104 : end procedure
459 : #endif
460 :
461 : #if RK3_ENABLED
462 106 : module procedure setExpCDFXDI_RK3
463 : use pm_kind, only: TKC => RK3
464 : #include "pm_distExp@routines.inc.F90"
465 106 : end procedure
466 : #endif
467 :
468 : #if RK2_ENABLED
469 97 : module procedure setExpCDFXDI_RK2
470 : use pm_kind, only: TKC => RK2
471 : #include "pm_distExp@routines.inc.F90"
472 97 : end procedure
473 : #endif
474 :
475 : #if RK1_ENABLED
476 103 : module procedure setExpCDFXDI_RK1
477 : use pm_kind, only: TKC => RK1
478 : #include "pm_distExp@routines.inc.F90"
479 103 : end procedure
480 : #endif
481 :
482 : #undef RK_ENABLED
483 :
484 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
485 :
486 : #undef XDI_ENABLED
487 :
488 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
489 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
490 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
491 :
492 : #define XMI_ENABLED 1
493 :
494 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
495 :
496 : #define RK_ENABLED 1
497 :
498 : #if RK5_ENABLED
499 : module procedure setExpCDFXMI_RK5
500 : use pm_kind, only: TKC => RK5
501 : #include "pm_distExp@routines.inc.F90"
502 : end procedure
503 : #endif
504 :
505 : #if RK4_ENABLED
506 200 : module procedure setExpCDFXMI_RK4
507 : use pm_kind, only: TKC => RK4
508 : #include "pm_distExp@routines.inc.F90"
509 200 : end procedure
510 : #endif
511 :
512 : #if RK3_ENABLED
513 200 : module procedure setExpCDFXMI_RK3
514 : use pm_kind, only: TKC => RK3
515 : #include "pm_distExp@routines.inc.F90"
516 200 : end procedure
517 : #endif
518 :
519 : #if RK2_ENABLED
520 200 : module procedure setExpCDFXMI_RK2
521 : use pm_kind, only: TKC => RK2
522 : #include "pm_distExp@routines.inc.F90"
523 200 : end procedure
524 : #endif
525 :
526 : #if RK1_ENABLED
527 4208 : module procedure setExpCDFXMI_RK1
528 : use pm_kind, only: TKC => RK1
529 : #include "pm_distExp@routines.inc.F90"
530 4208 : end procedure
531 : #endif
532 :
533 : #undef RK_ENABLED
534 :
535 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
536 :
537 : #undef XMI_ENABLED
538 :
539 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
540 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
541 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
542 :
543 : #undef setExpCDF_ENABLED
544 :
545 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
546 :
547 : #define getExpRand_ENABLED 1
548 :
549 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
550 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
551 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
552 :
553 : #define SM_ENABLED 1
554 :
555 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
556 :
557 : #define RK_ENABLED 1
558 :
559 : #if RK5_ENABLED
560 : module procedure getExpRandSM_RK5
561 : use pm_kind, only: TKC => RK5
562 : #include "pm_distExp@routines.inc.F90"
563 : end procedure
564 : #endif
565 :
566 : #if RK4_ENABLED
567 100000 : module procedure getExpRandSM_RK4
568 : use pm_kind, only: TKC => RK4
569 : #include "pm_distExp@routines.inc.F90"
570 100000 : end procedure
571 : #endif
572 :
573 : #if RK3_ENABLED
574 100000 : module procedure getExpRandSM_RK3
575 : use pm_kind, only: TKC => RK3
576 : #include "pm_distExp@routines.inc.F90"
577 100000 : end procedure
578 : #endif
579 :
580 : #if RK2_ENABLED
581 100000 : module procedure getExpRandSM_RK2
582 : use pm_kind, only: TKC => RK2
583 : #include "pm_distExp@routines.inc.F90"
584 100000 : end procedure
585 : #endif
586 :
587 : #if RK1_ENABLED
588 102006 : module procedure getExpRandSM_RK1
589 : use pm_kind, only: TKC => RK1
590 : #include "pm_distExp@routines.inc.F90"
591 102006 : end procedure
592 : #endif
593 :
594 : #undef RK_ENABLED
595 :
596 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
597 :
598 : #undef SM_ENABLED
599 :
600 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
601 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
602 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
603 :
604 : #undef getExpRand_ENABLED
605 :
606 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
607 :
608 : #define setExpRand_ENABLED 1
609 :
610 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
611 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
612 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
613 :
614 : #define DD_ENABLED 1
615 :
616 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
617 :
618 : #define RK_ENABLED 1
619 :
620 : #if RK5_ENABLED
621 : module procedure setExpRandDD_RK5
622 : use pm_kind, only: TKC => RK5
623 : #include "pm_distExp@routines.inc.F90"
624 : end procedure
625 : #endif
626 :
627 : #if RK4_ENABLED
628 10000 : module procedure setExpRandDD_RK4
629 : use pm_kind, only: TKC => RK4
630 : #include "pm_distExp@routines.inc.F90"
631 10000 : end procedure
632 : #endif
633 :
634 : #if RK3_ENABLED
635 10000 : module procedure setExpRandDD_RK3
636 : use pm_kind, only: TKC => RK3
637 : #include "pm_distExp@routines.inc.F90"
638 10000 : end procedure
639 : #endif
640 :
641 : #if RK2_ENABLED
642 10000 : module procedure setExpRandDD_RK2
643 : use pm_kind, only: TKC => RK2
644 : #include "pm_distExp@routines.inc.F90"
645 10000 : end procedure
646 : #endif
647 :
648 : #if RK1_ENABLED
649 10031 : module procedure setExpRandDD_RK1
650 : use pm_kind, only: TKC => RK1
651 : #include "pm_distExp@routines.inc.F90"
652 10031 : end procedure
653 : #endif
654 :
655 : #undef RK_ENABLED
656 :
657 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
658 :
659 : #undef DD_ENABLED
660 :
661 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
662 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
663 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
664 :
665 : #define SD_ENABLED 1
666 :
667 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
668 :
669 : #define RK_ENABLED 1
670 :
671 : #if RK5_ENABLED
672 : module procedure setExpRandSD_RK5
673 : use pm_kind, only: TKC => RK5
674 : #include "pm_distExp@routines.inc.F90"
675 : end procedure
676 : #endif
677 :
678 : #if RK4_ENABLED
679 150000 : module procedure setExpRandSD_RK4
680 : use pm_kind, only: TKC => RK4
681 : #include "pm_distExp@routines.inc.F90"
682 150000 : end procedure
683 : #endif
684 :
685 : #if RK3_ENABLED
686 150000 : module procedure setExpRandSD_RK3
687 : use pm_kind, only: TKC => RK3
688 : #include "pm_distExp@routines.inc.F90"
689 150000 : end procedure
690 : #endif
691 :
692 : #if RK2_ENABLED
693 150000 : module procedure setExpRandSD_RK2
694 : use pm_kind, only: TKC => RK2
695 : #include "pm_distExp@routines.inc.F90"
696 150000 : end procedure
697 : #endif
698 :
699 : #if RK1_ENABLED
700 152037 : module procedure setExpRandSD_RK1
701 : use pm_kind, only: TKC => RK1
702 : #include "pm_distExp@routines.inc.F90"
703 152037 : end procedure
704 : #endif
705 :
706 : #undef RK_ENABLED
707 :
708 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
709 :
710 : #undef SD_ENABLED
711 :
712 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
713 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
714 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
715 :
716 : #define SM_ENABLED 1
717 :
718 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
719 :
720 : #define RK_ENABLED 1
721 :
722 : #if RK5_ENABLED
723 : module procedure setExpRandSM_RK5
724 : use pm_kind, only: TKC => RK5
725 : #include "pm_distExp@routines.inc.F90"
726 : end procedure
727 : #endif
728 :
729 : #if RK4_ENABLED
730 50000 : module procedure setExpRandSM_RK4
731 : use pm_kind, only: TKC => RK4
732 : #include "pm_distExp@routines.inc.F90"
733 50000 : end procedure
734 : #endif
735 :
736 : #if RK3_ENABLED
737 50000 : module procedure setExpRandSM_RK3
738 : use pm_kind, only: TKC => RK3
739 : #include "pm_distExp@routines.inc.F90"
740 50000 : end procedure
741 : #endif
742 :
743 : #if RK2_ENABLED
744 50000 : module procedure setExpRandSM_RK2
745 : use pm_kind, only: TKC => RK2
746 : #include "pm_distExp@routines.inc.F90"
747 50000 : end procedure
748 : #endif
749 :
750 : #if RK1_ENABLED
751 52000 : module procedure setExpRandSM_RK1
752 : use pm_kind, only: TKC => RK1
753 : #include "pm_distExp@routines.inc.F90"
754 52000 : end procedure
755 : #endif
756 :
757 : #undef RK_ENABLED
758 :
759 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
760 :
761 : #undef SM_ENABLED
762 :
763 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
764 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
765 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
766 :
767 : #undef setExpRand_ENABLED
768 :
769 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
770 :
771 : #undef CHECK_ASSERTION
772 :
773 : end submodule routines
|