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_distBand](@ref pm_distBand).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_distBand) 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 : use pm_arrayUnique, only: getUnique
34 : use pm_arraySort, only: isAscending
35 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
36 : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
37 : #else
38 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) continue;
39 : #endif
40 :
41 : use pm_quadPack, only: getQuadErr, GK21, weps
42 : use pm_distGamma, only: setGammaCDF
43 :
44 : implicit none
45 :
46 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
47 :
48 : contains
49 :
50 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51 :
52 : #define getBandEpeak_ENABLED 1
53 :
54 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
55 :
56 : #define RK_ENABLED 1
57 :
58 : #if RK5_ENABLED
59 : module procedure getBandEpeak_RK5
60 : use pm_kind, only: RKC => RK5
61 : #include "pm_distBand@routines.inc.F90"
62 : end procedure
63 : #endif
64 :
65 : #if RK4_ENABLED
66 0 : module procedure getBandEpeak_RK4
67 : use pm_kind, only: RKC => RK4
68 : #include "pm_distBand@routines.inc.F90"
69 0 : end procedure
70 : #endif
71 :
72 : #if RK3_ENABLED
73 0 : module procedure getBandEpeak_RK3
74 : use pm_kind, only: RKC => RK3
75 : #include "pm_distBand@routines.inc.F90"
76 0 : end procedure
77 : #endif
78 :
79 : #if RK2_ENABLED
80 0 : module procedure getBandEpeak_RK2
81 : use pm_kind, only: RKC => RK2
82 : #include "pm_distBand@routines.inc.F90"
83 0 : end procedure
84 : #endif
85 :
86 : #if RK1_ENABLED
87 6 : module procedure getBandEpeak_RK1
88 : use pm_kind, only: RKC => RK1
89 : #include "pm_distBand@routines.inc.F90"
90 6 : end procedure
91 : #endif
92 :
93 : #undef RK_ENABLED
94 :
95 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
96 :
97 : #undef getBandEpeak_ENABLED
98 :
99 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
100 :
101 : #define getBandEbreak_ENABLED 1
102 :
103 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
104 :
105 : #define RK_ENABLED 1
106 :
107 : #if RK5_ENABLED
108 : module procedure getBandEbreak_RK5
109 : use pm_kind, only: RKC => RK5
110 : #include "pm_distBand@routines.inc.F90"
111 : end procedure
112 : #endif
113 :
114 : #if RK4_ENABLED
115 10000 : module procedure getBandEbreak_RK4
116 : use pm_kind, only: RKC => RK4
117 : #include "pm_distBand@routines.inc.F90"
118 10000 : end procedure
119 : #endif
120 :
121 : #if RK3_ENABLED
122 0 : module procedure getBandEbreak_RK3
123 : use pm_kind, only: RKC => RK3
124 : #include "pm_distBand@routines.inc.F90"
125 0 : end procedure
126 : #endif
127 :
128 : #if RK2_ENABLED
129 2311 : module procedure getBandEbreak_RK2
130 : use pm_kind, only: RKC => RK2
131 : #include "pm_distBand@routines.inc.F90"
132 2311 : end procedure
133 : #endif
134 :
135 : #if RK1_ENABLED
136 6 : module procedure getBandEbreak_RK1
137 : use pm_kind, only: RKC => RK1
138 : #include "pm_distBand@routines.inc.F90"
139 6 : end procedure
140 : #endif
141 :
142 : #undef RK_ENABLED
143 :
144 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
145 :
146 : #undef getBandEbreak_ENABLED
147 :
148 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
149 :
150 : #define getBandZeta_ENABLED 1
151 :
152 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
153 :
154 : #define RK_ENABLED 1
155 :
156 : #if RK5_ENABLED
157 : module procedure getBandZeta_RK5
158 : use pm_kind, only: RKC => RK5
159 : #include "pm_distBand@routines.inc.F90"
160 : end procedure
161 : #endif
162 :
163 : #if RK4_ENABLED
164 19335 : module procedure getBandZeta_RK4
165 : use pm_kind, only: RKC => RK4
166 : #include "pm_distBand@routines.inc.F90"
167 19335 : end procedure
168 : #endif
169 :
170 : #if RK3_ENABLED
171 0 : module procedure getBandZeta_RK3
172 : use pm_kind, only: RKC => RK3
173 : #include "pm_distBand@routines.inc.F90"
174 0 : end procedure
175 : #endif
176 :
177 : #if RK2_ENABLED
178 8748 : module procedure getBandZeta_RK2
179 : use pm_kind, only: RKC => RK2
180 : #include "pm_distBand@routines.inc.F90"
181 8748 : end procedure
182 : #endif
183 :
184 : #if RK1_ENABLED
185 3156 : module procedure getBandZeta_RK1
186 : use pm_kind, only: RKC => RK1
187 : #include "pm_distBand@routines.inc.F90"
188 3156 : end procedure
189 : #endif
190 :
191 : #undef RK_ENABLED
192 :
193 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
194 :
195 : #undef getBandZeta_ENABLED
196 :
197 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
198 :
199 : #define getBandUDF_ENABLED 1
200 :
201 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
202 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
203 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
204 :
205 : #define Any_ENABLED 1
206 :
207 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
208 :
209 : #define RK_ENABLED 1
210 :
211 : #if RK5_ENABLED
212 : module procedure getBandUDF_RK5
213 : use pm_kind, only: RKC => RK5
214 : #include "pm_distBand@routines.inc.F90"
215 : end procedure
216 : #endif
217 :
218 : #if RK4_ENABLED
219 0 : module procedure getBandUDF_RK4
220 : use pm_kind, only: RKC => RK4
221 : #include "pm_distBand@routines.inc.F90"
222 0 : end procedure
223 : #endif
224 :
225 : #if RK3_ENABLED
226 0 : module procedure getBandUDF_RK3
227 : use pm_kind, only: RKC => RK3
228 : #include "pm_distBand@routines.inc.F90"
229 0 : end procedure
230 : #endif
231 :
232 : #if RK2_ENABLED
233 0 : module procedure getBandUDF_RK2
234 : use pm_kind, only: RKC => RK2
235 : #include "pm_distBand@routines.inc.F90"
236 0 : end procedure
237 : #endif
238 :
239 : #if RK1_ENABLED
240 3998 : module procedure getBandUDF_RK1
241 : use pm_kind, only: RKC => RK1
242 : #include "pm_distBand@routines.inc.F90"
243 3998 : end procedure
244 : #endif
245 :
246 : #undef RK_ENABLED
247 :
248 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
249 :
250 : #undef Any_ENABLED
251 :
252 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
253 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
254 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
255 :
256 : #undef getBandUDF_ENABLED
257 :
258 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
259 :
260 : #define setBandUCDF_ENABLED 1
261 :
262 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
263 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
264 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
265 :
266 : #define Any_ENABLED 1
267 :
268 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
269 :
270 : #define RK_ENABLED 1
271 :
272 : #if RK5_ENABLED
273 : module procedure setBandUCDF_RK5
274 : use pm_kind, only: RKC => RK5
275 : #include "pm_distBand@routines.inc.F90"
276 : end procedure
277 : #endif
278 :
279 : #if RK4_ENABLED
280 24001 : module procedure setBandUCDF_RK4
281 : use pm_kind, only: RKC => RK4
282 : #include "pm_distBand@routines.inc.F90"
283 : end procedure
284 : #endif
285 :
286 : #if RK3_ENABLED
287 0 : module procedure setBandUCDF_RK3
288 : use pm_kind, only: RKC => RK3
289 : #include "pm_distBand@routines.inc.F90"
290 : end procedure
291 : #endif
292 :
293 : #if RK2_ENABLED
294 9238 : module procedure setBandUCDF_RK2
295 : use pm_kind, only: RKC => RK2
296 : #include "pm_distBand@routines.inc.F90"
297 : end procedure
298 : #endif
299 :
300 : #if RK1_ENABLED
301 0 : module procedure setBandUCDF_RK1
302 : use pm_kind, only: RKC => RK1
303 : #include "pm_distBand@routines.inc.F90"
304 : end procedure
305 : #endif
306 :
307 : #undef RK_ENABLED
308 :
309 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
310 :
311 : #undef Any_ENABLED
312 :
313 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
314 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
315 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
316 :
317 : #undef setBandUCDF_ENABLED
318 :
319 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
320 :
321 : #define setBandMean_ENABLED 1
322 :
323 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
324 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
325 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
326 :
327 : #define Def_ENABLED 1
328 :
329 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
330 :
331 : #define RK_ENABLED 1
332 :
333 : #if RK5_ENABLED
334 : module procedure setBandMeanDef_RK5
335 : use pm_kind, only: RKC => RK5
336 : #include "pm_distBand@routines.inc.F90"
337 : end procedure
338 : #endif
339 :
340 : #if RK4_ENABLED
341 0 : module procedure setBandMeanDef_RK4
342 : use pm_kind, only: RKC => RK4
343 : #include "pm_distBand@routines.inc.F90"
344 : end procedure
345 : #endif
346 :
347 : #if RK3_ENABLED
348 0 : module procedure setBandMeanDef_RK3
349 : use pm_kind, only: RKC => RK3
350 : #include "pm_distBand@routines.inc.F90"
351 : end procedure
352 : #endif
353 :
354 : #if RK2_ENABLED
355 1 : module procedure setBandMeanDef_RK2
356 : use pm_kind, only: RKC => RK2
357 : #include "pm_distBand@routines.inc.F90"
358 : end procedure
359 : #endif
360 :
361 : #if RK1_ENABLED
362 0 : module procedure setBandMeanDef_RK1
363 : use pm_kind, only: RKC => RK1
364 : #include "pm_distBand@routines.inc.F90"
365 : end procedure
366 : #endif
367 :
368 : #undef RK_ENABLED
369 :
370 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
371 :
372 : #undef Def_ENABLED
373 :
374 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
375 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
376 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
377 :
378 : #define New_ENABLED 1
379 :
380 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
381 :
382 : #define RK_ENABLED 1
383 :
384 : #if RK5_ENABLED
385 : module procedure setBandMeanNew_RK5
386 : use pm_kind, only: RKC => RK5
387 : #include "pm_distBand@routines.inc.F90"
388 : end procedure
389 : #endif
390 :
391 : #if RK4_ENABLED
392 0 : module procedure setBandMeanNew_RK4
393 : use pm_kind, only: RKC => RK4
394 : #include "pm_distBand@routines.inc.F90"
395 : end procedure
396 : #endif
397 :
398 : #if RK3_ENABLED
399 0 : module procedure setBandMeanNew_RK3
400 : use pm_kind, only: RKC => RK3
401 : #include "pm_distBand@routines.inc.F90"
402 : end procedure
403 : #endif
404 :
405 : #if RK2_ENABLED
406 0 : module procedure setBandMeanNew_RK2
407 : use pm_kind, only: RKC => RK2
408 : #include "pm_distBand@routines.inc.F90"
409 : end procedure
410 : #endif
411 :
412 : #if RK1_ENABLED
413 0 : module procedure setBandMeanNew_RK1
414 : use pm_kind, only: RKC => RK1
415 : #include "pm_distBand@routines.inc.F90"
416 : end procedure
417 : #endif
418 :
419 : #undef RK_ENABLED
420 :
421 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
422 :
423 : #undef New_ENABLED
424 :
425 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
426 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
427 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
428 :
429 : #undef setBandMean_ENABLED
430 :
431 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
432 :
433 : #define setBandPhoton_ENABLED 1
434 :
435 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
436 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
437 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
438 :
439 : #define FromEnergy_ENABLED 1
440 :
441 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
442 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
443 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
444 :
445 : #define OldB_ENABLED 1
446 :
447 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
448 :
449 : #define RK_ENABLED 1
450 :
451 : #if RK5_ENABLED
452 : module procedure setBandPhotonFromEnergyOldB_RK5
453 : use pm_kind, only: RKC => RK5
454 : #include "pm_distBand@routines.inc.F90"
455 : end procedure
456 : #endif
457 :
458 : #if RK4_ENABLED
459 0 : module procedure setBandPhotonFromEnergyOldB_RK4
460 : use pm_kind, only: RKC => RK4
461 : #include "pm_distBand@routines.inc.F90"
462 : end procedure
463 : #endif
464 :
465 : #if RK3_ENABLED
466 0 : module procedure setBandPhotonFromEnergyOldB_RK3
467 : use pm_kind, only: RKC => RK3
468 : #include "pm_distBand@routines.inc.F90"
469 : end procedure
470 : #endif
471 :
472 : #if RK2_ENABLED
473 1 : module procedure setBandPhotonFromEnergyOldB_RK2
474 : use pm_kind, only: RKC => RK2
475 : #include "pm_distBand@routines.inc.F90"
476 : end procedure
477 : #endif
478 :
479 : #if RK1_ENABLED
480 0 : module procedure setBandPhotonFromEnergyOldB_RK1
481 : use pm_kind, only: RKC => RK1
482 : #include "pm_distBand@routines.inc.F90"
483 : end procedure
484 : #endif
485 :
486 : #undef RK_ENABLED
487 :
488 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
489 :
490 : #undef OldB_ENABLED
491 :
492 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
493 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
494 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
495 :
496 : #define NewB_ENABLED 1
497 :
498 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
499 :
500 : #define RK_ENABLED 1
501 :
502 : #if RK5_ENABLED
503 : module procedure setBandPhotonFromEnergyNewB_RK5
504 : use pm_kind, only: RKC => RK5
505 : #include "pm_distBand@routines.inc.F90"
506 : end procedure
507 : #endif
508 :
509 : #if RK4_ENABLED
510 5000 : module procedure setBandPhotonFromEnergyNewB_RK4
511 : use pm_kind, only: RKC => RK4
512 : #include "pm_distBand@routines.inc.F90"
513 : end procedure
514 : #endif
515 :
516 : #if RK3_ENABLED
517 0 : module procedure setBandPhotonFromEnergyNewB_RK3
518 : use pm_kind, only: RKC => RK3
519 : #include "pm_distBand@routines.inc.F90"
520 : end procedure
521 : #endif
522 :
523 : #if RK2_ENABLED
524 0 : module procedure setBandPhotonFromEnergyNewB_RK2
525 : use pm_kind, only: RKC => RK2
526 : #include "pm_distBand@routines.inc.F90"
527 : end procedure
528 : #endif
529 :
530 : #if RK1_ENABLED
531 0 : module procedure setBandPhotonFromEnergyNewB_RK1
532 : use pm_kind, only: RKC => RK1
533 : #include "pm_distBand@routines.inc.F90"
534 : end procedure
535 : #endif
536 :
537 : #undef RK_ENABLED
538 :
539 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
540 :
541 : #undef NewB_ENABLED
542 :
543 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
544 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
545 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
546 :
547 : #undef FromEnergy_ENABLED
548 :
549 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
550 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
551 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
552 :
553 : #define FromPhoton_ENABLED 1
554 :
555 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
556 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
557 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
558 :
559 : #define NewB_ENABLED 1
560 :
561 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
562 :
563 : #define RK_ENABLED 1
564 :
565 : #if RK5_ENABLED
566 : module procedure setBandPhotonFromPhotonNewB_RK5
567 : use pm_kind, only: RKC => RK5
568 : #include "pm_distBand@routines.inc.F90"
569 : end procedure
570 : #endif
571 :
572 : #if RK4_ENABLED
573 0 : module procedure setBandPhotonFromPhotonNewB_RK4
574 : use pm_kind, only: RKC => RK4
575 : #include "pm_distBand@routines.inc.F90"
576 : end procedure
577 : #endif
578 :
579 : #if RK3_ENABLED
580 0 : module procedure setBandPhotonFromPhotonNewB_RK3
581 : use pm_kind, only: RKC => RK3
582 : #include "pm_distBand@routines.inc.F90"
583 : end procedure
584 : #endif
585 :
586 : #if RK2_ENABLED
587 0 : module procedure setBandPhotonFromPhotonNewB_RK2
588 : use pm_kind, only: RKC => RK2
589 : #include "pm_distBand@routines.inc.F90"
590 : end procedure
591 : #endif
592 :
593 : #if RK1_ENABLED
594 0 : module procedure setBandPhotonFromPhotonNewB_RK1
595 : use pm_kind, only: RKC => RK1
596 : #include "pm_distBand@routines.inc.F90"
597 : end procedure
598 : #endif
599 :
600 : #undef RK_ENABLED
601 :
602 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
603 :
604 : #undef NewB_ENABLED
605 :
606 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
607 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
608 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
609 :
610 : #undef FromPhoton_ENABLED
611 :
612 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
613 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
614 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
615 :
616 : #undef setBandPhoton_ENABLED
617 :
618 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
619 :
620 : #define setBandEnergy_ENABLED 1
621 :
622 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
623 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
624 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
625 :
626 : #define FromPhoton_ENABLED 1
627 :
628 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
629 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
630 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
631 :
632 : #define OldB_ENABLED 1
633 :
634 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
635 :
636 : #define RK_ENABLED 1
637 :
638 : #if RK5_ENABLED
639 : module procedure setBandEnergyFromPhotonOldB_RK5
640 : use pm_kind, only: RKC => RK5
641 : #include "pm_distBand@routines.inc.F90"
642 : end procedure
643 : #endif
644 :
645 : #if RK4_ENABLED
646 0 : module procedure setBandEnergyFromPhotonOldB_RK4
647 : use pm_kind, only: RKC => RK4
648 : #include "pm_distBand@routines.inc.F90"
649 : end procedure
650 : #endif
651 :
652 : #if RK3_ENABLED
653 0 : module procedure setBandEnergyFromPhotonOldB_RK3
654 : use pm_kind, only: RKC => RK3
655 : #include "pm_distBand@routines.inc.F90"
656 : end procedure
657 : #endif
658 :
659 : #if RK2_ENABLED
660 1 : module procedure setBandEnergyFromPhotonOldB_RK2
661 : use pm_kind, only: RKC => RK2
662 : #include "pm_distBand@routines.inc.F90"
663 : end procedure
664 : #endif
665 :
666 : #if RK1_ENABLED
667 0 : module procedure setBandEnergyFromPhotonOldB_RK1
668 : use pm_kind, only: RKC => RK1
669 : #include "pm_distBand@routines.inc.F90"
670 : end procedure
671 : #endif
672 :
673 : #undef RK_ENABLED
674 :
675 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
676 :
677 : #undef OldB_ENABLED
678 :
679 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
680 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
681 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
682 :
683 : #define NewB_ENABLED 1
684 :
685 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
686 :
687 : #define RK_ENABLED 1
688 :
689 : #if RK5_ENABLED
690 : module procedure setBandEnergyFromPhotonNewB_RK5
691 : use pm_kind, only: RKC => RK5
692 : #include "pm_distBand@routines.inc.F90"
693 : end procedure
694 : #endif
695 :
696 : #if RK4_ENABLED
697 5000 : module procedure setBandEnergyFromPhotonNewB_RK4
698 : use pm_kind, only: RKC => RK4
699 : #include "pm_distBand@routines.inc.F90"
700 : end procedure
701 : #endif
702 :
703 : #if RK3_ENABLED
704 0 : module procedure setBandEnergyFromPhotonNewB_RK3
705 : use pm_kind, only: RKC => RK3
706 : #include "pm_distBand@routines.inc.F90"
707 : end procedure
708 : #endif
709 :
710 : #if RK2_ENABLED
711 2308 : module procedure setBandEnergyFromPhotonNewB_RK2
712 : use pm_kind, only: RKC => RK2
713 : #include "pm_distBand@routines.inc.F90"
714 : end procedure
715 : #endif
716 :
717 : #if RK1_ENABLED
718 0 : module procedure setBandEnergyFromPhotonNewB_RK1
719 : use pm_kind, only: RKC => RK1
720 : #include "pm_distBand@routines.inc.F90"
721 : end procedure
722 : #endif
723 :
724 : #undef RK_ENABLED
725 :
726 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
727 :
728 : #undef NewB_ENABLED
729 :
730 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
731 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
732 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
733 :
734 : #undef FromPhoton_ENABLED
735 :
736 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
737 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
738 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
739 :
740 : #define FromEnergy_ENABLED 1
741 :
742 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
743 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
744 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
745 :
746 : #define NewB_ENABLED 1
747 :
748 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
749 :
750 : #define RK_ENABLED 1
751 :
752 : #if RK5_ENABLED
753 : module procedure setBandEnergyFromEnergyNewB_RK5
754 : use pm_kind, only: RKC => RK5
755 : #include "pm_distBand@routines.inc.F90"
756 : end procedure
757 : #endif
758 :
759 : #if RK4_ENABLED
760 0 : module procedure setBandEnergyFromEnergyNewB_RK4
761 : use pm_kind, only: RKC => RK4
762 : #include "pm_distBand@routines.inc.F90"
763 : end procedure
764 : #endif
765 :
766 : #if RK3_ENABLED
767 0 : module procedure setBandEnergyFromEnergyNewB_RK3
768 : use pm_kind, only: RKC => RK3
769 : #include "pm_distBand@routines.inc.F90"
770 : end procedure
771 : #endif
772 :
773 : #if RK2_ENABLED
774 2308 : module procedure setBandEnergyFromEnergyNewB_RK2
775 : use pm_kind, only: RKC => RK2
776 : #include "pm_distBand@routines.inc.F90"
777 : end procedure
778 : #endif
779 :
780 : #if RK1_ENABLED
781 0 : module procedure setBandEnergyFromEnergyNewB_RK1
782 : use pm_kind, only: RKC => RK1
783 : #include "pm_distBand@routines.inc.F90"
784 : end procedure
785 : #endif
786 :
787 : #undef RK_ENABLED
788 :
789 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
790 :
791 : #undef NewB_ENABLED
792 :
793 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
794 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
795 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
796 :
797 : #undef FromEnergy_ENABLED
798 :
799 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
800 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
801 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
802 :
803 : #undef setBandEnergy_ENABLED
804 :
805 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
806 :
807 : #undef CHECK_ASSERTION
808 :
809 : end submodule routines ! LCOV_EXCL_LINE
|