ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_arrayFind.F90
Go to the documentation of this file.
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
97
98 use pm_kind, only: SK, IK, LK
100
101 implicit none
102
103 character(*,SK), parameter :: MODULE_NAME = "@pm_arrayFind"
104
105!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
106
363
364 ! border default D0_D0
365
366 interface getCountLoc
367
368 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
369 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
370 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
371
372 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
373
374#if SK5_ENABLED
375 PURE module function getCountLocDefBorDefCom_D0_D0_SK5(array, pattern, blindness) result(count)
376#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
377 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D0_D0_SK5
378#endif
379 use pm_kind, only: SKG => SK5
380 character(*,SKG) , intent(in) :: array
381 character(*,SKG) , intent(in) :: pattern
382 integer(IK) , intent(in), optional :: blindness
383 integer(IK) :: count
384 end function
385#endif
386
387#if SK4_ENABLED
388 PURE module function getCountLocDefBorDefCom_D0_D0_SK4(array, pattern, blindness) result(count)
389#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
390 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D0_D0_SK4
391#endif
392 use pm_kind, only: SKG => SK4
393 character(*,SKG) , intent(in) :: array
394 character(*,SKG) , intent(in) :: pattern
395 integer(IK) , intent(in), optional :: blindness
396 integer(IK) :: count
397 end function
398#endif
399
400#if SK3_ENABLED
401 PURE module function getCountLocDefBorDefCom_D0_D0_SK3(array, pattern, blindness) result(count)
402#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
403 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D0_D0_SK3
404#endif
405 use pm_kind, only: SKG => SK3
406 character(*,SKG) , intent(in) :: array
407 character(*,SKG) , intent(in) :: pattern
408 integer(IK) , intent(in), optional :: blindness
409 integer(IK) :: count
410 end function
411#endif
412
413#if SK2_ENABLED
414 PURE module function getCountLocDefBorDefCom_D0_D0_SK2(array, pattern, blindness) result(count)
415#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
416 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D0_D0_SK2
417#endif
418 use pm_kind, only: SKG => SK2
419 character(*,SKG) , intent(in) :: array
420 character(*,SKG) , intent(in) :: pattern
421 integer(IK) , intent(in), optional :: blindness
422 integer(IK) :: count
423 end function
424#endif
425
426#if SK1_ENABLED
427 PURE module function getCountLocDefBorDefCom_D0_D0_SK1(array, pattern, blindness) result(count)
428#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
429 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D0_D0_SK1
430#endif
431 use pm_kind, only: SKG => SK1
432 character(*,SKG) , intent(in) :: array
433 character(*,SKG) , intent(in) :: pattern
434 integer(IK) , intent(in), optional :: blindness
435 integer(IK) :: count
436 end function
437#endif
438
439 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
440
441 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
442 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
443 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
444
445 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
446
447#if SK5_ENABLED
448 module function getCountLocDefBorCusCom_D0_D0_SK5(array, pattern, iseq, blindness) result(count)
449#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
450 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D0_D0_SK5
451#endif
452 use pm_kind, only: SKG => SK5
453 character(*,SKG) , intent(in) :: array
454 character(*,SKG) , intent(in) :: pattern
455 procedure(logical(LK)) :: iseq
456 integer(IK) , intent(in), optional :: blindness
457 integer(IK) :: count
458 end function
459#endif
460
461#if SK4_ENABLED
462 module function getCountLocDefBorCusCom_D0_D0_SK4(array, pattern, iseq, blindness) result(count)
463#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
464 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D0_D0_SK4
465#endif
466 use pm_kind, only: SKG => SK4
467 character(*,SKG) , intent(in) :: array
468 character(*,SKG) , intent(in) :: pattern
469 procedure(logical(LK)) :: iseq
470 integer(IK) , intent(in), optional :: blindness
471 integer(IK) :: count
472 end function
473#endif
474
475#if SK3_ENABLED
476 module function getCountLocDefBorCusCom_D0_D0_SK3(array, pattern, iseq, blindness) result(count)
477#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
478 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D0_D0_SK3
479#endif
480 use pm_kind, only: SKG => SK3
481 character(*,SKG) , intent(in) :: array
482 character(*,SKG) , intent(in) :: pattern
483 procedure(logical(LK)) :: iseq
484 integer(IK) , intent(in), optional :: blindness
485 integer(IK) :: count
486 end function
487#endif
488
489#if SK2_ENABLED
490 module function getCountLocDefBorCusCom_D0_D0_SK2(array, pattern, iseq, blindness) result(count)
491#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
492 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D0_D0_SK2
493#endif
494 use pm_kind, only: SKG => SK2
495 character(*,SKG) , intent(in) :: array
496 character(*,SKG) , intent(in) :: pattern
497 procedure(logical(LK)) :: iseq
498 integer(IK) , intent(in), optional :: blindness
499 integer(IK) :: count
500 end function
501#endif
502
503#if SK1_ENABLED
504 module function getCountLocDefBorCusCom_D0_D0_SK1(array, pattern, iseq, blindness) result(count)
505#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
506 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D0_D0_SK1
507#endif
508 use pm_kind, only: SKG => SK1
509 character(*,SKG) , intent(in) :: array
510 character(*,SKG) , intent(in) :: pattern
511 procedure(logical(LK)) :: iseq
512 integer(IK) , intent(in), optional :: blindness
513 integer(IK) :: count
514 end function
515#endif
516
517 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
518
519 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
520 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
521 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
522
523 end interface
524
525 ! border default D1_D0
526
527 interface getCountLoc
528
529 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
530 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
531 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
532
533 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
534
535#if SK5_ENABLED
536 PURE module function getCountLocDefBorDefCom_D1_D0_SK5(array, pattern, blindness) result(count)
537#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
538 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_SK5
539#endif
540 use pm_kind, only: SKG => SK5
541 character(*,SKG) , intent(in), contiguous :: array(:)
542 character(*,SKG) , intent(in) :: pattern
543 integer(IK) , intent(in), optional :: blindness
544 integer(IK) :: count
545 end function
546#endif
547
548#if SK4_ENABLED
549 PURE module function getCountLocDefBorDefCom_D1_D0_SK4(array, pattern, blindness) result(count)
550#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
551 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_SK4
552#endif
553 use pm_kind, only: SKG => SK4
554 character(*,SKG) , intent(in), contiguous :: array(:)
555 character(*,SKG) , intent(in) :: pattern
556 integer(IK) , intent(in), optional :: blindness
557 integer(IK) :: count
558 end function
559#endif
560
561#if SK3_ENABLED
562 PURE module function getCountLocDefBorDefCom_D1_D0_SK3(array, pattern, blindness) result(count)
563#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
564 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_SK3
565#endif
566 use pm_kind, only: SKG => SK3
567 character(*,SKG) , intent(in), contiguous :: array(:)
568 character(*,SKG) , intent(in) :: pattern
569 integer(IK) , intent(in), optional :: blindness
570 integer(IK) :: count
571 end function
572#endif
573
574#if SK2_ENABLED
575 PURE module function getCountLocDefBorDefCom_D1_D0_SK2(array, pattern, blindness) result(count)
576#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
577 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_SK2
578#endif
579 use pm_kind, only: SKG => SK2
580 character(*,SKG) , intent(in), contiguous :: array(:)
581 character(*,SKG) , intent(in) :: pattern
582 integer(IK) , intent(in), optional :: blindness
583 integer(IK) :: count
584 end function
585#endif
586
587#if SK1_ENABLED
588 PURE module function getCountLocDefBorDefCom_D1_D0_SK1(array, pattern, blindness) result(count)
589#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
590 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_SK1
591#endif
592 use pm_kind, only: SKG => SK1
593 character(*,SKG) , intent(in), contiguous :: array(:)
594 character(*,SKG) , intent(in) :: pattern
595 integer(IK) , intent(in), optional :: blindness
596 integer(IK) :: count
597 end function
598#endif
599
600 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
601
602#if IK5_ENABLED
603 PURE module function getCountLocDefBorDefCom_D1_D0_IK5(array, pattern, blindness) result(count)
604#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
605 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_IK5
606#endif
607 use pm_kind, only: IKG => IK5
608 integer(IKG) , intent(in), contiguous :: array(:)
609 integer(IKG) , intent(in) :: pattern
610 integer(IK) , intent(in), optional :: blindness
611 integer(IK) :: count
612 end function
613#endif
614
615#if IK4_ENABLED
616 PURE module function getCountLocDefBorDefCom_D1_D0_IK4(array, pattern, blindness) result(count)
617#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
618 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_IK4
619#endif
620 use pm_kind, only: IKG => IK4
621 integer(IKG) , intent(in), contiguous :: array(:)
622 integer(IKG) , intent(in) :: pattern
623 integer(IK) , intent(in), optional :: blindness
624 integer(IK) :: count
625 end function
626#endif
627
628#if IK3_ENABLED
629 PURE module function getCountLocDefBorDefCom_D1_D0_IK3(array, pattern, blindness) result(count)
630#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
631 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_IK3
632#endif
633 use pm_kind, only: IKG => IK3
634 integer(IKG) , intent(in), contiguous :: array(:)
635 integer(IKG) , intent(in) :: pattern
636 integer(IK) , intent(in), optional :: blindness
637 integer(IK) :: count
638 end function
639#endif
640
641#if IK2_ENABLED
642 PURE module function getCountLocDefBorDefCom_D1_D0_IK2(array, pattern, blindness) result(count)
643#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
644 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_IK2
645#endif
646 use pm_kind, only: IKG => IK2
647 integer(IKG) , intent(in), contiguous :: array(:)
648 integer(IKG) , intent(in) :: pattern
649 integer(IK) , intent(in), optional :: blindness
650 integer(IK) :: count
651 end function
652#endif
653
654#if IK1_ENABLED
655 PURE module function getCountLocDefBorDefCom_D1_D0_IK1(array, pattern, blindness) result(count)
656#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
657 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_IK1
658#endif
659 use pm_kind, only: IKG => IK1
660 integer(IKG) , intent(in), contiguous :: array(:)
661 integer(IKG) , intent(in) :: pattern
662 integer(IK) , intent(in), optional :: blindness
663 integer(IK) :: count
664 end function
665#endif
666
667 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
668
669#if LK5_ENABLED
670 PURE module function getCountLocDefBorDefCom_D1_D0_LK5(array, pattern, blindness) result(count)
671#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
672 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_LK5
673#endif
674 use pm_kind, only: LKG => LK5
675 logical(LKG) , intent(in), contiguous :: array(:)
676 logical(LKG) , intent(in) :: pattern
677 integer(IK) , intent(in), optional :: blindness
678 integer(IK) :: count
679 end function
680#endif
681
682#if LK4_ENABLED
683 PURE module function getCountLocDefBorDefCom_D1_D0_LK4(array, pattern, blindness) result(count)
684#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
685 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_LK4
686#endif
687 use pm_kind, only: LKG => LK4
688 logical(LKG) , intent(in), contiguous :: array(:)
689 logical(LKG) , intent(in) :: pattern
690 integer(IK) , intent(in), optional :: blindness
691 integer(IK) :: count
692 end function
693#endif
694
695#if LK3_ENABLED
696 PURE module function getCountLocDefBorDefCom_D1_D0_LK3(array, pattern, blindness) result(count)
697#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
698 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_LK3
699#endif
700 use pm_kind, only: LKG => LK3
701 logical(LKG) , intent(in), contiguous :: array(:)
702 logical(LKG) , intent(in) :: pattern
703 integer(IK) , intent(in), optional :: blindness
704 integer(IK) :: count
705 end function
706#endif
707
708#if LK2_ENABLED
709 PURE module function getCountLocDefBorDefCom_D1_D0_LK2(array, pattern, blindness) result(count)
710#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
711 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_LK2
712#endif
713 use pm_kind, only: LKG => LK2
714 logical(LKG) , intent(in), contiguous :: array(:)
715 logical(LKG) , intent(in) :: pattern
716 integer(IK) , intent(in), optional :: blindness
717 integer(IK) :: count
718 end function
719#endif
720
721#if LK1_ENABLED
722 PURE module function getCountLocDefBorDefCom_D1_D0_LK1(array, pattern, blindness) result(count)
723#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
724 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_LK1
725#endif
726 use pm_kind, only: LKG => LK1
727 logical(LKG) , intent(in), contiguous :: array(:)
728 logical(LKG) , intent(in) :: pattern
729 integer(IK) , intent(in), optional :: blindness
730 integer(IK) :: count
731 end function
732#endif
733
734 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
735
736#if CK5_ENABLED
737 PURE module function getCountLocDefBorDefCom_D1_D0_CK5(array, pattern, blindness) result(count)
738#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
739 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_CK5
740#endif
741 use pm_kind, only: CKG => CK5
742 complex(CKG) , intent(in), contiguous :: array(:)
743 complex(CKG) , intent(in) :: pattern
744 integer(IK) , intent(in), optional :: blindness
745 integer(IK) :: count
746 end function
747#endif
748
749#if CK4_ENABLED
750 PURE module function getCountLocDefBorDefCom_D1_D0_CK4(array, pattern, blindness) result(count)
751#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
752 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_CK4
753#endif
754 use pm_kind, only: CKG => CK4
755 complex(CKG) , intent(in), contiguous :: array(:)
756 complex(CKG) , intent(in) :: pattern
757 integer(IK) , intent(in), optional :: blindness
758 integer(IK) :: count
759 end function
760#endif
761
762#if CK3_ENABLED
763 PURE module function getCountLocDefBorDefCom_D1_D0_CK3(array, pattern, blindness) result(count)
764#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
765 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_CK3
766#endif
767 use pm_kind, only: CKG => CK3
768 complex(CKG) , intent(in), contiguous :: array(:)
769 complex(CKG) , intent(in) :: pattern
770 integer(IK) , intent(in), optional :: blindness
771 integer(IK) :: count
772 end function
773#endif
774
775#if CK2_ENABLED
776 PURE module function getCountLocDefBorDefCom_D1_D0_CK2(array, pattern, blindness) result(count)
777#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
778 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_CK2
779#endif
780 use pm_kind, only: CKG => CK2
781 complex(CKG) , intent(in), contiguous :: array(:)
782 complex(CKG) , intent(in) :: pattern
783 integer(IK) , intent(in), optional :: blindness
784 integer(IK) :: count
785 end function
786#endif
787
788#if CK1_ENABLED
789 PURE module function getCountLocDefBorDefCom_D1_D0_CK1(array, pattern, blindness) result(count)
790#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
791 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_CK1
792#endif
793 use pm_kind, only: CKG => CK1
794 complex(CKG) , intent(in), contiguous :: array(:)
795 complex(CKG) , intent(in) :: pattern
796 integer(IK) , intent(in), optional :: blindness
797 integer(IK) :: count
798 end function
799#endif
800
801 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
802
803#if RK5_ENABLED
804 PURE module function getCountLocDefBorDefCom_D1_D0_RK5(array, pattern, blindness) result(count)
805#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
806 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_RK5
807#endif
808 use pm_kind, only: RKG => RK5
809 real(RKG) , intent(in), contiguous :: array(:)
810 real(RKG) , intent(in) :: pattern
811 integer(IK) , intent(in), optional :: blindness
812 integer(IK) :: count
813 end function
814#endif
815
816#if RK4_ENABLED
817 PURE module function getCountLocDefBorDefCom_D1_D0_RK4(array, pattern, blindness) result(count)
818#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
819 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_RK4
820#endif
821 use pm_kind, only: RKG => RK4
822 real(RKG) , intent(in), contiguous :: array(:)
823 real(RKG) , intent(in) :: pattern
824 integer(IK) , intent(in), optional :: blindness
825 integer(IK) :: count
826 end function
827#endif
828
829#if RK3_ENABLED
830 PURE module function getCountLocDefBorDefCom_D1_D0_RK3(array, pattern, blindness) result(count)
831#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
832 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_RK3
833#endif
834 use pm_kind, only: RKG => RK3
835 real(RKG) , intent(in), contiguous :: array(:)
836 real(RKG) , intent(in) :: pattern
837 integer(IK) , intent(in), optional :: blindness
838 integer(IK) :: count
839 end function
840#endif
841
842#if RK2_ENABLED
843 PURE module function getCountLocDefBorDefCom_D1_D0_RK2(array, pattern, blindness) result(count)
844#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
845 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_RK2
846#endif
847 use pm_kind, only: RKG => RK2
848 real(RKG) , intent(in), contiguous :: array(:)
849 real(RKG) , intent(in) :: pattern
850 integer(IK) , intent(in), optional :: blindness
851 integer(IK) :: count
852 end function
853#endif
854
855#if RK1_ENABLED
856 PURE module function getCountLocDefBorDefCom_D1_D0_RK1(array, pattern, blindness) result(count)
857#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
858 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D0_RK1
859#endif
860 use pm_kind, only: RKG => RK1
861 real(RKG) , intent(in), contiguous :: array(:)
862 real(RKG) , intent(in) :: pattern
863 integer(IK) , intent(in), optional :: blindness
864 integer(IK) :: count
865 end function
866#endif
867
868 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
869
870 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
871 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
872 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
873
874 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
875
876#if SK5_ENABLED
877 module function getCountLocDefBorCusCom_D1_D0_SK5(array, pattern, iseq, blindness) result(count)
878#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
879 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_SK5
880#endif
881 use pm_kind, only: SKG => SK5
882 character(*,SKG) , intent(in), contiguous :: array(:)
883 character(*,SKG) , intent(in) :: pattern
884 procedure(logical(LK)) :: iseq
885 integer(IK) , intent(in), optional :: blindness
886 integer(IK) :: count
887 end function
888#endif
889
890#if SK4_ENABLED
891 module function getCountLocDefBorCusCom_D1_D0_SK4(array, pattern, iseq, blindness) result(count)
892#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
893 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_SK4
894#endif
895 use pm_kind, only: SKG => SK4
896 character(*,SKG) , intent(in), contiguous :: array(:)
897 character(*,SKG) , intent(in) :: pattern
898 procedure(logical(LK)) :: iseq
899 integer(IK) , intent(in), optional :: blindness
900 integer(IK) :: count
901 end function
902#endif
903
904#if SK3_ENABLED
905 module function getCountLocDefBorCusCom_D1_D0_SK3(array, pattern, iseq, blindness) result(count)
906#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
907 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_SK3
908#endif
909 use pm_kind, only: SKG => SK3
910 character(*,SKG) , intent(in), contiguous :: array(:)
911 character(*,SKG) , intent(in) :: pattern
912 procedure(logical(LK)) :: iseq
913 integer(IK) , intent(in), optional :: blindness
914 integer(IK) :: count
915 end function
916#endif
917
918#if SK2_ENABLED
919 module function getCountLocDefBorCusCom_D1_D0_SK2(array, pattern, iseq, blindness) result(count)
920#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
921 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_SK2
922#endif
923 use pm_kind, only: SKG => SK2
924 character(*,SKG) , intent(in), contiguous :: array(:)
925 character(*,SKG) , intent(in) :: pattern
926 procedure(logical(LK)) :: iseq
927 integer(IK) , intent(in), optional :: blindness
928 integer(IK) :: count
929 end function
930#endif
931
932#if SK1_ENABLED
933 module function getCountLocDefBorCusCom_D1_D0_SK1(array, pattern, iseq, blindness) result(count)
934#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
935 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_SK1
936#endif
937 use pm_kind, only: SKG => SK1
938 character(*,SKG) , intent(in), contiguous :: array(:)
939 character(*,SKG) , intent(in) :: pattern
940 procedure(logical(LK)) :: iseq
941 integer(IK) , intent(in), optional :: blindness
942 integer(IK) :: count
943 end function
944#endif
945
946 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
947
948#if IK5_ENABLED
949 module function getCountLocDefBorCusCom_D1_D0_IK5(array, pattern, iseq, blindness) result(count)
950#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
951 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_IK5
952#endif
953 use pm_kind, only: IKG => IK5
954 integer(IKG) , intent(in), contiguous :: array(:)
955 integer(IKG) , intent(in) :: pattern
956 procedure(logical(LK)) :: iseq
957 integer(IK) , intent(in), optional :: blindness
958 integer(IK) :: count
959 end function
960#endif
961
962#if IK4_ENABLED
963 module function getCountLocDefBorCusCom_D1_D0_IK4(array, pattern, iseq, blindness) result(count)
964#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
965 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_IK4
966#endif
967 use pm_kind, only: IKG => IK4
968 integer(IKG) , intent(in), contiguous :: array(:)
969 integer(IKG) , intent(in) :: pattern
970 procedure(logical(LK)) :: iseq
971 integer(IK) , intent(in), optional :: blindness
972 integer(IK) :: count
973 end function
974#endif
975
976#if IK3_ENABLED
977 module function getCountLocDefBorCusCom_D1_D0_IK3(array, pattern, iseq, blindness) result(count)
978#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
979 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_IK3
980#endif
981 use pm_kind, only: IKG => IK3
982 integer(IKG) , intent(in), contiguous :: array(:)
983 integer(IKG) , intent(in) :: pattern
984 procedure(logical(LK)) :: iseq
985 integer(IK) , intent(in), optional :: blindness
986 integer(IK) :: count
987 end function
988#endif
989
990#if IK2_ENABLED
991 module function getCountLocDefBorCusCom_D1_D0_IK2(array, pattern, iseq, blindness) result(count)
992#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
993 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_IK2
994#endif
995 use pm_kind, only: IKG => IK2
996 integer(IKG) , intent(in), contiguous :: array(:)
997 integer(IKG) , intent(in) :: pattern
998 procedure(logical(LK)) :: iseq
999 integer(IK) , intent(in), optional :: blindness
1000 integer(IK) :: count
1001 end function
1002#endif
1003
1004#if IK1_ENABLED
1005 module function getCountLocDefBorCusCom_D1_D0_IK1(array, pattern, iseq, blindness) result(count)
1006#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1007 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_IK1
1008#endif
1009 use pm_kind, only: IKG => IK1
1010 integer(IKG) , intent(in), contiguous :: array(:)
1011 integer(IKG) , intent(in) :: pattern
1012 procedure(logical(LK)) :: iseq
1013 integer(IK) , intent(in), optional :: blindness
1014 integer(IK) :: count
1015 end function
1016#endif
1017
1018 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1019
1020#if LK5_ENABLED
1021 module function getCountLocDefBorCusCom_D1_D0_LK5(array, pattern, iseq, blindness) result(count)
1022#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1023 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_LK5
1024#endif
1025 use pm_kind, only: LKG => LK5
1026 logical(LKG) , intent(in), contiguous :: array(:)
1027 logical(LKG) , intent(in) :: pattern
1028 procedure(logical(LK)) :: iseq
1029 integer(IK) , intent(in), optional :: blindness
1030 integer(IK) :: count
1031 end function
1032#endif
1033
1034#if LK4_ENABLED
1035 module function getCountLocDefBorCusCom_D1_D0_LK4(array, pattern, iseq, blindness) result(count)
1036#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1037 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_LK4
1038#endif
1039 use pm_kind, only: LKG => LK4
1040 logical(LKG) , intent(in), contiguous :: array(:)
1041 logical(LKG) , intent(in) :: pattern
1042 procedure(logical(LK)) :: iseq
1043 integer(IK) , intent(in), optional :: blindness
1044 integer(IK) :: count
1045 end function
1046#endif
1047
1048#if LK3_ENABLED
1049 module function getCountLocDefBorCusCom_D1_D0_LK3(array, pattern, iseq, blindness) result(count)
1050#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1051 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_LK3
1052#endif
1053 use pm_kind, only: LKG => LK3
1054 logical(LKG) , intent(in), contiguous :: array(:)
1055 logical(LKG) , intent(in) :: pattern
1056 procedure(logical(LK)) :: iseq
1057 integer(IK) , intent(in), optional :: blindness
1058 integer(IK) :: count
1059 end function
1060#endif
1061
1062#if LK2_ENABLED
1063 module function getCountLocDefBorCusCom_D1_D0_LK2(array, pattern, iseq, blindness) result(count)
1064#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1065 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_LK2
1066#endif
1067 use pm_kind, only: LKG => LK2
1068 logical(LKG) , intent(in), contiguous :: array(:)
1069 logical(LKG) , intent(in) :: pattern
1070 procedure(logical(LK)) :: iseq
1071 integer(IK) , intent(in), optional :: blindness
1072 integer(IK) :: count
1073 end function
1074#endif
1075
1076#if LK1_ENABLED
1077 module function getCountLocDefBorCusCom_D1_D0_LK1(array, pattern, iseq, blindness) result(count)
1078#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1079 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_LK1
1080#endif
1081 use pm_kind, only: LKG => LK1
1082 logical(LKG) , intent(in), contiguous :: array(:)
1083 logical(LKG) , intent(in) :: pattern
1084 procedure(logical(LK)) :: iseq
1085 integer(IK) , intent(in), optional :: blindness
1086 integer(IK) :: count
1087 end function
1088#endif
1089
1090 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1091
1092#if CK5_ENABLED
1093 module function getCountLocDefBorCusCom_D1_D0_CK5(array, pattern, iseq, blindness) result(count)
1094#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1095 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_CK5
1096#endif
1097 use pm_kind, only: CKG => CK5
1098 complex(CKG) , intent(in), contiguous :: array(:)
1099 complex(CKG) , intent(in) :: pattern
1100 procedure(logical(LK)) :: iseq
1101 integer(IK) , intent(in), optional :: blindness
1102 integer(IK) :: count
1103 end function
1104#endif
1105
1106#if CK4_ENABLED
1107 module function getCountLocDefBorCusCom_D1_D0_CK4(array, pattern, iseq, blindness) result(count)
1108#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1109 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_CK4
1110#endif
1111 use pm_kind, only: CKG => CK4
1112 complex(CKG) , intent(in), contiguous :: array(:)
1113 complex(CKG) , intent(in) :: pattern
1114 procedure(logical(LK)) :: iseq
1115 integer(IK) , intent(in), optional :: blindness
1116 integer(IK) :: count
1117 end function
1118#endif
1119
1120#if CK3_ENABLED
1121 module function getCountLocDefBorCusCom_D1_D0_CK3(array, pattern, iseq, blindness) result(count)
1122#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1123 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_CK3
1124#endif
1125 use pm_kind, only: CKG => CK3
1126 complex(CKG) , intent(in), contiguous :: array(:)
1127 complex(CKG) , intent(in) :: pattern
1128 procedure(logical(LK)) :: iseq
1129 integer(IK) , intent(in), optional :: blindness
1130 integer(IK) :: count
1131 end function
1132#endif
1133
1134#if CK2_ENABLED
1135 module function getCountLocDefBorCusCom_D1_D0_CK2(array, pattern, iseq, blindness) result(count)
1136#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1137 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_CK2
1138#endif
1139 use pm_kind, only: CKG => CK2
1140 complex(CKG) , intent(in), contiguous :: array(:)
1141 complex(CKG) , intent(in) :: pattern
1142 procedure(logical(LK)) :: iseq
1143 integer(IK) , intent(in), optional :: blindness
1144 integer(IK) :: count
1145 end function
1146#endif
1147
1148#if CK1_ENABLED
1149 module function getCountLocDefBorCusCom_D1_D0_CK1(array, pattern, iseq, blindness) result(count)
1150#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1151 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_CK1
1152#endif
1153 use pm_kind, only: CKG => CK1
1154 complex(CKG) , intent(in), contiguous :: array(:)
1155 complex(CKG) , intent(in) :: pattern
1156 procedure(logical(LK)) :: iseq
1157 integer(IK) , intent(in), optional :: blindness
1158 integer(IK) :: count
1159 end function
1160#endif
1161
1162 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1163
1164#if RK5_ENABLED
1165 module function getCountLocDefBorCusCom_D1_D0_RK5(array, pattern, iseq, blindness) result(count)
1166#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1167 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_RK5
1168#endif
1169 use pm_kind, only: RKG => RK5
1170 real(RKG) , intent(in), contiguous :: array(:)
1171 real(RKG) , intent(in) :: pattern
1172 procedure(logical(LK)) :: iseq
1173 integer(IK) , intent(in), optional :: blindness
1174 integer(IK) :: count
1175 end function
1176#endif
1177
1178#if RK4_ENABLED
1179 module function getCountLocDefBorCusCom_D1_D0_RK4(array, pattern, iseq, blindness) result(count)
1180#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1181 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_RK4
1182#endif
1183 use pm_kind, only: RKG => RK4
1184 real(RKG) , intent(in), contiguous :: array(:)
1185 real(RKG) , intent(in) :: pattern
1186 procedure(logical(LK)) :: iseq
1187 integer(IK) , intent(in), optional :: blindness
1188 integer(IK) :: count
1189 end function
1190#endif
1191
1192#if RK3_ENABLED
1193 module function getCountLocDefBorCusCom_D1_D0_RK3(array, pattern, iseq, blindness) result(count)
1194#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1195 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_RK3
1196#endif
1197 use pm_kind, only: RKG => RK3
1198 real(RKG) , intent(in), contiguous :: array(:)
1199 real(RKG) , intent(in) :: pattern
1200 procedure(logical(LK)) :: iseq
1201 integer(IK) , intent(in), optional :: blindness
1202 integer(IK) :: count
1203 end function
1204#endif
1205
1206#if RK2_ENABLED
1207 module function getCountLocDefBorCusCom_D1_D0_RK2(array, pattern, iseq, blindness) result(count)
1208#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1209 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_RK2
1210#endif
1211 use pm_kind, only: RKG => RK2
1212 real(RKG) , intent(in), contiguous :: array(:)
1213 real(RKG) , intent(in) :: pattern
1214 procedure(logical(LK)) :: iseq
1215 integer(IK) , intent(in), optional :: blindness
1216 integer(IK) :: count
1217 end function
1218#endif
1219
1220#if RK1_ENABLED
1221 module function getCountLocDefBorCusCom_D1_D0_RK1(array, pattern, iseq, blindness) result(count)
1222#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1223 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D0_RK1
1224#endif
1225 use pm_kind, only: RKG => RK1
1226 real(RKG) , intent(in), contiguous :: array(:)
1227 real(RKG) , intent(in) :: pattern
1228 procedure(logical(LK)) :: iseq
1229 integer(IK) , intent(in), optional :: blindness
1230 integer(IK) :: count
1231 end function
1232#endif
1233
1234 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1235
1236 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1237 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1238 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1239
1240 end interface
1241
1242 ! border default D1_D1
1243
1244 interface getCountLoc
1245
1246 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1247 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1248 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1249
1250 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1251
1252#if SK5_ENABLED
1253 PURE module function getCountLocDefBorDefCom_D1_D1_SK5(array, pattern, blindness) result(count)
1254#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1255 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_SK5
1256#endif
1257 use pm_kind, only: SKG => SK5
1258 character(*,SKG) , intent(in), contiguous :: array(:)
1259 character(*,SKG) , intent(in), contiguous :: pattern(:)
1260 integer(IK) , intent(in), optional :: blindness
1261 integer(IK) :: count
1262 end function
1263#endif
1264
1265#if SK4_ENABLED
1266 PURE module function getCountLocDefBorDefCom_D1_D1_SK4(array, pattern, blindness) result(count)
1267#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1268 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_SK4
1269#endif
1270 use pm_kind, only: SKG => SK4
1271 character(*,SKG) , intent(in), contiguous :: array(:)
1272 character(*,SKG) , intent(in), contiguous :: pattern(:)
1273 integer(IK) , intent(in), optional :: blindness
1274 integer(IK) :: count
1275 end function
1276#endif
1277
1278#if SK3_ENABLED
1279 PURE module function getCountLocDefBorDefCom_D1_D1_SK3(array, pattern, blindness) result(count)
1280#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1281 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_SK3
1282#endif
1283 use pm_kind, only: SKG => SK3
1284 character(*,SKG) , intent(in), contiguous :: array(:)
1285 character(*,SKG) , intent(in), contiguous :: pattern(:)
1286 integer(IK) , intent(in), optional :: blindness
1287 integer(IK) :: count
1288 end function
1289#endif
1290
1291#if SK2_ENABLED
1292 PURE module function getCountLocDefBorDefCom_D1_D1_SK2(array, pattern, blindness) result(count)
1293#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1294 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_SK2
1295#endif
1296 use pm_kind, only: SKG => SK2
1297 character(*,SKG) , intent(in), contiguous :: array(:)
1298 character(*,SKG) , intent(in), contiguous :: pattern(:)
1299 integer(IK) , intent(in), optional :: blindness
1300 integer(IK) :: count
1301 end function
1302#endif
1303
1304#if SK1_ENABLED
1305 PURE module function getCountLocDefBorDefCom_D1_D1_SK1(array, pattern, blindness) result(count)
1306#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1307 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_SK1
1308#endif
1309 use pm_kind, only: SKG => SK1
1310 character(*,SKG) , intent(in), contiguous :: array(:)
1311 character(*,SKG) , intent(in), contiguous :: pattern(:)
1312 integer(IK) , intent(in), optional :: blindness
1313 integer(IK) :: count
1314 end function
1315#endif
1316
1317 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1318
1319#if IK5_ENABLED
1320 PURE module function getCountLocDefBorDefCom_D1_D1_IK5(array, pattern, blindness) result(count)
1321#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1322 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_IK5
1323#endif
1324 use pm_kind, only: IKG => IK5
1325 integer(IKG) , intent(in), contiguous :: array(:)
1326 integer(IKG) , intent(in), contiguous :: pattern(:)
1327 integer(IK) , intent(in), optional :: blindness
1328 integer(IK) :: count
1329 end function
1330#endif
1331
1332#if IK4_ENABLED
1333 PURE module function getCountLocDefBorDefCom_D1_D1_IK4(array, pattern, blindness) result(count)
1334#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1335 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_IK4
1336#endif
1337 use pm_kind, only: IKG => IK4
1338 integer(IKG) , intent(in), contiguous :: array(:)
1339 integer(IKG) , intent(in), contiguous :: pattern(:)
1340 integer(IK) , intent(in), optional :: blindness
1341 integer(IK) :: count
1342 end function
1343#endif
1344
1345#if IK3_ENABLED
1346 PURE module function getCountLocDefBorDefCom_D1_D1_IK3(array, pattern, blindness) result(count)
1347#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1348 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_IK3
1349#endif
1350 use pm_kind, only: IKG => IK3
1351 integer(IKG) , intent(in), contiguous :: array(:)
1352 integer(IKG) , intent(in), contiguous :: pattern(:)
1353 integer(IK) , intent(in), optional :: blindness
1354 integer(IK) :: count
1355 end function
1356#endif
1357
1358#if IK2_ENABLED
1359 PURE module function getCountLocDefBorDefCom_D1_D1_IK2(array, pattern, blindness) result(count)
1360#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1361 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_IK2
1362#endif
1363 use pm_kind, only: IKG => IK2
1364 integer(IKG) , intent(in), contiguous :: array(:)
1365 integer(IKG) , intent(in), contiguous :: pattern(:)
1366 integer(IK) , intent(in), optional :: blindness
1367 integer(IK) :: count
1368 end function
1369#endif
1370
1371#if IK1_ENABLED
1372 PURE module function getCountLocDefBorDefCom_D1_D1_IK1(array, pattern, blindness) result(count)
1373#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1374 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_IK1
1375#endif
1376 use pm_kind, only: IKG => IK1
1377 integer(IKG) , intent(in), contiguous :: array(:)
1378 integer(IKG) , intent(in), contiguous :: pattern(:)
1379 integer(IK) , intent(in), optional :: blindness
1380 integer(IK) :: count
1381 end function
1382#endif
1383
1384 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1385
1386#if LK5_ENABLED
1387 PURE module function getCountLocDefBorDefCom_D1_D1_LK5(array, pattern, blindness) result(count)
1388#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1389 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_LK5
1390#endif
1391 use pm_kind, only: LKG => LK5
1392 logical(LKG) , intent(in), contiguous :: array(:)
1393 logical(LKG) , intent(in), contiguous :: pattern(:)
1394 integer(IK) , intent(in), optional :: blindness
1395 integer(IK) :: count
1396 end function
1397#endif
1398
1399#if LK4_ENABLED
1400 PURE module function getCountLocDefBorDefCom_D1_D1_LK4(array, pattern, blindness) result(count)
1401#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1402 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_LK4
1403#endif
1404 use pm_kind, only: LKG => LK4
1405 logical(LKG) , intent(in), contiguous :: array(:)
1406 logical(LKG) , intent(in), contiguous :: pattern(:)
1407 integer(IK) , intent(in), optional :: blindness
1408 integer(IK) :: count
1409 end function
1410#endif
1411
1412#if LK3_ENABLED
1413 PURE module function getCountLocDefBorDefCom_D1_D1_LK3(array, pattern, blindness) result(count)
1414#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1415 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_LK3
1416#endif
1417 use pm_kind, only: LKG => LK3
1418 logical(LKG) , intent(in), contiguous :: array(:)
1419 logical(LKG) , intent(in), contiguous :: pattern(:)
1420 integer(IK) , intent(in), optional :: blindness
1421 integer(IK) :: count
1422 end function
1423#endif
1424
1425#if LK2_ENABLED
1426 PURE module function getCountLocDefBorDefCom_D1_D1_LK2(array, pattern, blindness) result(count)
1427#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1428 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_LK2
1429#endif
1430 use pm_kind, only: LKG => LK2
1431 logical(LKG) , intent(in), contiguous :: array(:)
1432 logical(LKG) , intent(in), contiguous :: pattern(:)
1433 integer(IK) , intent(in), optional :: blindness
1434 integer(IK) :: count
1435 end function
1436#endif
1437
1438#if LK1_ENABLED
1439 PURE module function getCountLocDefBorDefCom_D1_D1_LK1(array, pattern, blindness) result(count)
1440#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1441 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_LK1
1442#endif
1443 use pm_kind, only: LKG => LK1
1444 logical(LKG) , intent(in), contiguous :: array(:)
1445 logical(LKG) , intent(in), contiguous :: pattern(:)
1446 integer(IK) , intent(in), optional :: blindness
1447 integer(IK) :: count
1448 end function
1449#endif
1450
1451 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1452
1453#if CK5_ENABLED
1454 PURE module function getCountLocDefBorDefCom_D1_D1_CK5(array, pattern, blindness) result(count)
1455#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1456 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_CK5
1457#endif
1458 use pm_kind, only: CKG => CK5
1459 complex(CKG) , intent(in), contiguous :: array(:)
1460 complex(CKG) , intent(in), contiguous :: pattern(:)
1461 integer(IK) , intent(in), optional :: blindness
1462 integer(IK) :: count
1463 end function
1464#endif
1465
1466#if CK4_ENABLED
1467 PURE module function getCountLocDefBorDefCom_D1_D1_CK4(array, pattern, blindness) result(count)
1468#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1469 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_CK4
1470#endif
1471 use pm_kind, only: CKG => CK4
1472 complex(CKG) , intent(in), contiguous :: array(:)
1473 complex(CKG) , intent(in), contiguous :: pattern(:)
1474 integer(IK) , intent(in), optional :: blindness
1475 integer(IK) :: count
1476 end function
1477#endif
1478
1479#if CK3_ENABLED
1480 PURE module function getCountLocDefBorDefCom_D1_D1_CK3(array, pattern, blindness) result(count)
1481#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1482 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_CK3
1483#endif
1484 use pm_kind, only: CKG => CK3
1485 complex(CKG) , intent(in), contiguous :: array(:)
1486 complex(CKG) , intent(in), contiguous :: pattern(:)
1487 integer(IK) , intent(in), optional :: blindness
1488 integer(IK) :: count
1489 end function
1490#endif
1491
1492#if CK2_ENABLED
1493 PURE module function getCountLocDefBorDefCom_D1_D1_CK2(array, pattern, blindness) result(count)
1494#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1495 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_CK2
1496#endif
1497 use pm_kind, only: CKG => CK2
1498 complex(CKG) , intent(in), contiguous :: array(:)
1499 complex(CKG) , intent(in), contiguous :: pattern(:)
1500 integer(IK) , intent(in), optional :: blindness
1501 integer(IK) :: count
1502 end function
1503#endif
1504
1505#if CK1_ENABLED
1506 PURE module function getCountLocDefBorDefCom_D1_D1_CK1(array, pattern, blindness) result(count)
1507#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1508 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_CK1
1509#endif
1510 use pm_kind, only: CKG => CK1
1511 complex(CKG) , intent(in), contiguous :: array(:)
1512 complex(CKG) , intent(in), contiguous :: pattern(:)
1513 integer(IK) , intent(in), optional :: blindness
1514 integer(IK) :: count
1515 end function
1516#endif
1517
1518 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1519
1520#if RK5_ENABLED
1521 PURE module function getCountLocDefBorDefCom_D1_D1_RK5(array, pattern, blindness) result(count)
1522#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1523 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_RK5
1524#endif
1525 use pm_kind, only: RKG => RK5
1526 real(RKG) , intent(in), contiguous :: array(:)
1527 real(RKG) , intent(in), contiguous :: pattern(:)
1528 integer(IK) , intent(in), optional :: blindness
1529 integer(IK) :: count
1530 end function
1531#endif
1532
1533#if RK4_ENABLED
1534 PURE module function getCountLocDefBorDefCom_D1_D1_RK4(array, pattern, blindness) result(count)
1535#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1536 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_RK4
1537#endif
1538 use pm_kind, only: RKG => RK4
1539 real(RKG) , intent(in), contiguous :: array(:)
1540 real(RKG) , intent(in), contiguous :: pattern(:)
1541 integer(IK) , intent(in), optional :: blindness
1542 integer(IK) :: count
1543 end function
1544#endif
1545
1546#if RK3_ENABLED
1547 PURE module function getCountLocDefBorDefCom_D1_D1_RK3(array, pattern, blindness) result(count)
1548#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1549 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_RK3
1550#endif
1551 use pm_kind, only: RKG => RK3
1552 real(RKG) , intent(in), contiguous :: array(:)
1553 real(RKG) , intent(in), contiguous :: pattern(:)
1554 integer(IK) , intent(in), optional :: blindness
1555 integer(IK) :: count
1556 end function
1557#endif
1558
1559#if RK2_ENABLED
1560 PURE module function getCountLocDefBorDefCom_D1_D1_RK2(array, pattern, blindness) result(count)
1561#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1562 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_RK2
1563#endif
1564 use pm_kind, only: RKG => RK2
1565 real(RKG) , intent(in), contiguous :: array(:)
1566 real(RKG) , intent(in), contiguous :: pattern(:)
1567 integer(IK) , intent(in), optional :: blindness
1568 integer(IK) :: count
1569 end function
1570#endif
1571
1572#if RK1_ENABLED
1573 PURE module function getCountLocDefBorDefCom_D1_D1_RK1(array, pattern, blindness) result(count)
1574#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1575 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorDefCom_D1_D1_RK1
1576#endif
1577 use pm_kind, only: RKG => RK1
1578 real(RKG) , intent(in), contiguous :: array(:)
1579 real(RKG) , intent(in), contiguous :: pattern(:)
1580 integer(IK) , intent(in), optional :: blindness
1581 integer(IK) :: count
1582 end function
1583#endif
1584
1585 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1586
1587 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1588 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1589 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1590
1591 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1592
1593#if SK5_ENABLED
1594 module function getCountLocDefBorCusCom_D1_D1_SK5(array, pattern, iseq, blindness) result(count)
1595#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1596 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_SK5
1597#endif
1598 use pm_kind, only: SKG => SK5
1599 character(*,SKG) , intent(in), contiguous :: array(:)
1600 character(*,SKG) , intent(in), contiguous :: pattern(:)
1601 procedure(logical(LK)) :: iseq
1602 integer(IK) , intent(in), optional :: blindness
1603 integer(IK) :: count
1604 end function
1605#endif
1606
1607#if SK4_ENABLED
1608 module function getCountLocDefBorCusCom_D1_D1_SK4(array, pattern, iseq, blindness) result(count)
1609#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1610 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_SK4
1611#endif
1612 use pm_kind, only: SKG => SK4
1613 character(*,SKG) , intent(in), contiguous :: array(:)
1614 character(*,SKG) , intent(in), contiguous :: pattern(:)
1615 procedure(logical(LK)) :: iseq
1616 integer(IK) , intent(in), optional :: blindness
1617 integer(IK) :: count
1618 end function
1619#endif
1620
1621#if SK3_ENABLED
1622 module function getCountLocDefBorCusCom_D1_D1_SK3(array, pattern, iseq, blindness) result(count)
1623#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1624 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_SK3
1625#endif
1626 use pm_kind, only: SKG => SK3
1627 character(*,SKG) , intent(in), contiguous :: array(:)
1628 character(*,SKG) , intent(in), contiguous :: pattern(:)
1629 procedure(logical(LK)) :: iseq
1630 integer(IK) , intent(in), optional :: blindness
1631 integer(IK) :: count
1632 end function
1633#endif
1634
1635#if SK2_ENABLED
1636 module function getCountLocDefBorCusCom_D1_D1_SK2(array, pattern, iseq, blindness) result(count)
1637#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1638 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_SK2
1639#endif
1640 use pm_kind, only: SKG => SK2
1641 character(*,SKG) , intent(in), contiguous :: array(:)
1642 character(*,SKG) , intent(in), contiguous :: pattern(:)
1643 procedure(logical(LK)) :: iseq
1644 integer(IK) , intent(in), optional :: blindness
1645 integer(IK) :: count
1646 end function
1647#endif
1648
1649#if SK1_ENABLED
1650 module function getCountLocDefBorCusCom_D1_D1_SK1(array, pattern, iseq, blindness) result(count)
1651#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1652 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_SK1
1653#endif
1654 use pm_kind, only: SKG => SK1
1655 character(*,SKG) , intent(in), contiguous :: array(:)
1656 character(*,SKG) , intent(in), contiguous :: pattern(:)
1657 procedure(logical(LK)) :: iseq
1658 integer(IK) , intent(in), optional :: blindness
1659 integer(IK) :: count
1660 end function
1661#endif
1662
1663 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1664
1665#if IK5_ENABLED
1666 module function getCountLocDefBorCusCom_D1_D1_IK5(array, pattern, iseq, blindness) result(count)
1667#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1668 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_IK5
1669#endif
1670 use pm_kind, only: IKG => IK5
1671 integer(IKG) , intent(in), contiguous :: array(:)
1672 integer(IKG) , intent(in), contiguous :: pattern(:)
1673 procedure(logical(LK)) :: iseq
1674 integer(IK) , intent(in), optional :: blindness
1675 integer(IK) :: count
1676 end function
1677#endif
1678
1679#if IK4_ENABLED
1680 module function getCountLocDefBorCusCom_D1_D1_IK4(array, pattern, iseq, blindness) result(count)
1681#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1682 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_IK4
1683#endif
1684 use pm_kind, only: IKG => IK4
1685 integer(IKG) , intent(in), contiguous :: array(:)
1686 integer(IKG) , intent(in), contiguous :: pattern(:)
1687 procedure(logical(LK)) :: iseq
1688 integer(IK) , intent(in), optional :: blindness
1689 integer(IK) :: count
1690 end function
1691#endif
1692
1693#if IK3_ENABLED
1694 module function getCountLocDefBorCusCom_D1_D1_IK3(array, pattern, iseq, blindness) result(count)
1695#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1696 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_IK3
1697#endif
1698 use pm_kind, only: IKG => IK3
1699 integer(IKG) , intent(in), contiguous :: array(:)
1700 integer(IKG) , intent(in), contiguous :: pattern(:)
1701 procedure(logical(LK)) :: iseq
1702 integer(IK) , intent(in), optional :: blindness
1703 integer(IK) :: count
1704 end function
1705#endif
1706
1707#if IK2_ENABLED
1708 module function getCountLocDefBorCusCom_D1_D1_IK2(array, pattern, iseq, blindness) result(count)
1709#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1710 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_IK2
1711#endif
1712 use pm_kind, only: IKG => IK2
1713 integer(IKG) , intent(in), contiguous :: array(:)
1714 integer(IKG) , intent(in), contiguous :: pattern(:)
1715 procedure(logical(LK)) :: iseq
1716 integer(IK) , intent(in), optional :: blindness
1717 integer(IK) :: count
1718 end function
1719#endif
1720
1721#if IK1_ENABLED
1722 module function getCountLocDefBorCusCom_D1_D1_IK1(array, pattern, iseq, blindness) result(count)
1723#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1724 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_IK1
1725#endif
1726 use pm_kind, only: IKG => IK1
1727 integer(IKG) , intent(in), contiguous :: array(:)
1728 integer(IKG) , intent(in), contiguous :: pattern(:)
1729 procedure(logical(LK)) :: iseq
1730 integer(IK) , intent(in), optional :: blindness
1731 integer(IK) :: count
1732 end function
1733#endif
1734
1735 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1736
1737#if LK5_ENABLED
1738 module function getCountLocDefBorCusCom_D1_D1_LK5(array, pattern, iseq, blindness) result(count)
1739#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1740 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_LK5
1741#endif
1742 use pm_kind, only: LKG => LK5
1743 logical(LKG) , intent(in), contiguous :: array(:)
1744 logical(LKG) , intent(in), contiguous :: pattern(:)
1745 procedure(logical(LK)) :: iseq
1746 integer(IK) , intent(in), optional :: blindness
1747 integer(IK) :: count
1748 end function
1749#endif
1750
1751#if LK4_ENABLED
1752 module function getCountLocDefBorCusCom_D1_D1_LK4(array, pattern, iseq, blindness) result(count)
1753#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1754 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_LK4
1755#endif
1756 use pm_kind, only: LKG => LK4
1757 logical(LKG) , intent(in), contiguous :: array(:)
1758 logical(LKG) , intent(in), contiguous :: pattern(:)
1759 procedure(logical(LK)) :: iseq
1760 integer(IK) , intent(in), optional :: blindness
1761 integer(IK) :: count
1762 end function
1763#endif
1764
1765#if LK3_ENABLED
1766 module function getCountLocDefBorCusCom_D1_D1_LK3(array, pattern, iseq, blindness) result(count)
1767#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1768 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_LK3
1769#endif
1770 use pm_kind, only: LKG => LK3
1771 logical(LKG) , intent(in), contiguous :: array(:)
1772 logical(LKG) , intent(in), contiguous :: pattern(:)
1773 procedure(logical(LK)) :: iseq
1774 integer(IK) , intent(in), optional :: blindness
1775 integer(IK) :: count
1776 end function
1777#endif
1778
1779#if LK2_ENABLED
1780 module function getCountLocDefBorCusCom_D1_D1_LK2(array, pattern, iseq, blindness) result(count)
1781#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1782 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_LK2
1783#endif
1784 use pm_kind, only: LKG => LK2
1785 logical(LKG) , intent(in), contiguous :: array(:)
1786 logical(LKG) , intent(in), contiguous :: pattern(:)
1787 procedure(logical(LK)) :: iseq
1788 integer(IK) , intent(in), optional :: blindness
1789 integer(IK) :: count
1790 end function
1791#endif
1792
1793#if LK1_ENABLED
1794 module function getCountLocDefBorCusCom_D1_D1_LK1(array, pattern, iseq, blindness) result(count)
1795#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1796 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_LK1
1797#endif
1798 use pm_kind, only: LKG => LK1
1799 logical(LKG) , intent(in), contiguous :: array(:)
1800 logical(LKG) , intent(in), contiguous :: pattern(:)
1801 procedure(logical(LK)) :: iseq
1802 integer(IK) , intent(in), optional :: blindness
1803 integer(IK) :: count
1804 end function
1805#endif
1806
1807 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1808
1809#if CK5_ENABLED
1810 module function getCountLocDefBorCusCom_D1_D1_CK5(array, pattern, iseq, blindness) result(count)
1811#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1812 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_CK5
1813#endif
1814 use pm_kind, only: CKG => CK5
1815 complex(CKG) , intent(in), contiguous :: array(:)
1816 complex(CKG) , intent(in), contiguous :: pattern(:)
1817 procedure(logical(LK)) :: iseq
1818 integer(IK) , intent(in), optional :: blindness
1819 integer(IK) :: count
1820 end function
1821#endif
1822
1823#if CK4_ENABLED
1824 module function getCountLocDefBorCusCom_D1_D1_CK4(array, pattern, iseq, blindness) result(count)
1825#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1826 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_CK4
1827#endif
1828 use pm_kind, only: CKG => CK4
1829 complex(CKG) , intent(in), contiguous :: array(:)
1830 complex(CKG) , intent(in), contiguous :: pattern(:)
1831 procedure(logical(LK)) :: iseq
1832 integer(IK) , intent(in), optional :: blindness
1833 integer(IK) :: count
1834 end function
1835#endif
1836
1837#if CK3_ENABLED
1838 module function getCountLocDefBorCusCom_D1_D1_CK3(array, pattern, iseq, blindness) result(count)
1839#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1840 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_CK3
1841#endif
1842 use pm_kind, only: CKG => CK3
1843 complex(CKG) , intent(in), contiguous :: array(:)
1844 complex(CKG) , intent(in), contiguous :: pattern(:)
1845 procedure(logical(LK)) :: iseq
1846 integer(IK) , intent(in), optional :: blindness
1847 integer(IK) :: count
1848 end function
1849#endif
1850
1851#if CK2_ENABLED
1852 module function getCountLocDefBorCusCom_D1_D1_CK2(array, pattern, iseq, blindness) result(count)
1853#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1854 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_CK2
1855#endif
1856 use pm_kind, only: CKG => CK2
1857 complex(CKG) , intent(in), contiguous :: array(:)
1858 complex(CKG) , intent(in), contiguous :: pattern(:)
1859 procedure(logical(LK)) :: iseq
1860 integer(IK) , intent(in), optional :: blindness
1861 integer(IK) :: count
1862 end function
1863#endif
1864
1865#if CK1_ENABLED
1866 module function getCountLocDefBorCusCom_D1_D1_CK1(array, pattern, iseq, blindness) result(count)
1867#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1868 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_CK1
1869#endif
1870 use pm_kind, only: CKG => CK1
1871 complex(CKG) , intent(in), contiguous :: array(:)
1872 complex(CKG) , intent(in), contiguous :: pattern(:)
1873 procedure(logical(LK)) :: iseq
1874 integer(IK) , intent(in), optional :: blindness
1875 integer(IK) :: count
1876 end function
1877#endif
1878
1879 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1880
1881#if RK5_ENABLED
1882 module function getCountLocDefBorCusCom_D1_D1_RK5(array, pattern, iseq, blindness) result(count)
1883#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1884 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_RK5
1885#endif
1886 use pm_kind, only: RKG => RK5
1887 real(RKG) , intent(in), contiguous :: array(:)
1888 real(RKG) , intent(in), contiguous :: pattern(:)
1889 procedure(logical(LK)) :: iseq
1890 integer(IK) , intent(in), optional :: blindness
1891 integer(IK) :: count
1892 end function
1893#endif
1894
1895#if RK4_ENABLED
1896 module function getCountLocDefBorCusCom_D1_D1_RK4(array, pattern, iseq, blindness) result(count)
1897#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1898 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_RK4
1899#endif
1900 use pm_kind, only: RKG => RK4
1901 real(RKG) , intent(in), contiguous :: array(:)
1902 real(RKG) , intent(in), contiguous :: pattern(:)
1903 procedure(logical(LK)) :: iseq
1904 integer(IK) , intent(in), optional :: blindness
1905 integer(IK) :: count
1906 end function
1907#endif
1908
1909#if RK3_ENABLED
1910 module function getCountLocDefBorCusCom_D1_D1_RK3(array, pattern, iseq, blindness) result(count)
1911#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1912 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_RK3
1913#endif
1914 use pm_kind, only: RKG => RK3
1915 real(RKG) , intent(in), contiguous :: array(:)
1916 real(RKG) , intent(in), contiguous :: pattern(:)
1917 procedure(logical(LK)) :: iseq
1918 integer(IK) , intent(in), optional :: blindness
1919 integer(IK) :: count
1920 end function
1921#endif
1922
1923#if RK2_ENABLED
1924 module function getCountLocDefBorCusCom_D1_D1_RK2(array, pattern, iseq, blindness) result(count)
1925#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1926 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_RK2
1927#endif
1928 use pm_kind, only: RKG => RK2
1929 real(RKG) , intent(in), contiguous :: array(:)
1930 real(RKG) , intent(in), contiguous :: pattern(:)
1931 procedure(logical(LK)) :: iseq
1932 integer(IK) , intent(in), optional :: blindness
1933 integer(IK) :: count
1934 end function
1935#endif
1936
1937#if RK1_ENABLED
1938 module function getCountLocDefBorCusCom_D1_D1_RK1(array, pattern, iseq, blindness) result(count)
1939#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1940 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDefBorCusCom_D1_D1_RK1
1941#endif
1942 use pm_kind, only: RKG => RK1
1943 real(RKG) , intent(in), contiguous :: array(:)
1944 real(RKG) , intent(in), contiguous :: pattern(:)
1945 procedure(logical(LK)) :: iseq
1946 integer(IK) , intent(in), optional :: blindness
1947 integer(IK) :: count
1948 end function
1949#endif
1950
1951 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1952
1953 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1954 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1955 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1956
1957 end interface
1958
1959 ! border discrete D0_D0
1960
1961 interface getCountLoc
1962
1963 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1964 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1965 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1966
1967 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1968
1969#if SK5_ENABLED
1970 PURE module function getCountLocDisBorDefCom_D0_D0_SK5(array, pattern, border, blindness) result(count)
1971#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1972 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D0_D0_SK5
1973#endif
1974 use pm_kind, only: SKG => SK5
1975 character(*,SKG) , intent(in) :: array
1976 character(*,SKG) , intent(in) :: pattern
1977 type(discrete_type) , intent(in) :: border
1978 integer(IK) , intent(in), optional :: blindness
1979 integer(IK) :: count
1980 end function
1981#endif
1982
1983#if SK4_ENABLED
1984 PURE module function getCountLocDisBorDefCom_D0_D0_SK4(array, pattern, border, blindness) result(count)
1985#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1986 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D0_D0_SK4
1987#endif
1988 use pm_kind, only: SKG => SK4
1989 character(*,SKG) , intent(in) :: array
1990 character(*,SKG) , intent(in) :: pattern
1991 type(discrete_type) , intent(in) :: border
1992 integer(IK) , intent(in), optional :: blindness
1993 integer(IK) :: count
1994 end function
1995#endif
1996
1997#if SK3_ENABLED
1998 PURE module function getCountLocDisBorDefCom_D0_D0_SK3(array, pattern, border, blindness) result(count)
1999#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2000 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D0_D0_SK3
2001#endif
2002 use pm_kind, only: SKG => SK3
2003 character(*,SKG) , intent(in) :: array
2004 character(*,SKG) , intent(in) :: pattern
2005 type(discrete_type) , intent(in) :: border
2006 integer(IK) , intent(in), optional :: blindness
2007 integer(IK) :: count
2008 end function
2009#endif
2010
2011#if SK2_ENABLED
2012 PURE module function getCountLocDisBorDefCom_D0_D0_SK2(array, pattern, border, blindness) result(count)
2013#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2014 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D0_D0_SK2
2015#endif
2016 use pm_kind, only: SKG => SK2
2017 character(*,SKG) , intent(in) :: array
2018 character(*,SKG) , intent(in) :: pattern
2019 type(discrete_type) , intent(in) :: border
2020 integer(IK) , intent(in), optional :: blindness
2021 integer(IK) :: count
2022 end function
2023#endif
2024
2025#if SK1_ENABLED
2026 PURE module function getCountLocDisBorDefCom_D0_D0_SK1(array, pattern, border, blindness) result(count)
2027#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2028 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D0_D0_SK1
2029#endif
2030 use pm_kind, only: SKG => SK1
2031 character(*,SKG) , intent(in) :: array
2032 character(*,SKG) , intent(in) :: pattern
2033 type(discrete_type) , intent(in) :: border
2034 integer(IK) , intent(in), optional :: blindness
2035 integer(IK) :: count
2036 end function
2037#endif
2038
2039 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2040
2041 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2042 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2043 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2044
2045 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2046
2047#if SK5_ENABLED
2048 module function getCountLocDisBorCusCom_D0_D0_SK5(array, pattern, border, iseq, blindness) result(count)
2049#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2050 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D0_D0_SK5
2051#endif
2052 use pm_kind, only: SKG => SK5
2053 character(*,SKG) , intent(in) :: array
2054 character(*,SKG) , intent(in) :: pattern
2055 procedure(logical(LK)) :: iseq
2056 type(discrete_type) , intent(in) :: border
2057 integer(IK) , intent(in), optional :: blindness
2058 integer(IK) :: count
2059 end function
2060#endif
2061
2062#if SK4_ENABLED
2063 module function getCountLocDisBorCusCom_D0_D0_SK4(array, pattern, border, iseq, blindness) result(count)
2064#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2065 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D0_D0_SK4
2066#endif
2067 use pm_kind, only: SKG => SK4
2068 character(*,SKG) , intent(in) :: array
2069 character(*,SKG) , intent(in) :: pattern
2070 procedure(logical(LK)) :: iseq
2071 type(discrete_type) , intent(in) :: border
2072 integer(IK) , intent(in), optional :: blindness
2073 integer(IK) :: count
2074 end function
2075#endif
2076
2077#if SK3_ENABLED
2078 module function getCountLocDisBorCusCom_D0_D0_SK3(array, pattern, border, iseq, blindness) result(count)
2079#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2080 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D0_D0_SK3
2081#endif
2082 use pm_kind, only: SKG => SK3
2083 character(*,SKG) , intent(in) :: array
2084 character(*,SKG) , intent(in) :: pattern
2085 procedure(logical(LK)) :: iseq
2086 type(discrete_type) , intent(in) :: border
2087 integer(IK) , intent(in), optional :: blindness
2088 integer(IK) :: count
2089 end function
2090#endif
2091
2092#if SK2_ENABLED
2093 module function getCountLocDisBorCusCom_D0_D0_SK2(array, pattern, border, iseq, blindness) result(count)
2094#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2095 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D0_D0_SK2
2096#endif
2097 use pm_kind, only: SKG => SK2
2098 character(*,SKG) , intent(in) :: array
2099 character(*,SKG) , intent(in) :: pattern
2100 procedure(logical(LK)) :: iseq
2101 type(discrete_type) , intent(in) :: border
2102 integer(IK) , intent(in), optional :: blindness
2103 integer(IK) :: count
2104 end function
2105#endif
2106
2107#if SK1_ENABLED
2108 module function getCountLocDisBorCusCom_D0_D0_SK1(array, pattern, border, iseq, blindness) result(count)
2109#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2110 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D0_D0_SK1
2111#endif
2112 use pm_kind, only: SKG => SK1
2113 character(*,SKG) , intent(in) :: array
2114 character(*,SKG) , intent(in) :: pattern
2115 procedure(logical(LK)) :: iseq
2116 type(discrete_type) , intent(in) :: border
2117 integer(IK) , intent(in), optional :: blindness
2118 integer(IK) :: count
2119 end function
2120#endif
2121
2122 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2123
2124 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2125 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2126 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2127
2128 end interface
2129
2130 ! border discrete D1_D0
2131
2132 interface getCountLoc
2133
2134 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2135 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2136 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2137
2138 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2139
2140#if SK5_ENABLED
2141 PURE module function getCountLocDisBorDefCom_D1_D0_SK5(array, pattern, border, blindness) result(count)
2142#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2143 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_SK5
2144#endif
2145 use pm_kind, only: SKG => SK5
2146 character(*,SKG) , intent(in), contiguous :: array(:)
2147 character(*,SKG) , intent(in) :: pattern
2148 type(discrete_type) , intent(in) :: border
2149 integer(IK) , intent(in), optional :: blindness
2150 integer(IK) :: count
2151 end function
2152#endif
2153
2154#if SK4_ENABLED
2155 PURE module function getCountLocDisBorDefCom_D1_D0_SK4(array, pattern, border, blindness) result(count)
2156#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2157 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_SK4
2158#endif
2159 use pm_kind, only: SKG => SK4
2160 character(*,SKG) , intent(in), contiguous :: array(:)
2161 character(*,SKG) , intent(in) :: pattern
2162 type(discrete_type) , intent(in) :: border
2163 integer(IK) , intent(in), optional :: blindness
2164 integer(IK) :: count
2165 end function
2166#endif
2167
2168#if SK3_ENABLED
2169 PURE module function getCountLocDisBorDefCom_D1_D0_SK3(array, pattern, border, blindness) result(count)
2170#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2171 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_SK3
2172#endif
2173 use pm_kind, only: SKG => SK3
2174 character(*,SKG) , intent(in), contiguous :: array(:)
2175 character(*,SKG) , intent(in) :: pattern
2176 type(discrete_type) , intent(in) :: border
2177 integer(IK) , intent(in), optional :: blindness
2178 integer(IK) :: count
2179 end function
2180#endif
2181
2182#if SK2_ENABLED
2183 PURE module function getCountLocDisBorDefCom_D1_D0_SK2(array, pattern, border, blindness) result(count)
2184#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2185 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_SK2
2186#endif
2187 use pm_kind, only: SKG => SK2
2188 character(*,SKG) , intent(in), contiguous :: array(:)
2189 character(*,SKG) , intent(in) :: pattern
2190 type(discrete_type) , intent(in) :: border
2191 integer(IK) , intent(in), optional :: blindness
2192 integer(IK) :: count
2193 end function
2194#endif
2195
2196#if SK1_ENABLED
2197 PURE module function getCountLocDisBorDefCom_D1_D0_SK1(array, pattern, border, blindness) result(count)
2198#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2199 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_SK1
2200#endif
2201 use pm_kind, only: SKG => SK1
2202 character(*,SKG) , intent(in), contiguous :: array(:)
2203 character(*,SKG) , intent(in) :: pattern
2204 type(discrete_type) , intent(in) :: border
2205 integer(IK) , intent(in), optional :: blindness
2206 integer(IK) :: count
2207 end function
2208#endif
2209
2210 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2211
2212#if IK5_ENABLED
2213 PURE module function getCountLocDisBorDefCom_D1_D0_IK5(array, pattern, border, blindness) result(count)
2214#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2215 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_IK5
2216#endif
2217 use pm_kind, only: IKG => IK5
2218 integer(IKG) , intent(in), contiguous :: array(:)
2219 integer(IKG) , intent(in) :: pattern
2220 type(discrete_type) , intent(in) :: border
2221 integer(IK) , intent(in), optional :: blindness
2222 integer(IK) :: count
2223 end function
2224#endif
2225
2226#if IK4_ENABLED
2227 PURE module function getCountLocDisBorDefCom_D1_D0_IK4(array, pattern, border, blindness) result(count)
2228#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2229 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_IK4
2230#endif
2231 use pm_kind, only: IKG => IK4
2232 integer(IKG) , intent(in), contiguous :: array(:)
2233 integer(IKG) , intent(in) :: pattern
2234 type(discrete_type) , intent(in) :: border
2235 integer(IK) , intent(in), optional :: blindness
2236 integer(IK) :: count
2237 end function
2238#endif
2239
2240#if IK3_ENABLED
2241 PURE module function getCountLocDisBorDefCom_D1_D0_IK3(array, pattern, border, blindness) result(count)
2242#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2243 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_IK3
2244#endif
2245 use pm_kind, only: IKG => IK3
2246 integer(IKG) , intent(in), contiguous :: array(:)
2247 integer(IKG) , intent(in) :: pattern
2248 type(discrete_type) , intent(in) :: border
2249 integer(IK) , intent(in), optional :: blindness
2250 integer(IK) :: count
2251 end function
2252#endif
2253
2254#if IK2_ENABLED
2255 PURE module function getCountLocDisBorDefCom_D1_D0_IK2(array, pattern, border, blindness) result(count)
2256#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2257 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_IK2
2258#endif
2259 use pm_kind, only: IKG => IK2
2260 integer(IKG) , intent(in), contiguous :: array(:)
2261 integer(IKG) , intent(in) :: pattern
2262 type(discrete_type) , intent(in) :: border
2263 integer(IK) , intent(in), optional :: blindness
2264 integer(IK) :: count
2265 end function
2266#endif
2267
2268#if IK1_ENABLED
2269 PURE module function getCountLocDisBorDefCom_D1_D0_IK1(array, pattern, border, blindness) result(count)
2270#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2271 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_IK1
2272#endif
2273 use pm_kind, only: IKG => IK1
2274 integer(IKG) , intent(in), contiguous :: array(:)
2275 integer(IKG) , intent(in) :: pattern
2276 type(discrete_type) , intent(in) :: border
2277 integer(IK) , intent(in), optional :: blindness
2278 integer(IK) :: count
2279 end function
2280#endif
2281
2282 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2283
2284#if LK5_ENABLED
2285 PURE module function getCountLocDisBorDefCom_D1_D0_LK5(array, pattern, border, blindness) result(count)
2286#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2287 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_LK5
2288#endif
2289 use pm_kind, only: LKG => LK5
2290 logical(LKG) , intent(in), contiguous :: array(:)
2291 logical(LKG) , intent(in) :: pattern
2292 type(discrete_type) , intent(in) :: border
2293 integer(IK) , intent(in), optional :: blindness
2294 integer(IK) :: count
2295 end function
2296#endif
2297
2298#if LK4_ENABLED
2299 PURE module function getCountLocDisBorDefCom_D1_D0_LK4(array, pattern, border, blindness) result(count)
2300#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2301 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_LK4
2302#endif
2303 use pm_kind, only: LKG => LK4
2304 logical(LKG) , intent(in), contiguous :: array(:)
2305 logical(LKG) , intent(in) :: pattern
2306 type(discrete_type) , intent(in) :: border
2307 integer(IK) , intent(in), optional :: blindness
2308 integer(IK) :: count
2309 end function
2310#endif
2311
2312#if LK3_ENABLED
2313 PURE module function getCountLocDisBorDefCom_D1_D0_LK3(array, pattern, border, blindness) result(count)
2314#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2315 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_LK3
2316#endif
2317 use pm_kind, only: LKG => LK3
2318 logical(LKG) , intent(in), contiguous :: array(:)
2319 logical(LKG) , intent(in) :: pattern
2320 type(discrete_type) , intent(in) :: border
2321 integer(IK) , intent(in), optional :: blindness
2322 integer(IK) :: count
2323 end function
2324#endif
2325
2326#if LK2_ENABLED
2327 PURE module function getCountLocDisBorDefCom_D1_D0_LK2(array, pattern, border, blindness) result(count)
2328#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2329 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_LK2
2330#endif
2331 use pm_kind, only: LKG => LK2
2332 logical(LKG) , intent(in), contiguous :: array(:)
2333 logical(LKG) , intent(in) :: pattern
2334 type(discrete_type) , intent(in) :: border
2335 integer(IK) , intent(in), optional :: blindness
2336 integer(IK) :: count
2337 end function
2338#endif
2339
2340#if LK1_ENABLED
2341 PURE module function getCountLocDisBorDefCom_D1_D0_LK1(array, pattern, border, blindness) result(count)
2342#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2343 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_LK1
2344#endif
2345 use pm_kind, only: LKG => LK1
2346 logical(LKG) , intent(in), contiguous :: array(:)
2347 logical(LKG) , intent(in) :: pattern
2348 type(discrete_type) , intent(in) :: border
2349 integer(IK) , intent(in), optional :: blindness
2350 integer(IK) :: count
2351 end function
2352#endif
2353
2354 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2355
2356#if CK5_ENABLED
2357 PURE module function getCountLocDisBorDefCom_D1_D0_CK5(array, pattern, border, blindness) result(count)
2358#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2359 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_CK5
2360#endif
2361 use pm_kind, only: CKG => CK5
2362 complex(CKG) , intent(in), contiguous :: array(:)
2363 complex(CKG) , intent(in) :: pattern
2364 type(discrete_type) , intent(in) :: border
2365 integer(IK) , intent(in), optional :: blindness
2366 integer(IK) :: count
2367 end function
2368#endif
2369
2370#if CK4_ENABLED
2371 PURE module function getCountLocDisBorDefCom_D1_D0_CK4(array, pattern, border, blindness) result(count)
2372#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2373 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_CK4
2374#endif
2375 use pm_kind, only: CKG => CK4
2376 complex(CKG) , intent(in), contiguous :: array(:)
2377 complex(CKG) , intent(in) :: pattern
2378 type(discrete_type) , intent(in) :: border
2379 integer(IK) , intent(in), optional :: blindness
2380 integer(IK) :: count
2381 end function
2382#endif
2383
2384#if CK3_ENABLED
2385 PURE module function getCountLocDisBorDefCom_D1_D0_CK3(array, pattern, border, blindness) result(count)
2386#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2387 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_CK3
2388#endif
2389 use pm_kind, only: CKG => CK3
2390 complex(CKG) , intent(in), contiguous :: array(:)
2391 complex(CKG) , intent(in) :: pattern
2392 type(discrete_type) , intent(in) :: border
2393 integer(IK) , intent(in), optional :: blindness
2394 integer(IK) :: count
2395 end function
2396#endif
2397
2398#if CK2_ENABLED
2399 PURE module function getCountLocDisBorDefCom_D1_D0_CK2(array, pattern, border, blindness) result(count)
2400#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2401 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_CK2
2402#endif
2403 use pm_kind, only: CKG => CK2
2404 complex(CKG) , intent(in), contiguous :: array(:)
2405 complex(CKG) , intent(in) :: pattern
2406 type(discrete_type) , intent(in) :: border
2407 integer(IK) , intent(in), optional :: blindness
2408 integer(IK) :: count
2409 end function
2410#endif
2411
2412#if CK1_ENABLED
2413 PURE module function getCountLocDisBorDefCom_D1_D0_CK1(array, pattern, border, blindness) result(count)
2414#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2415 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_CK1
2416#endif
2417 use pm_kind, only: CKG => CK1
2418 complex(CKG) , intent(in), contiguous :: array(:)
2419 complex(CKG) , intent(in) :: pattern
2420 type(discrete_type) , intent(in) :: border
2421 integer(IK) , intent(in), optional :: blindness
2422 integer(IK) :: count
2423 end function
2424#endif
2425
2426 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2427
2428#if RK5_ENABLED
2429 PURE module function getCountLocDisBorDefCom_D1_D0_RK5(array, pattern, border, blindness) result(count)
2430#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2431 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_RK5
2432#endif
2433 use pm_kind, only: RKG => RK5
2434 real(RKG) , intent(in), contiguous :: array(:)
2435 real(RKG) , intent(in) :: pattern
2436 type(discrete_type) , intent(in) :: border
2437 integer(IK) , intent(in), optional :: blindness
2438 integer(IK) :: count
2439 end function
2440#endif
2441
2442#if RK4_ENABLED
2443 PURE module function getCountLocDisBorDefCom_D1_D0_RK4(array, pattern, border, blindness) result(count)
2444#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2445 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_RK4
2446#endif
2447 use pm_kind, only: RKG => RK4
2448 real(RKG) , intent(in), contiguous :: array(:)
2449 real(RKG) , intent(in) :: pattern
2450 type(discrete_type) , intent(in) :: border
2451 integer(IK) , intent(in), optional :: blindness
2452 integer(IK) :: count
2453 end function
2454#endif
2455
2456#if RK3_ENABLED
2457 PURE module function getCountLocDisBorDefCom_D1_D0_RK3(array, pattern, border, blindness) result(count)
2458#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2459 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_RK3
2460#endif
2461 use pm_kind, only: RKG => RK3
2462 real(RKG) , intent(in), contiguous :: array(:)
2463 real(RKG) , intent(in) :: pattern
2464 type(discrete_type) , intent(in) :: border
2465 integer(IK) , intent(in), optional :: blindness
2466 integer(IK) :: count
2467 end function
2468#endif
2469
2470#if RK2_ENABLED
2471 PURE module function getCountLocDisBorDefCom_D1_D0_RK2(array, pattern, border, blindness) result(count)
2472#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2473 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_RK2
2474#endif
2475 use pm_kind, only: RKG => RK2
2476 real(RKG) , intent(in), contiguous :: array(:)
2477 real(RKG) , intent(in) :: pattern
2478 type(discrete_type) , intent(in) :: border
2479 integer(IK) , intent(in), optional :: blindness
2480 integer(IK) :: count
2481 end function
2482#endif
2483
2484#if RK1_ENABLED
2485 PURE module function getCountLocDisBorDefCom_D1_D0_RK1(array, pattern, border, blindness) result(count)
2486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2487 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D0_RK1
2488#endif
2489 use pm_kind, only: RKG => RK1
2490 real(RKG) , intent(in), contiguous :: array(:)
2491 real(RKG) , intent(in) :: pattern
2492 type(discrete_type) , intent(in) :: border
2493 integer(IK) , intent(in), optional :: blindness
2494 integer(IK) :: count
2495 end function
2496#endif
2497
2498 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2499
2500 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2501 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2502 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2503
2504 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2505
2506#if SK5_ENABLED
2507 module function getCountLocDisBorCusCom_D1_D0_SK5(array, pattern, border, iseq, blindness) result(count)
2508#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2509 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_SK5
2510#endif
2511 use pm_kind, only: SKG => SK5
2512 character(*,SKG) , intent(in), contiguous :: array(:)
2513 character(*,SKG) , intent(in) :: pattern
2514 procedure(logical(LK)) :: iseq
2515 type(discrete_type) , intent(in) :: border
2516 integer(IK) , intent(in), optional :: blindness
2517 integer(IK) :: count
2518 end function
2519#endif
2520
2521#if SK4_ENABLED
2522 module function getCountLocDisBorCusCom_D1_D0_SK4(array, pattern, border, iseq, blindness) result(count)
2523#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2524 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_SK4
2525#endif
2526 use pm_kind, only: SKG => SK4
2527 character(*,SKG) , intent(in), contiguous :: array(:)
2528 character(*,SKG) , intent(in) :: pattern
2529 procedure(logical(LK)) :: iseq
2530 type(discrete_type) , intent(in) :: border
2531 integer(IK) , intent(in), optional :: blindness
2532 integer(IK) :: count
2533 end function
2534#endif
2535
2536#if SK3_ENABLED
2537 module function getCountLocDisBorCusCom_D1_D0_SK3(array, pattern, border, iseq, blindness) result(count)
2538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2539 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_SK3
2540#endif
2541 use pm_kind, only: SKG => SK3
2542 character(*,SKG) , intent(in), contiguous :: array(:)
2543 character(*,SKG) , intent(in) :: pattern
2544 procedure(logical(LK)) :: iseq
2545 type(discrete_type) , intent(in) :: border
2546 integer(IK) , intent(in), optional :: blindness
2547 integer(IK) :: count
2548 end function
2549#endif
2550
2551#if SK2_ENABLED
2552 module function getCountLocDisBorCusCom_D1_D0_SK2(array, pattern, border, iseq, blindness) result(count)
2553#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2554 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_SK2
2555#endif
2556 use pm_kind, only: SKG => SK2
2557 character(*,SKG) , intent(in), contiguous :: array(:)
2558 character(*,SKG) , intent(in) :: pattern
2559 procedure(logical(LK)) :: iseq
2560 type(discrete_type) , intent(in) :: border
2561 integer(IK) , intent(in), optional :: blindness
2562 integer(IK) :: count
2563 end function
2564#endif
2565
2566#if SK1_ENABLED
2567 module function getCountLocDisBorCusCom_D1_D0_SK1(array, pattern, border, iseq, blindness) result(count)
2568#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2569 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_SK1
2570#endif
2571 use pm_kind, only: SKG => SK1
2572 character(*,SKG) , intent(in), contiguous :: array(:)
2573 character(*,SKG) , intent(in) :: pattern
2574 procedure(logical(LK)) :: iseq
2575 type(discrete_type) , intent(in) :: border
2576 integer(IK) , intent(in), optional :: blindness
2577 integer(IK) :: count
2578 end function
2579#endif
2580
2581 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2582
2583#if IK5_ENABLED
2584 module function getCountLocDisBorCusCom_D1_D0_IK5(array, pattern, border, iseq, blindness) result(count)
2585#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2586 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_IK5
2587#endif
2588 use pm_kind, only: IKG => IK5
2589 integer(IKG) , intent(in), contiguous :: array(:)
2590 integer(IKG) , intent(in) :: pattern
2591 procedure(logical(LK)) :: iseq
2592 type(discrete_type) , intent(in) :: border
2593 integer(IK) , intent(in), optional :: blindness
2594 integer(IK) :: count
2595 end function
2596#endif
2597
2598#if IK4_ENABLED
2599 module function getCountLocDisBorCusCom_D1_D0_IK4(array, pattern, border, iseq, blindness) result(count)
2600#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2601 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_IK4
2602#endif
2603 use pm_kind, only: IKG => IK4
2604 integer(IKG) , intent(in), contiguous :: array(:)
2605 integer(IKG) , intent(in) :: pattern
2606 procedure(logical(LK)) :: iseq
2607 type(discrete_type) , intent(in) :: border
2608 integer(IK) , intent(in), optional :: blindness
2609 integer(IK) :: count
2610 end function
2611#endif
2612
2613#if IK3_ENABLED
2614 module function getCountLocDisBorCusCom_D1_D0_IK3(array, pattern, border, iseq, blindness) result(count)
2615#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2616 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_IK3
2617#endif
2618 use pm_kind, only: IKG => IK3
2619 integer(IKG) , intent(in), contiguous :: array(:)
2620 integer(IKG) , intent(in) :: pattern
2621 procedure(logical(LK)) :: iseq
2622 type(discrete_type) , intent(in) :: border
2623 integer(IK) , intent(in), optional :: blindness
2624 integer(IK) :: count
2625 end function
2626#endif
2627
2628#if IK2_ENABLED
2629 module function getCountLocDisBorCusCom_D1_D0_IK2(array, pattern, border, iseq, blindness) result(count)
2630#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2631 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_IK2
2632#endif
2633 use pm_kind, only: IKG => IK2
2634 integer(IKG) , intent(in), contiguous :: array(:)
2635 integer(IKG) , intent(in) :: pattern
2636 procedure(logical(LK)) :: iseq
2637 type(discrete_type) , intent(in) :: border
2638 integer(IK) , intent(in), optional :: blindness
2639 integer(IK) :: count
2640 end function
2641#endif
2642
2643#if IK1_ENABLED
2644 module function getCountLocDisBorCusCom_D1_D0_IK1(array, pattern, border, iseq, blindness) result(count)
2645#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2646 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_IK1
2647#endif
2648 use pm_kind, only: IKG => IK1
2649 integer(IKG) , intent(in), contiguous :: array(:)
2650 integer(IKG) , intent(in) :: pattern
2651 procedure(logical(LK)) :: iseq
2652 type(discrete_type) , intent(in) :: border
2653 integer(IK) , intent(in), optional :: blindness
2654 integer(IK) :: count
2655 end function
2656#endif
2657
2658 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2659
2660#if LK5_ENABLED
2661 module function getCountLocDisBorCusCom_D1_D0_LK5(array, pattern, border, iseq, blindness) result(count)
2662#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2663 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_LK5
2664#endif
2665 use pm_kind, only: LKG => LK5
2666 logical(LKG) , intent(in), contiguous :: array(:)
2667 logical(LKG) , intent(in) :: pattern
2668 procedure(logical(LK)) :: iseq
2669 type(discrete_type) , intent(in) :: border
2670 integer(IK) , intent(in), optional :: blindness
2671 integer(IK) :: count
2672 end function
2673#endif
2674
2675#if LK4_ENABLED
2676 module function getCountLocDisBorCusCom_D1_D0_LK4(array, pattern, border, iseq, blindness) result(count)
2677#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2678 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_LK4
2679#endif
2680 use pm_kind, only: LKG => LK4
2681 logical(LKG) , intent(in), contiguous :: array(:)
2682 logical(LKG) , intent(in) :: pattern
2683 procedure(logical(LK)) :: iseq
2684 type(discrete_type) , intent(in) :: border
2685 integer(IK) , intent(in), optional :: blindness
2686 integer(IK) :: count
2687 end function
2688#endif
2689
2690#if LK3_ENABLED
2691 module function getCountLocDisBorCusCom_D1_D0_LK3(array, pattern, border, iseq, blindness) result(count)
2692#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2693 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_LK3
2694#endif
2695 use pm_kind, only: LKG => LK3
2696 logical(LKG) , intent(in), contiguous :: array(:)
2697 logical(LKG) , intent(in) :: pattern
2698 procedure(logical(LK)) :: iseq
2699 type(discrete_type) , intent(in) :: border
2700 integer(IK) , intent(in), optional :: blindness
2701 integer(IK) :: count
2702 end function
2703#endif
2704
2705#if LK2_ENABLED
2706 module function getCountLocDisBorCusCom_D1_D0_LK2(array, pattern, border, iseq, blindness) result(count)
2707#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2708 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_LK2
2709#endif
2710 use pm_kind, only: LKG => LK2
2711 logical(LKG) , intent(in), contiguous :: array(:)
2712 logical(LKG) , intent(in) :: pattern
2713 procedure(logical(LK)) :: iseq
2714 type(discrete_type) , intent(in) :: border
2715 integer(IK) , intent(in), optional :: blindness
2716 integer(IK) :: count
2717 end function
2718#endif
2719
2720#if LK1_ENABLED
2721 module function getCountLocDisBorCusCom_D1_D0_LK1(array, pattern, border, iseq, blindness) result(count)
2722#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2723 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_LK1
2724#endif
2725 use pm_kind, only: LKG => LK1
2726 logical(LKG) , intent(in), contiguous :: array(:)
2727 logical(LKG) , intent(in) :: pattern
2728 procedure(logical(LK)) :: iseq
2729 type(discrete_type) , intent(in) :: border
2730 integer(IK) , intent(in), optional :: blindness
2731 integer(IK) :: count
2732 end function
2733#endif
2734
2735 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2736
2737#if CK5_ENABLED
2738 module function getCountLocDisBorCusCom_D1_D0_CK5(array, pattern, border, iseq, blindness) result(count)
2739#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2740 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_CK5
2741#endif
2742 use pm_kind, only: CKG => CK5
2743 complex(CKG) , intent(in), contiguous :: array(:)
2744 complex(CKG) , intent(in) :: pattern
2745 procedure(logical(LK)) :: iseq
2746 type(discrete_type) , intent(in) :: border
2747 integer(IK) , intent(in), optional :: blindness
2748 integer(IK) :: count
2749 end function
2750#endif
2751
2752#if CK4_ENABLED
2753 module function getCountLocDisBorCusCom_D1_D0_CK4(array, pattern, border, iseq, blindness) result(count)
2754#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2755 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_CK4
2756#endif
2757 use pm_kind, only: CKG => CK4
2758 complex(CKG) , intent(in), contiguous :: array(:)
2759 complex(CKG) , intent(in) :: pattern
2760 procedure(logical(LK)) :: iseq
2761 type(discrete_type) , intent(in) :: border
2762 integer(IK) , intent(in), optional :: blindness
2763 integer(IK) :: count
2764 end function
2765#endif
2766
2767#if CK3_ENABLED
2768 module function getCountLocDisBorCusCom_D1_D0_CK3(array, pattern, border, iseq, blindness) result(count)
2769#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2770 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_CK3
2771#endif
2772 use pm_kind, only: CKG => CK3
2773 complex(CKG) , intent(in), contiguous :: array(:)
2774 complex(CKG) , intent(in) :: pattern
2775 procedure(logical(LK)) :: iseq
2776 type(discrete_type) , intent(in) :: border
2777 integer(IK) , intent(in), optional :: blindness
2778 integer(IK) :: count
2779 end function
2780#endif
2781
2782#if CK2_ENABLED
2783 module function getCountLocDisBorCusCom_D1_D0_CK2(array, pattern, border, iseq, blindness) result(count)
2784#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2785 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_CK2
2786#endif
2787 use pm_kind, only: CKG => CK2
2788 complex(CKG) , intent(in), contiguous :: array(:)
2789 complex(CKG) , intent(in) :: pattern
2790 procedure(logical(LK)) :: iseq
2791 type(discrete_type) , intent(in) :: border
2792 integer(IK) , intent(in), optional :: blindness
2793 integer(IK) :: count
2794 end function
2795#endif
2796
2797#if CK1_ENABLED
2798 module function getCountLocDisBorCusCom_D1_D0_CK1(array, pattern, border, iseq, blindness) result(count)
2799#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2800 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_CK1
2801#endif
2802 use pm_kind, only: CKG => CK1
2803 complex(CKG) , intent(in), contiguous :: array(:)
2804 complex(CKG) , intent(in) :: pattern
2805 procedure(logical(LK)) :: iseq
2806 type(discrete_type) , intent(in) :: border
2807 integer(IK) , intent(in), optional :: blindness
2808 integer(IK) :: count
2809 end function
2810#endif
2811
2812 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2813
2814#if RK5_ENABLED
2815 module function getCountLocDisBorCusCom_D1_D0_RK5(array, pattern, border, iseq, blindness) result(count)
2816#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2817 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_RK5
2818#endif
2819 use pm_kind, only: RKG => RK5
2820 real(RKG) , intent(in), contiguous :: array(:)
2821 real(RKG) , intent(in) :: pattern
2822 procedure(logical(LK)) :: iseq
2823 type(discrete_type) , intent(in) :: border
2824 integer(IK) , intent(in), optional :: blindness
2825 integer(IK) :: count
2826 end function
2827#endif
2828
2829#if RK4_ENABLED
2830 module function getCountLocDisBorCusCom_D1_D0_RK4(array, pattern, border, iseq, blindness) result(count)
2831#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2832 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_RK4
2833#endif
2834 use pm_kind, only: RKG => RK4
2835 real(RKG) , intent(in), contiguous :: array(:)
2836 real(RKG) , intent(in) :: pattern
2837 procedure(logical(LK)) :: iseq
2838 type(discrete_type) , intent(in) :: border
2839 integer(IK) , intent(in), optional :: blindness
2840 integer(IK) :: count
2841 end function
2842#endif
2843
2844#if RK3_ENABLED
2845 module function getCountLocDisBorCusCom_D1_D0_RK3(array, pattern, border, iseq, blindness) result(count)
2846#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2847 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_RK3
2848#endif
2849 use pm_kind, only: RKG => RK3
2850 real(RKG) , intent(in), contiguous :: array(:)
2851 real(RKG) , intent(in) :: pattern
2852 procedure(logical(LK)) :: iseq
2853 type(discrete_type) , intent(in) :: border
2854 integer(IK) , intent(in), optional :: blindness
2855 integer(IK) :: count
2856 end function
2857#endif
2858
2859#if RK2_ENABLED
2860 module function getCountLocDisBorCusCom_D1_D0_RK2(array, pattern, border, iseq, blindness) result(count)
2861#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2862 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_RK2
2863#endif
2864 use pm_kind, only: RKG => RK2
2865 real(RKG) , intent(in), contiguous :: array(:)
2866 real(RKG) , intent(in) :: pattern
2867 procedure(logical(LK)) :: iseq
2868 type(discrete_type) , intent(in) :: border
2869 integer(IK) , intent(in), optional :: blindness
2870 integer(IK) :: count
2871 end function
2872#endif
2873
2874#if RK1_ENABLED
2875 module function getCountLocDisBorCusCom_D1_D0_RK1(array, pattern, border, iseq, blindness) result(count)
2876#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2877 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D0_RK1
2878#endif
2879 use pm_kind, only: RKG => RK1
2880 real(RKG) , intent(in), contiguous :: array(:)
2881 real(RKG) , intent(in) :: pattern
2882 procedure(logical(LK)) :: iseq
2883 type(discrete_type) , intent(in) :: border
2884 integer(IK) , intent(in), optional :: blindness
2885 integer(IK) :: count
2886 end function
2887#endif
2888
2889 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2890
2891 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2892 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2893 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2894
2895 end interface
2896
2897 ! border discrete D1_D1
2898
2899 interface getCountLoc
2900
2901 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2902 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2903 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2904
2905 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2906
2907#if SK5_ENABLED
2908 PURE module function getCountLocDisBorDefCom_D1_D1_SK5(array, pattern, border, blindness) result(count)
2909#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2910 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_SK5
2911#endif
2912 use pm_kind, only: SKG => SK5
2913 character(*,SKG) , intent(in), contiguous :: array(:)
2914 character(*,SKG) , intent(in), contiguous :: pattern(:)
2915 type(discrete_type) , intent(in) :: border
2916 integer(IK) , intent(in), optional :: blindness
2917 integer(IK) :: count
2918 end function
2919#endif
2920
2921#if SK4_ENABLED
2922 PURE module function getCountLocDisBorDefCom_D1_D1_SK4(array, pattern, border, blindness) result(count)
2923#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2924 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_SK4
2925#endif
2926 use pm_kind, only: SKG => SK4
2927 character(*,SKG) , intent(in), contiguous :: array(:)
2928 character(*,SKG) , intent(in), contiguous :: pattern(:)
2929 type(discrete_type) , intent(in) :: border
2930 integer(IK) , intent(in), optional :: blindness
2931 integer(IK) :: count
2932 end function
2933#endif
2934
2935#if SK3_ENABLED
2936 PURE module function getCountLocDisBorDefCom_D1_D1_SK3(array, pattern, border, blindness) result(count)
2937#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2938 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_SK3
2939#endif
2940 use pm_kind, only: SKG => SK3
2941 character(*,SKG) , intent(in), contiguous :: array(:)
2942 character(*,SKG) , intent(in), contiguous :: pattern(:)
2943 type(discrete_type) , intent(in) :: border
2944 integer(IK) , intent(in), optional :: blindness
2945 integer(IK) :: count
2946 end function
2947#endif
2948
2949#if SK2_ENABLED
2950 PURE module function getCountLocDisBorDefCom_D1_D1_SK2(array, pattern, border, blindness) result(count)
2951#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2952 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_SK2
2953#endif
2954 use pm_kind, only: SKG => SK2
2955 character(*,SKG) , intent(in), contiguous :: array(:)
2956 character(*,SKG) , intent(in), contiguous :: pattern(:)
2957 type(discrete_type) , intent(in) :: border
2958 integer(IK) , intent(in), optional :: blindness
2959 integer(IK) :: count
2960 end function
2961#endif
2962
2963#if SK1_ENABLED
2964 PURE module function getCountLocDisBorDefCom_D1_D1_SK1(array, pattern, border, blindness) result(count)
2965#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2966 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_SK1
2967#endif
2968 use pm_kind, only: SKG => SK1
2969 character(*,SKG) , intent(in), contiguous :: array(:)
2970 character(*,SKG) , intent(in), contiguous :: pattern(:)
2971 type(discrete_type) , intent(in) :: border
2972 integer(IK) , intent(in), optional :: blindness
2973 integer(IK) :: count
2974 end function
2975#endif
2976
2977 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2978
2979#if IK5_ENABLED
2980 PURE module function getCountLocDisBorDefCom_D1_D1_IK5(array, pattern, border, blindness) result(count)
2981#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2982 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_IK5
2983#endif
2984 use pm_kind, only: IKG => IK5
2985 integer(IKG) , intent(in), contiguous :: array(:)
2986 integer(IKG) , intent(in), contiguous :: pattern(:)
2987 type(discrete_type) , intent(in) :: border
2988 integer(IK) , intent(in), optional :: blindness
2989 integer(IK) :: count
2990 end function
2991#endif
2992
2993#if IK4_ENABLED
2994 PURE module function getCountLocDisBorDefCom_D1_D1_IK4(array, pattern, border, blindness) result(count)
2995#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2996 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_IK4
2997#endif
2998 use pm_kind, only: IKG => IK4
2999 integer(IKG) , intent(in), contiguous :: array(:)
3000 integer(IKG) , intent(in), contiguous :: pattern(:)
3001 type(discrete_type) , intent(in) :: border
3002 integer(IK) , intent(in), optional :: blindness
3003 integer(IK) :: count
3004 end function
3005#endif
3006
3007#if IK3_ENABLED
3008 PURE module function getCountLocDisBorDefCom_D1_D1_IK3(array, pattern, border, blindness) result(count)
3009#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3010 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_IK3
3011#endif
3012 use pm_kind, only: IKG => IK3
3013 integer(IKG) , intent(in), contiguous :: array(:)
3014 integer(IKG) , intent(in), contiguous :: pattern(:)
3015 type(discrete_type) , intent(in) :: border
3016 integer(IK) , intent(in), optional :: blindness
3017 integer(IK) :: count
3018 end function
3019#endif
3020
3021#if IK2_ENABLED
3022 PURE module function getCountLocDisBorDefCom_D1_D1_IK2(array, pattern, border, blindness) result(count)
3023#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3024 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_IK2
3025#endif
3026 use pm_kind, only: IKG => IK2
3027 integer(IKG) , intent(in), contiguous :: array(:)
3028 integer(IKG) , intent(in), contiguous :: pattern(:)
3029 type(discrete_type) , intent(in) :: border
3030 integer(IK) , intent(in), optional :: blindness
3031 integer(IK) :: count
3032 end function
3033#endif
3034
3035#if IK1_ENABLED
3036 PURE module function getCountLocDisBorDefCom_D1_D1_IK1(array, pattern, border, blindness) result(count)
3037#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3038 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_IK1
3039#endif
3040 use pm_kind, only: IKG => IK1
3041 integer(IKG) , intent(in), contiguous :: array(:)
3042 integer(IKG) , intent(in), contiguous :: pattern(:)
3043 type(discrete_type) , intent(in) :: border
3044 integer(IK) , intent(in), optional :: blindness
3045 integer(IK) :: count
3046 end function
3047#endif
3048
3049 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3050
3051#if LK5_ENABLED
3052 PURE module function getCountLocDisBorDefCom_D1_D1_LK5(array, pattern, border, blindness) result(count)
3053#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3054 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_LK5
3055#endif
3056 use pm_kind, only: LKG => LK5
3057 logical(LKG) , intent(in), contiguous :: array(:)
3058 logical(LKG) , intent(in), contiguous :: pattern(:)
3059 type(discrete_type) , intent(in) :: border
3060 integer(IK) , intent(in), optional :: blindness
3061 integer(IK) :: count
3062 end function
3063#endif
3064
3065#if LK4_ENABLED
3066 PURE module function getCountLocDisBorDefCom_D1_D1_LK4(array, pattern, border, blindness) result(count)
3067#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3068 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_LK4
3069#endif
3070 use pm_kind, only: LKG => LK4
3071 logical(LKG) , intent(in), contiguous :: array(:)
3072 logical(LKG) , intent(in), contiguous :: pattern(:)
3073 type(discrete_type) , intent(in) :: border
3074 integer(IK) , intent(in), optional :: blindness
3075 integer(IK) :: count
3076 end function
3077#endif
3078
3079#if LK3_ENABLED
3080 PURE module function getCountLocDisBorDefCom_D1_D1_LK3(array, pattern, border, blindness) result(count)
3081#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3082 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_LK3
3083#endif
3084 use pm_kind, only: LKG => LK3
3085 logical(LKG) , intent(in), contiguous :: array(:)
3086 logical(LKG) , intent(in), contiguous :: pattern(:)
3087 type(discrete_type) , intent(in) :: border
3088 integer(IK) , intent(in), optional :: blindness
3089 integer(IK) :: count
3090 end function
3091#endif
3092
3093#if LK2_ENABLED
3094 PURE module function getCountLocDisBorDefCom_D1_D1_LK2(array, pattern, border, blindness) result(count)
3095#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3096 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_LK2
3097#endif
3098 use pm_kind, only: LKG => LK2
3099 logical(LKG) , intent(in), contiguous :: array(:)
3100 logical(LKG) , intent(in), contiguous :: pattern(:)
3101 type(discrete_type) , intent(in) :: border
3102 integer(IK) , intent(in), optional :: blindness
3103 integer(IK) :: count
3104 end function
3105#endif
3106
3107#if LK1_ENABLED
3108 PURE module function getCountLocDisBorDefCom_D1_D1_LK1(array, pattern, border, blindness) result(count)
3109#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3110 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_LK1
3111#endif
3112 use pm_kind, only: LKG => LK1
3113 logical(LKG) , intent(in), contiguous :: array(:)
3114 logical(LKG) , intent(in), contiguous :: pattern(:)
3115 type(discrete_type) , intent(in) :: border
3116 integer(IK) , intent(in), optional :: blindness
3117 integer(IK) :: count
3118 end function
3119#endif
3120
3121 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3122
3123#if CK5_ENABLED
3124 PURE module function getCountLocDisBorDefCom_D1_D1_CK5(array, pattern, border, blindness) result(count)
3125#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3126 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_CK5
3127#endif
3128 use pm_kind, only: CKG => CK5
3129 complex(CKG) , intent(in), contiguous :: array(:)
3130 complex(CKG) , intent(in), contiguous :: pattern(:)
3131 type(discrete_type) , intent(in) :: border
3132 integer(IK) , intent(in), optional :: blindness
3133 integer(IK) :: count
3134 end function
3135#endif
3136
3137#if CK4_ENABLED
3138 PURE module function getCountLocDisBorDefCom_D1_D1_CK4(array, pattern, border, blindness) result(count)
3139#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3140 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_CK4
3141#endif
3142 use pm_kind, only: CKG => CK4
3143 complex(CKG) , intent(in), contiguous :: array(:)
3144 complex(CKG) , intent(in), contiguous :: pattern(:)
3145 type(discrete_type) , intent(in) :: border
3146 integer(IK) , intent(in), optional :: blindness
3147 integer(IK) :: count
3148 end function
3149#endif
3150
3151#if CK3_ENABLED
3152 PURE module function getCountLocDisBorDefCom_D1_D1_CK3(array, pattern, border, blindness) result(count)
3153#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3154 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_CK3
3155#endif
3156 use pm_kind, only: CKG => CK3
3157 complex(CKG) , intent(in), contiguous :: array(:)
3158 complex(CKG) , intent(in), contiguous :: pattern(:)
3159 type(discrete_type) , intent(in) :: border
3160 integer(IK) , intent(in), optional :: blindness
3161 integer(IK) :: count
3162 end function
3163#endif
3164
3165#if CK2_ENABLED
3166 PURE module function getCountLocDisBorDefCom_D1_D1_CK2(array, pattern, border, blindness) result(count)
3167#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3168 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_CK2
3169#endif
3170 use pm_kind, only: CKG => CK2
3171 complex(CKG) , intent(in), contiguous :: array(:)
3172 complex(CKG) , intent(in), contiguous :: pattern(:)
3173 type(discrete_type) , intent(in) :: border
3174 integer(IK) , intent(in), optional :: blindness
3175 integer(IK) :: count
3176 end function
3177#endif
3178
3179#if CK1_ENABLED
3180 PURE module function getCountLocDisBorDefCom_D1_D1_CK1(array, pattern, border, blindness) result(count)
3181#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3182 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_CK1
3183#endif
3184 use pm_kind, only: CKG => CK1
3185 complex(CKG) , intent(in), contiguous :: array(:)
3186 complex(CKG) , intent(in), contiguous :: pattern(:)
3187 type(discrete_type) , intent(in) :: border
3188 integer(IK) , intent(in), optional :: blindness
3189 integer(IK) :: count
3190 end function
3191#endif
3192
3193 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3194
3195#if RK5_ENABLED
3196 PURE module function getCountLocDisBorDefCom_D1_D1_RK5(array, pattern, border, blindness) result(count)
3197#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3198 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_RK5
3199#endif
3200 use pm_kind, only: RKG => RK5
3201 real(RKG) , intent(in), contiguous :: array(:)
3202 real(RKG) , intent(in), contiguous :: pattern(:)
3203 type(discrete_type) , intent(in) :: border
3204 integer(IK) , intent(in), optional :: blindness
3205 integer(IK) :: count
3206 end function
3207#endif
3208
3209#if RK4_ENABLED
3210 PURE module function getCountLocDisBorDefCom_D1_D1_RK4(array, pattern, border, blindness) result(count)
3211#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3212 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_RK4
3213#endif
3214 use pm_kind, only: RKG => RK4
3215 real(RKG) , intent(in), contiguous :: array(:)
3216 real(RKG) , intent(in), contiguous :: pattern(:)
3217 type(discrete_type) , intent(in) :: border
3218 integer(IK) , intent(in), optional :: blindness
3219 integer(IK) :: count
3220 end function
3221#endif
3222
3223#if RK3_ENABLED
3224 PURE module function getCountLocDisBorDefCom_D1_D1_RK3(array, pattern, border, blindness) result(count)
3225#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3226 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_RK3
3227#endif
3228 use pm_kind, only: RKG => RK3
3229 real(RKG) , intent(in), contiguous :: array(:)
3230 real(RKG) , intent(in), contiguous :: pattern(:)
3231 type(discrete_type) , intent(in) :: border
3232 integer(IK) , intent(in), optional :: blindness
3233 integer(IK) :: count
3234 end function
3235#endif
3236
3237#if RK2_ENABLED
3238 PURE module function getCountLocDisBorDefCom_D1_D1_RK2(array, pattern, border, blindness) result(count)
3239#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3240 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_RK2
3241#endif
3242 use pm_kind, only: RKG => RK2
3243 real(RKG) , intent(in), contiguous :: array(:)
3244 real(RKG) , intent(in), contiguous :: pattern(:)
3245 type(discrete_type) , intent(in) :: border
3246 integer(IK) , intent(in), optional :: blindness
3247 integer(IK) :: count
3248 end function
3249#endif
3250
3251#if RK1_ENABLED
3252 PURE module function getCountLocDisBorDefCom_D1_D1_RK1(array, pattern, border, blindness) result(count)
3253#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3254 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorDefCom_D1_D1_RK1
3255#endif
3256 use pm_kind, only: RKG => RK1
3257 real(RKG) , intent(in), contiguous :: array(:)
3258 real(RKG) , intent(in), contiguous :: pattern(:)
3259 type(discrete_type) , intent(in) :: border
3260 integer(IK) , intent(in), optional :: blindness
3261 integer(IK) :: count
3262 end function
3263#endif
3264
3265 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3266
3267 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3268 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3269 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3270
3271 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3272
3273#if SK5_ENABLED
3274 module function getCountLocDisBorCusCom_D1_D1_SK5(array, pattern, border, iseq, blindness) result(count)
3275#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3276 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_SK5
3277#endif
3278 use pm_kind, only: SKG => SK5
3279 character(*,SKG) , intent(in), contiguous :: array(:)
3280 character(*,SKG) , intent(in), contiguous :: pattern(:)
3281 procedure(logical(LK)) :: iseq
3282 type(discrete_type) , intent(in) :: border
3283 integer(IK) , intent(in), optional :: blindness
3284 integer(IK) :: count
3285 end function
3286#endif
3287
3288#if SK4_ENABLED
3289 module function getCountLocDisBorCusCom_D1_D1_SK4(array, pattern, border, iseq, blindness) result(count)
3290#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3291 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_SK4
3292#endif
3293 use pm_kind, only: SKG => SK4
3294 character(*,SKG) , intent(in), contiguous :: array(:)
3295 character(*,SKG) , intent(in), contiguous :: pattern(:)
3296 procedure(logical(LK)) :: iseq
3297 type(discrete_type) , intent(in) :: border
3298 integer(IK) , intent(in), optional :: blindness
3299 integer(IK) :: count
3300 end function
3301#endif
3302
3303#if SK3_ENABLED
3304 module function getCountLocDisBorCusCom_D1_D1_SK3(array, pattern, border, iseq, blindness) result(count)
3305#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3306 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_SK3
3307#endif
3308 use pm_kind, only: SKG => SK3
3309 character(*,SKG) , intent(in), contiguous :: array(:)
3310 character(*,SKG) , intent(in), contiguous :: pattern(:)
3311 procedure(logical(LK)) :: iseq
3312 type(discrete_type) , intent(in) :: border
3313 integer(IK) , intent(in), optional :: blindness
3314 integer(IK) :: count
3315 end function
3316#endif
3317
3318#if SK2_ENABLED
3319 module function getCountLocDisBorCusCom_D1_D1_SK2(array, pattern, border, iseq, blindness) result(count)
3320#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3321 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_SK2
3322#endif
3323 use pm_kind, only: SKG => SK2
3324 character(*,SKG) , intent(in), contiguous :: array(:)
3325 character(*,SKG) , intent(in), contiguous :: pattern(:)
3326 procedure(logical(LK)) :: iseq
3327 type(discrete_type) , intent(in) :: border
3328 integer(IK) , intent(in), optional :: blindness
3329 integer(IK) :: count
3330 end function
3331#endif
3332
3333#if SK1_ENABLED
3334 module function getCountLocDisBorCusCom_D1_D1_SK1(array, pattern, border, iseq, blindness) result(count)
3335#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3336 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_SK1
3337#endif
3338 use pm_kind, only: SKG => SK1
3339 character(*,SKG) , intent(in), contiguous :: array(:)
3340 character(*,SKG) , intent(in), contiguous :: pattern(:)
3341 procedure(logical(LK)) :: iseq
3342 type(discrete_type) , intent(in) :: border
3343 integer(IK) , intent(in), optional :: blindness
3344 integer(IK) :: count
3345 end function
3346#endif
3347
3348 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3349
3350#if IK5_ENABLED
3351 module function getCountLocDisBorCusCom_D1_D1_IK5(array, pattern, border, iseq, blindness) result(count)
3352#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3353 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_IK5
3354#endif
3355 use pm_kind, only: IKG => IK5
3356 integer(IKG) , intent(in), contiguous :: array(:)
3357 integer(IKG) , intent(in), contiguous :: pattern(:)
3358 procedure(logical(LK)) :: iseq
3359 type(discrete_type) , intent(in) :: border
3360 integer(IK) , intent(in), optional :: blindness
3361 integer(IK) :: count
3362 end function
3363#endif
3364
3365#if IK4_ENABLED
3366 module function getCountLocDisBorCusCom_D1_D1_IK4(array, pattern, border, iseq, blindness) result(count)
3367#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3368 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_IK4
3369#endif
3370 use pm_kind, only: IKG => IK4
3371 integer(IKG) , intent(in), contiguous :: array(:)
3372 integer(IKG) , intent(in), contiguous :: pattern(:)
3373 procedure(logical(LK)) :: iseq
3374 type(discrete_type) , intent(in) :: border
3375 integer(IK) , intent(in), optional :: blindness
3376 integer(IK) :: count
3377 end function
3378#endif
3379
3380#if IK3_ENABLED
3381 module function getCountLocDisBorCusCom_D1_D1_IK3(array, pattern, border, iseq, blindness) result(count)
3382#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3383 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_IK3
3384#endif
3385 use pm_kind, only: IKG => IK3
3386 integer(IKG) , intent(in), contiguous :: array(:)
3387 integer(IKG) , intent(in), contiguous :: pattern(:)
3388 procedure(logical(LK)) :: iseq
3389 type(discrete_type) , intent(in) :: border
3390 integer(IK) , intent(in), optional :: blindness
3391 integer(IK) :: count
3392 end function
3393#endif
3394
3395#if IK2_ENABLED
3396 module function getCountLocDisBorCusCom_D1_D1_IK2(array, pattern, border, iseq, blindness) result(count)
3397#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3398 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_IK2
3399#endif
3400 use pm_kind, only: IKG => IK2
3401 integer(IKG) , intent(in), contiguous :: array(:)
3402 integer(IKG) , intent(in), contiguous :: pattern(:)
3403 procedure(logical(LK)) :: iseq
3404 type(discrete_type) , intent(in) :: border
3405 integer(IK) , intent(in), optional :: blindness
3406 integer(IK) :: count
3407 end function
3408#endif
3409
3410#if IK1_ENABLED
3411 module function getCountLocDisBorCusCom_D1_D1_IK1(array, pattern, border, iseq, blindness) result(count)
3412#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3413 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_IK1
3414#endif
3415 use pm_kind, only: IKG => IK1
3416 integer(IKG) , intent(in), contiguous :: array(:)
3417 integer(IKG) , intent(in), contiguous :: pattern(:)
3418 procedure(logical(LK)) :: iseq
3419 type(discrete_type) , intent(in) :: border
3420 integer(IK) , intent(in), optional :: blindness
3421 integer(IK) :: count
3422 end function
3423#endif
3424
3425 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3426
3427#if LK5_ENABLED
3428 module function getCountLocDisBorCusCom_D1_D1_LK5(array, pattern, border, iseq, blindness) result(count)
3429#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3430 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_LK5
3431#endif
3432 use pm_kind, only: LKG => LK5
3433 logical(LKG) , intent(in), contiguous :: array(:)
3434 logical(LKG) , intent(in), contiguous :: pattern(:)
3435 procedure(logical(LK)) :: iseq
3436 type(discrete_type) , intent(in) :: border
3437 integer(IK) , intent(in), optional :: blindness
3438 integer(IK) :: count
3439 end function
3440#endif
3441
3442#if LK4_ENABLED
3443 module function getCountLocDisBorCusCom_D1_D1_LK4(array, pattern, border, iseq, blindness) result(count)
3444#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3445 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_LK4
3446#endif
3447 use pm_kind, only: LKG => LK4
3448 logical(LKG) , intent(in), contiguous :: array(:)
3449 logical(LKG) , intent(in), contiguous :: pattern(:)
3450 procedure(logical(LK)) :: iseq
3451 type(discrete_type) , intent(in) :: border
3452 integer(IK) , intent(in), optional :: blindness
3453 integer(IK) :: count
3454 end function
3455#endif
3456
3457#if LK3_ENABLED
3458 module function getCountLocDisBorCusCom_D1_D1_LK3(array, pattern, border, iseq, blindness) result(count)
3459#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3460 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_LK3
3461#endif
3462 use pm_kind, only: LKG => LK3
3463 logical(LKG) , intent(in), contiguous :: array(:)
3464 logical(LKG) , intent(in), contiguous :: pattern(:)
3465 procedure(logical(LK)) :: iseq
3466 type(discrete_type) , intent(in) :: border
3467 integer(IK) , intent(in), optional :: blindness
3468 integer(IK) :: count
3469 end function
3470#endif
3471
3472#if LK2_ENABLED
3473 module function getCountLocDisBorCusCom_D1_D1_LK2(array, pattern, border, iseq, blindness) result(count)
3474#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3475 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_LK2
3476#endif
3477 use pm_kind, only: LKG => LK2
3478 logical(LKG) , intent(in), contiguous :: array(:)
3479 logical(LKG) , intent(in), contiguous :: pattern(:)
3480 procedure(logical(LK)) :: iseq
3481 type(discrete_type) , intent(in) :: border
3482 integer(IK) , intent(in), optional :: blindness
3483 integer(IK) :: count
3484 end function
3485#endif
3486
3487#if LK1_ENABLED
3488 module function getCountLocDisBorCusCom_D1_D1_LK1(array, pattern, border, iseq, blindness) result(count)
3489#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3490 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_LK1
3491#endif
3492 use pm_kind, only: LKG => LK1
3493 logical(LKG) , intent(in), contiguous :: array(:)
3494 logical(LKG) , intent(in), contiguous :: pattern(:)
3495 procedure(logical(LK)) :: iseq
3496 type(discrete_type) , intent(in) :: border
3497 integer(IK) , intent(in), optional :: blindness
3498 integer(IK) :: count
3499 end function
3500#endif
3501
3502 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3503
3504#if CK5_ENABLED
3505 module function getCountLocDisBorCusCom_D1_D1_CK5(array, pattern, border, iseq, blindness) result(count)
3506#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3507 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_CK5
3508#endif
3509 use pm_kind, only: CKG => CK5
3510 complex(CKG) , intent(in), contiguous :: array(:)
3511 complex(CKG) , intent(in), contiguous :: pattern(:)
3512 procedure(logical(LK)) :: iseq
3513 type(discrete_type) , intent(in) :: border
3514 integer(IK) , intent(in), optional :: blindness
3515 integer(IK) :: count
3516 end function
3517#endif
3518
3519#if CK4_ENABLED
3520 module function getCountLocDisBorCusCom_D1_D1_CK4(array, pattern, border, iseq, blindness) result(count)
3521#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3522 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_CK4
3523#endif
3524 use pm_kind, only: CKG => CK4
3525 complex(CKG) , intent(in), contiguous :: array(:)
3526 complex(CKG) , intent(in), contiguous :: pattern(:)
3527 procedure(logical(LK)) :: iseq
3528 type(discrete_type) , intent(in) :: border
3529 integer(IK) , intent(in), optional :: blindness
3530 integer(IK) :: count
3531 end function
3532#endif
3533
3534#if CK3_ENABLED
3535 module function getCountLocDisBorCusCom_D1_D1_CK3(array, pattern, border, iseq, blindness) result(count)
3536#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3537 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_CK3
3538#endif
3539 use pm_kind, only: CKG => CK3
3540 complex(CKG) , intent(in), contiguous :: array(:)
3541 complex(CKG) , intent(in), contiguous :: pattern(:)
3542 procedure(logical(LK)) :: iseq
3543 type(discrete_type) , intent(in) :: border
3544 integer(IK) , intent(in), optional :: blindness
3545 integer(IK) :: count
3546 end function
3547#endif
3548
3549#if CK2_ENABLED
3550 module function getCountLocDisBorCusCom_D1_D1_CK2(array, pattern, border, iseq, blindness) result(count)
3551#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3552 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_CK2
3553#endif
3554 use pm_kind, only: CKG => CK2
3555 complex(CKG) , intent(in), contiguous :: array(:)
3556 complex(CKG) , intent(in), contiguous :: pattern(:)
3557 procedure(logical(LK)) :: iseq
3558 type(discrete_type) , intent(in) :: border
3559 integer(IK) , intent(in), optional :: blindness
3560 integer(IK) :: count
3561 end function
3562#endif
3563
3564#if CK1_ENABLED
3565 module function getCountLocDisBorCusCom_D1_D1_CK1(array, pattern, border, iseq, blindness) result(count)
3566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3567 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_CK1
3568#endif
3569 use pm_kind, only: CKG => CK1
3570 complex(CKG) , intent(in), contiguous :: array(:)
3571 complex(CKG) , intent(in), contiguous :: pattern(:)
3572 procedure(logical(LK)) :: iseq
3573 type(discrete_type) , intent(in) :: border
3574 integer(IK) , intent(in), optional :: blindness
3575 integer(IK) :: count
3576 end function
3577#endif
3578
3579 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3580
3581#if RK5_ENABLED
3582 module function getCountLocDisBorCusCom_D1_D1_RK5(array, pattern, border, iseq, blindness) result(count)
3583#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3584 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_RK5
3585#endif
3586 use pm_kind, only: RKG => RK5
3587 real(RKG) , intent(in), contiguous :: array(:)
3588 real(RKG) , intent(in), contiguous :: pattern(:)
3589 procedure(logical(LK)) :: iseq
3590 type(discrete_type) , intent(in) :: border
3591 integer(IK) , intent(in), optional :: blindness
3592 integer(IK) :: count
3593 end function
3594#endif
3595
3596#if RK4_ENABLED
3597 module function getCountLocDisBorCusCom_D1_D1_RK4(array, pattern, border, iseq, blindness) result(count)
3598#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3599 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_RK4
3600#endif
3601 use pm_kind, only: RKG => RK4
3602 real(RKG) , intent(in), contiguous :: array(:)
3603 real(RKG) , intent(in), contiguous :: pattern(:)
3604 procedure(logical(LK)) :: iseq
3605 type(discrete_type) , intent(in) :: border
3606 integer(IK) , intent(in), optional :: blindness
3607 integer(IK) :: count
3608 end function
3609#endif
3610
3611#if RK3_ENABLED
3612 module function getCountLocDisBorCusCom_D1_D1_RK3(array, pattern, border, iseq, blindness) result(count)
3613#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3614 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_RK3
3615#endif
3616 use pm_kind, only: RKG => RK3
3617 real(RKG) , intent(in), contiguous :: array(:)
3618 real(RKG) , intent(in), contiguous :: pattern(:)
3619 procedure(logical(LK)) :: iseq
3620 type(discrete_type) , intent(in) :: border
3621 integer(IK) , intent(in), optional :: blindness
3622 integer(IK) :: count
3623 end function
3624#endif
3625
3626#if RK2_ENABLED
3627 module function getCountLocDisBorCusCom_D1_D1_RK2(array, pattern, border, iseq, blindness) result(count)
3628#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3629 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_RK2
3630#endif
3631 use pm_kind, only: RKG => RK2
3632 real(RKG) , intent(in), contiguous :: array(:)
3633 real(RKG) , intent(in), contiguous :: pattern(:)
3634 procedure(logical(LK)) :: iseq
3635 type(discrete_type) , intent(in) :: border
3636 integer(IK) , intent(in), optional :: blindness
3637 integer(IK) :: count
3638 end function
3639#endif
3640
3641#if RK1_ENABLED
3642 module function getCountLocDisBorCusCom_D1_D1_RK1(array, pattern, border, iseq, blindness) result(count)
3643#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3644 !DEC$ ATTRIBUTES DLLEXPORT :: getCountLocDisBorCusCom_D1_D1_RK1
3645#endif
3646 use pm_kind, only: RKG => RK1
3647 real(RKG) , intent(in), contiguous :: array(:)
3648 real(RKG) , intent(in), contiguous :: pattern(:)
3649 procedure(logical(LK)) :: iseq
3650 type(discrete_type) , intent(in) :: border
3651 integer(IK) , intent(in), optional :: blindness
3652 integer(IK) :: count
3653 end function
3654#endif
3655
3656 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3657
3658 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3659 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3660 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3661
3662 end interface
3663
3664!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3665
3936
3937 ! D0_D0
3938
3939 interface getLoc
3940
3941 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3942 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3943 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3944
3945 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3946
3947#if SK5_ENABLED
3948 PURE module function getLocDefComDefIns_D0_D0_SK5(array, pattern, blindness) result(loc)
3949#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3950 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D0_D0_SK5
3951#endif
3952 use pm_kind, only: SKG => SK5
3953 character(*,SKG) , intent(in) :: array
3954 character(*,SKG) , intent(in) :: pattern
3955 integer(IK) , intent(in), optional :: blindness
3956 integer(IK) , allocatable :: loc(:)
3957 end function
3958#endif
3959
3960#if SK4_ENABLED
3961 PURE module function getLocDefComDefIns_D0_D0_SK4(array, pattern, blindness) result(loc)
3962#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3963 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D0_D0_SK4
3964#endif
3965 use pm_kind, only: SKG => SK4
3966 character(*,SKG) , intent(in) :: array
3967 character(*,SKG) , intent(in) :: pattern
3968 integer(IK) , intent(in), optional :: blindness
3969 integer(IK) , allocatable :: loc(:)
3970 end function
3971#endif
3972
3973#if SK3_ENABLED
3974 PURE module function getLocDefComDefIns_D0_D0_SK3(array, pattern, blindness) result(loc)
3975#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3976 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D0_D0_SK3
3977#endif
3978 use pm_kind, only: SKG => SK3
3979 character(*,SKG) , intent(in) :: array
3980 character(*,SKG) , intent(in) :: pattern
3981 integer(IK) , intent(in), optional :: blindness
3982 integer(IK) , allocatable :: loc(:)
3983 end function
3984#endif
3985
3986#if SK2_ENABLED
3987 PURE module function getLocDefComDefIns_D0_D0_SK2(array, pattern, blindness) result(loc)
3988#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3989 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D0_D0_SK2
3990#endif
3991 use pm_kind, only: SKG => SK2
3992 character(*,SKG) , intent(in) :: array
3993 character(*,SKG) , intent(in) :: pattern
3994 integer(IK) , intent(in), optional :: blindness
3995 integer(IK) , allocatable :: loc(:)
3996 end function
3997#endif
3998
3999#if SK1_ENABLED
4000 PURE module function getLocDefComDefIns_D0_D0_SK1(array, pattern, blindness) result(loc)
4001#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4002 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D0_D0_SK1
4003#endif
4004 use pm_kind, only: SKG => SK1
4005 character(*,SKG) , intent(in) :: array
4006 character(*,SKG) , intent(in) :: pattern
4007 integer(IK) , intent(in), optional :: blindness
4008 integer(IK) , allocatable :: loc(:)
4009 end function
4010#endif
4011
4012 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4013
4014 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4015 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4016 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4017
4018 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4019
4020#if SK5_ENABLED
4021 module function getLocCusComDefIns_D0_D0_SK5(array, pattern, iseq, blindness) result(loc)
4022#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4023 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D0_D0_SK5
4024#endif
4025 use pm_kind, only: SKG => SK5
4026 character(*,SKG) , intent(in) :: array
4027 character(*,SKG) , intent(in) :: pattern
4028 procedure(logical(LK)) :: iseq
4029 integer(IK) , intent(in), optional :: blindness
4030 integer(IK) , allocatable :: loc(:)
4031 end function
4032#endif
4033
4034#if SK4_ENABLED
4035 module function getLocCusComDefIns_D0_D0_SK4(array, pattern, iseq, blindness) result(loc)
4036#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4037 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D0_D0_SK4
4038#endif
4039 use pm_kind, only: SKG => SK4
4040 character(*,SKG) , intent(in) :: array
4041 character(*,SKG) , intent(in) :: pattern
4042 procedure(logical(LK)) :: iseq
4043 integer(IK) , intent(in), optional :: blindness
4044 integer(IK) , allocatable :: loc(:)
4045 end function
4046#endif
4047
4048#if SK3_ENABLED
4049 module function getLocCusComDefIns_D0_D0_SK3(array, pattern, iseq, blindness) result(loc)
4050#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4051 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D0_D0_SK3
4052#endif
4053 use pm_kind, only: SKG => SK3
4054 character(*,SKG) , intent(in) :: array
4055 character(*,SKG) , intent(in) :: pattern
4056 procedure(logical(LK)) :: iseq
4057 integer(IK) , intent(in), optional :: blindness
4058 integer(IK) , allocatable :: loc(:)
4059 end function
4060#endif
4061
4062#if SK2_ENABLED
4063 module function getLocCusComDefIns_D0_D0_SK2(array, pattern, iseq, blindness) result(loc)
4064#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4065 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D0_D0_SK2
4066#endif
4067 use pm_kind, only: SKG => SK2
4068 character(*,SKG) , intent(in) :: array
4069 character(*,SKG) , intent(in) :: pattern
4070 procedure(logical(LK)) :: iseq
4071 integer(IK) , intent(in), optional :: blindness
4072 integer(IK) , allocatable :: loc(:)
4073 end function
4074#endif
4075
4076#if SK1_ENABLED
4077 module function getLocCusComDefIns_D0_D0_SK1(array, pattern, iseq, blindness) result(loc)
4078#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4079 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D0_D0_SK1
4080#endif
4081 use pm_kind, only: SKG => SK1
4082 character(*,SKG) , intent(in) :: array
4083 character(*,SKG) , intent(in) :: pattern
4084 procedure(logical(LK)) :: iseq
4085 integer(IK) , intent(in), optional :: blindness
4086 integer(IK) , allocatable :: loc(:)
4087 end function
4088#endif
4089
4090 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4091
4092 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4093 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4094 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4095
4096 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4097
4098#if SK5_ENABLED
4099 PURE module function getLocDefComCusIns_D0_D0_SK5(array, pattern, instance, sorted, positive, blindness) result(loc)
4100#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4101 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D0_D0_SK5
4102#endif
4103 use pm_kind, only: SKG => SK5
4104 character(*,SKG) , intent(in) :: array
4105 character(*,SKG) , intent(in) :: pattern
4106 integer(IK) , intent(in), contiguous :: instance(:)
4107 logical(LK) , intent(in), optional :: sorted
4108 logical(LK) , intent(in), optional :: positive
4109 integer(IK) , intent(in), optional :: blindness
4110 integer(IK) , allocatable :: loc(:)
4111 end function
4112#endif
4113
4114#if SK4_ENABLED
4115 PURE module function getLocDefComCusIns_D0_D0_SK4(array, pattern, instance, sorted, positive, blindness) result(loc)
4116#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4117 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D0_D0_SK4
4118#endif
4119 use pm_kind, only: SKG => SK4
4120 character(*,SKG) , intent(in) :: array
4121 character(*,SKG) , intent(in) :: pattern
4122 integer(IK) , intent(in), contiguous :: instance(:)
4123 logical(LK) , intent(in), optional :: sorted
4124 logical(LK) , intent(in), optional :: positive
4125 integer(IK) , intent(in), optional :: blindness
4126 integer(IK) , allocatable :: loc(:)
4127 end function
4128#endif
4129
4130#if SK3_ENABLED
4131 PURE module function getLocDefComCusIns_D0_D0_SK3(array, pattern, instance, sorted, positive, blindness) result(loc)
4132#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4133 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D0_D0_SK3
4134#endif
4135 use pm_kind, only: SKG => SK3
4136 character(*,SKG) , intent(in) :: array
4137 character(*,SKG) , intent(in) :: pattern
4138 integer(IK) , intent(in), contiguous :: instance(:)
4139 logical(LK) , intent(in), optional :: sorted
4140 logical(LK) , intent(in), optional :: positive
4141 integer(IK) , intent(in), optional :: blindness
4142 integer(IK) , allocatable :: loc(:)
4143 end function
4144#endif
4145
4146#if SK2_ENABLED
4147 PURE module function getLocDefComCusIns_D0_D0_SK2(array, pattern, instance, sorted, positive, blindness) result(loc)
4148#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4149 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D0_D0_SK2
4150#endif
4151 use pm_kind, only: SKG => SK2
4152 character(*,SKG) , intent(in) :: array
4153 character(*,SKG) , intent(in) :: pattern
4154 integer(IK) , intent(in), contiguous :: instance(:)
4155 logical(LK) , intent(in), optional :: sorted
4156 logical(LK) , intent(in), optional :: positive
4157 integer(IK) , intent(in), optional :: blindness
4158 integer(IK) , allocatable :: loc(:)
4159 end function
4160#endif
4161
4162#if SK1_ENABLED
4163 PURE module function getLocDefComCusIns_D0_D0_SK1(array, pattern, instance, sorted, positive, blindness) result(loc)
4164#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4165 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D0_D0_SK1
4166#endif
4167 use pm_kind, only: SKG => SK1
4168 character(*,SKG) , intent(in) :: array
4169 character(*,SKG) , intent(in) :: pattern
4170 integer(IK) , intent(in), contiguous :: instance(:)
4171 logical(LK) , intent(in), optional :: sorted
4172 logical(LK) , intent(in), optional :: positive
4173 integer(IK) , intent(in), optional :: blindness
4174 integer(IK) , allocatable :: loc(:)
4175 end function
4176#endif
4177
4178 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4179
4180 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4181 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4182 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4183
4184 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4185
4186#if SK5_ENABLED
4187 module function getLocCusComCusIns_D0_D0_SK5(array, pattern, iseq, instance, sorted, positive, blindness) result(loc)
4188#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4189 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComCusIns_D0_D0_SK5
4190#endif
4191 use pm_kind, only: SKG => SK5
4192 character(*,SKG) , intent(in) :: array
4193 character(*,SKG) , intent(in) :: pattern
4194 procedure(logical(LK)) :: iseq
4195 integer(IK) , intent(in), contiguous :: instance(:)
4196 logical(LK) , intent(in), optional :: sorted
4197 logical(LK) , intent(in), optional :: positive
4198 integer(IK) , intent(in), optional :: blindness
4199 integer(IK) , allocatable :: loc(:)
4200 end function
4201#endif
4202
4203#if SK4_ENABLED
4204 module function getLocCusComCusIns_D0_D0_SK4(array, pattern, iseq, instance, sorted, positive, blindness) result(loc)
4205#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4206 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComCusIns_D0_D0_SK4
4207#endif
4208 use pm_kind, only: SKG => SK4
4209 character(*,SKG) , intent(in) :: array
4210 character(*,SKG) , intent(in) :: pattern
4211 procedure(logical(LK)) :: iseq
4212 integer(IK) , intent(in), contiguous :: instance(:)
4213 logical(LK) , intent(in), optional :: sorted
4214 logical(LK) , intent(in), optional :: positive
4215 integer(IK) , intent(in), optional :: blindness
4216 integer(IK) , allocatable :: loc(:)
4217 end function
4218#endif
4219
4220#if SK3_ENABLED
4221 module function getLocCusComCusIns_D0_D0_SK3(array, pattern, iseq, instance, sorted, positive, blindness) result(loc)
4222#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4223 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComCusIns_D0_D0_SK3
4224#endif
4225 use pm_kind, only: SKG => SK3
4226 character(*,SKG) , intent(in) :: array
4227 character(*,SKG) , intent(in) :: pattern
4228 procedure(logical(LK)) :: iseq
4229 integer(IK) , intent(in), contiguous :: instance(:)
4230 logical(LK) , intent(in), optional :: sorted
4231 logical(LK) , intent(in), optional :: positive
4232 integer(IK) , intent(in), optional :: blindness
4233 integer(IK) , allocatable :: loc(:)
4234 end function
4235#endif
4236
4237#if SK2_ENABLED
4238 module function getLocCusComCusIns_D0_D0_SK2(array, pattern, iseq, instance, sorted, positive, blindness) result(loc)
4239#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4240 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComCusIns_D0_D0_SK2
4241#endif
4242 use pm_kind, only: SKG => SK2
4243 character(*,SKG) , intent(in) :: array
4244 character(*,SKG) , intent(in) :: pattern
4245 procedure(logical(LK)) :: iseq
4246 integer(IK) , intent(in), contiguous :: instance(:)
4247 logical(LK) , intent(in), optional :: sorted
4248 logical(LK) , intent(in), optional :: positive
4249 integer(IK) , intent(in), optional :: blindness
4250 integer(IK) , allocatable :: loc(:)
4251 end function
4252#endif
4253
4254#if SK1_ENABLED
4255 module function getLocCusComCusIns_D0_D0_SK1(array, pattern, iseq, instance, sorted, positive, blindness) result(loc)
4256#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4257 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComCusIns_D0_D0_SK1
4258#endif
4259 use pm_kind, only: SKG => SK1
4260 character(*,SKG) , intent(in) :: array
4261 character(*,SKG) , intent(in) :: pattern
4262 procedure(logical(LK)) :: iseq
4263 integer(IK) , intent(in), contiguous :: instance(:)
4264 logical(LK) , intent(in), optional :: sorted
4265 logical(LK) , intent(in), optional :: positive
4266 integer(IK) , intent(in), optional :: blindness
4267 integer(IK) , allocatable :: loc(:)
4268 end function
4269#endif
4270
4271 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4272
4273 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4274 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4275 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4276
4277 end interface
4278
4279 ! D1_D0
4280
4281 interface getLoc
4282
4283 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4284 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4285 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4286
4287 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4288
4289#if SK5_ENABLED
4290 PURE module function getLocDefComDefIns_D1_D0_SK5(array, pattern, blindness) result(loc)
4291#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4292 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_SK5
4293#endif
4294 use pm_kind, only: SKG => SK5
4295 character(*,SKG) , intent(in), contiguous :: array(:)
4296 character(*,SKG) , intent(in) :: pattern
4297 integer(IK) , intent(in), optional :: blindness
4298 integer(IK) , allocatable :: loc(:)
4299 end function
4300#endif
4301
4302#if SK4_ENABLED
4303 PURE module function getLocDefComDefIns_D1_D0_SK4(array, pattern, blindness) result(loc)
4304#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4305 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_SK4
4306#endif
4307 use pm_kind, only: SKG => SK4
4308 character(*,SKG) , intent(in), contiguous :: array(:)
4309 character(*,SKG) , intent(in) :: pattern
4310 integer(IK) , intent(in), optional :: blindness
4311 integer(IK) , allocatable :: loc(:)
4312 end function
4313#endif
4314
4315#if SK3_ENABLED
4316 PURE module function getLocDefComDefIns_D1_D0_SK3(array, pattern, blindness) result(loc)
4317#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4318 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_SK3
4319#endif
4320 use pm_kind, only: SKG => SK3
4321 character(*,SKG) , intent(in), contiguous :: array(:)
4322 character(*,SKG) , intent(in) :: pattern
4323 integer(IK) , intent(in), optional :: blindness
4324 integer(IK) , allocatable :: loc(:)
4325 end function
4326#endif
4327
4328#if SK2_ENABLED
4329 PURE module function getLocDefComDefIns_D1_D0_SK2(array, pattern, blindness) result(loc)
4330#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4331 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_SK2
4332#endif
4333 use pm_kind, only: SKG => SK2
4334 character(*,SKG) , intent(in), contiguous :: array(:)
4335 character(*,SKG) , intent(in) :: pattern
4336 integer(IK) , intent(in), optional :: blindness
4337 integer(IK) , allocatable :: loc(:)
4338 end function
4339#endif
4340
4341#if SK1_ENABLED
4342 PURE module function getLocDefComDefIns_D1_D0_SK1(array, pattern, blindness) result(loc)
4343#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4344 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_SK1
4345#endif
4346 use pm_kind, only: SKG => SK1
4347 character(*,SKG) , intent(in), contiguous :: array(:)
4348 character(*,SKG) , intent(in) :: pattern
4349 integer(IK) , intent(in), optional :: blindness
4350 integer(IK) , allocatable :: loc(:)
4351 end function
4352#endif
4353
4354 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4355
4356#if IK5_ENABLED
4357 PURE module function getLocDefComDefIns_D1_D0_IK5(array, pattern, blindness) result(loc)
4358#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4359 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_IK5
4360#endif
4361 use pm_kind, only: IKG => IK5
4362 integer(IKG) , intent(in), contiguous :: array(:)
4363 integer(IKG) , intent(in) :: pattern
4364 integer(IK) , intent(in), optional :: blindness
4365 integer(IK) , allocatable :: loc(:)
4366 end function
4367#endif
4368
4369#if IK4_ENABLED
4370 PURE module function getLocDefComDefIns_D1_D0_IK4(array, pattern, blindness) result(loc)
4371#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4372 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_IK4
4373#endif
4374 use pm_kind, only: IKG => IK4
4375 integer(IKG) , intent(in), contiguous :: array(:)
4376 integer(IKG) , intent(in) :: pattern
4377 integer(IK) , intent(in), optional :: blindness
4378 integer(IK) , allocatable :: loc(:)
4379 end function
4380#endif
4381
4382#if IK3_ENABLED
4383 PURE module function getLocDefComDefIns_D1_D0_IK3(array, pattern, blindness) result(loc)
4384#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4385 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_IK3
4386#endif
4387 use pm_kind, only: IKG => IK3
4388 integer(IKG) , intent(in), contiguous :: array(:)
4389 integer(IKG) , intent(in) :: pattern
4390 integer(IK) , intent(in), optional :: blindness
4391 integer(IK) , allocatable :: loc(:)
4392 end function
4393#endif
4394
4395#if IK2_ENABLED
4396 PURE module function getLocDefComDefIns_D1_D0_IK2(array, pattern, blindness) result(loc)
4397#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4398 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_IK2
4399#endif
4400 use pm_kind, only: IKG => IK2
4401 integer(IKG) , intent(in), contiguous :: array(:)
4402 integer(IKG) , intent(in) :: pattern
4403 integer(IK) , intent(in), optional :: blindness
4404 integer(IK) , allocatable :: loc(:)
4405 end function
4406#endif
4407
4408#if IK1_ENABLED
4409 PURE module function getLocDefComDefIns_D1_D0_IK1(array, pattern, blindness) result(loc)
4410#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4411 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_IK1
4412#endif
4413 use pm_kind, only: IKG => IK1
4414 integer(IKG) , intent(in), contiguous :: array(:)
4415 integer(IKG) , intent(in) :: pattern
4416 integer(IK) , intent(in), optional :: blindness
4417 integer(IK) , allocatable :: loc(:)
4418 end function
4419#endif
4420
4421 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4422
4423#if LK5_ENABLED
4424 PURE module function getLocDefComDefIns_D1_D0_LK5(array, pattern, blindness) result(loc)
4425#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4426 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_LK5
4427#endif
4428 use pm_kind, only: LKG => LK5
4429 logical(LKG) , intent(in), contiguous :: array(:)
4430 logical(LKG) , intent(in) :: pattern
4431 integer(IK) , intent(in), optional :: blindness
4432 integer(IK) , allocatable :: loc(:)
4433 end function
4434#endif
4435
4436#if LK4_ENABLED
4437 PURE module function getLocDefComDefIns_D1_D0_LK4(array, pattern, blindness) result(loc)
4438#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4439 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_LK4
4440#endif
4441 use pm_kind, only: LKG => LK4
4442 logical(LKG) , intent(in), contiguous :: array(:)
4443 logical(LKG) , intent(in) :: pattern
4444 integer(IK) , intent(in), optional :: blindness
4445 integer(IK) , allocatable :: loc(:)
4446 end function
4447#endif
4448
4449#if LK3_ENABLED
4450 PURE module function getLocDefComDefIns_D1_D0_LK3(array, pattern, blindness) result(loc)
4451#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4452 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_LK3
4453#endif
4454 use pm_kind, only: LKG => LK3
4455 logical(LKG) , intent(in), contiguous :: array(:)
4456 logical(LKG) , intent(in) :: pattern
4457 integer(IK) , intent(in), optional :: blindness
4458 integer(IK) , allocatable :: loc(:)
4459 end function
4460#endif
4461
4462#if LK2_ENABLED
4463 PURE module function getLocDefComDefIns_D1_D0_LK2(array, pattern, blindness) result(loc)
4464#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4465 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_LK2
4466#endif
4467 use pm_kind, only: LKG => LK2
4468 logical(LKG) , intent(in), contiguous :: array(:)
4469 logical(LKG) , intent(in) :: pattern
4470 integer(IK) , intent(in), optional :: blindness
4471 integer(IK) , allocatable :: loc(:)
4472 end function
4473#endif
4474
4475#if LK1_ENABLED
4476 PURE module function getLocDefComDefIns_D1_D0_LK1(array, pattern, blindness) result(loc)
4477#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4478 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_LK1
4479#endif
4480 use pm_kind, only: LKG => LK1
4481 logical(LKG) , intent(in), contiguous :: array(:)
4482 logical(LKG) , intent(in) :: pattern
4483 integer(IK) , intent(in), optional :: blindness
4484 integer(IK) , allocatable :: loc(:)
4485 end function
4486#endif
4487
4488 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4489
4490#if CK5_ENABLED
4491 PURE module function getLocDefComDefIns_D1_D0_CK5(array, pattern, blindness) result(loc)
4492#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4493 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_CK5
4494#endif
4495 use pm_kind, only: CKG => CK5
4496 complex(CKG) , intent(in), contiguous :: array(:)
4497 complex(CKG) , intent(in) :: pattern
4498 integer(IK) , intent(in), optional :: blindness
4499 integer(IK) , allocatable :: loc(:)
4500 end function
4501#endif
4502
4503#if CK4_ENABLED
4504 PURE module function getLocDefComDefIns_D1_D0_CK4(array, pattern, blindness) result(loc)
4505#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4506 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_CK4
4507#endif
4508 use pm_kind, only: CKG => CK4
4509 complex(CKG) , intent(in), contiguous :: array(:)
4510 complex(CKG) , intent(in) :: pattern
4511 integer(IK) , intent(in), optional :: blindness
4512 integer(IK) , allocatable :: loc(:)
4513 end function
4514#endif
4515
4516#if CK3_ENABLED
4517 PURE module function getLocDefComDefIns_D1_D0_CK3(array, pattern, blindness) result(loc)
4518#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4519 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_CK3
4520#endif
4521 use pm_kind, only: CKG => CK3
4522 complex(CKG) , intent(in), contiguous :: array(:)
4523 complex(CKG) , intent(in) :: pattern
4524 integer(IK) , intent(in), optional :: blindness
4525 integer(IK) , allocatable :: loc(:)
4526 end function
4527#endif
4528
4529#if CK2_ENABLED
4530 PURE module function getLocDefComDefIns_D1_D0_CK2(array, pattern, blindness) result(loc)
4531#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4532 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_CK2
4533#endif
4534 use pm_kind, only: CKG => CK2
4535 complex(CKG) , intent(in), contiguous :: array(:)
4536 complex(CKG) , intent(in) :: pattern
4537 integer(IK) , intent(in), optional :: blindness
4538 integer(IK) , allocatable :: loc(:)
4539 end function
4540#endif
4541
4542#if CK1_ENABLED
4543 PURE module function getLocDefComDefIns_D1_D0_CK1(array, pattern, blindness) result(loc)
4544#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4545 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_CK1
4546#endif
4547 use pm_kind, only: CKG => CK1
4548 complex(CKG) , intent(in), contiguous :: array(:)
4549 complex(CKG) , intent(in) :: pattern
4550 integer(IK) , intent(in), optional :: blindness
4551 integer(IK) , allocatable :: loc(:)
4552 end function
4553#endif
4554
4555 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4556
4557#if RK5_ENABLED
4558 PURE module function getLocDefComDefIns_D1_D0_RK5(array, pattern, blindness) result(loc)
4559#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4560 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_RK5
4561#endif
4562 use pm_kind, only: RKG => RK5
4563 real(RKG) , intent(in), contiguous :: array(:)
4564 real(RKG) , intent(in) :: pattern
4565 integer(IK) , intent(in), optional :: blindness
4566 integer(IK) , allocatable :: loc(:)
4567 end function
4568#endif
4569
4570#if RK4_ENABLED
4571 PURE module function getLocDefComDefIns_D1_D0_RK4(array, pattern, blindness) result(loc)
4572#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4573 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_RK4
4574#endif
4575 use pm_kind, only: RKG => RK4
4576 real(RKG) , intent(in), contiguous :: array(:)
4577 real(RKG) , intent(in) :: pattern
4578 integer(IK) , intent(in), optional :: blindness
4579 integer(IK) , allocatable :: loc(:)
4580 end function
4581#endif
4582
4583#if RK3_ENABLED
4584 PURE module function getLocDefComDefIns_D1_D0_RK3(array, pattern, blindness) result(loc)
4585#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4586 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_RK3
4587#endif
4588 use pm_kind, only: RKG => RK3
4589 real(RKG) , intent(in), contiguous :: array(:)
4590 real(RKG) , intent(in) :: pattern
4591 integer(IK) , intent(in), optional :: blindness
4592 integer(IK) , allocatable :: loc(:)
4593 end function
4594#endif
4595
4596#if RK2_ENABLED
4597 PURE module function getLocDefComDefIns_D1_D0_RK2(array, pattern, blindness) result(loc)
4598#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4599 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_RK2
4600#endif
4601 use pm_kind, only: RKG => RK2
4602 real(RKG) , intent(in), contiguous :: array(:)
4603 real(RKG) , intent(in) :: pattern
4604 integer(IK) , intent(in), optional :: blindness
4605 integer(IK) , allocatable :: loc(:)
4606 end function
4607#endif
4608
4609#if RK1_ENABLED
4610 PURE module function getLocDefComDefIns_D1_D0_RK1(array, pattern, blindness) result(loc)
4611#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4612 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComDefIns_D1_D0_RK1
4613#endif
4614 use pm_kind, only: RKG => RK1
4615 real(RKG) , intent(in), contiguous :: array(:)
4616 real(RKG) , intent(in) :: pattern
4617 integer(IK) , intent(in), optional :: blindness
4618 integer(IK) , allocatable :: loc(:)
4619 end function
4620#endif
4621
4622 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4623
4624 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4625 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4626 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4627
4628 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4629
4630#if SK5_ENABLED
4631 module function getLocCusComDefIns_D1_D0_SK5(array, pattern, iseq, blindness) result(loc)
4632#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4633 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_SK5
4634#endif
4635 use pm_kind, only: SKG => SK5
4636 character(*,SKG) , intent(in), contiguous :: array(:)
4637 character(*,SKG) , intent(in) :: pattern
4638 procedure(logical(LK)) :: iseq
4639 integer(IK) , intent(in), optional :: blindness
4640 integer(IK) , allocatable :: loc(:)
4641 end function
4642#endif
4643
4644#if SK4_ENABLED
4645 module function getLocCusComDefIns_D1_D0_SK4(array, pattern, iseq, blindness) result(loc)
4646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4647 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_SK4
4648#endif
4649 use pm_kind, only: SKG => SK4
4650 character(*,SKG) , intent(in), contiguous :: array(:)
4651 character(*,SKG) , intent(in) :: pattern
4652 procedure(logical(LK)) :: iseq
4653 integer(IK) , intent(in), optional :: blindness
4654 integer(IK) , allocatable :: loc(:)
4655 end function
4656#endif
4657
4658#if SK3_ENABLED
4659 module function getLocCusComDefIns_D1_D0_SK3(array, pattern, iseq, blindness) result(loc)
4660#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4661 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_SK3
4662#endif
4663 use pm_kind, only: SKG => SK3
4664 character(*,SKG) , intent(in), contiguous :: array(:)
4665 character(*,SKG) , intent(in) :: pattern
4666 procedure(logical(LK)) :: iseq
4667 integer(IK) , intent(in), optional :: blindness
4668 integer(IK) , allocatable :: loc(:)
4669 end function
4670#endif
4671
4672#if SK2_ENABLED
4673 module function getLocCusComDefIns_D1_D0_SK2(array, pattern, iseq, blindness) result(loc)
4674#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4675 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_SK2
4676#endif
4677 use pm_kind, only: SKG => SK2
4678 character(*,SKG) , intent(in), contiguous :: array(:)
4679 character(*,SKG) , intent(in) :: pattern
4680 procedure(logical(LK)) :: iseq
4681 integer(IK) , intent(in), optional :: blindness
4682 integer(IK) , allocatable :: loc(:)
4683 end function
4684#endif
4685
4686#if SK1_ENABLED
4687 module function getLocCusComDefIns_D1_D0_SK1(array, pattern, iseq, blindness) result(loc)
4688#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4689 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_SK1
4690#endif
4691 use pm_kind, only: SKG => SK1
4692 character(*,SKG) , intent(in), contiguous :: array(:)
4693 character(*,SKG) , intent(in) :: pattern
4694 procedure(logical(LK)) :: iseq
4695 integer(IK) , intent(in), optional :: blindness
4696 integer(IK) , allocatable :: loc(:)
4697 end function
4698#endif
4699
4700 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4701
4702#if IK5_ENABLED
4703 module function getLocCusComDefIns_D1_D0_IK5(array, pattern, iseq, blindness) result(loc)
4704#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4705 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_IK5
4706#endif
4707 use pm_kind, only: IKG => IK5
4708 integer(IKG) , intent(in), contiguous :: array(:)
4709 integer(IKG) , intent(in) :: pattern
4710 procedure(logical(LK)) :: iseq
4711 integer(IK) , intent(in), optional :: blindness
4712 integer(IK) , allocatable :: loc(:)
4713 end function
4714#endif
4715
4716#if IK4_ENABLED
4717 module function getLocCusComDefIns_D1_D0_IK4(array, pattern, iseq, blindness) result(loc)
4718#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4719 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_IK4
4720#endif
4721 use pm_kind, only: IKG => IK4
4722 integer(IKG) , intent(in), contiguous :: array(:)
4723 integer(IKG) , intent(in) :: pattern
4724 procedure(logical(LK)) :: iseq
4725 integer(IK) , intent(in), optional :: blindness
4726 integer(IK) , allocatable :: loc(:)
4727 end function
4728#endif
4729
4730#if IK3_ENABLED
4731 module function getLocCusComDefIns_D1_D0_IK3(array, pattern, iseq, blindness) result(loc)
4732#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4733 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_IK3
4734#endif
4735 use pm_kind, only: IKG => IK3
4736 integer(IKG) , intent(in), contiguous :: array(:)
4737 integer(IKG) , intent(in) :: pattern
4738 procedure(logical(LK)) :: iseq
4739 integer(IK) , intent(in), optional :: blindness
4740 integer(IK) , allocatable :: loc(:)
4741 end function
4742#endif
4743
4744#if IK2_ENABLED
4745 module function getLocCusComDefIns_D1_D0_IK2(array, pattern, iseq, blindness) result(loc)
4746#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4747 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_IK2
4748#endif
4749 use pm_kind, only: IKG => IK2
4750 integer(IKG) , intent(in), contiguous :: array(:)
4751 integer(IKG) , intent(in) :: pattern
4752 procedure(logical(LK)) :: iseq
4753 integer(IK) , intent(in), optional :: blindness
4754 integer(IK) , allocatable :: loc(:)
4755 end function
4756#endif
4757
4758#if IK1_ENABLED
4759 module function getLocCusComDefIns_D1_D0_IK1(array, pattern, iseq, blindness) result(loc)
4760#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4761 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_IK1
4762#endif
4763 use pm_kind, only: IKG => IK1
4764 integer(IKG) , intent(in), contiguous :: array(:)
4765 integer(IKG) , intent(in) :: pattern
4766 procedure(logical(LK)) :: iseq
4767 integer(IK) , intent(in), optional :: blindness
4768 integer(IK) , allocatable :: loc(:)
4769 end function
4770#endif
4771
4772 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4773
4774#if LK5_ENABLED
4775 module function getLocCusComDefIns_D1_D0_LK5(array, pattern, iseq, blindness) result(loc)
4776#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4777 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_LK5
4778#endif
4779 use pm_kind, only: LKG => LK5
4780 logical(LKG) , intent(in), contiguous :: array(:)
4781 logical(LKG) , intent(in) :: pattern
4782 procedure(logical(LK)) :: iseq
4783 integer(IK) , intent(in), optional :: blindness
4784 integer(IK) , allocatable :: loc(:)
4785 end function
4786#endif
4787
4788#if LK4_ENABLED
4789 module function getLocCusComDefIns_D1_D0_LK4(array, pattern, iseq, blindness) result(loc)
4790#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4791 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_LK4
4792#endif
4793 use pm_kind, only: LKG => LK4
4794 logical(LKG) , intent(in), contiguous :: array(:)
4795 logical(LKG) , intent(in) :: pattern
4796 procedure(logical(LK)) :: iseq
4797 integer(IK) , intent(in), optional :: blindness
4798 integer(IK) , allocatable :: loc(:)
4799 end function
4800#endif
4801
4802#if LK3_ENABLED
4803 module function getLocCusComDefIns_D1_D0_LK3(array, pattern, iseq, blindness) result(loc)
4804#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4805 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_LK3
4806#endif
4807 use pm_kind, only: LKG => LK3
4808 logical(LKG) , intent(in), contiguous :: array(:)
4809 logical(LKG) , intent(in) :: pattern
4810 procedure(logical(LK)) :: iseq
4811 integer(IK) , intent(in), optional :: blindness
4812 integer(IK) , allocatable :: loc(:)
4813 end function
4814#endif
4815
4816#if LK2_ENABLED
4817 module function getLocCusComDefIns_D1_D0_LK2(array, pattern, iseq, blindness) result(loc)
4818#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4819 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_LK2
4820#endif
4821 use pm_kind, only: LKG => LK2
4822 logical(LKG) , intent(in), contiguous :: array(:)
4823 logical(LKG) , intent(in) :: pattern
4824 procedure(logical(LK)) :: iseq
4825 integer(IK) , intent(in), optional :: blindness
4826 integer(IK) , allocatable :: loc(:)
4827 end function
4828#endif
4829
4830#if LK1_ENABLED
4831 module function getLocCusComDefIns_D1_D0_LK1(array, pattern, iseq, blindness) result(loc)
4832#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4833 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_LK1
4834#endif
4835 use pm_kind, only: LKG => LK1
4836 logical(LKG) , intent(in), contiguous :: array(:)
4837 logical(LKG) , intent(in) :: pattern
4838 procedure(logical(LK)) :: iseq
4839 integer(IK) , intent(in), optional :: blindness
4840 integer(IK) , allocatable :: loc(:)
4841 end function
4842#endif
4843
4844 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4845
4846#if CK5_ENABLED
4847 module function getLocCusComDefIns_D1_D0_CK5(array, pattern, iseq, blindness) result(loc)
4848#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4849 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_CK5
4850#endif
4851 use pm_kind, only: CKG => CK5
4852 complex(CKG) , intent(in), contiguous :: array(:)
4853 complex(CKG) , intent(in) :: pattern
4854 procedure(logical(LK)) :: iseq
4855 integer(IK) , intent(in), optional :: blindness
4856 integer(IK) , allocatable :: loc(:)
4857 end function
4858#endif
4859
4860#if CK4_ENABLED
4861 module function getLocCusComDefIns_D1_D0_CK4(array, pattern, iseq, blindness) result(loc)
4862#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4863 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_CK4
4864#endif
4865 use pm_kind, only: CKG => CK4
4866 complex(CKG) , intent(in), contiguous :: array(:)
4867 complex(CKG) , intent(in) :: pattern
4868 procedure(logical(LK)) :: iseq
4869 integer(IK) , intent(in), optional :: blindness
4870 integer(IK) , allocatable :: loc(:)
4871 end function
4872#endif
4873
4874#if CK3_ENABLED
4875 module function getLocCusComDefIns_D1_D0_CK3(array, pattern, iseq, blindness) result(loc)
4876#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4877 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_CK3
4878#endif
4879 use pm_kind, only: CKG => CK3
4880 complex(CKG) , intent(in), contiguous :: array(:)
4881 complex(CKG) , intent(in) :: pattern
4882 procedure(logical(LK)) :: iseq
4883 integer(IK) , intent(in), optional :: blindness
4884 integer(IK) , allocatable :: loc(:)
4885 end function
4886#endif
4887
4888#if CK2_ENABLED
4889 module function getLocCusComDefIns_D1_D0_CK2(array, pattern, iseq, blindness) result(loc)
4890#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4891 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_CK2
4892#endif
4893 use pm_kind, only: CKG => CK2
4894 complex(CKG) , intent(in), contiguous :: array(:)
4895 complex(CKG) , intent(in) :: pattern
4896 procedure(logical(LK)) :: iseq
4897 integer(IK) , intent(in), optional :: blindness
4898 integer(IK) , allocatable :: loc(:)
4899 end function
4900#endif
4901
4902#if CK1_ENABLED
4903 module function getLocCusComDefIns_D1_D0_CK1(array, pattern, iseq, blindness) result(loc)
4904#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4905 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_CK1
4906#endif
4907 use pm_kind, only: CKG => CK1
4908 complex(CKG) , intent(in), contiguous :: array(:)
4909 complex(CKG) , intent(in) :: pattern
4910 procedure(logical(LK)) :: iseq
4911 integer(IK) , intent(in), optional :: blindness
4912 integer(IK) , allocatable :: loc(:)
4913 end function
4914#endif
4915
4916 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4917
4918#if RK5_ENABLED
4919 module function getLocCusComDefIns_D1_D0_RK5(array, pattern, iseq, blindness) result(loc)
4920#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4921 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_RK5
4922#endif
4923 use pm_kind, only: RKG => RK5
4924 real(RKG) , intent(in), contiguous :: array(:)
4925 real(RKG) , intent(in) :: pattern
4926 procedure(logical(LK)) :: iseq
4927 integer(IK) , intent(in), optional :: blindness
4928 integer(IK) , allocatable :: loc(:)
4929 end function
4930#endif
4931
4932#if RK4_ENABLED
4933 module function getLocCusComDefIns_D1_D0_RK4(array, pattern, iseq, blindness) result(loc)
4934#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4935 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_RK4
4936#endif
4937 use pm_kind, only: RKG => RK4
4938 real(RKG) , intent(in), contiguous :: array(:)
4939 real(RKG) , intent(in) :: pattern
4940 procedure(logical(LK)) :: iseq
4941 integer(IK) , intent(in), optional :: blindness
4942 integer(IK) , allocatable :: loc(:)
4943 end function
4944#endif
4945
4946#if RK3_ENABLED
4947 module function getLocCusComDefIns_D1_D0_RK3(array, pattern, iseq, blindness) result(loc)
4948#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4949 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_RK3
4950#endif
4951 use pm_kind, only: RKG => RK3
4952 real(RKG) , intent(in), contiguous :: array(:)
4953 real(RKG) , intent(in) :: pattern
4954 procedure(logical(LK)) :: iseq
4955 integer(IK) , intent(in), optional :: blindness
4956 integer(IK) , allocatable :: loc(:)
4957 end function
4958#endif
4959
4960#if RK2_ENABLED
4961 module function getLocCusComDefIns_D1_D0_RK2(array, pattern, iseq, blindness) result(loc)
4962#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4963 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_RK2
4964#endif
4965 use pm_kind, only: RKG => RK2
4966 real(RKG) , intent(in), contiguous :: array(:)
4967 real(RKG) , intent(in) :: pattern
4968 procedure(logical(LK)) :: iseq
4969 integer(IK) , intent(in), optional :: blindness
4970 integer(IK) , allocatable :: loc(:)
4971 end function
4972#endif
4973
4974#if RK1_ENABLED
4975 module function getLocCusComDefIns_D1_D0_RK1(array, pattern, iseq, blindness) result(loc)
4976#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4977 !DEC$ ATTRIBUTES DLLEXPORT :: getLocCusComDefIns_D1_D0_RK1
4978#endif
4979 use pm_kind, only: RKG => RK1
4980 real(RKG) , intent(in), contiguous :: array(:)
4981 real(RKG) , intent(in) :: pattern
4982 procedure(logical(LK)) :: iseq
4983 integer(IK) , intent(in), optional :: blindness
4984 integer(IK) , allocatable :: loc(:)
4985 end function
4986#endif
4987
4988 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4989
4990 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4991 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4992 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4993
4994 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4995
4996#if SK5_ENABLED
4997 PURE module function getLocDefComCusIns_D1_D0_SK5(array, pattern, instance, sorted, positive, blindness) result(loc)
4998#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4999 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D1_D0_SK5
5000#endif
5001 use pm_kind, only: SKG => SK5
5002 character(*,SKG) , intent(in), contiguous :: array(:)
5003 character(*,SKG) , intent(in) :: pattern
5004 integer(IK) , intent(in), contiguous :: instance(:)
5005 logical(LK) , intent(in), optional :: sorted
5006 logical(LK) , intent(in), optional :: positive
5007 integer(IK) , intent(in), optional :: blindness
5008 integer(IK) , allocatable :: loc(:)
5009 end function
5010#endif
5011
5012#if SK4_ENABLED
5013 PURE module function getLocDefComCusIns_D1_D0_SK4(array, pattern, instance, sorted, positive, blindness) result(loc)
5014#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5015 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D1_D0_SK4
5016#endif
5017 use pm_kind, only: SKG => SK4
5018 character(*,SKG) , intent(in), contiguous :: array(:)
5019 character(*,SKG) , intent(in) :: pattern
5020 integer(IK) , intent(in), contiguous :: instance(:)
5021 logical(LK) , intent(in), optional :: sorted
5022 logical(LK) , intent(in), optional :: positive
5023 integer(IK) , intent(in), optional :: blindness
5024 integer(IK) , allocatable :: loc(:)
5025 end function
5026#endif
5027
5028#if SK3_ENABLED
5029 PURE module function getLocDefComCusIns_D1_D0_SK3(array, pattern, instance, sorted, positive, blindness) result(loc)
5030#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5031 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D1_D0_SK3
5032#endif
5033 use pm_kind, only: SKG => SK3
5034 character(*,SKG) , intent(in), contiguous :: array(:)
5035 character(*,SKG) , intent(in) :: pattern
5036 integer(IK) , intent(in), contiguous :: instance(:)
5037 logical(LK) , intent(in), optional :: sorted
5038 logical(LK) , intent(in), optional :: positive
5039 integer(IK) , intent(in), optional :: blindness
5040 integer(IK) , allocatable :: loc(:)
5041 end function
5042#endif
5043
5044#if SK2_ENABLED
5045 PURE module function getLocDefComCusIns_D1_D0_SK2(array, pattern, instance, sorted, positive, blindness) result(loc)
5046#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5047 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D1_D0_SK2
5048#endif
5049 use pm_kind, only: SKG => SK2
5050 character(*,SKG) , intent(in), contiguous :: array(:)
5051 character(*,SKG) , intent(in) :: pattern
5052 integer(IK) , intent(in), contiguous :: instance(:)
5053 logical(LK) , intent(in), optional :: sorted
5054 logical(LK) , intent(in), optional :: positive
5055 integer(IK) , intent(in), optional :: blindness
5056 integer(IK) , allocatable :: loc(:)
5057 end function
5058#endif
5059
5060#if SK1_ENABLED
5061 PURE module function getLocDefComCusIns_D1_D0_SK1(array, pattern, instance, sorted, positive, blindness) result(loc)
5062#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5063 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D1_D0_SK1
5064#endif
5065 use pm_kind, only: SKG => SK1
5066 character(*,SKG) , intent(in), contiguous :: array(:)
5067 character(*,SKG) , intent(in) :: pattern
5068 integer(IK) , intent(in), contiguous :: instance(:)
5069 logical(LK) , intent(in), optional :: sorted
5070 logical(LK) , intent(in), optional :: positive
5071 integer(IK) , intent(in), optional :: blindness
5072 integer(IK) , allocatable :: loc(:)
5073 end function
5074#endif
5075
5076 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5077
5078#if IK5_ENABLED
5079 PURE module function getLocDefComCusIns_D1_D0_IK5(array, pattern, instance, sorted, positive, blindness) result(loc)
5080#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5081 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D1_D0_IK5
5082#endif
5083 use pm_kind, only: IKG => IK5
5084 integer(IKG) , intent(in), contiguous :: array(:)
5085 integer(IKG) , intent(in) :: pattern
5086 integer(IK) , intent(in), contiguous :: instance(:)
5087 logical(LK) , intent(in), optional :: sorted
5088 logical(LK) , intent(in), optional :: positive
5089 integer(IK) , intent(in), optional :: blindness
5090 integer(IK) , allocatable :: loc(:)
5091 end function
5092#endif
5093
5094#if IK4_ENABLED
5095 PURE module function getLocDefComCusIns_D1_D0_IK4(array, pattern, instance, sorted, positive, blindness) result(loc)
5096#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5097 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D1_D0_IK4
5098#endif
5099 use pm_kind, only: IKG => IK4
5100 integer(IKG) , intent(in), contiguous :: array(:)
5101 integer(IKG) , intent(in) :: pattern
5102 integer(IK) , intent(in), contiguous :: instance(:)
5103 logical(LK) , intent(in), optional :: sorted
5104 logical(LK) , intent(in), optional :: positive
5105 integer(IK) , intent(in), optional :: blindness
5106 integer(IK) , allocatable :: loc(:)
5107 end function
5108#endif
5109
5110#if IK3_ENABLED
5111 PURE module function getLocDefComCusIns_D1_D0_IK3(array, pattern, instance, sorted, positive, blindness) result(loc)
5112#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5113 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D1_D0_IK3
5114#endif
5115 use pm_kind, only: IKG => IK3
5116 integer(IKG) , intent(in), contiguous :: array(:)
5117 integer(IKG) , intent(in) :: pattern
5118 integer(IK) , intent(in), contiguous :: instance(:)
5119 logical(LK) , intent(in), optional :: sorted
5120 logical(LK) , intent(in), optional :: positive
5121 integer(IK) , intent(in), optional :: blindness
5122 integer(IK) , allocatable :: loc(:)
5123 end function
5124#endif
5125
5126#if IK2_ENABLED
5127 PURE module function getLocDefComCusIns_D1_D0_IK2(array, pattern, instance, sorted, positive, blindness) result(loc)
5128#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5129 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D1_D0_IK2
5130#endif
5131 use pm_kind, only: IKG => IK2
5132 integer(IKG) , intent(in), contiguous :: array(:)
5133 integer(IKG) , intent(in) :: pattern
5134 integer(IK) , intent(in), contiguous :: instance(:)
5135 logical(LK) , intent(in), optional :: sorted
5136 logical(LK) , intent(in), optional :: positive
5137 integer(IK) , intent(in), optional :: blindness
5138 integer(IK) , allocatable :: loc(:)
5139 end function
5140#endif
5141
5142#if IK1_ENABLED
5143 PURE module function getLocDefComCusIns_D1_D0_IK1(array, pattern, instance, sorted, positive, blindness) result(loc)
5144#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5145 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D1_D0_IK1
5146#endif
5147 use pm_kind, only: IKG => IK1
5148 integer(IKG) , intent(in), contiguous :: array(:)
5149 integer(IKG) , intent(in) :: pattern
5150 integer(IK) , intent(in), contiguous :: instance(:)
5151 logical(LK) , intent(in), optional :: sorted
5152 logical(LK) , intent(in), optional :: positive
5153 integer(IK) , intent(in), optional :: blindness
5154 integer(IK) , allocatable :: loc(:)
5155 end function
5156#endif
5157
5158 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5159
5160#if LK5_ENABLED
5161 PURE module function getLocDefComCusIns_D1_D0_LK5(array, pattern, instance, sorted, positive, blindness) result(loc)
5162#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5163 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D1_D0_LK5
5164#endif
5165 use pm_kind, only: LKG => LK5
5166 logical(LKG) , intent(in), contiguous :: array(:)
5167 logical(LKG) , intent(in) :: pattern
5168 integer(IK) , intent(in), contiguous :: instance(:)
5169 logical(LK) , intent(in), optional :: sorted
5170 logical(LK) , intent(in), optional :: positive
5171 integer(IK) , intent(in), optional :: blindness
5172 integer(IK) , allocatable :: loc(:)
5173 end function
5174#endif
5175
5176#if LK4_ENABLED
5177 PURE module function getLocDefComCusIns_D1_D0_LK4(array, pattern, instance, sorted, positive, blindness) result(loc)
5178#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5179 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D1_D0_LK4
5180#endif
5181 use pm_kind, only: LKG => LK4
5182 logical(LKG) , intent(in), contiguous :: array(:)
5183 logical(LKG) , intent(in) :: pattern
5184 integer(IK) , intent(in), contiguous :: instance(:)
5185 logical(LK) , intent(in), optional :: sorted
5186 logical(LK) , intent(in), optional :: positive
5187 integer(IK) , intent(in), optional :: blindness
5188 integer(IK) , allocatable :: loc(:)
5189 end function
5190#endif
5191
5192#if LK3_ENABLED
5193 PURE module function getLocDefComCusIns_D1_D0_LK3(array, pattern, instance, sorted, positive, blindness) result(loc)
5194#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5195 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D1_D0_LK3
5196#endif
5197 use pm_kind, only: LKG => LK3
5198 logical(LKG) , intent(in), contiguous :: array(:)
5199 logical(LKG) , intent(in) :: pattern
5200 integer(IK) , intent(in), contiguous :: instance(:)
5201 logical(LK) , intent(in), optional :: sorted
5202 logical(LK) , intent(in), optional :: positive
5203 integer(IK) , intent(in), optional :: blindness
5204 integer(IK) , allocatable :: loc(:)
5205 end function
5206#endif
5207
5208#if LK2_ENABLED
5209 PURE module function getLocDefComCusIns_D1_D0_LK2(array, pattern, instance, sorted, positive, blindness) result(loc)
5210#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5211 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D1_D0_LK2
5212#endif
5213 use pm_kind, only: LKG => LK2
5214 logical(LKG) , intent(in), contiguous :: array(:)
5215 logical(LKG) , intent(in) :: pattern
5216 integer(IK) , intent(in), contiguous :: instance(:)
5217 logical(LK) , intent(in), optional :: sorted
5218 logical(LK) , intent(in), optional :: positive
5219 integer(IK) , intent(in), optional :: blindness
5220 integer(IK) , allocatable :: loc(:)
5221 end function
5222#endif
5223
5224#if LK1_ENABLED
5225 PURE module function getLocDefComCusIns_D1_D0_LK1(array, pattern, instance, sorted, positive, blindness) result(loc)
5226#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5227 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D1_D0_LK1
5228#endif
5229 use pm_kind, only: LKG => LK1
5230 logical(LKG) , intent(in), contiguous :: array(:)
5231 logical(LKG) , intent(in) :: pattern
5232 integer(IK) , intent(in), contiguous :: instance(:)
5233 logical(LK) , intent(in), optional :: sorted
5234 logical(LK) , intent(in), optional :: positive
5235 integer(IK) , intent(in), optional :: blindness
5236 integer(IK) , allocatable :: loc(:)
5237 end function
5238#endif
5239
5240 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5241
5242#if CK5_ENABLED
5243 PURE module function getLocDefComCusIns_D1_D0_CK5(array, pattern, instance, sorted, positive, blindness) result(loc)
5244#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5245 !DEC$ ATTRIBUTES DLLEXPORT :: getLocDefComCusIns_D1_D0_CK5
5246#endif