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_arrayCompareLex](@ref pm_arrayCompareLex).
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_arrayCompareLex) 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 isllt_ENABLED 1
48 :
49 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
50 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 :
53 : #define D0_D0_ENABLED 1
54 :
55 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
56 :
57 : #define SK_ENABLED 1
58 :
59 : #if SK5_ENABLED
60 : module procedure isllt_D0_D0_SK5
61 : #include "pm_arrayCompareLex@routines.inc.F90"
62 : end procedure
63 : #endif
64 :
65 : #if SK4_ENABLED
66 : module procedure isllt_D0_D0_SK4
67 : #include "pm_arrayCompareLex@routines.inc.F90"
68 : end procedure
69 : #endif
70 :
71 : #if SK3_ENABLED
72 : module procedure isllt_D0_D0_SK3
73 : #include "pm_arrayCompareLex@routines.inc.F90"
74 : end procedure
75 : #endif
76 :
77 : #if SK2_ENABLED
78 : module procedure isllt_D0_D0_SK2
79 : #include "pm_arrayCompareLex@routines.inc.F90"
80 : end procedure
81 : #endif
82 :
83 : #if SK1_ENABLED
84 15 : module procedure isllt_D0_D0_SK1
85 : #include "pm_arrayCompareLex@routines.inc.F90"
86 9 : end procedure
87 : #endif
88 :
89 : #undef SK_ENABLED
90 :
91 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
92 :
93 : #undef D0_D0_ENABLED
94 :
95 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
96 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
97 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
98 :
99 : #define D1_D1_ENABLED 1
100 :
101 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
102 :
103 : #define SK_ENABLED 1
104 :
105 : #if SK5_ENABLED
106 : module procedure isllt_D1_D1_SK5
107 : #include "pm_arrayCompareLex@routines.inc.F90"
108 : end procedure
109 : #endif
110 :
111 : #if SK4_ENABLED
112 : module procedure isllt_D1_D1_SK4
113 : #include "pm_arrayCompareLex@routines.inc.F90"
114 : end procedure
115 : #endif
116 :
117 : #if SK3_ENABLED
118 : module procedure isllt_D1_D1_SK3
119 : #include "pm_arrayCompareLex@routines.inc.F90"
120 : end procedure
121 : #endif
122 :
123 : #if SK2_ENABLED
124 : module procedure isllt_D1_D1_SK2
125 : #include "pm_arrayCompareLex@routines.inc.F90"
126 : end procedure
127 : #endif
128 :
129 : #if SK1_ENABLED
130 7 : module procedure isllt_D1_D1_SK1
131 : #include "pm_arrayCompareLex@routines.inc.F90"
132 6 : end procedure
133 : #endif
134 :
135 : #undef SK_ENABLED
136 :
137 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
138 :
139 : #define IK_ENABLED 1
140 :
141 : #if IK5_ENABLED
142 7 : module procedure isllt_D1_D1_IK5
143 : #include "pm_arrayCompareLex@routines.inc.F90"
144 4 : end procedure
145 : #endif
146 :
147 : #if IK4_ENABLED
148 7 : module procedure isllt_D1_D1_IK4
149 : #include "pm_arrayCompareLex@routines.inc.F90"
150 4 : end procedure
151 : #endif
152 :
153 : #if IK3_ENABLED
154 22 : module procedure isllt_D1_D1_IK3
155 : #include "pm_arrayCompareLex@routines.inc.F90"
156 9 : end procedure
157 : #endif
158 :
159 : #if IK2_ENABLED
160 7 : module procedure isllt_D1_D1_IK2
161 : #include "pm_arrayCompareLex@routines.inc.F90"
162 4 : end procedure
163 : #endif
164 :
165 : #if IK1_ENABLED
166 7 : module procedure isllt_D1_D1_IK1
167 : #include "pm_arrayCompareLex@routines.inc.F90"
168 4 : end procedure
169 : #endif
170 :
171 : #undef IK_ENABLED
172 :
173 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
174 :
175 : #define LK_ENABLED 1
176 :
177 : #if LK5_ENABLED
178 7 : module procedure isllt_D1_D1_LK5
179 : use pm_logicalCompare, only: operator(<)
180 : #include "pm_arrayCompareLex@routines.inc.F90"
181 4 : end procedure
182 : #endif
183 :
184 : #if LK4_ENABLED
185 7 : module procedure isllt_D1_D1_LK4
186 : use pm_logicalCompare, only: operator(<)
187 : #include "pm_arrayCompareLex@routines.inc.F90"
188 4 : end procedure
189 : #endif
190 :
191 : #if LK3_ENABLED
192 16 : module procedure isllt_D1_D1_LK3
193 : use pm_logicalCompare, only: operator(<)
194 : #include "pm_arrayCompareLex@routines.inc.F90"
195 8 : end procedure
196 : #endif
197 :
198 : #if LK2_ENABLED
199 7 : module procedure isllt_D1_D1_LK2
200 : use pm_logicalCompare, only: operator(<)
201 : #include "pm_arrayCompareLex@routines.inc.F90"
202 4 : end procedure
203 : #endif
204 :
205 : #if LK1_ENABLED
206 7 : module procedure isllt_D1_D1_LK1
207 : use pm_logicalCompare, only: operator(<)
208 : #include "pm_arrayCompareLex@routines.inc.F90"
209 4 : end procedure
210 : #endif
211 :
212 : #undef LK_ENABLED
213 :
214 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
215 :
216 : #define CK_ENABLED 1
217 :
218 : #if CK5_ENABLED
219 : module procedure isllt_D1_D1_CK5
220 : use pm_complexCompareLex, only: operator(<)
221 : #include "pm_arrayCompareLex@routines.inc.F90"
222 : end procedure
223 : #endif
224 :
225 : #if CK4_ENABLED
226 7 : module procedure isllt_D1_D1_CK4
227 : use pm_complexCompareLex, only: operator(<)
228 : #include "pm_arrayCompareLex@routines.inc.F90"
229 4 : end procedure
230 : #endif
231 :
232 : #if CK3_ENABLED
233 7 : module procedure isllt_D1_D1_CK3
234 : use pm_complexCompareLex, only: operator(<)
235 : #include "pm_arrayCompareLex@routines.inc.F90"
236 4 : end procedure
237 : #endif
238 :
239 : #if CK2_ENABLED
240 17 : module procedure isllt_D1_D1_CK2
241 : use pm_complexCompareLex, only: operator(<)
242 : #include "pm_arrayCompareLex@routines.inc.F90"
243 5 : end procedure
244 : #endif
245 :
246 : #if CK1_ENABLED
247 7 : module procedure isllt_D1_D1_CK1
248 : use pm_complexCompareLex, only: operator(<)
249 : #include "pm_arrayCompareLex@routines.inc.F90"
250 4 : end procedure
251 : #endif
252 :
253 : #undef CK_ENABLED
254 :
255 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
256 :
257 : #define RK_ENABLED 1
258 :
259 : #if RK5_ENABLED
260 : module procedure isllt_D1_D1_RK5
261 : #include "pm_arrayCompareLex@routines.inc.F90"
262 : end procedure
263 : #endif
264 :
265 : #if RK4_ENABLED
266 7 : module procedure isllt_D1_D1_RK4
267 : #include "pm_arrayCompareLex@routines.inc.F90"
268 4 : end procedure
269 : #endif
270 :
271 : #if RK3_ENABLED
272 7 : module procedure isllt_D1_D1_RK3
273 : #include "pm_arrayCompareLex@routines.inc.F90"
274 4 : end procedure
275 : #endif
276 :
277 : #if RK2_ENABLED
278 22 : module procedure isllt_D1_D1_RK2
279 : #include "pm_arrayCompareLex@routines.inc.F90"
280 9 : end procedure
281 : #endif
282 :
283 : #if RK1_ENABLED
284 7 : module procedure isllt_D1_D1_RK1
285 : #include "pm_arrayCompareLex@routines.inc.F90"
286 4 : end procedure
287 : #endif
288 :
289 : #undef RK_ENABLED
290 :
291 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
292 :
293 : #undef D1_D1_ENABLED
294 :
295 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
296 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
297 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
298 :
299 : #undef isllt_ENABLED
300 :
301 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
302 :
303 : #define islle_ENABLED 1
304 :
305 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
306 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
307 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
308 :
309 : #define D0_D0_ENABLED 1
310 :
311 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
312 :
313 : #define SK_ENABLED 1
314 :
315 : #if SK5_ENABLED
316 : module procedure islle_D0_D0_SK5
317 : #include "pm_arrayCompareLex@routines.inc.F90"
318 : end procedure
319 : #endif
320 :
321 : #if SK4_ENABLED
322 : module procedure islle_D0_D0_SK4
323 : #include "pm_arrayCompareLex@routines.inc.F90"
324 : end procedure
325 : #endif
326 :
327 : #if SK3_ENABLED
328 : module procedure islle_D0_D0_SK3
329 : #include "pm_arrayCompareLex@routines.inc.F90"
330 : end procedure
331 : #endif
332 :
333 : #if SK2_ENABLED
334 : module procedure islle_D0_D0_SK2
335 : #include "pm_arrayCompareLex@routines.inc.F90"
336 : end procedure
337 : #endif
338 :
339 : #if SK1_ENABLED
340 13 : module procedure islle_D0_D0_SK1
341 : #include "pm_arrayCompareLex@routines.inc.F90"
342 9 : end procedure
343 : #endif
344 :
345 : #undef SK_ENABLED
346 :
347 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
348 :
349 : #undef D0_D0_ENABLED
350 :
351 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
352 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
353 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
354 :
355 : #define D1_D1_ENABLED 1
356 :
357 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
358 :
359 : #define SK_ENABLED 1
360 :
361 : #if SK5_ENABLED
362 : module procedure islle_D1_D1_SK5
363 : #include "pm_arrayCompareLex@routines.inc.F90"
364 : end procedure
365 : #endif
366 :
367 : #if SK4_ENABLED
368 : module procedure islle_D1_D1_SK4
369 : #include "pm_arrayCompareLex@routines.inc.F90"
370 : end procedure
371 : #endif
372 :
373 : #if SK3_ENABLED
374 : module procedure islle_D1_D1_SK3
375 : #include "pm_arrayCompareLex@routines.inc.F90"
376 : end procedure
377 : #endif
378 :
379 : #if SK2_ENABLED
380 : module procedure islle_D1_D1_SK2
381 : #include "pm_arrayCompareLex@routines.inc.F90"
382 : end procedure
383 : #endif
384 :
385 : #if SK1_ENABLED
386 7 : module procedure islle_D1_D1_SK1
387 : #include "pm_arrayCompareLex@routines.inc.F90"
388 6 : end procedure
389 : #endif
390 :
391 : #undef SK_ENABLED
392 :
393 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
394 :
395 : #define IK_ENABLED 1
396 :
397 : #if IK5_ENABLED
398 7 : module procedure islle_D1_D1_IK5
399 : #include "pm_arrayCompareLex@routines.inc.F90"
400 4 : end procedure
401 : #endif
402 :
403 : #if IK4_ENABLED
404 7 : module procedure islle_D1_D1_IK4
405 : #include "pm_arrayCompareLex@routines.inc.F90"
406 4 : end procedure
407 : #endif
408 :
409 : #if IK3_ENABLED
410 22 : module procedure islle_D1_D1_IK3
411 : #include "pm_arrayCompareLex@routines.inc.F90"
412 9 : end procedure
413 : #endif
414 :
415 : #if IK2_ENABLED
416 7 : module procedure islle_D1_D1_IK2
417 : #include "pm_arrayCompareLex@routines.inc.F90"
418 4 : end procedure
419 : #endif
420 :
421 : #if IK1_ENABLED
422 7 : module procedure islle_D1_D1_IK1
423 : #include "pm_arrayCompareLex@routines.inc.F90"
424 4 : end procedure
425 : #endif
426 :
427 : #undef IK_ENABLED
428 :
429 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
430 :
431 : #define LK_ENABLED 1
432 :
433 : #if LK5_ENABLED
434 7 : module procedure islle_D1_D1_LK5
435 : use pm_logicalCompare, only: operator(<)
436 : #include "pm_arrayCompareLex@routines.inc.F90"
437 4 : end procedure
438 : #endif
439 :
440 : #if LK4_ENABLED
441 7 : module procedure islle_D1_D1_LK4
442 : use pm_logicalCompare, only: operator(<)
443 : #include "pm_arrayCompareLex@routines.inc.F90"
444 4 : end procedure
445 : #endif
446 :
447 : #if LK3_ENABLED
448 16 : module procedure islle_D1_D1_LK3
449 : use pm_logicalCompare, only: operator(<)
450 : #include "pm_arrayCompareLex@routines.inc.F90"
451 8 : end procedure
452 : #endif
453 :
454 : #if LK2_ENABLED
455 7 : module procedure islle_D1_D1_LK2
456 : use pm_logicalCompare, only: operator(<)
457 : #include "pm_arrayCompareLex@routines.inc.F90"
458 4 : end procedure
459 : #endif
460 :
461 : #if LK1_ENABLED
462 7 : module procedure islle_D1_D1_LK1
463 : use pm_logicalCompare, only: operator(<)
464 : #include "pm_arrayCompareLex@routines.inc.F90"
465 4 : end procedure
466 : #endif
467 :
468 : #undef LK_ENABLED
469 :
470 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
471 :
472 : #define CK_ENABLED 1
473 :
474 : #if CK5_ENABLED
475 : module procedure islle_D1_D1_CK5
476 : use pm_complexCompareLex, only: operator(<)
477 : #include "pm_arrayCompareLex@routines.inc.F90"
478 : end procedure
479 : #endif
480 :
481 : #if CK4_ENABLED
482 7 : module procedure islle_D1_D1_CK4
483 : use pm_complexCompareLex, only: operator(<)
484 : #include "pm_arrayCompareLex@routines.inc.F90"
485 4 : end procedure
486 : #endif
487 :
488 : #if CK3_ENABLED
489 7 : module procedure islle_D1_D1_CK3
490 : use pm_complexCompareLex, only: operator(<)
491 : #include "pm_arrayCompareLex@routines.inc.F90"
492 4 : end procedure
493 : #endif
494 :
495 : #if CK2_ENABLED
496 17 : module procedure islle_D1_D1_CK2
497 : use pm_complexCompareLex, only: operator(<)
498 : #include "pm_arrayCompareLex@routines.inc.F90"
499 5 : end procedure
500 : #endif
501 :
502 : #if CK1_ENABLED
503 7 : module procedure islle_D1_D1_CK1
504 : use pm_complexCompareLex, only: operator(<)
505 : #include "pm_arrayCompareLex@routines.inc.F90"
506 4 : end procedure
507 : #endif
508 :
509 : #undef CK_ENABLED
510 :
511 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
512 :
513 : #define RK_ENABLED 1
514 :
515 : #if RK5_ENABLED
516 : module procedure islle_D1_D1_RK5
517 : #include "pm_arrayCompareLex@routines.inc.F90"
518 : end procedure
519 : #endif
520 :
521 : #if RK4_ENABLED
522 7 : module procedure islle_D1_D1_RK4
523 : #include "pm_arrayCompareLex@routines.inc.F90"
524 4 : end procedure
525 : #endif
526 :
527 : #if RK3_ENABLED
528 7 : module procedure islle_D1_D1_RK3
529 : #include "pm_arrayCompareLex@routines.inc.F90"
530 4 : end procedure
531 : #endif
532 :
533 : #if RK2_ENABLED
534 22 : module procedure islle_D1_D1_RK2
535 : #include "pm_arrayCompareLex@routines.inc.F90"
536 9 : end procedure
537 : #endif
538 :
539 : #if RK1_ENABLED
540 7 : module procedure islle_D1_D1_RK1
541 : #include "pm_arrayCompareLex@routines.inc.F90"
542 4 : end procedure
543 : #endif
544 :
545 : #undef RK_ENABLED
546 :
547 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
548 :
549 : #undef D1_D1_ENABLED
550 :
551 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
552 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
553 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
554 :
555 : #undef islle_ENABLED
556 :
557 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
558 :
559 : #define islge_ENABLED 1
560 :
561 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
562 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
563 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
564 :
565 : #define D0_D0_ENABLED 1
566 :
567 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
568 :
569 : #define SK_ENABLED 1
570 :
571 : #if SK5_ENABLED
572 : module procedure islge_D0_D0_SK5
573 : #include "pm_arrayCompareLex@routines.inc.F90"
574 : end procedure
575 : #endif
576 :
577 : #if SK4_ENABLED
578 : module procedure islge_D0_D0_SK4
579 : #include "pm_arrayCompareLex@routines.inc.F90"
580 : end procedure
581 : #endif
582 :
583 : #if SK3_ENABLED
584 : module procedure islge_D0_D0_SK3
585 : #include "pm_arrayCompareLex@routines.inc.F90"
586 : end procedure
587 : #endif
588 :
589 : #if SK2_ENABLED
590 : module procedure islge_D0_D0_SK2
591 : #include "pm_arrayCompareLex@routines.inc.F90"
592 : end procedure
593 : #endif
594 :
595 : #if SK1_ENABLED
596 13 : module procedure islge_D0_D0_SK1
597 : #include "pm_arrayCompareLex@routines.inc.F90"
598 9 : end procedure
599 : #endif
600 :
601 : #undef SK_ENABLED
602 :
603 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
604 :
605 : #undef D0_D0_ENABLED
606 :
607 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
608 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
609 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
610 :
611 : #define D1_D1_ENABLED 1
612 :
613 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
614 :
615 : #define SK_ENABLED 1
616 :
617 : #if SK5_ENABLED
618 : module procedure islge_D1_D1_SK5
619 : #include "pm_arrayCompareLex@routines.inc.F90"
620 : end procedure
621 : #endif
622 :
623 : #if SK4_ENABLED
624 : module procedure islge_D1_D1_SK4
625 : #include "pm_arrayCompareLex@routines.inc.F90"
626 : end procedure
627 : #endif
628 :
629 : #if SK3_ENABLED
630 : module procedure islge_D1_D1_SK3
631 : #include "pm_arrayCompareLex@routines.inc.F90"
632 : end procedure
633 : #endif
634 :
635 : #if SK2_ENABLED
636 : module procedure islge_D1_D1_SK2
637 : #include "pm_arrayCompareLex@routines.inc.F90"
638 : end procedure
639 : #endif
640 :
641 : #if SK1_ENABLED
642 7 : module procedure islge_D1_D1_SK1
643 : #include "pm_arrayCompareLex@routines.inc.F90"
644 6 : end procedure
645 : #endif
646 :
647 : #undef SK_ENABLED
648 :
649 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
650 :
651 : #define IK_ENABLED 1
652 :
653 : #if IK5_ENABLED
654 7 : module procedure islge_D1_D1_IK5
655 : #include "pm_arrayCompareLex@routines.inc.F90"
656 4 : end procedure
657 : #endif
658 :
659 : #if IK4_ENABLED
660 7 : module procedure islge_D1_D1_IK4
661 : #include "pm_arrayCompareLex@routines.inc.F90"
662 4 : end procedure
663 : #endif
664 :
665 : #if IK3_ENABLED
666 22 : module procedure islge_D1_D1_IK3
667 : #include "pm_arrayCompareLex@routines.inc.F90"
668 9 : end procedure
669 : #endif
670 :
671 : #if IK2_ENABLED
672 7 : module procedure islge_D1_D1_IK2
673 : #include "pm_arrayCompareLex@routines.inc.F90"
674 4 : end procedure
675 : #endif
676 :
677 : #if IK1_ENABLED
678 7 : module procedure islge_D1_D1_IK1
679 : #include "pm_arrayCompareLex@routines.inc.F90"
680 4 : end procedure
681 : #endif
682 :
683 : #undef IK_ENABLED
684 :
685 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
686 :
687 : #define LK_ENABLED 1
688 :
689 : #if LK5_ENABLED
690 7 : module procedure islge_D1_D1_LK5
691 : use pm_logicalCompare, only: operator(>)
692 : #include "pm_arrayCompareLex@routines.inc.F90"
693 4 : end procedure
694 : #endif
695 :
696 : #if LK4_ENABLED
697 7 : module procedure islge_D1_D1_LK4
698 : use pm_logicalCompare, only: operator(>)
699 : #include "pm_arrayCompareLex@routines.inc.F90"
700 4 : end procedure
701 : #endif
702 :
703 : #if LK3_ENABLED
704 16 : module procedure islge_D1_D1_LK3
705 : use pm_logicalCompare, only: operator(>)
706 : #include "pm_arrayCompareLex@routines.inc.F90"
707 8 : end procedure
708 : #endif
709 :
710 : #if LK2_ENABLED
711 7 : module procedure islge_D1_D1_LK2
712 : use pm_logicalCompare, only: operator(>)
713 : #include "pm_arrayCompareLex@routines.inc.F90"
714 4 : end procedure
715 : #endif
716 :
717 : #if LK1_ENABLED
718 7 : module procedure islge_D1_D1_LK1
719 : use pm_logicalCompare, only: operator(>)
720 : #include "pm_arrayCompareLex@routines.inc.F90"
721 4 : end procedure
722 : #endif
723 :
724 : #undef LK_ENABLED
725 :
726 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
727 :
728 : #define CK_ENABLED 1
729 :
730 : #if CK5_ENABLED
731 : module procedure islge_D1_D1_CK5
732 : use pm_complexCompareLex, only: operator(>)
733 : #include "pm_arrayCompareLex@routines.inc.F90"
734 : end procedure
735 : #endif
736 :
737 : #if CK4_ENABLED
738 7 : module procedure islge_D1_D1_CK4
739 : use pm_complexCompareLex, only: operator(>)
740 : #include "pm_arrayCompareLex@routines.inc.F90"
741 4 : end procedure
742 : #endif
743 :
744 : #if CK3_ENABLED
745 7 : module procedure islge_D1_D1_CK3
746 : use pm_complexCompareLex, only: operator(>)
747 : #include "pm_arrayCompareLex@routines.inc.F90"
748 4 : end procedure
749 : #endif
750 :
751 : #if CK2_ENABLED
752 17 : module procedure islge_D1_D1_CK2
753 : use pm_complexCompareLex, only: operator(>)
754 : #include "pm_arrayCompareLex@routines.inc.F90"
755 5 : end procedure
756 : #endif
757 :
758 : #if CK1_ENABLED
759 7 : module procedure islge_D1_D1_CK1
760 : use pm_complexCompareLex, only: operator(>)
761 : #include "pm_arrayCompareLex@routines.inc.F90"
762 4 : end procedure
763 : #endif
764 :
765 : #undef CK_ENABLED
766 :
767 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
768 :
769 : #define RK_ENABLED 1
770 :
771 : #if RK5_ENABLED
772 : module procedure islge_D1_D1_RK5
773 : #include "pm_arrayCompareLex@routines.inc.F90"
774 : end procedure
775 : #endif
776 :
777 : #if RK4_ENABLED
778 7 : module procedure islge_D1_D1_RK4
779 : #include "pm_arrayCompareLex@routines.inc.F90"
780 4 : end procedure
781 : #endif
782 :
783 : #if RK3_ENABLED
784 7 : module procedure islge_D1_D1_RK3
785 : #include "pm_arrayCompareLex@routines.inc.F90"
786 4 : end procedure
787 : #endif
788 :
789 : #if RK2_ENABLED
790 22 : module procedure islge_D1_D1_RK2
791 : #include "pm_arrayCompareLex@routines.inc.F90"
792 9 : end procedure
793 : #endif
794 :
795 : #if RK1_ENABLED
796 7 : module procedure islge_D1_D1_RK1
797 : #include "pm_arrayCompareLex@routines.inc.F90"
798 4 : end procedure
799 : #endif
800 :
801 : #undef RK_ENABLED
802 :
803 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
804 :
805 : #undef D1_D1_ENABLED
806 :
807 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
808 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
809 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
810 :
811 : #undef islge_ENABLED
812 :
813 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
814 :
815 : #define islgt_ENABLED 1
816 :
817 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
818 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
819 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
820 :
821 : #define D0_D0_ENABLED 1
822 :
823 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
824 :
825 : #define SK_ENABLED 1
826 :
827 : #if SK5_ENABLED
828 : module procedure islgt_D0_D0_SK5
829 : #include "pm_arrayCompareLex@routines.inc.F90"
830 : end procedure
831 : #endif
832 :
833 : #if SK4_ENABLED
834 : module procedure islgt_D0_D0_SK4
835 : #include "pm_arrayCompareLex@routines.inc.F90"
836 : end procedure
837 : #endif
838 :
839 : #if SK3_ENABLED
840 : module procedure islgt_D0_D0_SK3
841 : #include "pm_arrayCompareLex@routines.inc.F90"
842 : end procedure
843 : #endif
844 :
845 : #if SK2_ENABLED
846 : module procedure islgt_D0_D0_SK2
847 : #include "pm_arrayCompareLex@routines.inc.F90"
848 : end procedure
849 : #endif
850 :
851 : #if SK1_ENABLED
852 15 : module procedure islgt_D0_D0_SK1
853 : #include "pm_arrayCompareLex@routines.inc.F90"
854 9 : end procedure
855 : #endif
856 :
857 : #undef SK_ENABLED
858 :
859 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
860 :
861 : #undef D0_D0_ENABLED
862 :
863 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
864 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
865 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
866 :
867 : #define D1_D1_ENABLED 1
868 :
869 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
870 :
871 : #define SK_ENABLED 1
872 :
873 : #if SK5_ENABLED
874 : module procedure islgt_D1_D1_SK5
875 : #include "pm_arrayCompareLex@routines.inc.F90"
876 : end procedure
877 : #endif
878 :
879 : #if SK4_ENABLED
880 : module procedure islgt_D1_D1_SK4
881 : #include "pm_arrayCompareLex@routines.inc.F90"
882 : end procedure
883 : #endif
884 :
885 : #if SK3_ENABLED
886 : module procedure islgt_D1_D1_SK3
887 : #include "pm_arrayCompareLex@routines.inc.F90"
888 : end procedure
889 : #endif
890 :
891 : #if SK2_ENABLED
892 : module procedure islgt_D1_D1_SK2
893 : #include "pm_arrayCompareLex@routines.inc.F90"
894 : end procedure
895 : #endif
896 :
897 : #if SK1_ENABLED
898 7 : module procedure islgt_D1_D1_SK1
899 : #include "pm_arrayCompareLex@routines.inc.F90"
900 6 : end procedure
901 : #endif
902 :
903 : #undef SK_ENABLED
904 :
905 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
906 :
907 : #define IK_ENABLED 1
908 :
909 : #if IK5_ENABLED
910 7 : module procedure islgt_D1_D1_IK5
911 : #include "pm_arrayCompareLex@routines.inc.F90"
912 4 : end procedure
913 : #endif
914 :
915 : #if IK4_ENABLED
916 7 : module procedure islgt_D1_D1_IK4
917 : #include "pm_arrayCompareLex@routines.inc.F90"
918 4 : end procedure
919 : #endif
920 :
921 : #if IK3_ENABLED
922 22 : module procedure islgt_D1_D1_IK3
923 : #include "pm_arrayCompareLex@routines.inc.F90"
924 9 : end procedure
925 : #endif
926 :
927 : #if IK2_ENABLED
928 7 : module procedure islgt_D1_D1_IK2
929 : #include "pm_arrayCompareLex@routines.inc.F90"
930 4 : end procedure
931 : #endif
932 :
933 : #if IK1_ENABLED
934 7 : module procedure islgt_D1_D1_IK1
935 : #include "pm_arrayCompareLex@routines.inc.F90"
936 4 : end procedure
937 : #endif
938 :
939 : #undef IK_ENABLED
940 :
941 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
942 :
943 : #define LK_ENABLED 1
944 :
945 : #if LK5_ENABLED
946 7 : module procedure islgt_D1_D1_LK5
947 : use pm_logicalCompare, only: operator(>)
948 : #include "pm_arrayCompareLex@routines.inc.F90"
949 4 : end procedure
950 : #endif
951 :
952 : #if LK4_ENABLED
953 7 : module procedure islgt_D1_D1_LK4
954 : use pm_logicalCompare, only: operator(>)
955 : #include "pm_arrayCompareLex@routines.inc.F90"
956 4 : end procedure
957 : #endif
958 :
959 : #if LK3_ENABLED
960 16 : module procedure islgt_D1_D1_LK3
961 : use pm_logicalCompare, only: operator(>)
962 : #include "pm_arrayCompareLex@routines.inc.F90"
963 8 : end procedure
964 : #endif
965 :
966 : #if LK2_ENABLED
967 7 : module procedure islgt_D1_D1_LK2
968 : use pm_logicalCompare, only: operator(>)
969 : #include "pm_arrayCompareLex@routines.inc.F90"
970 4 : end procedure
971 : #endif
972 :
973 : #if LK1_ENABLED
974 7 : module procedure islgt_D1_D1_LK1
975 : use pm_logicalCompare, only: operator(>)
976 : #include "pm_arrayCompareLex@routines.inc.F90"
977 4 : end procedure
978 : #endif
979 :
980 : #undef LK_ENABLED
981 :
982 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
983 :
984 : #define CK_ENABLED 1
985 :
986 : #if CK5_ENABLED
987 : module procedure islgt_D1_D1_CK5
988 : use pm_complexCompareLex, only: operator(>)
989 : #include "pm_arrayCompareLex@routines.inc.F90"
990 : end procedure
991 : #endif
992 :
993 : #if CK4_ENABLED
994 7 : module procedure islgt_D1_D1_CK4
995 : use pm_complexCompareLex, only: operator(>)
996 : #include "pm_arrayCompareLex@routines.inc.F90"
997 4 : end procedure
998 : #endif
999 :
1000 : #if CK3_ENABLED
1001 7 : module procedure islgt_D1_D1_CK3
1002 : use pm_complexCompareLex, only: operator(>)
1003 : #include "pm_arrayCompareLex@routines.inc.F90"
1004 4 : end procedure
1005 : #endif
1006 :
1007 : #if CK2_ENABLED
1008 17 : module procedure islgt_D1_D1_CK2
1009 : use pm_complexCompareLex, only: operator(>)
1010 : #include "pm_arrayCompareLex@routines.inc.F90"
1011 5 : end procedure
1012 : #endif
1013 :
1014 : #if CK1_ENABLED
1015 7 : module procedure islgt_D1_D1_CK1
1016 : use pm_complexCompareLex, only: operator(>)
1017 : #include "pm_arrayCompareLex@routines.inc.F90"
1018 4 : end procedure
1019 : #endif
1020 :
1021 : #undef CK_ENABLED
1022 :
1023 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1024 :
1025 : #define RK_ENABLED 1
1026 :
1027 : #if RK5_ENABLED
1028 : module procedure islgt_D1_D1_RK5
1029 : #include "pm_arrayCompareLex@routines.inc.F90"
1030 : end procedure
1031 : #endif
1032 :
1033 : #if RK4_ENABLED
1034 7 : module procedure islgt_D1_D1_RK4
1035 : #include "pm_arrayCompareLex@routines.inc.F90"
1036 4 : end procedure
1037 : #endif
1038 :
1039 : #if RK3_ENABLED
1040 7 : module procedure islgt_D1_D1_RK3
1041 : #include "pm_arrayCompareLex@routines.inc.F90"
1042 4 : end procedure
1043 : #endif
1044 :
1045 : #if RK2_ENABLED
1046 22 : module procedure islgt_D1_D1_RK2
1047 : #include "pm_arrayCompareLex@routines.inc.F90"
1048 9 : end procedure
1049 : #endif
1050 :
1051 : #if RK1_ENABLED
1052 7 : module procedure islgt_D1_D1_RK1
1053 : #include "pm_arrayCompareLex@routines.inc.F90"
1054 4 : end procedure
1055 : #endif
1056 :
1057 : #undef RK_ENABLED
1058 :
1059 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1060 :
1061 : #undef D1_D1_ENABLED
1062 :
1063 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1064 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1065 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1066 :
1067 : #undef islgt_ENABLED
1068 :
1069 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1070 :
1071 : ! module procedure islct_UP
1072 : ! use pm_kind, only: IK, LK
1073 : ! integer(IK) :: i
1074 : ! do i = 1_IK, min(GET_SIZE(array1, kind = IK), GET_SIZE(array2, kind = IK))
1075 : ! if (array1(i) EQUIVALENT_TO array2(i)) cycle
1076 : ! compares = array1(i) COMPARABLE_TO array2(i)
1077 : ! return
1078 : ! end do
1079 : ! compares = logical(GET_SIZE(array1, kind = IK) & ! LCOV_EXCL_LINE
1080 : !#if isllt_ENABLED
1081 : ! < & ! LCOV_EXCL_LINE
1082 : !#elif islle_ENABLED
1083 : ! <= & ! LCOV_EXCL_LINE
1084 : !#elif islge_ENABLED
1085 : ! >= & ! LCOV_EXCL_LINE
1086 : !#elif islgt_ENABLED
1087 : ! > & ! LCOV_EXCL_LINE
1088 : !#endif
1089 : ! GET_SIZE(array2, kind = IK), kind = LK)
1090 : ! end procedure
1091 :
1092 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1093 :
1094 : #undef CHECK_ASSERTION
1095 :
1096 : end submodule routines
|