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_arrayRange](@ref pm_arrayRange).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \FatemehBagheri, Wednesday 12:20 PM, September 22, 2021, Dallas, TX
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_arrayRange) 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_arrayResize, only: setResized
40 : implicit none
41 :
42 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
43 :
44 : contains
45 :
46 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
47 :
48 : #define getRange_ENABLED 1
49 :
50 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53 :
54 : #define D0_ENABLED 1
55 :
56 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
57 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
58 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
59 :
60 : #define Unit_ENABLED 1
61 :
62 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
63 :
64 : #define SK_ENABLED 1
65 :
66 : #if SK5_ENABLED
67 : module procedure getRangeUnit_D0_SK5
68 : use pm_kind, only: SKC => SK5
69 : #include "pm_arrayRange@routines.inc.F90"
70 : end procedure
71 : #endif
72 :
73 : #if SK4_ENABLED
74 : module procedure getRangeUnit_D0_SK4
75 : use pm_kind, only: SKC => SK4
76 : #include "pm_arrayRange@routines.inc.F90"
77 : end procedure
78 : #endif
79 :
80 : #if SK3_ENABLED
81 : module procedure getRangeUnit_D0_SK3
82 : use pm_kind, only: SKC => SK3
83 : #include "pm_arrayRange@routines.inc.F90"
84 : end procedure
85 : #endif
86 :
87 : #if SK2_ENABLED
88 : module procedure getRangeUnit_D0_SK2
89 : use pm_kind, only: SKC => SK2
90 : #include "pm_arrayRange@routines.inc.F90"
91 : end procedure
92 : #endif
93 :
94 : #if SK1_ENABLED
95 6 : module procedure getRangeUnit_D0_SK1
96 : use pm_kind, only: SKC => SK1
97 : #include "pm_arrayRange@routines.inc.F90"
98 6 : end procedure
99 : #endif
100 :
101 : #undef SK_ENABLED
102 :
103 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
104 :
105 : #undef Unit_ENABLED
106 :
107 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
108 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
109 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
110 :
111 : #define Step_ENABLED 1
112 :
113 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
114 :
115 : #define SK_ENABLED 1
116 :
117 : #if SK5_ENABLED
118 : module procedure getRangeStep_D0_SK5
119 : use pm_kind, only: SKC => SK5
120 : #include "pm_arrayRange@routines.inc.F90"
121 : end procedure
122 : #endif
123 :
124 : #if SK4_ENABLED
125 : module procedure getRangeStep_D0_SK4
126 : use pm_kind, only: SKC => SK4
127 : #include "pm_arrayRange@routines.inc.F90"
128 : end procedure
129 : #endif
130 :
131 : #if SK3_ENABLED
132 : module procedure getRangeStep_D0_SK3
133 : use pm_kind, only: SKC => SK3
134 : #include "pm_arrayRange@routines.inc.F90"
135 : end procedure
136 : #endif
137 :
138 : #if SK2_ENABLED
139 : module procedure getRangeStep_D0_SK2
140 : use pm_kind, only: SKC => SK2
141 : #include "pm_arrayRange@routines.inc.F90"
142 : end procedure
143 : #endif
144 :
145 : #if SK1_ENABLED
146 876 : module procedure getRangeStep_D0_SK1
147 : use pm_kind, only: SKC => SK1
148 : #include "pm_arrayRange@routines.inc.F90"
149 876 : end procedure
150 : #endif
151 :
152 : #undef SK_ENABLED
153 :
154 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
155 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
156 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
157 :
158 : #undef Step_ENABLED
159 :
160 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
161 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
162 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
163 :
164 : #undef D0_ENABLED
165 :
166 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
167 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
168 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
169 :
170 : #define D1_ENABLED 1
171 :
172 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
173 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
174 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
175 :
176 : #define Unit_ENABLED 1
177 :
178 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
179 :
180 : #define IK_ENABLED 1
181 :
182 : #if IK5_ENABLED
183 4 : module procedure getRangeUnit_D1_IK5
184 : use pm_kind, only: IKC => IK5
185 : #include "pm_arrayRange@routines.inc.F90"
186 4 : end procedure
187 : #endif
188 :
189 : #if IK4_ENABLED
190 4 : module procedure getRangeUnit_D1_IK4
191 : use pm_kind, only: IKC => IK4
192 : #include "pm_arrayRange@routines.inc.F90"
193 4 : end procedure
194 : #endif
195 :
196 : #if IK3_ENABLED
197 129803 : module procedure getRangeUnit_D1_IK3
198 : use pm_kind, only: IKC => IK3
199 : #include "pm_arrayRange@routines.inc.F90"
200 129803 : end procedure
201 : #endif
202 :
203 : #if IK2_ENABLED
204 3 : module procedure getRangeUnit_D1_IK2
205 : use pm_kind, only: IKC => IK2
206 : #include "pm_arrayRange@routines.inc.F90"
207 3 : end procedure
208 : #endif
209 :
210 : #if IK1_ENABLED
211 4 : module procedure getRangeUnit_D1_IK1
212 : use pm_kind, only: IKC => IK1
213 : #include "pm_arrayRange@routines.inc.F90"
214 4 : end procedure
215 : #endif
216 :
217 : #undef IK_ENABLED
218 :
219 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
220 :
221 : #define RK_ENABLED 1
222 :
223 : #if RK5_ENABLED
224 : module procedure getRangeUnit_D1_RK5
225 : use pm_kind, only: RKC => RK5
226 : #include "pm_arrayRange@routines.inc.F90"
227 : end procedure
228 : #endif
229 :
230 : #if RK4_ENABLED
231 3 : module procedure getRangeUnit_D1_RK4
232 : use pm_kind, only: RKC => RK4
233 : #include "pm_arrayRange@routines.inc.F90"
234 3 : end procedure
235 : #endif
236 :
237 : #if RK3_ENABLED
238 3 : module procedure getRangeUnit_D1_RK3
239 : use pm_kind, only: RKC => RK3
240 : #include "pm_arrayRange@routines.inc.F90"
241 3 : end procedure
242 : #endif
243 :
244 : #if RK2_ENABLED
245 3 : module procedure getRangeUnit_D1_RK2
246 : use pm_kind, only: RKC => RK2
247 : #include "pm_arrayRange@routines.inc.F90"
248 3 : end procedure
249 : #endif
250 :
251 : #if RK1_ENABLED
252 6 : module procedure getRangeUnit_D1_RK1
253 : use pm_kind, only: RKC => RK1
254 : #include "pm_arrayRange@routines.inc.F90"
255 6 : end procedure
256 : #endif
257 :
258 : #undef RK_ENABLED
259 :
260 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
261 :
262 : #undef Unit_ENABLED
263 :
264 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
265 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
266 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
267 :
268 : #define Step_ENABLED 1
269 :
270 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
271 :
272 : #define IK_ENABLED 1
273 :
274 : #if IK5_ENABLED
275 1088 : module procedure getRangeStep_D1_IK5
276 : use pm_kind, only: IKC => IK5
277 : #include "pm_arrayRange@routines.inc.F90"
278 1088 : end procedure
279 : #endif
280 :
281 : #if IK4_ENABLED
282 1088 : module procedure getRangeStep_D1_IK4
283 : use pm_kind, only: IKC => IK4
284 : #include "pm_arrayRange@routines.inc.F90"
285 1088 : end procedure
286 : #endif
287 :
288 : #if IK3_ENABLED
289 1178 : module procedure getRangeStep_D1_IK3
290 : use pm_kind, only: IKC => IK3
291 : #include "pm_arrayRange@routines.inc.F90"
292 1178 : end procedure
293 : #endif
294 :
295 : #if IK2_ENABLED
296 1094 : module procedure getRangeStep_D1_IK2
297 : use pm_kind, only: IKC => IK2
298 : #include "pm_arrayRange@routines.inc.F90"
299 1094 : end procedure
300 : #endif
301 :
302 : #if IK1_ENABLED
303 1098 : module procedure getRangeStep_D1_IK1
304 : use pm_kind, only: IKC => IK1
305 : #include "pm_arrayRange@routines.inc.F90"
306 1098 : end procedure
307 : #endif
308 :
309 : #undef IK_ENABLED
310 :
311 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
312 :
313 : #define RK_ENABLED 1
314 :
315 : #if RK5_ENABLED
316 : module procedure getRangeStep_D1_RK5
317 : use pm_kind, only: RKC => RK5
318 : #include "pm_arrayRange@routines.inc.F90"
319 : end procedure
320 : #endif
321 :
322 : #if RK4_ENABLED
323 808 : module procedure getRangeStep_D1_RK4
324 : use pm_kind, only: RKC => RK4
325 : #include "pm_arrayRange@routines.inc.F90"
326 : end procedure
327 : #endif
328 :
329 : #if RK3_ENABLED
330 808 : module procedure getRangeStep_D1_RK3
331 : use pm_kind, only: RKC => RK3
332 : #include "pm_arrayRange@routines.inc.F90"
333 : end procedure
334 : #endif
335 :
336 : #if RK2_ENABLED
337 808 : module procedure getRangeStep_D1_RK2
338 : use pm_kind, only: RKC => RK2
339 : #include "pm_arrayRange@routines.inc.F90"
340 : end procedure
341 : #endif
342 :
343 : #if RK1_ENABLED
344 810 : module procedure getRangeStep_D1_RK1
345 : use pm_kind, only: RKC => RK1
346 : #include "pm_arrayRange@routines.inc.F90"
347 : end procedure
348 : #endif
349 :
350 : #undef RK_ENABLED
351 :
352 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
353 :
354 : #undef Step_ENABLED
355 :
356 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
357 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
358 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
359 :
360 : #undef D1_ENABLED
361 :
362 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
363 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
364 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
365 :
366 : !#define D2_ENABLED 1
367 : !
368 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
369 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
370 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
371 : !
372 : !#define Unit_ENABLED 1
373 : !
374 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
375 : !
376 : !#define IK_ENABLED 1
377 : !
378 : !#if IK5_ENABLED
379 : ! module procedure getRangeUnit_D2_IK5
380 : ! use pm_kind, only: IKC => IK5
381 : !#include "pm_arrayRange@routines.inc.F90"
382 : ! end procedure
383 : !#endif
384 : !
385 : !#if IK4_ENABLED
386 : ! module procedure getRangeUnit_D2_IK4
387 : ! use pm_kind, only: IKC => IK4
388 : !#include "pm_arrayRange@routines.inc.F90"
389 : ! end procedure
390 : !#endif
391 : !
392 : !#if IK3_ENABLED
393 : ! module procedure getRangeUnit_D2_IK3
394 : ! use pm_kind, only: IKC => IK3
395 : !#include "pm_arrayRange@routines.inc.F90"
396 : ! end procedure
397 : !#endif
398 : !
399 : !#if IK2_ENABLED
400 : ! module procedure getRangeUnit_D2_IK2
401 : ! use pm_kind, only: IKC => IK2
402 : !#include "pm_arrayRange@routines.inc.F90"
403 : ! end procedure
404 : !#endif
405 : !
406 : !#if IK1_ENABLED
407 : ! module procedure getRangeUnit_D2_IK1
408 : ! use pm_kind, only: IKC => IK1
409 : !#include "pm_arrayRange@routines.inc.F90"
410 : ! end procedure
411 : !#endif
412 : !
413 : !#undef IK_ENABLED
414 : !
415 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
416 : !
417 : !#undef Unit_ENABLED
418 : !
419 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
420 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
421 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
422 : !
423 : !#define Step_ENABLED 1
424 : !
425 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
426 : !
427 : !#define IK_ENABLED 1
428 : !
429 : !#if IK5_ENABLED
430 : ! module procedure getRangeStep_D2_IK5
431 : ! use pm_kind, only: IKC => IK5
432 : !#include "pm_arrayRange@routines.inc.F90"
433 : ! end procedure
434 : !#endif
435 : !
436 : !#if IK4_ENABLED
437 : ! module procedure getRangeStep_D2_IK4
438 : ! use pm_kind, only: IKC => IK4
439 : !#include "pm_arrayRange@routines.inc.F90"
440 : ! end procedure
441 : !#endif
442 : !
443 : !#if IK3_ENABLED
444 : ! module procedure getRangeStep_D2_IK3
445 : ! use pm_kind, only: IKC => IK3
446 : !#include "pm_arrayRange@routines.inc.F90"
447 : ! end procedure
448 : !#endif
449 : !
450 : !#if IK2_ENABLED
451 : ! module procedure getRangeStep_D2_IK2
452 : ! use pm_kind, only: IKC => IK2
453 : !#include "pm_arrayRange@routines.inc.F90"
454 : ! end procedure
455 : !#endif
456 : !
457 : !#if IK1_ENABLED
458 : ! module procedure getRangeStep_D2_IK1
459 : ! use pm_kind, only: IKC => IK1
460 : !#include "pm_arrayRange@routines.inc.F90"
461 : ! end procedure
462 : !#endif
463 : !
464 : !#undef IK_ENABLED
465 : !
466 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
467 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
468 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
469 : !
470 : !#undef Step_ENABLED
471 : !
472 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
473 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
474 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
475 : !
476 : !#undef D2_ENABLED
477 : !
478 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
479 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
480 : ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
481 :
482 : #undef getRange_ENABLED
483 :
484 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
485 :
486 : #define setRange_ENABLED 1
487 :
488 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
489 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
490 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
491 :
492 : #define D0_ENABLED 1
493 :
494 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
495 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
496 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
497 :
498 : #define Unit_ENABLED 1
499 :
500 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
501 :
502 : #define SK_ENABLED 1
503 :
504 : #if SK5_ENABLED
505 : module procedure setRangeUnit_D0_SK5
506 : use pm_kind, only: SKC => SK5
507 : #include "pm_arrayRange@routines.inc.F90"
508 : end procedure
509 : #endif
510 :
511 : #if SK4_ENABLED
512 : module procedure setRangeUnit_D0_SK4
513 : use pm_kind, only: SKC => SK4
514 : #include "pm_arrayRange@routines.inc.F90"
515 : end procedure
516 : #endif
517 :
518 : #if SK3_ENABLED
519 : module procedure setRangeUnit_D0_SK3
520 : use pm_kind, only: SKC => SK3
521 : #include "pm_arrayRange@routines.inc.F90"
522 : end procedure
523 : #endif
524 :
525 : #if SK2_ENABLED
526 : module procedure setRangeUnit_D0_SK2
527 : use pm_kind, only: SKC => SK2
528 : #include "pm_arrayRange@routines.inc.F90"
529 : end procedure
530 : #endif
531 :
532 : #if SK1_ENABLED
533 2 : module procedure setRangeUnit_D0_SK1
534 : use pm_kind, only: SKC => SK1
535 : #include "pm_arrayRange@routines.inc.F90"
536 2 : end procedure
537 : #endif
538 :
539 : #undef SK_ENABLED
540 :
541 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
542 :
543 : #undef Unit_ENABLED
544 :
545 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
546 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
547 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
548 :
549 : #define Step_ENABLED 1
550 :
551 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
552 :
553 : #define SK_ENABLED 1
554 :
555 : #if SK5_ENABLED
556 : module procedure setRangeStep_D0_SK5
557 : use pm_kind, only: SKC => SK5
558 : #include "pm_arrayRange@routines.inc.F90"
559 : end procedure
560 : #endif
561 :
562 : #if SK4_ENABLED
563 : module procedure setRangeStep_D0_SK4
564 : use pm_kind, only: SKC => SK4
565 : #include "pm_arrayRange@routines.inc.F90"
566 : end procedure
567 : #endif
568 :
569 : #if SK3_ENABLED
570 : module procedure setRangeStep_D0_SK3
571 : use pm_kind, only: SKC => SK3
572 : #include "pm_arrayRange@routines.inc.F90"
573 : end procedure
574 : #endif
575 :
576 : #if SK2_ENABLED
577 : module procedure setRangeStep_D0_SK2
578 : use pm_kind, only: SKC => SK2
579 : #include "pm_arrayRange@routines.inc.F90"
580 : end procedure
581 : #endif
582 :
583 : #if SK1_ENABLED
584 6 : module procedure setRangeStep_D0_SK1
585 : use pm_kind, only: SKC => SK1
586 : #include "pm_arrayRange@routines.inc.F90"
587 6 : end procedure
588 : #endif
589 :
590 : #undef SK_ENABLED
591 :
592 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
593 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
594 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
595 :
596 : #undef Step_ENABLED
597 :
598 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
599 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
600 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
601 :
602 : #undef D0_ENABLED
603 :
604 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
605 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
606 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
607 :
608 : #define D1_ENABLED 1
609 :
610 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
611 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
612 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
613 :
614 : #define Unit_ENABLED 1
615 :
616 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
617 :
618 : #define IK_ENABLED 1
619 :
620 : #if IK5_ENABLED
621 1 : module procedure setRangeUnit_D1_IK5
622 : use pm_kind, only: IKC => IK5
623 : #include "pm_arrayRange@routines.inc.F90"
624 1 : end procedure
625 : #endif
626 :
627 : #if IK4_ENABLED
628 1 : module procedure setRangeUnit_D1_IK4
629 : use pm_kind, only: IKC => IK4
630 : #include "pm_arrayRange@routines.inc.F90"
631 1 : end procedure
632 : #endif
633 :
634 : #if IK3_ENABLED
635 11304 : module procedure setRangeUnit_D1_IK3
636 : use pm_kind, only: IKC => IK3
637 : #include "pm_arrayRange@routines.inc.F90"
638 11304 : end procedure
639 : #endif
640 :
641 : #if IK2_ENABLED
642 1 : module procedure setRangeUnit_D1_IK2
643 : use pm_kind, only: IKC => IK2
644 : #include "pm_arrayRange@routines.inc.F90"
645 1 : end procedure
646 : #endif
647 :
648 : #if IK1_ENABLED
649 1 : module procedure setRangeUnit_D1_IK1
650 : use pm_kind, only: IKC => IK1
651 : #include "pm_arrayRange@routines.inc.F90"
652 1 : end procedure
653 : #endif
654 :
655 : #undef IK_ENABLED
656 :
657 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
658 :
659 : #define RK_ENABLED 1
660 :
661 : #if RK5_ENABLED
662 : module procedure setRangeUnit_D1_RK5
663 : use pm_kind, only: RKC => RK5
664 : #include "pm_arrayRange@routines.inc.F90"
665 : end procedure
666 : #endif
667 :
668 : #if RK4_ENABLED
669 1 : module procedure setRangeUnit_D1_RK4
670 : use pm_kind, only: RKC => RK4
671 : #include "pm_arrayRange@routines.inc.F90"
672 : end procedure
673 : #endif
674 :
675 : #if RK3_ENABLED
676 1 : module procedure setRangeUnit_D1_RK3
677 : use pm_kind, only: RKC => RK3
678 : #include "pm_arrayRange@routines.inc.F90"
679 : end procedure
680 : #endif
681 :
682 : #if RK2_ENABLED
683 1 : module procedure setRangeUnit_D1_RK2
684 : use pm_kind, only: RKC => RK2
685 : #include "pm_arrayRange@routines.inc.F90"
686 : end procedure
687 : #endif
688 :
689 : #if RK1_ENABLED
690 4 : module procedure setRangeUnit_D1_RK1
691 : use pm_kind, only: RKC => RK1
692 : #include "pm_arrayRange@routines.inc.F90"
693 : end procedure
694 : #endif
695 :
696 : #undef RK_ENABLED
697 :
698 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
699 :
700 : #undef Unit_ENABLED
701 :
702 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
703 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
704 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
705 :
706 : #define Step_ENABLED 1
707 :
708 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
709 :
710 : #define IK_ENABLED 1
711 :
712 : #if IK5_ENABLED
713 2 : module procedure setRangeStep_D1_IK5
714 : use pm_kind, only: IKC => IK5
715 : #include "pm_arrayRange@routines.inc.F90"
716 2 : end procedure
717 : #endif
718 :
719 : #if IK4_ENABLED
720 2 : module procedure setRangeStep_D1_IK4
721 : use pm_kind, only: IKC => IK4
722 : #include "pm_arrayRange@routines.inc.F90"
723 2 : end procedure
724 : #endif
725 :
726 : #if IK3_ENABLED
727 6 : module procedure setRangeStep_D1_IK3
728 : use pm_kind, only: IKC => IK3
729 : #include "pm_arrayRange@routines.inc.F90"
730 6 : end procedure
731 : #endif
732 :
733 : #if IK2_ENABLED
734 2 : module procedure setRangeStep_D1_IK2
735 : use pm_kind, only: IKC => IK2
736 : #include "pm_arrayRange@routines.inc.F90"
737 2 : end procedure
738 : #endif
739 :
740 : #if IK1_ENABLED
741 2 : module procedure setRangeStep_D1_IK1
742 : use pm_kind, only: IKC => IK1
743 : #include "pm_arrayRange@routines.inc.F90"
744 2 : end procedure
745 : #endif
746 :
747 : #undef IK_ENABLED
748 :
749 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
750 :
751 : #define RK_ENABLED 1
752 :
753 : #if RK5_ENABLED
754 : module procedure setRangeStep_D1_RK5
755 : use pm_kind, only: RKC => RK5
756 : #include "pm_arrayRange@routines.inc.F90"
757 : end procedure
758 : #endif
759 :
760 : #if RK4_ENABLED
761 2 : module procedure setRangeStep_D1_RK4
762 : use pm_kind, only: RKC => RK4
763 : #include "pm_arrayRange@routines.inc.F90"
764 : end procedure
765 : #endif
766 :
767 : #if RK3_ENABLED
768 2 : module procedure setRangeStep_D1_RK3
769 : use pm_kind, only: RKC => RK3
770 : #include "pm_arrayRange@routines.inc.F90"
771 : end procedure
772 : #endif
773 :
774 : #if RK2_ENABLED
775 2 : module procedure setRangeStep_D1_RK2
776 : use pm_kind, only: RKC => RK2
777 : #include "pm_arrayRange@routines.inc.F90"
778 : end procedure
779 : #endif
780 :
781 : #if RK1_ENABLED
782 4 : module procedure setRangeStep_D1_RK1
783 : use pm_kind, only: RKC => RK1
784 : #include "pm_arrayRange@routines.inc.F90"
785 : end procedure
786 : #endif
787 :
788 : #undef RK_ENABLED
789 :
790 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
791 :
792 : #undef Step_ENABLED
793 :
794 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
795 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
796 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
797 :
798 : #undef D1_ENABLED
799 :
800 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
801 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
802 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
803 :
804 : #undef setRange_ENABLED
805 :
806 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
807 :
808 : end submodule routines
|