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_option](@ref pm_option).
19 : !>
20 : !> \test
21 : !> [test_pm_option](@ref test_pm_option)
22 : !>
23 : !> \finmain
24 : !>
25 : !> \author
26 : !> \AmirShahmoradi, Saturday 10:17 PM, December 5, 2021, Dallas, TX
27 :
28 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
29 :
30 : submodule (pm_option) routines ! LCOV_EXCL_LINE
31 :
32 : #if CHECK_ENABLED
33 : use pm_err, only: getFine
34 : use pm_val2str, only: getStr
35 : use pm_err, only: setAsserted
36 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
37 : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
38 : #else
39 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) continue;
40 : #endif
41 :
42 : implicit none
43 :
44 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
45 :
46 : contains
47 :
48 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
49 :
50 : #define getOption_ENABLED 1
51 :
52 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
54 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
55 :
56 : #define D0_ENABLED 1
57 :
58 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
59 :
60 : #define SK_ENABLED 1
61 :
62 : #if SK5_ENABLED
63 : module procedure getOption_D0_SK5
64 : use pm_kind, only: SKC => SK5
65 : #include "pm_option@routines.inc.F90"
66 : end procedure
67 : #endif
68 :
69 : #if SK4_ENABLED
70 : module procedure getOption_D0_SK4
71 : use pm_kind, only: SKC => SK4
72 : #include "pm_option@routines.inc.F90"
73 : end procedure
74 : #endif
75 :
76 : #if SK3_ENABLED
77 : module procedure getOption_D0_SK3
78 : use pm_kind, only: SKC => SK3
79 : #include "pm_option@routines.inc.F90"
80 : end procedure
81 : #endif
82 :
83 : #if SK2_ENABLED
84 : module procedure getOption_D0_SK2
85 : use pm_kind, only: SKC => SK2
86 : #include "pm_option@routines.inc.F90"
87 : end procedure
88 : #endif
89 :
90 : #if SK1_ENABLED
91 102824 : module procedure getOption_D0_SK1
92 : use pm_kind, only: SKC => SK1
93 : #include "pm_option@routines.inc.F90"
94 102824 : end procedure
95 : #endif
96 :
97 : #undef SK_ENABLED
98 :
99 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
100 :
101 : #define IK_ENABLED 1
102 :
103 : #if IK5_ENABLED
104 1520 : module procedure getOption_D0_IK5
105 : use pm_kind, only: IKC => IK5
106 : #include "pm_option@routines.inc.F90"
107 1520 : end procedure
108 : #endif
109 :
110 : #if IK4_ENABLED
111 1520 : module procedure getOption_D0_IK4
112 : use pm_kind, only: IKC => IK4
113 : #include "pm_option@routines.inc.F90"
114 1520 : end procedure
115 : #endif
116 :
117 : #if IK3_ENABLED
118 42217 : module procedure getOption_D0_IK3
119 : use pm_kind, only: IKC => IK3
120 : #include "pm_option@routines.inc.F90"
121 42217 : end procedure
122 : #endif
123 :
124 : #if IK2_ENABLED
125 1520 : module procedure getOption_D0_IK2
126 : use pm_kind, only: IKC => IK2
127 : #include "pm_option@routines.inc.F90"
128 1520 : end procedure
129 : #endif
130 :
131 : #if IK1_ENABLED
132 1520 : module procedure getOption_D0_IK1
133 : use pm_kind, only: IKC => IK1
134 : #include "pm_option@routines.inc.F90"
135 1520 : end procedure
136 : #endif
137 :
138 : #undef IK_ENABLED
139 :
140 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
141 :
142 : #define LK_ENABLED 1
143 :
144 : #if LK5_ENABLED
145 320 : module procedure getOption_D0_LK5
146 : use pm_kind, only: LKC => LK5
147 : #include "pm_option@routines.inc.F90"
148 320 : end procedure
149 : #endif
150 :
151 : #if LK4_ENABLED
152 320 : module procedure getOption_D0_LK4
153 : use pm_kind, only: LKC => LK4
154 : #include "pm_option@routines.inc.F90"
155 320 : end procedure
156 : #endif
157 :
158 : #if LK3_ENABLED
159 13551 : module procedure getOption_D0_LK3
160 : use pm_kind, only: LKC => LK3
161 : #include "pm_option@routines.inc.F90"
162 13551 : end procedure
163 : #endif
164 :
165 : #if LK2_ENABLED
166 320 : module procedure getOption_D0_LK2
167 : use pm_kind, only: LKC => LK2
168 : #include "pm_option@routines.inc.F90"
169 320 : end procedure
170 : #endif
171 :
172 : #if LK1_ENABLED
173 320 : module procedure getOption_D0_LK1
174 : use pm_kind, only: LKC => LK1
175 : #include "pm_option@routines.inc.F90"
176 320 : end procedure
177 : #endif
178 :
179 : #undef LK_ENABLED
180 :
181 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
182 :
183 : #define CK_ENABLED 1
184 :
185 : #if CK5_ENABLED
186 : module procedure getOption_D0_CK5
187 : use pm_kind, only: CKC => CK5
188 : #include "pm_option@routines.inc.F90"
189 : end procedure
190 : #endif
191 :
192 : #if CK4_ENABLED
193 1232 : module procedure getOption_D0_CK4
194 : use pm_kind, only: CKC => CK4
195 : #include "pm_option@routines.inc.F90"
196 1232 : end procedure
197 : #endif
198 :
199 : #if CK3_ENABLED
200 1280 : module procedure getOption_D0_CK3
201 : use pm_kind, only: CKC => CK3
202 : #include "pm_option@routines.inc.F90"
203 1280 : end procedure
204 : #endif
205 :
206 : #if CK2_ENABLED
207 1330 : module procedure getOption_D0_CK2
208 : use pm_kind, only: CKC => CK2
209 : #include "pm_option@routines.inc.F90"
210 1330 : end procedure
211 : #endif
212 :
213 : #if CK1_ENABLED
214 1520 : module procedure getOption_D0_CK1
215 : use pm_kind, only: CKC => CK1
216 : #include "pm_option@routines.inc.F90"
217 1520 : end procedure
218 : #endif
219 :
220 : #undef CK_ENABLED
221 :
222 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
223 :
224 : #define RK_ENABLED 1
225 :
226 : #if RK5_ENABLED
227 : module procedure getOption_D0_RK5
228 : use pm_kind, only: RKC => RK5
229 : #include "pm_option@routines.inc.F90"
230 : end procedure
231 : #endif
232 :
233 : #if RK4_ENABLED
234 90838 : module procedure getOption_D0_RK4
235 : use pm_kind, only: RKC => RK4
236 : #include "pm_option@routines.inc.F90"
237 90838 : end procedure
238 : #endif
239 :
240 : #if RK3_ENABLED
241 26116 : module procedure getOption_D0_RK3
242 : use pm_kind, only: RKC => RK3
243 : #include "pm_option@routines.inc.F90"
244 26116 : end procedure
245 : #endif
246 :
247 : #if RK2_ENABLED
248 308325 : module procedure getOption_D0_RK2
249 : use pm_kind, only: RKC => RK2
250 : #include "pm_option@routines.inc.F90"
251 308325 : end procedure
252 : #endif
253 :
254 : #if RK1_ENABLED
255 134552 : module procedure getOption_D0_RK1
256 : use pm_kind, only: RKC => RK1
257 : #include "pm_option@routines.inc.F90"
258 134552 : end procedure
259 : #endif
260 :
261 : #undef RK_ENABLED
262 :
263 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
264 :
265 : #undef D0_ENABLED
266 :
267 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
268 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
269 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
270 :
271 : #define D1_ENABLED 1
272 :
273 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
274 :
275 : #define SK_ENABLED 1
276 :
277 : #if SK5_ENABLED
278 : module procedure getOption_D1_SK5
279 : use pm_kind, only: SKC => SK5
280 : #include "pm_option@routines.inc.F90"
281 : end procedure
282 : #endif
283 :
284 : #if SK4_ENABLED
285 : module procedure getOption_D1_SK4
286 : use pm_kind, only: SKC => SK4
287 : #include "pm_option@routines.inc.F90"
288 : end procedure
289 : #endif
290 :
291 : #if SK3_ENABLED
292 : module procedure getOption_D1_SK3
293 : use pm_kind, only: SKC => SK3
294 : #include "pm_option@routines.inc.F90"
295 : end procedure
296 : #endif
297 :
298 : #if SK2_ENABLED
299 : module procedure getOption_D1_SK2
300 : use pm_kind, only: SKC => SK2
301 : #include "pm_option@routines.inc.F90"
302 : end procedure
303 : #endif
304 :
305 : #if SK1_ENABLED
306 2 : module procedure getOption_D1_SK1
307 : use pm_kind, only: SKC => SK1
308 : #include "pm_option@routines.inc.F90"
309 2 : end procedure
310 : #endif
311 :
312 : #undef SK_ENABLED
313 :
314 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
315 :
316 : #define IK_ENABLED 1
317 :
318 : #if IK5_ENABLED
319 0 : module procedure getOption_D1_IK5
320 : use pm_kind, only: IKC => IK5
321 : #include "pm_option@routines.inc.F90"
322 0 : end procedure
323 : #endif
324 :
325 : #if IK4_ENABLED
326 0 : module procedure getOption_D1_IK4
327 : use pm_kind, only: IKC => IK4
328 : #include "pm_option@routines.inc.F90"
329 0 : end procedure
330 : #endif
331 :
332 : #if IK3_ENABLED
333 4 : module procedure getOption_D1_IK3
334 : use pm_kind, only: IKC => IK3
335 : #include "pm_option@routines.inc.F90"
336 4 : end procedure
337 : #endif
338 :
339 : #if IK2_ENABLED
340 0 : module procedure getOption_D1_IK2
341 : use pm_kind, only: IKC => IK2
342 : #include "pm_option@routines.inc.F90"
343 0 : end procedure
344 : #endif
345 :
346 : #if IK1_ENABLED
347 0 : module procedure getOption_D1_IK1
348 : use pm_kind, only: IKC => IK1
349 : #include "pm_option@routines.inc.F90"
350 0 : end procedure
351 : #endif
352 :
353 : #undef IK_ENABLED
354 :
355 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
356 :
357 : #define LK_ENABLED 1
358 :
359 : #if LK5_ENABLED
360 0 : module procedure getOption_D1_LK5
361 : use pm_kind, only: LKC => LK5
362 : #include "pm_option@routines.inc.F90"
363 0 : end procedure
364 : #endif
365 :
366 : #if LK4_ENABLED
367 0 : module procedure getOption_D1_LK4
368 : use pm_kind, only: LKC => LK4
369 : #include "pm_option@routines.inc.F90"
370 0 : end procedure
371 : #endif
372 :
373 : #if LK3_ENABLED
374 4 : module procedure getOption_D1_LK3
375 : use pm_kind, only: LKC => LK3
376 : #include "pm_option@routines.inc.F90"
377 4 : end procedure
378 : #endif
379 :
380 : #if LK2_ENABLED
381 0 : module procedure getOption_D1_LK2
382 : use pm_kind, only: LKC => LK2
383 : #include "pm_option@routines.inc.F90"
384 0 : end procedure
385 : #endif
386 :
387 : #if LK1_ENABLED
388 0 : module procedure getOption_D1_LK1
389 : use pm_kind, only: LKC => LK1
390 : #include "pm_option@routines.inc.F90"
391 0 : end procedure
392 : #endif
393 :
394 : #undef LK_ENABLED
395 :
396 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
397 :
398 : #define CK_ENABLED 1
399 :
400 : #if CK5_ENABLED
401 : module procedure getOption_D1_CK5
402 : use pm_kind, only: CKC => CK5
403 : #include "pm_option@routines.inc.F90"
404 : end procedure
405 : #endif
406 :
407 : #if CK4_ENABLED
408 0 : module procedure getOption_D1_CK4
409 : use pm_kind, only: CKC => CK4
410 : #include "pm_option@routines.inc.F90"
411 0 : end procedure
412 : #endif
413 :
414 : #if CK3_ENABLED
415 0 : module procedure getOption_D1_CK3
416 : use pm_kind, only: CKC => CK3
417 : #include "pm_option@routines.inc.F90"
418 0 : end procedure
419 : #endif
420 :
421 : #if CK2_ENABLED
422 4 : module procedure getOption_D1_CK2
423 : use pm_kind, only: CKC => CK2
424 : #include "pm_option@routines.inc.F90"
425 4 : end procedure
426 : #endif
427 :
428 : #if CK1_ENABLED
429 0 : module procedure getOption_D1_CK1
430 : use pm_kind, only: CKC => CK1
431 : #include "pm_option@routines.inc.F90"
432 0 : end procedure
433 : #endif
434 :
435 : #undef CK_ENABLED
436 :
437 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
438 :
439 : #define RK_ENABLED 1
440 :
441 : #if RK5_ENABLED
442 : module procedure getOption_D1_RK5
443 : use pm_kind, only: RKC => RK5
444 : #include "pm_option@routines.inc.F90"
445 : end procedure
446 : #endif
447 :
448 : #if RK4_ENABLED
449 0 : module procedure getOption_D1_RK4
450 : use pm_kind, only: RKC => RK4
451 : #include "pm_option@routines.inc.F90"
452 0 : end procedure
453 : #endif
454 :
455 : #if RK3_ENABLED
456 0 : module procedure getOption_D1_RK3
457 : use pm_kind, only: RKC => RK3
458 : #include "pm_option@routines.inc.F90"
459 0 : end procedure
460 : #endif
461 :
462 : #if RK2_ENABLED
463 4 : module procedure getOption_D1_RK2
464 : use pm_kind, only: RKC => RK2
465 : #include "pm_option@routines.inc.F90"
466 4 : end procedure
467 : #endif
468 :
469 : #if RK1_ENABLED
470 0 : module procedure getOption_D1_RK1
471 : use pm_kind, only: RKC => RK1
472 : #include "pm_option@routines.inc.F90"
473 0 : end procedure
474 : #endif
475 :
476 : #undef RK_ENABLED
477 :
478 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
479 :
480 : #undef D1_ENABLED
481 :
482 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
483 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
484 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
485 :
486 : #define D2_ENABLED 1
487 :
488 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
489 :
490 : #define SK_ENABLED 1
491 :
492 : #if SK5_ENABLED
493 : module procedure getOption_D2_SK5
494 : use pm_kind, only: SKC => SK5
495 : #include "pm_option@routines.inc.F90"
496 : end procedure
497 : #endif
498 :
499 : #if SK4_ENABLED
500 : module procedure getOption_D2_SK4
501 : use pm_kind, only: SKC => SK4
502 : #include "pm_option@routines.inc.F90"
503 : end procedure
504 : #endif
505 :
506 : #if SK3_ENABLED
507 : module procedure getOption_D2_SK3
508 : use pm_kind, only: SKC => SK3
509 : #include "pm_option@routines.inc.F90"
510 : end procedure
511 : #endif
512 :
513 : #if SK2_ENABLED
514 : module procedure getOption_D2_SK2
515 : use pm_kind, only: SKC => SK2
516 : #include "pm_option@routines.inc.F90"
517 : end procedure
518 : #endif
519 :
520 : #if SK1_ENABLED
521 2 : module procedure getOption_D2_SK1
522 : use pm_kind, only: SKC => SK1
523 : #include "pm_option@routines.inc.F90"
524 2 : end procedure
525 : #endif
526 :
527 : #undef SK_ENABLED
528 :
529 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
530 :
531 : #define IK_ENABLED 1
532 :
533 : #if IK5_ENABLED
534 0 : module procedure getOption_D2_IK5
535 : use pm_kind, only: IKC => IK5
536 : #include "pm_option@routines.inc.F90"
537 0 : end procedure
538 : #endif
539 :
540 : #if IK4_ENABLED
541 0 : module procedure getOption_D2_IK4
542 : use pm_kind, only: IKC => IK4
543 : #include "pm_option@routines.inc.F90"
544 0 : end procedure
545 : #endif
546 :
547 : #if IK3_ENABLED
548 2 : module procedure getOption_D2_IK3
549 : use pm_kind, only: IKC => IK3
550 : #include "pm_option@routines.inc.F90"
551 2 : end procedure
552 : #endif
553 :
554 : #if IK2_ENABLED
555 0 : module procedure getOption_D2_IK2
556 : use pm_kind, only: IKC => IK2
557 : #include "pm_option@routines.inc.F90"
558 0 : end procedure
559 : #endif
560 :
561 : #if IK1_ENABLED
562 0 : module procedure getOption_D2_IK1
563 : use pm_kind, only: IKC => IK1
564 : #include "pm_option@routines.inc.F90"
565 0 : end procedure
566 : #endif
567 :
568 : #undef IK_ENABLED
569 :
570 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
571 :
572 : #define LK_ENABLED 1
573 :
574 : #if LK5_ENABLED
575 0 : module procedure getOption_D2_LK5
576 : use pm_kind, only: LKC => LK5
577 : #include "pm_option@routines.inc.F90"
578 0 : end procedure
579 : #endif
580 :
581 : #if LK4_ENABLED
582 0 : module procedure getOption_D2_LK4
583 : use pm_kind, only: LKC => LK4
584 : #include "pm_option@routines.inc.F90"
585 0 : end procedure
586 : #endif
587 :
588 : #if LK3_ENABLED
589 2 : module procedure getOption_D2_LK3
590 : use pm_kind, only: LKC => LK3
591 : #include "pm_option@routines.inc.F90"
592 2 : end procedure
593 : #endif
594 :
595 : #if LK2_ENABLED
596 0 : module procedure getOption_D2_LK2
597 : use pm_kind, only: LKC => LK2
598 : #include "pm_option@routines.inc.F90"
599 0 : end procedure
600 : #endif
601 :
602 : #if LK1_ENABLED
603 0 : module procedure getOption_D2_LK1
604 : use pm_kind, only: LKC => LK1
605 : #include "pm_option@routines.inc.F90"
606 0 : end procedure
607 : #endif
608 :
609 : #undef LK_ENABLED
610 :
611 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
612 :
613 : #define CK_ENABLED 1
614 :
615 : #if CK5_ENABLED
616 : module procedure getOption_D2_CK5
617 : use pm_kind, only: CKC => CK5
618 : #include "pm_option@routines.inc.F90"
619 : end procedure
620 : #endif
621 :
622 : #if CK4_ENABLED
623 0 : module procedure getOption_D2_CK4
624 : use pm_kind, only: CKC => CK4
625 : #include "pm_option@routines.inc.F90"
626 0 : end procedure
627 : #endif
628 :
629 : #if CK3_ENABLED
630 0 : module procedure getOption_D2_CK3
631 : use pm_kind, only: CKC => CK3
632 : #include "pm_option@routines.inc.F90"
633 0 : end procedure
634 : #endif
635 :
636 : #if CK2_ENABLED
637 2 : module procedure getOption_D2_CK2
638 : use pm_kind, only: CKC => CK2
639 : #include "pm_option@routines.inc.F90"
640 2 : end procedure
641 : #endif
642 :
643 : #if CK1_ENABLED
644 0 : module procedure getOption_D2_CK1
645 : use pm_kind, only: CKC => CK1
646 : #include "pm_option@routines.inc.F90"
647 0 : end procedure
648 : #endif
649 :
650 : #undef CK_ENABLED
651 :
652 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
653 :
654 : #define RK_ENABLED 1
655 :
656 : #if RK5_ENABLED
657 : module procedure getOption_D2_RK5
658 : use pm_kind, only: RKC => RK5
659 : #include "pm_option@routines.inc.F90"
660 : end procedure
661 : #endif
662 :
663 : #if RK4_ENABLED
664 0 : module procedure getOption_D2_RK4
665 : use pm_kind, only: RKC => RK4
666 : #include "pm_option@routines.inc.F90"
667 0 : end procedure
668 : #endif
669 :
670 : #if RK3_ENABLED
671 0 : module procedure getOption_D2_RK3
672 : use pm_kind, only: RKC => RK3
673 : #include "pm_option@routines.inc.F90"
674 0 : end procedure
675 : #endif
676 :
677 : #if RK2_ENABLED
678 2 : module procedure getOption_D2_RK2
679 : use pm_kind, only: RKC => RK2
680 : #include "pm_option@routines.inc.F90"
681 2 : end procedure
682 : #endif
683 :
684 : #if RK1_ENABLED
685 0 : module procedure getOption_D2_RK1
686 : use pm_kind, only: RKC => RK1
687 : #include "pm_option@routines.inc.F90"
688 0 : end procedure
689 : #endif
690 :
691 : #undef RK_ENABLED
692 :
693 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
694 :
695 : #undef D2_ENABLED
696 :
697 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
698 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
699 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
700 :
701 : #undef getOption_ENABLED
702 :
703 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
704 :
705 : end submodule routines
|