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_val2Real](@ref pm_val2real).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_val2real) 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 : implicit none
40 :
41 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
42 :
43 : contains
44 :
45 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
46 :
47 : #define getReal_ENABLED 1
48 :
49 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
50 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 :
53 : #define Def_ENABLED 1
54 :
55 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
56 :
57 : #define SK_ENABLED 1
58 :
59 : #if SK5_ENABLED
60 : module procedure getRealDef_SK5
61 : use pm_kind, only: RKC => RK, SKC => SK5
62 : #include "pm_val2real@routines.inc.F90"
63 : end procedure
64 : #endif
65 :
66 : #if SK4_ENABLED
67 : module procedure getRealDef_SK4
68 : use pm_kind, only: RKC => RK, SKC => SK4
69 : #include "pm_val2real@routines.inc.F90"
70 : end procedure
71 : #endif
72 :
73 : #if SK3_ENABLED
74 : module procedure getRealDef_SK3
75 : use pm_kind, only: RKC => RK, SKC => SK3
76 : #include "pm_val2real@routines.inc.F90"
77 : end procedure
78 : #endif
79 :
80 : #if SK2_ENABLED
81 : module procedure getRealDef_SK2
82 : use pm_kind, only: RKC => RK, SKC => SK2
83 : #include "pm_val2real@routines.inc.F90"
84 : end procedure
85 : #endif
86 :
87 : #if SK1_ENABLED
88 15 : module procedure getRealDef_SK1
89 : use pm_kind, only: RKC => RK, SKC => SK1
90 : #include "pm_val2real@routines.inc.F90"
91 15 : end procedure
92 : #endif
93 :
94 : #undef SK_ENABLED
95 :
96 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
97 :
98 : #define LK_ENABLED 1
99 :
100 : #if LK5_ENABLED
101 0 : module procedure getRealDef_LK5
102 : use pm_kind, only: RKC => RK, LKC => LK5
103 : #include "pm_val2real@routines.inc.F90"
104 0 : end procedure
105 : #endif
106 :
107 : #if LK4_ENABLED
108 0 : module procedure getRealDef_LK4
109 : use pm_kind, only: RKC => RK, LKC => LK4
110 : #include "pm_val2real@routines.inc.F90"
111 0 : end procedure
112 : #endif
113 :
114 : #if LK3_ENABLED
115 5 : module procedure getRealDef_LK3
116 : use pm_kind, only: RKC => RK, LKC => LK3
117 : #include "pm_val2real@routines.inc.F90"
118 5 : end procedure
119 : #endif
120 :
121 : #if LK2_ENABLED
122 0 : module procedure getRealDef_LK2
123 : use pm_kind, only: RKC => RK, LKC => LK2
124 : #include "pm_val2real@routines.inc.F90"
125 0 : end procedure
126 : #endif
127 :
128 : #if LK1_ENABLED
129 0 : module procedure getRealDef_LK1
130 : use pm_kind, only: RKC => RK, LKC => LK1
131 : #include "pm_val2real@routines.inc.F90"
132 0 : end procedure
133 : #endif
134 :
135 : #undef LK_ENABLED
136 :
137 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
138 :
139 : #undef Def_ENABLED
140 :
141 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
142 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
143 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
144 :
145 : #undef getReal_ENABLED
146 :
147 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
148 :
149 : #define setReal_ENABLED 1
150 :
151 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
152 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
153 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
154 :
155 : #define Err_ENABLED 1
156 :
157 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
158 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
159 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
160 :
161 : #define SK_ENABLED 1
162 :
163 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
164 :
165 : #if RK5_ENABLED && SK5_ENABLED
166 : module procedure setRealErr_RK5_SK5
167 : use pm_kind, only: RKC => RK5, SKC => SK5
168 : #include "pm_val2real@routines.inc.F90"
169 : end procedure
170 : #endif
171 :
172 : #if RK5_ENABLED && SK4_ENABLED
173 : module procedure setRealErr_RK5_SK4
174 : use pm_kind, only: RKC => RK5, SKC => SK4
175 : #include "pm_val2real@routines.inc.F90"
176 : end procedure
177 : #endif
178 :
179 : #if RK5_ENABLED && SK3_ENABLED
180 : module procedure setRealErr_RK5_SK3
181 : use pm_kind, only: RKC => RK5, SKC => SK3
182 : #include "pm_val2real@routines.inc.F90"
183 : end procedure
184 : #endif
185 :
186 : #if RK5_ENABLED && SK2_ENABLED
187 : module procedure setRealErr_RK5_SK2
188 : use pm_kind, only: RKC => RK5, SKC => SK2
189 : #include "pm_val2real@routines.inc.F90"
190 : end procedure
191 : #endif
192 :
193 : #if RK5_ENABLED && SK1_ENABLED
194 : module procedure setRealErr_RK5_SK1
195 : use pm_kind, only: RKC => RK5, SKC => SK1
196 : #include "pm_val2real@routines.inc.F90"
197 : end procedure
198 : #endif
199 :
200 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
201 :
202 : #if RK4_ENABLED && SK5_ENABLED
203 : module procedure setRealErr_RK4_SK5
204 : use pm_kind, only: RKC => RK4, SKC => SK5
205 : #include "pm_val2real@routines.inc.F90"
206 : end procedure
207 : #endif
208 :
209 : #if RK4_ENABLED && SK4_ENABLED
210 : module procedure setRealErr_RK4_SK4
211 : use pm_kind, only: RKC => RK4, SKC => SK4
212 : #include "pm_val2real@routines.inc.F90"
213 : end procedure
214 : #endif
215 :
216 : #if RK4_ENABLED && SK3_ENABLED
217 : module procedure setRealErr_RK4_SK3
218 : use pm_kind, only: RKC => RK4, SKC => SK3
219 : #include "pm_val2real@routines.inc.F90"
220 : end procedure
221 : #endif
222 :
223 : #if RK4_ENABLED && SK2_ENABLED
224 : module procedure setRealErr_RK4_SK2
225 : use pm_kind, only: RKC => RK4, SKC => SK2
226 : #include "pm_val2real@routines.inc.F90"
227 : end procedure
228 : #endif
229 :
230 : #if RK4_ENABLED && SK1_ENABLED
231 0 : module procedure setRealErr_RK4_SK1
232 : use pm_kind, only: RKC => RK4, SKC => SK1
233 : #include "pm_val2real@routines.inc.F90"
234 0 : end procedure
235 : #endif
236 :
237 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
238 :
239 : #if RK3_ENABLED && SK5_ENABLED
240 : module procedure setRealErr_RK3_SK5
241 : use pm_kind, only: RKC => RK3, SKC => SK5
242 : #include "pm_val2real@routines.inc.F90"
243 : end procedure
244 : #endif
245 :
246 : #if RK3_ENABLED && SK4_ENABLED
247 : module procedure setRealErr_RK3_SK4
248 : use pm_kind, only: RKC => RK3, SKC => SK4
249 : #include "pm_val2real@routines.inc.F90"
250 : end procedure
251 : #endif
252 :
253 : #if RK3_ENABLED && SK3_ENABLED
254 : module procedure setRealErr_RK3_SK3
255 : use pm_kind, only: RKC => RK3, SKC => SK3
256 : #include "pm_val2real@routines.inc.F90"
257 : end procedure
258 : #endif
259 :
260 : #if RK3_ENABLED && SK2_ENABLED
261 : module procedure setRealErr_RK3_SK2
262 : use pm_kind, only: RKC => RK3, SKC => SK2
263 : #include "pm_val2real@routines.inc.F90"
264 : end procedure
265 : #endif
266 :
267 : #if RK3_ENABLED && SK1_ENABLED
268 0 : module procedure setRealErr_RK3_SK1
269 : use pm_kind, only: RKC => RK3, SKC => SK1
270 : #include "pm_val2real@routines.inc.F90"
271 0 : end procedure
272 : #endif
273 :
274 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
275 :
276 : #if RK2_ENABLED && SK5_ENABLED
277 : module procedure setRealErr_RK2_SK5
278 : use pm_kind, only: RKC => RK2, SKC => SK5
279 : #include "pm_val2real@routines.inc.F90"
280 : end procedure
281 : #endif
282 :
283 : #if RK2_ENABLED && SK4_ENABLED
284 : module procedure setRealErr_RK2_SK4
285 : use pm_kind, only: RKC => RK2, SKC => SK4
286 : #include "pm_val2real@routines.inc.F90"
287 : end procedure
288 : #endif
289 :
290 : #if RK2_ENABLED && SK3_ENABLED
291 : module procedure setRealErr_RK2_SK3
292 : use pm_kind, only: RKC => RK2, SKC => SK3
293 : #include "pm_val2real@routines.inc.F90"
294 : end procedure
295 : #endif
296 :
297 : #if RK2_ENABLED && SK2_ENABLED
298 : module procedure setRealErr_RK2_SK2
299 : use pm_kind, only: RKC => RK2, SKC => SK2
300 : #include "pm_val2real@routines.inc.F90"
301 : end procedure
302 : #endif
303 :
304 : #if RK2_ENABLED && SK1_ENABLED
305 3 : module procedure setRealErr_RK2_SK1
306 : use pm_kind, only: RKC => RK2, SKC => SK1
307 : #include "pm_val2real@routines.inc.F90"
308 3 : end procedure
309 : #endif
310 :
311 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
312 :
313 : #if RK1_ENABLED && SK5_ENABLED
314 : module procedure setRealErr_RK1_SK5
315 : use pm_kind, only: RKC => RK1, SKC => SK5
316 : #include "pm_val2real@routines.inc.F90"
317 : end procedure
318 : #endif
319 :
320 : #if RK1_ENABLED && SK4_ENABLED
321 : module procedure setRealErr_RK1_SK4
322 : use pm_kind, only: RKC => RK1, SKC => SK4
323 : #include "pm_val2real@routines.inc.F90"
324 : end procedure
325 : #endif
326 :
327 : #if RK1_ENABLED && SK3_ENABLED
328 : module procedure setRealErr_RK1_SK3
329 : use pm_kind, only: RKC => RK1, SKC => SK3
330 : #include "pm_val2real@routines.inc.F90"
331 : end procedure
332 : #endif
333 :
334 : #if RK1_ENABLED && SK2_ENABLED
335 : module procedure setRealErr_RK1_SK2
336 : use pm_kind, only: RKC => RK1, SKC => SK2
337 : #include "pm_val2real@routines.inc.F90"
338 : end procedure
339 : #endif
340 :
341 : #if RK1_ENABLED && SK1_ENABLED
342 9 : module procedure setRealErr_RK1_SK1
343 : use pm_kind, only: RKC => RK1, SKC => SK1
344 : #include "pm_val2real@routines.inc.F90"
345 9 : end procedure
346 : #endif
347 :
348 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
349 :
350 : #undef SK_ENABLED
351 :
352 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
353 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
354 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
355 :
356 : #undef Err_ENABLED
357 :
358 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
359 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
360 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
361 :
362 : #define Def_ENABLED 1
363 :
364 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
365 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
366 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
367 :
368 : #define SK_ENABLED 1
369 :
370 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
371 :
372 : #if RK5_ENABLED && SK5_ENABLED
373 : module procedure setRealDef_RK5_SK5
374 : use pm_kind, only: RKC => RK5, SKC => SK5
375 : #include "pm_val2real@routines.inc.F90"
376 : end procedure
377 : #endif
378 :
379 : #if RK5_ENABLED && SK4_ENABLED
380 : module procedure setRealDef_RK5_SK4
381 : use pm_kind, only: RKC => RK5, SKC => SK4
382 : #include "pm_val2real@routines.inc.F90"
383 : end procedure
384 : #endif
385 :
386 : #if RK5_ENABLED && SK3_ENABLED
387 : module procedure setRealDef_RK5_SK3
388 : use pm_kind, only: RKC => RK5, SKC => SK3
389 : #include "pm_val2real@routines.inc.F90"
390 : end procedure
391 : #endif
392 :
393 : #if RK5_ENABLED && SK2_ENABLED
394 : module procedure setRealDef_RK5_SK2
395 : use pm_kind, only: RKC => RK5, SKC => SK2
396 : #include "pm_val2real@routines.inc.F90"
397 : end procedure
398 : #endif
399 :
400 : #if RK5_ENABLED && SK1_ENABLED
401 : module procedure setRealDef_RK5_SK1
402 : use pm_kind, only: RKC => RK5, SKC => SK1
403 : #include "pm_val2real@routines.inc.F90"
404 : end procedure
405 : #endif
406 :
407 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
408 :
409 : #if RK4_ENABLED && SK5_ENABLED
410 : module procedure setRealDef_RK4_SK5
411 : use pm_kind, only: RKC => RK4, SKC => SK5
412 : #include "pm_val2real@routines.inc.F90"
413 : end procedure
414 : #endif
415 :
416 : #if RK4_ENABLED && SK4_ENABLED
417 : module procedure setRealDef_RK4_SK4
418 : use pm_kind, only: RKC => RK4, SKC => SK4
419 : #include "pm_val2real@routines.inc.F90"
420 : end procedure
421 : #endif
422 :
423 : #if RK4_ENABLED && SK3_ENABLED
424 : module procedure setRealDef_RK4_SK3
425 : use pm_kind, only: RKC => RK4, SKC => SK3
426 : #include "pm_val2real@routines.inc.F90"
427 : end procedure
428 : #endif
429 :
430 : #if RK4_ENABLED && SK2_ENABLED
431 : module procedure setRealDef_RK4_SK2
432 : use pm_kind, only: RKC => RK4, SKC => SK2
433 : #include "pm_val2real@routines.inc.F90"
434 : end procedure
435 : #endif
436 :
437 : #if RK4_ENABLED && SK1_ENABLED
438 0 : module procedure setRealDef_RK4_SK1
439 : use pm_kind, only: RKC => RK4, SKC => SK1
440 : #include "pm_val2real@routines.inc.F90"
441 0 : end procedure
442 : #endif
443 :
444 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
445 :
446 : #if RK3_ENABLED && SK5_ENABLED
447 : module procedure setRealDef_RK3_SK5
448 : use pm_kind, only: RKC => RK3, SKC => SK5
449 : #include "pm_val2real@routines.inc.F90"
450 : end procedure
451 : #endif
452 :
453 : #if RK3_ENABLED && SK4_ENABLED
454 : module procedure setRealDef_RK3_SK4
455 : use pm_kind, only: RKC => RK3, SKC => SK4
456 : #include "pm_val2real@routines.inc.F90"
457 : end procedure
458 : #endif
459 :
460 : #if RK3_ENABLED && SK3_ENABLED
461 : module procedure setRealDef_RK3_SK3
462 : use pm_kind, only: RKC => RK3, SKC => SK3
463 : #include "pm_val2real@routines.inc.F90"
464 : end procedure
465 : #endif
466 :
467 : #if RK3_ENABLED && SK2_ENABLED
468 : module procedure setRealDef_RK3_SK2
469 : use pm_kind, only: RKC => RK3, SKC => SK2
470 : #include "pm_val2real@routines.inc.F90"
471 : end procedure
472 : #endif
473 :
474 : #if RK3_ENABLED && SK1_ENABLED
475 0 : module procedure setRealDef_RK3_SK1
476 : use pm_kind, only: RKC => RK3, SKC => SK1
477 : #include "pm_val2real@routines.inc.F90"
478 0 : end procedure
479 : #endif
480 :
481 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
482 :
483 : #if RK2_ENABLED && SK5_ENABLED
484 : module procedure setRealDef_RK2_SK5
485 : use pm_kind, only: RKC => RK2, SKC => SK5
486 : #include "pm_val2real@routines.inc.F90"
487 : end procedure
488 : #endif
489 :
490 : #if RK2_ENABLED && SK4_ENABLED
491 : module procedure setRealDef_RK2_SK4
492 : use pm_kind, only: RKC => RK2, SKC => SK4
493 : #include "pm_val2real@routines.inc.F90"
494 : end procedure
495 : #endif
496 :
497 : #if RK2_ENABLED && SK3_ENABLED
498 : module procedure setRealDef_RK2_SK3
499 : use pm_kind, only: RKC => RK2, SKC => SK3
500 : #include "pm_val2real@routines.inc.F90"
501 : end procedure
502 : #endif
503 :
504 : #if RK2_ENABLED && SK2_ENABLED
505 : module procedure setRealDef_RK2_SK2
506 : use pm_kind, only: RKC => RK2, SKC => SK2
507 : #include "pm_val2real@routines.inc.F90"
508 : end procedure
509 : #endif
510 :
511 : #if RK2_ENABLED && SK1_ENABLED
512 0 : module procedure setRealDef_RK2_SK1
513 : use pm_kind, only: RKC => RK2, SKC => SK1
514 : #include "pm_val2real@routines.inc.F90"
515 0 : end procedure
516 : #endif
517 :
518 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
519 :
520 : #if RK1_ENABLED && SK5_ENABLED
521 : module procedure setRealDef_RK1_SK5
522 : use pm_kind, only: RKC => RK1, SKC => SK5
523 : #include "pm_val2real@routines.inc.F90"
524 : end procedure
525 : #endif
526 :
527 : #if RK1_ENABLED && SK4_ENABLED
528 : module procedure setRealDef_RK1_SK4
529 : use pm_kind, only: RKC => RK1, SKC => SK4
530 : #include "pm_val2real@routines.inc.F90"
531 : end procedure
532 : #endif
533 :
534 : #if RK1_ENABLED && SK3_ENABLED
535 : module procedure setRealDef_RK1_SK3
536 : use pm_kind, only: RKC => RK1, SKC => SK3
537 : #include "pm_val2real@routines.inc.F90"
538 : end procedure
539 : #endif
540 :
541 : #if RK1_ENABLED && SK2_ENABLED
542 : module procedure setRealDef_RK1_SK2
543 : use pm_kind, only: RKC => RK1, SKC => SK2
544 : #include "pm_val2real@routines.inc.F90"
545 : end procedure
546 : #endif
547 :
548 : #if RK1_ENABLED && SK1_ENABLED
549 8 : module procedure setRealDef_RK1_SK1
550 : use pm_kind, only: RKC => RK1, SKC => SK1
551 : #include "pm_val2real@routines.inc.F90"
552 8 : end procedure
553 : #endif
554 :
555 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
556 :
557 : #undef SK_ENABLED
558 :
559 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
560 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
561 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
562 :
563 : #define LK_ENABLED 1
564 :
565 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
566 :
567 : #if RK5_ENABLED && LK5_ENABLED
568 : module procedure setRealDef_RK5_LK5
569 : use pm_kind, only: RKC => RK5, LKC => LK5
570 : #include "pm_val2real@routines.inc.F90"
571 : end procedure
572 : #endif
573 :
574 : #if RK5_ENABLED && LK4_ENABLED
575 : module procedure setRealDef_RK5_LK4
576 : use pm_kind, only: RKC => RK5, LKC => LK4
577 : #include "pm_val2real@routines.inc.F90"
578 : end procedure
579 : #endif
580 :
581 : #if RK5_ENABLED && LK3_ENABLED
582 : module procedure setRealDef_RK5_LK3
583 : use pm_kind, only: RKC => RK5, LKC => LK3
584 : #include "pm_val2real@routines.inc.F90"
585 : end procedure
586 : #endif
587 :
588 : #if RK5_ENABLED && LK2_ENABLED
589 : module procedure setRealDef_RK5_LK2
590 : use pm_kind, only: RKC => RK5, LKC => LK2
591 : #include "pm_val2real@routines.inc.F90"
592 : end procedure
593 : #endif
594 :
595 : #if RK5_ENABLED && LK1_ENABLED
596 : module procedure setRealDef_RK5_LK1
597 : use pm_kind, only: RKC => RK5, LKC => LK1
598 : #include "pm_val2real@routines.inc.F90"
599 : end procedure
600 : #endif
601 :
602 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
603 :
604 : #if RK4_ENABLED && LK5_ENABLED
605 0 : module procedure setRealDef_RK4_LK5
606 : use pm_kind, only: RKC => RK4, LKC => LK5
607 : #include "pm_val2real@routines.inc.F90"
608 0 : end procedure
609 : #endif
610 :
611 : #if RK4_ENABLED && LK4_ENABLED
612 0 : module procedure setRealDef_RK4_LK4
613 : use pm_kind, only: RKC => RK4, LKC => LK4
614 : #include "pm_val2real@routines.inc.F90"
615 0 : end procedure
616 : #endif
617 :
618 : #if RK4_ENABLED && LK3_ENABLED
619 0 : module procedure setRealDef_RK4_LK3
620 : use pm_kind, only: RKC => RK4, LKC => LK3
621 : #include "pm_val2real@routines.inc.F90"
622 0 : end procedure
623 : #endif
624 :
625 : #if RK4_ENABLED && LK2_ENABLED
626 0 : module procedure setRealDef_RK4_LK2
627 : use pm_kind, only: RKC => RK4, LKC => LK2
628 : #include "pm_val2real@routines.inc.F90"
629 0 : end procedure
630 : #endif
631 :
632 : #if RK4_ENABLED && LK1_ENABLED
633 0 : module procedure setRealDef_RK4_LK1
634 : use pm_kind, only: RKC => RK4, LKC => LK1
635 : #include "pm_val2real@routines.inc.F90"
636 0 : end procedure
637 : #endif
638 :
639 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
640 :
641 : #if RK3_ENABLED && LK5_ENABLED
642 0 : module procedure setRealDef_RK3_LK5
643 : use pm_kind, only: RKC => RK3, LKC => LK5
644 : #include "pm_val2real@routines.inc.F90"
645 0 : end procedure
646 : #endif
647 :
648 : #if RK3_ENABLED && LK4_ENABLED
649 0 : module procedure setRealDef_RK3_LK4
650 : use pm_kind, only: RKC => RK3, LKC => LK4
651 : #include "pm_val2real@routines.inc.F90"
652 0 : end procedure
653 : #endif
654 :
655 : #if RK3_ENABLED && LK3_ENABLED
656 0 : module procedure setRealDef_RK3_LK3
657 : use pm_kind, only: RKC => RK3, LKC => LK3
658 : #include "pm_val2real@routines.inc.F90"
659 0 : end procedure
660 : #endif
661 :
662 : #if RK3_ENABLED && LK2_ENABLED
663 0 : module procedure setRealDef_RK3_LK2
664 : use pm_kind, only: RKC => RK3, LKC => LK2
665 : #include "pm_val2real@routines.inc.F90"
666 0 : end procedure
667 : #endif
668 :
669 : #if RK3_ENABLED && LK1_ENABLED
670 0 : module procedure setRealDef_RK3_LK1
671 : use pm_kind, only: RKC => RK3, LKC => LK1
672 : #include "pm_val2real@routines.inc.F90"
673 0 : end procedure
674 : #endif
675 :
676 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
677 :
678 : #if RK2_ENABLED && LK5_ENABLED
679 0 : module procedure setRealDef_RK2_LK5
680 : use pm_kind, only: RKC => RK2, LKC => LK5
681 : #include "pm_val2real@routines.inc.F90"
682 0 : end procedure
683 : #endif
684 :
685 : #if RK2_ENABLED && LK4_ENABLED
686 0 : module procedure setRealDef_RK2_LK4
687 : use pm_kind, only: RKC => RK2, LKC => LK4
688 : #include "pm_val2real@routines.inc.F90"
689 0 : end procedure
690 : #endif
691 :
692 : #if RK2_ENABLED && LK3_ENABLED
693 0 : module procedure setRealDef_RK2_LK3
694 : use pm_kind, only: RKC => RK2, LKC => LK3
695 : #include "pm_val2real@routines.inc.F90"
696 0 : end procedure
697 : #endif
698 :
699 : #if RK2_ENABLED && LK2_ENABLED
700 0 : module procedure setRealDef_RK2_LK2
701 : use pm_kind, only: RKC => RK2, LKC => LK2
702 : #include "pm_val2real@routines.inc.F90"
703 0 : end procedure
704 : #endif
705 :
706 : #if RK2_ENABLED && LK1_ENABLED
707 0 : module procedure setRealDef_RK2_LK1
708 : use pm_kind, only: RKC => RK2, LKC => LK1
709 : #include "pm_val2real@routines.inc.F90"
710 0 : end procedure
711 : #endif
712 :
713 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
714 :
715 : #if RK1_ENABLED && LK5_ENABLED
716 0 : module procedure setRealDef_RK1_LK5
717 : use pm_kind, only: RKC => RK1, LKC => LK5
718 : #include "pm_val2real@routines.inc.F90"
719 0 : end procedure
720 : #endif
721 :
722 : #if RK1_ENABLED && LK4_ENABLED
723 0 : module procedure setRealDef_RK1_LK4
724 : use pm_kind, only: RKC => RK1, LKC => LK4
725 : #include "pm_val2real@routines.inc.F90"
726 0 : end procedure
727 : #endif
728 :
729 : #if RK1_ENABLED && LK3_ENABLED
730 5 : module procedure setRealDef_RK1_LK3
731 : use pm_kind, only: RKC => RK1, LKC => LK3
732 : #include "pm_val2real@routines.inc.F90"
733 5 : end procedure
734 : #endif
735 :
736 : #if RK1_ENABLED && LK2_ENABLED
737 0 : module procedure setRealDef_RK1_LK2
738 : use pm_kind, only: RKC => RK1, LKC => LK2
739 : #include "pm_val2real@routines.inc.F90"
740 0 : end procedure
741 : #endif
742 :
743 : #if RK1_ENABLED && LK1_ENABLED
744 0 : module procedure setRealDef_RK1_LK1
745 : use pm_kind, only: RKC => RK1, LKC => LK1
746 : #include "pm_val2real@routines.inc.F90"
747 0 : end procedure
748 : #endif
749 :
750 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
751 :
752 : #undef LK_ENABLED
753 :
754 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
755 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
756 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
757 :
758 : #undef Def_ENABLED
759 :
760 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
761 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
762 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
763 :
764 : #undef setReal_ENABLED
765 :
766 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
767 :
768 : #undef CHECK_ASSERTION
769 :
770 : end submodule routines
|