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_arrayRefine](@ref pm_arrayRefine).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \AmirShahmoradi, Saturday 1:48 AM, August 20, 2016, Institute for Computational Engineering and Sciences, UT Austin, TX
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_arrayRefine) 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_sampleWeight, only: setReweight
40 : use pm_arrayVerbose, only: getVerbose
41 : use pm_arrayResize, only: setResized
42 :
43 : implicit none
44 :
45 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
46 :
47 : contains
48 :
49 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
50 :
51 : #define getRefined_ENABLED 1
52 :
53 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
54 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
55 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
56 :
57 : #define WTI_ENABLED 1
58 :
59 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
60 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
61 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
62 :
63 : #define D0_ENABLED 1
64 :
65 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
66 :
67 : #define SK_ENABLED 1
68 :
69 : #if SK5_ENABLED
70 : module procedure getRefined_WTI_D0_SK5
71 : use pm_kind, only: SKC => SK5
72 : #include "pm_arrayRefine@routines.inc.F90"
73 : end procedure
74 : #endif
75 :
76 : #if SK4_ENABLED
77 : module procedure getRefined_WTI_D0_SK4
78 : use pm_kind, only: SKC => SK4
79 : #include "pm_arrayRefine@routines.inc.F90"
80 : end procedure
81 : #endif
82 :
83 : #if SK3_ENABLED
84 : module procedure getRefined_WTI_D0_SK3
85 : use pm_kind, only: SKC => SK3
86 : #include "pm_arrayRefine@routines.inc.F90"
87 : end procedure
88 : #endif
89 :
90 : #if SK2_ENABLED
91 : module procedure getRefined_WTI_D0_SK2
92 : use pm_kind, only: SKC => SK2
93 : #include "pm_arrayRefine@routines.inc.F90"
94 : end procedure
95 : #endif
96 :
97 : #if SK1_ENABLED
98 10 : module procedure getRefined_WTI_D0_SK1
99 : use pm_kind, only: SKC => SK1
100 : #include "pm_arrayRefine@routines.inc.F90"
101 10 : end procedure
102 : #endif
103 :
104 : #undef SK_ENABLED
105 :
106 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
107 :
108 : #undef D0_ENABLED
109 :
110 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
111 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
112 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
113 :
114 : #define D1_ENABLED 1
115 :
116 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
117 :
118 : #define SK_ENABLED 1
119 :
120 : #if SK5_ENABLED
121 : module procedure getRefined_WTI_D1_SK5
122 : use pm_kind, only: SKC => SK5
123 : #include "pm_arrayRefine@routines.inc.F90"
124 : end procedure
125 : #endif
126 :
127 : #if SK4_ENABLED
128 : module procedure getRefined_WTI_D1_SK4
129 : use pm_kind, only: SKC => SK4
130 : #include "pm_arrayRefine@routines.inc.F90"
131 : end procedure
132 : #endif
133 :
134 : #if SK3_ENABLED
135 : module procedure getRefined_WTI_D1_SK3
136 : use pm_kind, only: SKC => SK3
137 : #include "pm_arrayRefine@routines.inc.F90"
138 : end procedure
139 : #endif
140 :
141 : #if SK2_ENABLED
142 : module procedure getRefined_WTI_D1_SK2
143 : use pm_kind, only: SKC => SK2
144 : #include "pm_arrayRefine@routines.inc.F90"
145 : end procedure
146 : #endif
147 :
148 : #if SK1_ENABLED
149 10 : module procedure getRefined_WTI_D1_SK1
150 : use pm_kind, only: SKC => SK1
151 : #include "pm_arrayRefine@routines.inc.F90"
152 10 : end procedure
153 : #endif
154 :
155 : #undef SK_ENABLED
156 :
157 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
158 :
159 : #define IK_ENABLED 1
160 :
161 : #if IK5_ENABLED
162 0 : module procedure getRefined_WTI_D1_IK5
163 : use pm_kind, only: IKC => IK5
164 : #include "pm_arrayRefine@routines.inc.F90"
165 0 : end procedure
166 : #endif
167 :
168 : #if IK4_ENABLED
169 0 : module procedure getRefined_WTI_D1_IK4
170 : use pm_kind, only: IKC => IK4
171 : #include "pm_arrayRefine@routines.inc.F90"
172 0 : end procedure
173 : #endif
174 :
175 : #if IK3_ENABLED
176 10 : module procedure getRefined_WTI_D1_IK3
177 : use pm_kind, only: IKC => IK3
178 : #include "pm_arrayRefine@routines.inc.F90"
179 10 : end procedure
180 : #endif
181 :
182 : #if IK2_ENABLED
183 0 : module procedure getRefined_WTI_D1_IK2
184 : use pm_kind, only: IKC => IK2
185 : #include "pm_arrayRefine@routines.inc.F90"
186 0 : end procedure
187 : #endif
188 :
189 : #if IK1_ENABLED
190 0 : module procedure getRefined_WTI_D1_IK1
191 : use pm_kind, only: IKC => IK1
192 : #include "pm_arrayRefine@routines.inc.F90"
193 0 : end procedure
194 : #endif
195 :
196 : #undef IK_ENABLED
197 :
198 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
199 :
200 : #define LK_ENABLED 1
201 :
202 : #if LK5_ENABLED
203 0 : module procedure getRefined_WTI_D1_LK5
204 : use pm_kind, only: LKC => LK5
205 : #include "pm_arrayRefine@routines.inc.F90"
206 0 : end procedure
207 : #endif
208 :
209 : #if LK4_ENABLED
210 0 : module procedure getRefined_WTI_D1_LK4
211 : use pm_kind, only: LKC => LK4
212 : #include "pm_arrayRefine@routines.inc.F90"
213 0 : end procedure
214 : #endif
215 :
216 : #if LK3_ENABLED
217 10 : module procedure getRefined_WTI_D1_LK3
218 : use pm_kind, only: LKC => LK3
219 : #include "pm_arrayRefine@routines.inc.F90"
220 10 : end procedure
221 : #endif
222 :
223 : #if LK2_ENABLED
224 0 : module procedure getRefined_WTI_D1_LK2
225 : use pm_kind, only: LKC => LK2
226 : #include "pm_arrayRefine@routines.inc.F90"
227 0 : end procedure
228 : #endif
229 :
230 : #if LK1_ENABLED
231 0 : module procedure getRefined_WTI_D1_LK1
232 : use pm_kind, only: LKC => LK1
233 : #include "pm_arrayRefine@routines.inc.F90"
234 0 : end procedure
235 : #endif
236 :
237 : #undef LK_ENABLED
238 :
239 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
240 :
241 : #define CK_ENABLED 1
242 :
243 : #if CK5_ENABLED
244 : module procedure getRefined_WTI_D1_CK5
245 : use pm_kind, only: CKC => CK5
246 : #include "pm_arrayRefine@routines.inc.F90"
247 : end procedure
248 : #endif
249 :
250 : #if CK4_ENABLED
251 0 : module procedure getRefined_WTI_D1_CK4
252 : use pm_kind, only: CKC => CK4
253 : #include "pm_arrayRefine@routines.inc.F90"
254 0 : end procedure
255 : #endif
256 :
257 : #if CK3_ENABLED
258 0 : module procedure getRefined_WTI_D1_CK3
259 : use pm_kind, only: CKC => CK3
260 : #include "pm_arrayRefine@routines.inc.F90"
261 0 : end procedure
262 : #endif
263 :
264 : #if CK2_ENABLED
265 0 : module procedure getRefined_WTI_D1_CK2
266 : use pm_kind, only: CKC => CK2
267 : #include "pm_arrayRefine@routines.inc.F90"
268 0 : end procedure
269 : #endif
270 :
271 : #if CK1_ENABLED
272 10 : module procedure getRefined_WTI_D1_CK1
273 : use pm_kind, only: CKC => CK1
274 : #include "pm_arrayRefine@routines.inc.F90"
275 10 : end procedure
276 : #endif
277 :
278 : #undef CK_ENABLED
279 :
280 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
281 :
282 : #define RK_ENABLED 1
283 :
284 : #if RK5_ENABLED
285 : module procedure getRefined_WTI_D1_RK5
286 : use pm_kind, only: RKC => RK5
287 : #include "pm_arrayRefine@routines.inc.F90"
288 : end procedure
289 : #endif
290 :
291 : #if RK4_ENABLED
292 0 : module procedure getRefined_WTI_D1_RK4
293 : use pm_kind, only: RKC => RK4
294 : #include "pm_arrayRefine@routines.inc.F90"
295 0 : end procedure
296 : #endif
297 :
298 : #if RK3_ENABLED
299 0 : module procedure getRefined_WTI_D1_RK3
300 : use pm_kind, only: RKC => RK3
301 : #include "pm_arrayRefine@routines.inc.F90"
302 0 : end procedure
303 : #endif
304 :
305 : #if RK2_ENABLED
306 0 : module procedure getRefined_WTI_D1_RK2
307 : use pm_kind, only: RKC => RK2
308 : #include "pm_arrayRefine@routines.inc.F90"
309 0 : end procedure
310 : #endif
311 :
312 : #if RK1_ENABLED
313 10 : module procedure getRefined_WTI_D1_RK1
314 : use pm_kind, only: RKC => RK1
315 : #include "pm_arrayRefine@routines.inc.F90"
316 10 : end procedure
317 : #endif
318 :
319 : #undef RK_ENABLED
320 :
321 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
322 :
323 : #undef D1_ENABLED
324 :
325 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
326 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
327 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
328 :
329 : #define D2_ENABLED 1
330 :
331 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
332 :
333 : #define SK_ENABLED 1
334 :
335 : #if SK5_ENABLED
336 : module procedure getRefined_WTI_D2_SK5
337 : use pm_kind, only: SKC => SK5
338 : #include "pm_arrayRefine@routines.inc.F90"
339 : end procedure
340 : #endif
341 :
342 : #if SK4_ENABLED
343 : module procedure getRefined_WTI_D2_SK4
344 : use pm_kind, only: SKC => SK4
345 : #include "pm_arrayRefine@routines.inc.F90"
346 : end procedure
347 : #endif
348 :
349 : #if SK3_ENABLED
350 : module procedure getRefined_WTI_D2_SK3
351 : use pm_kind, only: SKC => SK3
352 : #include "pm_arrayRefine@routines.inc.F90"
353 : end procedure
354 : #endif
355 :
356 : #if SK2_ENABLED
357 : module procedure getRefined_WTI_D2_SK2
358 : use pm_kind, only: SKC => SK2
359 : #include "pm_arrayRefine@routines.inc.F90"
360 : end procedure
361 : #endif
362 :
363 : #if SK1_ENABLED
364 20 : module procedure getRefined_WTI_D2_SK1
365 : use pm_kind, only: SKC => SK1
366 : #include "pm_arrayRefine@routines.inc.F90"
367 20 : end procedure
368 : #endif
369 :
370 : #undef SK_ENABLED
371 :
372 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
373 :
374 : #define IK_ENABLED 1
375 :
376 : #if IK5_ENABLED
377 0 : module procedure getRefined_WTI_D2_IK5
378 : use pm_kind, only: IKC => IK5
379 : #include "pm_arrayRefine@routines.inc.F90"
380 0 : end procedure
381 : #endif
382 :
383 : #if IK4_ENABLED
384 0 : module procedure getRefined_WTI_D2_IK4
385 : use pm_kind, only: IKC => IK4
386 : #include "pm_arrayRefine@routines.inc.F90"
387 0 : end procedure
388 : #endif
389 :
390 : #if IK3_ENABLED
391 20 : module procedure getRefined_WTI_D2_IK3
392 : use pm_kind, only: IKC => IK3
393 : #include "pm_arrayRefine@routines.inc.F90"
394 20 : end procedure
395 : #endif
396 :
397 : #if IK2_ENABLED
398 0 : module procedure getRefined_WTI_D2_IK2
399 : use pm_kind, only: IKC => IK2
400 : #include "pm_arrayRefine@routines.inc.F90"
401 0 : end procedure
402 : #endif
403 :
404 : #if IK1_ENABLED
405 0 : module procedure getRefined_WTI_D2_IK1
406 : use pm_kind, only: IKC => IK1
407 : #include "pm_arrayRefine@routines.inc.F90"
408 0 : end procedure
409 : #endif
410 :
411 : #undef IK_ENABLED
412 :
413 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
414 :
415 : #define LK_ENABLED 1
416 :
417 : #if LK5_ENABLED
418 0 : module procedure getRefined_WTI_D2_LK5
419 : use pm_kind, only: LKC => LK5
420 : #include "pm_arrayRefine@routines.inc.F90"
421 0 : end procedure
422 : #endif
423 :
424 : #if LK4_ENABLED
425 0 : module procedure getRefined_WTI_D2_LK4
426 : use pm_kind, only: LKC => LK4
427 : #include "pm_arrayRefine@routines.inc.F90"
428 0 : end procedure
429 : #endif
430 :
431 : #if LK3_ENABLED
432 20 : module procedure getRefined_WTI_D2_LK3
433 : use pm_kind, only: LKC => LK3
434 : #include "pm_arrayRefine@routines.inc.F90"
435 20 : end procedure
436 : #endif
437 :
438 : #if LK2_ENABLED
439 0 : module procedure getRefined_WTI_D2_LK2
440 : use pm_kind, only: LKC => LK2
441 : #include "pm_arrayRefine@routines.inc.F90"
442 0 : end procedure
443 : #endif
444 :
445 : #if LK1_ENABLED
446 0 : module procedure getRefined_WTI_D2_LK1
447 : use pm_kind, only: LKC => LK1
448 : #include "pm_arrayRefine@routines.inc.F90"
449 0 : end procedure
450 : #endif
451 :
452 : #undef LK_ENABLED
453 :
454 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
455 :
456 : #define CK_ENABLED 1
457 :
458 : #if CK5_ENABLED
459 : module procedure getRefined_WTI_D2_CK5
460 : use pm_kind, only: CKC => CK5
461 : #include "pm_arrayRefine@routines.inc.F90"
462 : end procedure
463 : #endif
464 :
465 : #if CK4_ENABLED
466 0 : module procedure getRefined_WTI_D2_CK4
467 : use pm_kind, only: CKC => CK4
468 : #include "pm_arrayRefine@routines.inc.F90"
469 0 : end procedure
470 : #endif
471 :
472 : #if CK3_ENABLED
473 0 : module procedure getRefined_WTI_D2_CK3
474 : use pm_kind, only: CKC => CK3
475 : #include "pm_arrayRefine@routines.inc.F90"
476 0 : end procedure
477 : #endif
478 :
479 : #if CK2_ENABLED
480 0 : module procedure getRefined_WTI_D2_CK2
481 : use pm_kind, only: CKC => CK2
482 : #include "pm_arrayRefine@routines.inc.F90"
483 0 : end procedure
484 : #endif
485 :
486 : #if CK1_ENABLED
487 20 : module procedure getRefined_WTI_D2_CK1
488 : use pm_kind, only: CKC => CK1
489 : #include "pm_arrayRefine@routines.inc.F90"
490 20 : end procedure
491 : #endif
492 :
493 : #undef CK_ENABLED
494 :
495 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
496 :
497 : #define RK_ENABLED 1
498 :
499 : #if RK5_ENABLED
500 : module procedure getRefined_WTI_D2_RK5
501 : use pm_kind, only: RKC => RK5
502 : #include "pm_arrayRefine@routines.inc.F90"
503 : end procedure
504 : #endif
505 :
506 : #if RK4_ENABLED
507 0 : module procedure getRefined_WTI_D2_RK4
508 : use pm_kind, only: RKC => RK4
509 : #include "pm_arrayRefine@routines.inc.F90"
510 0 : end procedure
511 : #endif
512 :
513 : #if RK3_ENABLED
514 0 : module procedure getRefined_WTI_D2_RK3
515 : use pm_kind, only: RKC => RK3
516 : #include "pm_arrayRefine@routines.inc.F90"
517 0 : end procedure
518 : #endif
519 :
520 : #if RK2_ENABLED
521 0 : module procedure getRefined_WTI_D2_RK2
522 : use pm_kind, only: RKC => RK2
523 : #include "pm_arrayRefine@routines.inc.F90"
524 0 : end procedure
525 : #endif
526 :
527 : #if RK1_ENABLED
528 20 : module procedure getRefined_WTI_D2_RK1
529 : use pm_kind, only: RKC => RK1
530 : #include "pm_arrayRefine@routines.inc.F90"
531 20 : end procedure
532 : #endif
533 :
534 : #undef RK_ENABLED
535 :
536 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
537 :
538 : #undef D2_ENABLED
539 :
540 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
541 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
542 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
543 :
544 : #undef WTI_ENABLED
545 :
546 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
547 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
548 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
549 :
550 : #undef getRefined_ENABLED
551 :
552 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
553 :
554 : #define setRefined_ENABLED 1
555 :
556 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
557 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
558 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
559 :
560 : #define WTI_ENABLED 1
561 :
562 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
563 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
564 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
565 :
566 : #define D0_ENABLED 1
567 :
568 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
569 :
570 : #define SK_ENABLED 1
571 :
572 : #if SK5_ENABLED
573 : module procedure setRefined_WTI_D0_SK5
574 : use pm_kind, only: SKC => SK5
575 : #include "pm_arrayRefine@routines.inc.F90"
576 : end procedure
577 : #endif
578 :
579 : #if SK4_ENABLED
580 : module procedure setRefined_WTI_D0_SK4
581 : use pm_kind, only: SKC => SK4
582 : #include "pm_arrayRefine@routines.inc.F90"
583 : end procedure
584 : #endif
585 :
586 : #if SK3_ENABLED
587 : module procedure setRefined_WTI_D0_SK3
588 : use pm_kind, only: SKC => SK3
589 : #include "pm_arrayRefine@routines.inc.F90"
590 : end procedure
591 : #endif
592 :
593 : #if SK2_ENABLED
594 : module procedure setRefined_WTI_D0_SK2
595 : use pm_kind, only: SKC => SK2
596 : #include "pm_arrayRefine@routines.inc.F90"
597 : end procedure
598 : #endif
599 :
600 : #if SK1_ENABLED
601 20 : module procedure setRefined_WTI_D0_SK1
602 : use pm_kind, only: SKC => SK1
603 : #include "pm_arrayRefine@routines.inc.F90"
604 : end procedure
605 : #endif
606 :
607 : #undef SK_ENABLED
608 :
609 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
610 :
611 : #undef D0_ENABLED
612 :
613 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
614 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
615 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
616 :
617 : #define D1_ENABLED 1
618 :
619 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
620 :
621 : #define SK_ENABLED 1
622 :
623 : #if SK5_ENABLED
624 : module procedure setRefined_WTI_D1_SK5
625 : use pm_kind, only: SKC => SK5
626 : #include "pm_arrayRefine@routines.inc.F90"
627 : end procedure
628 : #endif
629 :
630 : #if SK4_ENABLED
631 : module procedure setRefined_WTI_D1_SK4
632 : use pm_kind, only: SKC => SK4
633 : #include "pm_arrayRefine@routines.inc.F90"
634 : end procedure
635 : #endif
636 :
637 : #if SK3_ENABLED
638 : module procedure setRefined_WTI_D1_SK3
639 : use pm_kind, only: SKC => SK3
640 : #include "pm_arrayRefine@routines.inc.F90"
641 : end procedure
642 : #endif
643 :
644 : #if SK2_ENABLED
645 : module procedure setRefined_WTI_D1_SK2
646 : use pm_kind, only: SKC => SK2
647 : #include "pm_arrayRefine@routines.inc.F90"
648 : end procedure
649 : #endif
650 :
651 : #if SK1_ENABLED
652 20 : module procedure setRefined_WTI_D1_SK1
653 : use pm_kind, only: SKC => SK1
654 : #include "pm_arrayRefine@routines.inc.F90"
655 : end procedure
656 : #endif
657 :
658 : #undef SK_ENABLED
659 :
660 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
661 :
662 : #define IK_ENABLED 1
663 :
664 : #if IK5_ENABLED
665 0 : module procedure setRefined_WTI_D1_IK5
666 : use pm_kind, only: IKC => IK5
667 : #include "pm_arrayRefine@routines.inc.F90"
668 : end procedure
669 : #endif
670 :
671 : #if IK4_ENABLED
672 0 : module procedure setRefined_WTI_D1_IK4
673 : use pm_kind, only: IKC => IK4
674 : #include "pm_arrayRefine@routines.inc.F90"
675 : end procedure
676 : #endif
677 :
678 : #if IK3_ENABLED
679 20 : module procedure setRefined_WTI_D1_IK3
680 : use pm_kind, only: IKC => IK3
681 : #include "pm_arrayRefine@routines.inc.F90"
682 : end procedure
683 : #endif
684 :
685 : #if IK2_ENABLED
686 0 : module procedure setRefined_WTI_D1_IK2
687 : use pm_kind, only: IKC => IK2
688 : #include "pm_arrayRefine@routines.inc.F90"
689 : end procedure
690 : #endif
691 :
692 : #if IK1_ENABLED
693 0 : module procedure setRefined_WTI_D1_IK1
694 : use pm_kind, only: IKC => IK1
695 : #include "pm_arrayRefine@routines.inc.F90"
696 : end procedure
697 : #endif
698 :
699 : #undef IK_ENABLED
700 :
701 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
702 :
703 : #define LK_ENABLED 1
704 :
705 : #if LK5_ENABLED
706 0 : module procedure setRefined_WTI_D1_LK5
707 : use pm_kind, only: LKC => LK5
708 : #include "pm_arrayRefine@routines.inc.F90"
709 : end procedure
710 : #endif
711 :
712 : #if LK4_ENABLED
713 0 : module procedure setRefined_WTI_D1_LK4
714 : use pm_kind, only: LKC => LK4
715 : #include "pm_arrayRefine@routines.inc.F90"
716 : end procedure
717 : #endif
718 :
719 : #if LK3_ENABLED
720 20 : module procedure setRefined_WTI_D1_LK3
721 : use pm_kind, only: LKC => LK3
722 : #include "pm_arrayRefine@routines.inc.F90"
723 : end procedure
724 : #endif
725 :
726 : #if LK2_ENABLED
727 0 : module procedure setRefined_WTI_D1_LK2
728 : use pm_kind, only: LKC => LK2
729 : #include "pm_arrayRefine@routines.inc.F90"
730 : end procedure
731 : #endif
732 :
733 : #if LK1_ENABLED
734 0 : module procedure setRefined_WTI_D1_LK1
735 : use pm_kind, only: LKC => LK1
736 : #include "pm_arrayRefine@routines.inc.F90"
737 : end procedure
738 : #endif
739 :
740 : #undef LK_ENABLED
741 :
742 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
743 :
744 : #define CK_ENABLED 1
745 :
746 : #if CK5_ENABLED
747 : module procedure setRefined_WTI_D1_CK5
748 : use pm_kind, only: CKC => CK5
749 : #include "pm_arrayRefine@routines.inc.F90"
750 : end procedure
751 : #endif
752 :
753 : #if CK4_ENABLED
754 0 : module procedure setRefined_WTI_D1_CK4
755 : use pm_kind, only: CKC => CK4
756 : #include "pm_arrayRefine@routines.inc.F90"
757 : end procedure
758 : #endif
759 :
760 : #if CK3_ENABLED
761 0 : module procedure setRefined_WTI_D1_CK3
762 : use pm_kind, only: CKC => CK3
763 : #include "pm_arrayRefine@routines.inc.F90"
764 : end procedure
765 : #endif
766 :
767 : #if CK2_ENABLED
768 0 : module procedure setRefined_WTI_D1_CK2
769 : use pm_kind, only: CKC => CK2
770 : #include "pm_arrayRefine@routines.inc.F90"
771 : end procedure
772 : #endif
773 :
774 : #if CK1_ENABLED
775 20 : module procedure setRefined_WTI_D1_CK1
776 : use pm_kind, only: CKC => CK1
777 : #include "pm_arrayRefine@routines.inc.F90"
778 : end procedure
779 : #endif
780 :
781 : #undef CK_ENABLED
782 :
783 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
784 :
785 : #define RK_ENABLED 1
786 :
787 : #if RK5_ENABLED
788 : module procedure setRefined_WTI_D1_RK5
789 : use pm_kind, only: RKC => RK5
790 : #include "pm_arrayRefine@routines.inc.F90"
791 : end procedure
792 : #endif
793 :
794 : #if RK4_ENABLED
795 0 : module procedure setRefined_WTI_D1_RK4
796 : use pm_kind, only: RKC => RK4
797 : #include "pm_arrayRefine@routines.inc.F90"
798 : end procedure
799 : #endif
800 :
801 : #if RK3_ENABLED
802 0 : module procedure setRefined_WTI_D1_RK3
803 : use pm_kind, only: RKC => RK3
804 : #include "pm_arrayRefine@routines.inc.F90"
805 : end procedure
806 : #endif
807 :
808 : #if RK2_ENABLED
809 0 : module procedure setRefined_WTI_D1_RK2
810 : use pm_kind, only: RKC => RK2
811 : #include "pm_arrayRefine@routines.inc.F90"
812 : end procedure
813 : #endif
814 :
815 : #if RK1_ENABLED
816 20 : module procedure setRefined_WTI_D1_RK1
817 : use pm_kind, only: RKC => RK1
818 : #include "pm_arrayRefine@routines.inc.F90"
819 : end procedure
820 : #endif
821 :
822 : #undef RK_ENABLED
823 :
824 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
825 :
826 : #undef D1_ENABLED
827 :
828 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
829 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
830 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
831 :
832 : #define D2_ENABLED 1
833 :
834 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
835 :
836 : #define SK_ENABLED 1
837 :
838 : #if SK5_ENABLED
839 : module procedure setRefined_WTI_D2_SK5
840 : use pm_kind, only: SKC => SK5
841 : #include "pm_arrayRefine@routines.inc.F90"
842 : end procedure
843 : #endif
844 :
845 : #if SK4_ENABLED
846 : module procedure setRefined_WTI_D2_SK4
847 : use pm_kind, only: SKC => SK4
848 : #include "pm_arrayRefine@routines.inc.F90"
849 : end procedure
850 : #endif
851 :
852 : #if SK3_ENABLED
853 : module procedure setRefined_WTI_D2_SK3
854 : use pm_kind, only: SKC => SK3
855 : #include "pm_arrayRefine@routines.inc.F90"
856 : end procedure
857 : #endif
858 :
859 : #if SK2_ENABLED
860 : module procedure setRefined_WTI_D2_SK2
861 : use pm_kind, only: SKC => SK2
862 : #include "pm_arrayRefine@routines.inc.F90"
863 : end procedure
864 : #endif
865 :
866 : #if SK1_ENABLED
867 40 : module procedure setRefined_WTI_D2_SK1
868 : use pm_kind, only: SKC => SK1
869 : #include "pm_arrayRefine@routines.inc.F90"
870 : end procedure
871 : #endif
872 :
873 : #undef SK_ENABLED
874 :
875 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
876 :
877 : #define IK_ENABLED 1
878 :
879 : #if IK5_ENABLED
880 0 : module procedure setRefined_WTI_D2_IK5
881 : use pm_kind, only: IKC => IK5
882 : #include "pm_arrayRefine@routines.inc.F90"
883 : end procedure
884 : #endif
885 :
886 : #if IK4_ENABLED
887 0 : module procedure setRefined_WTI_D2_IK4
888 : use pm_kind, only: IKC => IK4
889 : #include "pm_arrayRefine@routines.inc.F90"
890 : end procedure
891 : #endif
892 :
893 : #if IK3_ENABLED
894 40 : module procedure setRefined_WTI_D2_IK3
895 : use pm_kind, only: IKC => IK3
896 : #include "pm_arrayRefine@routines.inc.F90"
897 : end procedure
898 : #endif
899 :
900 : #if IK2_ENABLED
901 0 : module procedure setRefined_WTI_D2_IK2
902 : use pm_kind, only: IKC => IK2
903 : #include "pm_arrayRefine@routines.inc.F90"
904 : end procedure
905 : #endif
906 :
907 : #if IK1_ENABLED
908 0 : module procedure setRefined_WTI_D2_IK1
909 : use pm_kind, only: IKC => IK1
910 : #include "pm_arrayRefine@routines.inc.F90"
911 : end procedure
912 : #endif
913 :
914 : #undef IK_ENABLED
915 :
916 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
917 :
918 : #define LK_ENABLED 1
919 :
920 : #if LK5_ENABLED
921 0 : module procedure setRefined_WTI_D2_LK5
922 : use pm_kind, only: LKC => LK5
923 : #include "pm_arrayRefine@routines.inc.F90"
924 : end procedure
925 : #endif
926 :
927 : #if LK4_ENABLED
928 0 : module procedure setRefined_WTI_D2_LK4
929 : use pm_kind, only: LKC => LK4
930 : #include "pm_arrayRefine@routines.inc.F90"
931 : end procedure
932 : #endif
933 :
934 : #if LK3_ENABLED
935 40 : module procedure setRefined_WTI_D2_LK3
936 : use pm_kind, only: LKC => LK3
937 : #include "pm_arrayRefine@routines.inc.F90"
938 : end procedure
939 : #endif
940 :
941 : #if LK2_ENABLED
942 0 : module procedure setRefined_WTI_D2_LK2
943 : use pm_kind, only: LKC => LK2
944 : #include "pm_arrayRefine@routines.inc.F90"
945 : end procedure
946 : #endif
947 :
948 : #if LK1_ENABLED
949 0 : module procedure setRefined_WTI_D2_LK1
950 : use pm_kind, only: LKC => LK1
951 : #include "pm_arrayRefine@routines.inc.F90"
952 : end procedure
953 : #endif
954 :
955 : #undef LK_ENABLED
956 :
957 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
958 :
959 : #define CK_ENABLED 1
960 :
961 : #if CK5_ENABLED
962 : module procedure setRefined_WTI_D2_CK5
963 : use pm_kind, only: CKC => CK5
964 : #include "pm_arrayRefine@routines.inc.F90"
965 : end procedure
966 : #endif
967 :
968 : #if CK4_ENABLED
969 0 : module procedure setRefined_WTI_D2_CK4
970 : use pm_kind, only: CKC => CK4
971 : #include "pm_arrayRefine@routines.inc.F90"
972 : end procedure
973 : #endif
974 :
975 : #if CK3_ENABLED
976 0 : module procedure setRefined_WTI_D2_CK3
977 : use pm_kind, only: CKC => CK3
978 : #include "pm_arrayRefine@routines.inc.F90"
979 : end procedure
980 : #endif
981 :
982 : #if CK2_ENABLED
983 0 : module procedure setRefined_WTI_D2_CK2
984 : use pm_kind, only: CKC => CK2
985 : #include "pm_arrayRefine@routines.inc.F90"
986 : end procedure
987 : #endif
988 :
989 : #if CK1_ENABLED
990 40 : module procedure setRefined_WTI_D2_CK1
991 : use pm_kind, only: CKC => CK1
992 : #include "pm_arrayRefine@routines.inc.F90"
993 : end procedure
994 : #endif
995 :
996 : #undef CK_ENABLED
997 :
998 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
999 :
1000 : #define RK_ENABLED 1
1001 :
1002 : #if RK5_ENABLED
1003 : module procedure setRefined_WTI_D2_RK5
1004 : use pm_kind, only: RKC => RK5
1005 : #include "pm_arrayRefine@routines.inc.F90"
1006 : end procedure
1007 : #endif
1008 :
1009 : #if RK4_ENABLED
1010 0 : module procedure setRefined_WTI_D2_RK4
1011 : use pm_kind, only: RKC => RK4
1012 : #include "pm_arrayRefine@routines.inc.F90"
1013 : end procedure
1014 : #endif
1015 :
1016 : #if RK3_ENABLED
1017 0 : module procedure setRefined_WTI_D2_RK3
1018 : use pm_kind, only: RKC => RK3
1019 : #include "pm_arrayRefine@routines.inc.F90"
1020 : end procedure
1021 : #endif
1022 :
1023 : #if RK2_ENABLED
1024 24 : module procedure setRefined_WTI_D2_RK2
1025 : use pm_kind, only: RKC => RK2
1026 : #include "pm_arrayRefine@routines.inc.F90"
1027 : end procedure
1028 : #endif
1029 :
1030 : #if RK1_ENABLED
1031 42 : module procedure setRefined_WTI_D2_RK1
1032 : use pm_kind, only: RKC => RK1
1033 : #include "pm_arrayRefine@routines.inc.F90"
1034 : end procedure
1035 : #endif
1036 :
1037 : #undef RK_ENABLED
1038 :
1039 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1040 :
1041 : #undef D2_ENABLED
1042 :
1043 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1044 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1045 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1046 :
1047 : #undef WTI_ENABLED
1048 :
1049 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1050 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1051 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1052 :
1053 : #undef setRefined_ENABLED
1054 :
1055 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1056 :
1057 : #undef CHECK_ASSERTION
1058 :
1059 : end submodule routines
|