ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_arrayStrip.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
52
53!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
54
56
57 use pm_kind, only: SK, IK, LK
59 use pm_array, only: right_type, right
60 use pm_array, only: left_type, left
61
62 implicit none
63
64 character(*,SK), parameter :: MODULE_NAME = "@pm_arrayStrip"
65
66!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
67
194
195 ! side: both
196
197 interface getStripped
198
199 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
200 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
201 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
202
203 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
204
205#if SK5_ENABLED
206 PURE module function getStrippedDefComB_D0_D0_SK5(array, pattern, side) result(arrayStripped)
207#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
208 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D0_D0_SK5
209#endif
210 use pm_kind, only: SKG => SK5
211 character(*,SKG) , intent(in) :: array
212 character(*,SKG) , intent(in) :: pattern
213 character(:,SKG) , allocatable :: arrayStripped
214 type(leftRight_type) , intent(in), optional :: side
215 end function
216#endif
217
218#if SK4_ENABLED
219 PURE module function getStrippedDefComB_D0_D0_SK4(array, pattern, side) result(arrayStripped)
220#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
221 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D0_D0_SK4
222#endif
223 use pm_kind, only: SKG => SK4
224 character(*,SKG) , intent(in) :: array
225 character(*,SKG) , intent(in) :: pattern
226 character(:,SKG) , allocatable :: arrayStripped
227 type(leftRight_type) , intent(in), optional :: side
228 end function
229#endif
230
231#if SK3_ENABLED
232 PURE module function getStrippedDefComB_D0_D0_SK3(array, pattern, side) result(arrayStripped)
233#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
234 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D0_D0_SK3
235#endif
236 use pm_kind, only: SKG => SK3
237 character(*,SKG) , intent(in) :: array
238 character(*,SKG) , intent(in) :: pattern
239 character(:,SKG) , allocatable :: arrayStripped
240 type(leftRight_type) , intent(in), optional :: side
241 end function
242#endif
243
244#if SK2_ENABLED
245 PURE module function getStrippedDefComB_D0_D0_SK2(array, pattern, side) result(arrayStripped)
246#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
247 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D0_D0_SK2
248#endif
249 use pm_kind, only: SKG => SK2
250 character(*,SKG) , intent(in) :: array
251 character(*,SKG) , intent(in) :: pattern
252 character(:,SKG) , allocatable :: arrayStripped
253 type(leftRight_type) , intent(in), optional :: side
254 end function
255#endif
256
257#if SK1_ENABLED
258 PURE module function getStrippedDefComB_D0_D0_SK1(array, pattern, side) result(arrayStripped)
259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
260 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D0_D0_SK1
261#endif
262 use pm_kind, only: SKG => SK1
263 character(*,SKG) , intent(in) :: array
264 character(*,SKG) , intent(in) :: pattern
265 character(:,SKG) , allocatable :: arrayStripped
266 type(leftRight_type) , intent(in), optional :: side
267 end function
268#endif
269
270 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
271
272#if SK5_ENABLED
273 PURE module function getStrippedDefComB_D1_D0_SK5(array, pattern, side) result(arrayStripped)
274#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
275 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_SK5
276#endif
277 use pm_kind, only: SKG => SK5
278 character(*,SKG) , intent(in) :: pattern
279 character(*,SKG) , intent(in), contiguous :: array(:)
280 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
281 type(leftRight_type) , intent(in), optional :: side
282 end function
283#endif
284
285#if SK4_ENABLED
286 PURE module function getStrippedDefComB_D1_D0_SK4(array, pattern, side) result(arrayStripped)
287#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
288 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_SK4
289#endif
290 use pm_kind, only: SKG => SK4
291 character(*,SKG) , intent(in) :: pattern
292 character(*,SKG) , intent(in), contiguous :: array(:)
293 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
294 type(leftRight_type) , intent(in), optional :: side
295 end function
296#endif
297
298#if SK3_ENABLED
299 PURE module function getStrippedDefComB_D1_D0_SK3(array, pattern, side) result(arrayStripped)
300#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
301 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_SK3
302#endif
303 use pm_kind, only: SKG => SK3
304 character(*,SKG) , intent(in) :: pattern
305 character(*,SKG) , intent(in), contiguous :: array(:)
306 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
307 type(leftRight_type) , intent(in), optional :: side
308 end function
309#endif
310
311#if SK2_ENABLED
312 PURE module function getStrippedDefComB_D1_D0_SK2(array, pattern, side) result(arrayStripped)
313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
314 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_SK2
315#endif
316 use pm_kind, only: SKG => SK2
317 character(*,SKG) , intent(in) :: pattern
318 character(*,SKG) , intent(in), contiguous :: array(:)
319 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
320 type(leftRight_type) , intent(in), optional :: side
321 end function
322#endif
323
324#if SK1_ENABLED
325 PURE module function getStrippedDefComB_D1_D0_SK1(array, pattern, side) result(arrayStripped)
326#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
327 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_SK1
328#endif
329 use pm_kind, only: SKG => SK1
330 character(*,SKG) , intent(in) :: pattern
331 character(*,SKG) , intent(in), contiguous :: array(:)
332 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
333 type(leftRight_type) , intent(in), optional :: side
334 end function
335#endif
336
337 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
338
339#if IK5_ENABLED
340 PURE module function getStrippedDefComB_D1_D0_IK5(array, pattern, side) result(arrayStripped)
341#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
342 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_IK5
343#endif
344 use pm_kind, only: IKG => IK5
345 integer(IKG) , intent(in), contiguous :: array(:)
346 integer(IKG) , intent(in) :: pattern
347 integer(IKG) , allocatable :: arrayStripped(:)
348 type(leftRight_type) , intent(in), optional :: side
349 end function
350#endif
351
352#if IK4_ENABLED
353 PURE module function getStrippedDefComB_D1_D0_IK4(array, pattern, side) result(arrayStripped)
354#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
355 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_IK4
356#endif
357 use pm_kind, only: IKG => IK4
358 integer(IKG) , intent(in), contiguous :: array(:)
359 integer(IKG) , intent(in) :: pattern
360 integer(IKG) , allocatable :: arrayStripped(:)
361 type(leftRight_type) , intent(in), optional :: side
362 end function
363#endif
364
365#if IK3_ENABLED
366 PURE module function getStrippedDefComB_D1_D0_IK3(array, pattern, side) result(arrayStripped)
367#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
368 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_IK3
369#endif
370 use pm_kind, only: IKG => IK3
371 integer(IKG) , intent(in), contiguous :: array(:)
372 integer(IKG) , intent(in) :: pattern
373 integer(IKG) , allocatable :: arrayStripped(:)
374 type(leftRight_type) , intent(in), optional :: side
375 end function
376#endif
377
378#if IK2_ENABLED
379 PURE module function getStrippedDefComB_D1_D0_IK2(array, pattern, side) result(arrayStripped)
380#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
381 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_IK2
382#endif
383 use pm_kind, only: IKG => IK2
384 integer(IKG) , intent(in), contiguous :: array(:)
385 integer(IKG) , intent(in) :: pattern
386 integer(IKG) , allocatable :: arrayStripped(:)
387 type(leftRight_type) , intent(in), optional :: side
388 end function
389#endif
390
391#if IK1_ENABLED
392 PURE module function getStrippedDefComB_D1_D0_IK1(array, pattern, side) result(arrayStripped)
393#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
394 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_IK1
395#endif
396 use pm_kind, only: IKG => IK1
397 integer(IKG) , intent(in), contiguous :: array(:)
398 integer(IKG) , intent(in) :: pattern
399 integer(IKG) , allocatable :: arrayStripped(:)
400 type(leftRight_type) , intent(in), optional :: side
401 end function
402#endif
403
404 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
405
406#if LK5_ENABLED
407 PURE module function getStrippedDefComB_D1_D0_LK5(array, pattern, side) result(arrayStripped)
408#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
409 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_LK5
410#endif
411 use pm_kind, only: LKG => LK5
412 logical(LKG) , intent(in), contiguous :: array(:)
413 logical(LKG) , intent(in) :: pattern
414 logical(LKG) , allocatable :: arrayStripped(:)
415 type(leftRight_type) , intent(in), optional :: side
416 end function
417#endif
418
419#if LK4_ENABLED
420 PURE module function getStrippedDefComB_D1_D0_LK4(array, pattern, side) result(arrayStripped)
421#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
422 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_LK4
423#endif
424 use pm_kind, only: LKG => LK4
425 logical(LKG) , intent(in), contiguous :: array(:)
426 logical(LKG) , intent(in) :: pattern
427 logical(LKG) , allocatable :: arrayStripped(:)
428 type(leftRight_type) , intent(in), optional :: side
429 end function
430#endif
431
432#if LK3_ENABLED
433 PURE module function getStrippedDefComB_D1_D0_LK3(array, pattern, side) result(arrayStripped)
434#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
435 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_LK3
436#endif
437 use pm_kind, only: LKG => LK3
438 logical(LKG) , intent(in), contiguous :: array(:)
439 logical(LKG) , intent(in) :: pattern
440 logical(LKG) , allocatable :: arrayStripped(:)
441 type(leftRight_type) , intent(in), optional :: side
442 end function
443#endif
444
445#if LK2_ENABLED
446 PURE module function getStrippedDefComB_D1_D0_LK2(array, pattern, side) result(arrayStripped)
447#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
448 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_LK2
449#endif
450 use pm_kind, only: LKG => LK2
451 logical(LKG) , intent(in), contiguous :: array(:)
452 logical(LKG) , intent(in) :: pattern
453 logical(LKG) , allocatable :: arrayStripped(:)
454 type(leftRight_type) , intent(in), optional :: side
455 end function
456#endif
457
458#if LK1_ENABLED
459 PURE module function getStrippedDefComB_D1_D0_LK1(array, pattern, side) result(arrayStripped)
460#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
461 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_LK1
462#endif
463 use pm_kind, only: LKG => LK1
464 logical(LKG) , intent(in), contiguous :: array(:)
465 logical(LKG) , intent(in) :: pattern
466 logical(LKG) , allocatable :: arrayStripped(:)
467 type(leftRight_type) , intent(in), optional :: side
468 end function
469#endif
470
471 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
472
473#if CK5_ENABLED
474 PURE module function getStrippedDefComB_D1_D0_CK5(array, pattern, side) result(arrayStripped)
475#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
476 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_CK5
477#endif
478 use pm_kind, only: CKG => CK5
479 complex(CKG) , intent(in), contiguous :: array(:)
480 complex(CKG) , intent(in) :: pattern
481 complex(CKG) , allocatable :: arrayStripped(:)
482 type(leftRight_type) , intent(in), optional :: side
483 end function
484#endif
485
486#if CK4_ENABLED
487 PURE module function getStrippedDefComB_D1_D0_CK4(array, pattern, side) result(arrayStripped)
488#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
489 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_CK4
490#endif
491 use pm_kind, only: CKG => CK4
492 complex(CKG) , intent(in), contiguous :: array(:)
493 complex(CKG) , intent(in) :: pattern
494 complex(CKG) , allocatable :: arrayStripped(:)
495 type(leftRight_type) , intent(in), optional :: side
496 end function
497#endif
498
499#if CK3_ENABLED
500 PURE module function getStrippedDefComB_D1_D0_CK3(array, pattern, side) result(arrayStripped)
501#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
502 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_CK3
503#endif
504 use pm_kind, only: CKG => CK3
505 complex(CKG) , intent(in), contiguous :: array(:)
506 complex(CKG) , intent(in) :: pattern
507 complex(CKG) , allocatable :: arrayStripped(:)
508 type(leftRight_type) , intent(in), optional :: side
509 end function
510#endif
511
512#if CK2_ENABLED
513 PURE module function getStrippedDefComB_D1_D0_CK2(array, pattern, side) result(arrayStripped)
514#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
515 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_CK2
516#endif
517 use pm_kind, only: CKG => CK2
518 complex(CKG) , intent(in), contiguous :: array(:)
519 complex(CKG) , intent(in) :: pattern
520 complex(CKG) , allocatable :: arrayStripped(:)
521 type(leftRight_type) , intent(in), optional :: side
522 end function
523#endif
524
525#if CK1_ENABLED
526 PURE module function getStrippedDefComB_D1_D0_CK1(array, pattern, side) result(arrayStripped)
527#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
528 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_CK1
529#endif
530 use pm_kind, only: CKG => CK1
531 complex(CKG) , intent(in), contiguous :: array(:)
532 complex(CKG) , intent(in) :: pattern
533 complex(CKG) , allocatable :: arrayStripped(:)
534 type(leftRight_type) , intent(in), optional :: side
535 end function
536#endif
537
538 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
539
540#if RK5_ENABLED
541 PURE module function getStrippedDefComB_D1_D0_RK5(array, pattern, side) result(arrayStripped)
542#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
543 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_RK5
544#endif
545 use pm_kind, only: RKG => RK5
546 real(RKG) , intent(in), contiguous :: array(:)
547 real(RKG) , intent(in) :: pattern
548 real(RKG) , allocatable :: arrayStripped(:)
549 type(leftRight_type) , intent(in), optional :: side
550 end function
551#endif
552
553#if RK4_ENABLED
554 PURE module function getStrippedDefComB_D1_D0_RK4(array, pattern, side) result(arrayStripped)
555#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
556 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_RK4
557#endif
558 use pm_kind, only: RKG => RK4
559 real(RKG) , intent(in), contiguous :: array(:)
560 real(RKG) , intent(in) :: pattern
561 real(RKG) , allocatable :: arrayStripped(:)
562 type(leftRight_type) , intent(in), optional :: side
563 end function
564#endif
565
566#if RK3_ENABLED
567 PURE module function getStrippedDefComB_D1_D0_RK3(array, pattern, side) result(arrayStripped)
568#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
569 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_RK3
570#endif
571 use pm_kind, only: RKG => RK3
572 real(RKG) , intent(in), contiguous :: array(:)
573 real(RKG) , intent(in) :: pattern
574 real(RKG) , allocatable :: arrayStripped(:)
575 type(leftRight_type) , intent(in), optional :: side
576 end function
577#endif
578
579#if RK2_ENABLED
580 PURE module function getStrippedDefComB_D1_D0_RK2(array, pattern, side) result(arrayStripped)
581#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
582 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_RK2
583#endif
584 use pm_kind, only: RKG => RK2
585 real(RKG) , intent(in), contiguous :: array(:)
586 real(RKG) , intent(in) :: pattern
587 real(RKG) , allocatable :: arrayStripped(:)
588 type(leftRight_type) , intent(in), optional :: side
589 end function
590#endif
591
592#if RK1_ENABLED
593 PURE module function getStrippedDefComB_D1_D0_RK1(array, pattern, side) result(arrayStripped)
594#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
595 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D0_RK1
596#endif
597 use pm_kind, only: RKG => RK1
598 real(RKG) , intent(in), contiguous :: array(:)
599 real(RKG) , intent(in) :: pattern
600 real(RKG) , allocatable :: arrayStripped(:)
601 type(leftRight_type) , intent(in), optional :: side
602 end function
603#endif
604
605 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
606
607 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
608 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
609 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
610
611 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
612
613#if SK5_ENABLED
614 module function getStrippedCusComLR_D0_D0_SK5(array, pattern, iseq, side) result(arrayStripped)
615#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
616 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D0_D0_SK5
617#endif
618 use pm_kind, only: SKG => SK5
619 procedure(logical(LK)) :: iseq
620 character(*,SKG) , intent(in) :: array
621 character(*,SKG) , intent(in) :: pattern
622 character(:,SKG) , allocatable :: arrayStripped
623 type(leftRight_type) , intent(in), optional :: side
624 end function
625#endif
626
627#if SK4_ENABLED
628 module function getStrippedCusComLR_D0_D0_SK4(array, pattern, iseq, side) result(arrayStripped)
629#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
630 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D0_D0_SK4
631#endif
632 use pm_kind, only: SKG => SK4
633 procedure(logical(LK)) :: iseq
634 character(*,SKG) , intent(in) :: array
635 character(*,SKG) , intent(in) :: pattern
636 character(:,SKG) , allocatable :: arrayStripped
637 type(leftRight_type) , intent(in), optional :: side
638 end function
639#endif
640
641#if SK3_ENABLED
642 module function getStrippedCusComLR_D0_D0_SK3(array, pattern, iseq, side) result(arrayStripped)
643#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
644 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D0_D0_SK3
645#endif
646 use pm_kind, only: SKG => SK3
647 procedure(logical(LK)) :: iseq
648 character(*,SKG) , intent(in) :: array
649 character(*,SKG) , intent(in) :: pattern
650 character(:,SKG) , allocatable :: arrayStripped
651 type(leftRight_type) , intent(in), optional :: side
652 end function
653#endif
654
655#if SK2_ENABLED
656 module function getStrippedCusComLR_D0_D0_SK2(array, pattern, iseq, side) result(arrayStripped)
657#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
658 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D0_D0_SK2
659#endif
660 use pm_kind, only: SKG => SK2
661 procedure(logical(LK)) :: iseq
662 character(*,SKG) , intent(in) :: array
663 character(*,SKG) , intent(in) :: pattern
664 character(:,SKG) , allocatable :: arrayStripped
665 type(leftRight_type) , intent(in), optional :: side
666 end function
667#endif
668
669#if SK1_ENABLED
670 module function getStrippedCusComLR_D0_D0_SK1(array, pattern, iseq, side) result(arrayStripped)
671#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
672 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D0_D0_SK1
673#endif
674 use pm_kind, only: SKG => SK1
675 procedure(logical(LK)) :: iseq
676 character(*,SKG) , intent(in) :: array
677 character(*,SKG) , intent(in) :: pattern
678 character(:,SKG) , allocatable :: arrayStripped
679 type(leftRight_type) , intent(in), optional :: side
680 end function
681#endif
682
683 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
684
685#if SK5_ENABLED
686 module function getStrippedCusComLR_D1_D0_SK5(array, pattern, iseq, side) result(arrayStripped)
687#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
688 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_SK5
689#endif
690 use pm_kind, only: SKG => SK5
691 procedure(logical(LK)) :: iseq
692 character(*,SKG) , intent(in) :: pattern
693 character(*,SKG) , intent(in), contiguous :: array(:)
694 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
695 type(leftRight_type) , intent(in), optional :: side
696 end function
697#endif
698
699#if SK4_ENABLED
700 module function getStrippedCusComLR_D1_D0_SK4(array, pattern, iseq, side) result(arrayStripped)
701#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
702 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_SK4
703#endif
704 use pm_kind, only: SKG => SK4
705 procedure(logical(LK)) :: iseq
706 character(*,SKG) , intent(in) :: pattern
707 character(*,SKG) , intent(in), contiguous :: array(:)
708 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
709 type(leftRight_type) , intent(in), optional :: side
710 end function
711#endif
712
713#if SK3_ENABLED
714 module function getStrippedCusComLR_D1_D0_SK3(array, pattern, iseq, side) result(arrayStripped)
715#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
716 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_SK3
717#endif
718 use pm_kind, only: SKG => SK3
719 procedure(logical(LK)) :: iseq
720 character(*,SKG) , intent(in) :: pattern
721 character(*,SKG) , intent(in), contiguous :: array(:)
722 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
723 type(leftRight_type) , intent(in), optional :: side
724 end function
725#endif
726
727#if SK2_ENABLED
728 module function getStrippedCusComLR_D1_D0_SK2(array, pattern, iseq, side) result(arrayStripped)
729#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
730 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_SK2
731#endif
732 use pm_kind, only: SKG => SK2
733 procedure(logical(LK)) :: iseq
734 character(*,SKG) , intent(in) :: pattern
735 character(*,SKG) , intent(in), contiguous :: array(:)
736 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
737 type(leftRight_type) , intent(in), optional :: side
738 end function
739#endif
740
741#if SK1_ENABLED
742 module function getStrippedCusComLR_D1_D0_SK1(array, pattern, iseq, side) result(arrayStripped)
743#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
744 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_SK1
745#endif
746 use pm_kind, only: SKG => SK1
747 procedure(logical(LK)) :: iseq
748 character(*,SKG) , intent(in) :: pattern
749 character(*,SKG) , intent(in), contiguous :: array(:)
750 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
751 type(leftRight_type) , intent(in), optional :: side
752 end function
753#endif
754
755 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
756
757#if IK5_ENABLED
758 module function getStrippedCusComLR_D1_D0_IK5(array, pattern, iseq, side) result(arrayStripped)
759#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
760 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_IK5
761#endif
762 use pm_kind, only: IKG => IK5
763 procedure(logical(LK)) :: iseq
764 integer(IKG) , intent(in), contiguous :: array(:)
765 integer(IKG) , intent(in) :: pattern
766 integer(IKG) , allocatable :: arrayStripped(:)
767 type(leftRight_type) , intent(in), optional :: side
768 end function
769#endif
770
771#if IK4_ENABLED
772 module function getStrippedCusComLR_D1_D0_IK4(array, pattern, iseq, side) result(arrayStripped)
773#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
774 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_IK4
775#endif
776 use pm_kind, only: IKG => IK4
777 procedure(logical(LK)) :: iseq
778 integer(IKG) , intent(in), contiguous :: array(:)
779 integer(IKG) , intent(in) :: pattern
780 integer(IKG) , allocatable :: arrayStripped(:)
781 type(leftRight_type) , intent(in), optional :: side
782 end function
783#endif
784
785#if IK3_ENABLED
786 module function getStrippedCusComLR_D1_D0_IK3(array, pattern, iseq, side) result(arrayStripped)
787#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
788 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_IK3
789#endif
790 use pm_kind, only: IKG => IK3
791 procedure(logical(LK)) :: iseq
792 integer(IKG) , intent(in), contiguous :: array(:)
793 integer(IKG) , intent(in) :: pattern
794 integer(IKG) , allocatable :: arrayStripped(:)
795 type(leftRight_type) , intent(in), optional :: side
796 end function
797#endif
798
799#if IK2_ENABLED
800 module function getStrippedCusComLR_D1_D0_IK2(array, pattern, iseq, side) result(arrayStripped)
801#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
802 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_IK2
803#endif
804 use pm_kind, only: IKG => IK2
805 procedure(logical(LK)) :: iseq
806 integer(IKG) , intent(in), contiguous :: array(:)
807 integer(IKG) , intent(in) :: pattern
808 integer(IKG) , allocatable :: arrayStripped(:)
809 type(leftRight_type) , intent(in), optional :: side
810 end function
811#endif
812
813#if IK1_ENABLED
814 module function getStrippedCusComLR_D1_D0_IK1(array, pattern, iseq, side) result(arrayStripped)
815#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
816 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_IK1
817#endif
818 use pm_kind, only: IKG => IK1
819 procedure(logical(LK)) :: iseq
820 integer(IKG) , intent(in), contiguous :: array(:)
821 integer(IKG) , intent(in) :: pattern
822 integer(IKG) , allocatable :: arrayStripped(:)
823 type(leftRight_type) , intent(in), optional :: side
824 end function
825#endif
826
827 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
828
829#if LK5_ENABLED
830 module function getStrippedCusComLR_D1_D0_LK5(array, pattern, iseq, side) result(arrayStripped)
831#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
832 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_LK5
833#endif
834 use pm_kind, only: LKG => LK5
835 procedure(logical(LK)) :: iseq
836 logical(LKG) , intent(in), contiguous :: array(:)
837 logical(LKG) , intent(in) :: pattern
838 logical(LKG) , allocatable :: arrayStripped(:)
839 type(leftRight_type) , intent(in), optional :: side
840 end function
841#endif
842
843#if LK4_ENABLED
844 module function getStrippedCusComLR_D1_D0_LK4(array, pattern, iseq, side) result(arrayStripped)
845#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
846 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_LK4
847#endif
848 use pm_kind, only: LKG => LK4
849 procedure(logical(LK)) :: iseq
850 logical(LKG) , intent(in), contiguous :: array(:)
851 logical(LKG) , intent(in) :: pattern
852 logical(LKG) , allocatable :: arrayStripped(:)
853 type(leftRight_type) , intent(in), optional :: side
854 end function
855#endif
856
857#if LK3_ENABLED
858 module function getStrippedCusComLR_D1_D0_LK3(array, pattern, iseq, side) result(arrayStripped)
859#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
860 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_LK3
861#endif
862 use pm_kind, only: LKG => LK3
863 procedure(logical(LK)) :: iseq
864 logical(LKG) , intent(in), contiguous :: array(:)
865 logical(LKG) , intent(in) :: pattern
866 logical(LKG) , allocatable :: arrayStripped(:)
867 type(leftRight_type) , intent(in), optional :: side
868 end function
869#endif
870
871#if LK2_ENABLED
872 module function getStrippedCusComLR_D1_D0_LK2(array, pattern, iseq, side) result(arrayStripped)
873#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
874 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_LK2
875#endif
876 use pm_kind, only: LKG => LK2
877 procedure(logical(LK)) :: iseq
878 logical(LKG) , intent(in), contiguous :: array(:)
879 logical(LKG) , intent(in) :: pattern
880 logical(LKG) , allocatable :: arrayStripped(:)
881 type(leftRight_type) , intent(in), optional :: side
882 end function
883#endif
884
885#if LK1_ENABLED
886 module function getStrippedCusComLR_D1_D0_LK1(array, pattern, iseq, side) result(arrayStripped)
887#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
888 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_LK1
889#endif
890 use pm_kind, only: LKG => LK1
891 procedure(logical(LK)) :: iseq
892 logical(LKG) , intent(in), contiguous :: array(:)
893 logical(LKG) , intent(in) :: pattern
894 logical(LKG) , allocatable :: arrayStripped(:)
895 type(leftRight_type) , intent(in), optional :: side
896 end function
897#endif
898
899 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
900
901#if CK5_ENABLED
902 module function getStrippedCusComLR_D1_D0_CK5(array, pattern, iseq, side) result(arrayStripped)
903#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
904 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_CK5
905#endif
906 use pm_kind, only: CKG => CK5
907 procedure(logical(LK)) :: iseq
908 complex(CKG) , intent(in), contiguous :: array(:)
909 complex(CKG) , intent(in) :: pattern
910 complex(CKG) , allocatable :: arrayStripped(:)
911 type(leftRight_type) , intent(in), optional :: side
912 end function
913#endif
914
915#if CK4_ENABLED
916 module function getStrippedCusComLR_D1_D0_CK4(array, pattern, iseq, side) result(arrayStripped)
917#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
918 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_CK4
919#endif
920 use pm_kind, only: CKG => CK4
921 procedure(logical(LK)) :: iseq
922 complex(CKG) , intent(in), contiguous :: array(:)
923 complex(CKG) , intent(in) :: pattern
924 complex(CKG) , allocatable :: arrayStripped(:)
925 type(leftRight_type) , intent(in), optional :: side
926 end function
927#endif
928
929#if CK3_ENABLED
930 module function getStrippedCusComLR_D1_D0_CK3(array, pattern, iseq, side) result(arrayStripped)
931#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
932 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_CK3
933#endif
934 use pm_kind, only: CKG => CK3
935 procedure(logical(LK)) :: iseq
936 complex(CKG) , intent(in), contiguous :: array(:)
937 complex(CKG) , intent(in) :: pattern
938 complex(CKG) , allocatable :: arrayStripped(:)
939 type(leftRight_type) , intent(in), optional :: side
940 end function
941#endif
942
943#if CK2_ENABLED
944 module function getStrippedCusComLR_D1_D0_CK2(array, pattern, iseq, side) result(arrayStripped)
945#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
946 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_CK2
947#endif
948 use pm_kind, only: CKG => CK2
949 procedure(logical(LK)) :: iseq
950 complex(CKG) , intent(in), contiguous :: array(:)
951 complex(CKG) , intent(in) :: pattern
952 complex(CKG) , allocatable :: arrayStripped(:)
953 type(leftRight_type) , intent(in), optional :: side
954 end function
955#endif
956
957#if CK1_ENABLED
958 module function getStrippedCusComLR_D1_D0_CK1(array, pattern, iseq, side) result(arrayStripped)
959#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
960 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_CK1
961#endif
962 use pm_kind, only: CKG => CK1
963 procedure(logical(LK)) :: iseq
964 complex(CKG) , intent(in), contiguous :: array(:)
965 complex(CKG) , intent(in) :: pattern
966 complex(CKG) , allocatable :: arrayStripped(:)
967 type(leftRight_type) , intent(in), optional :: side
968 end function
969#endif
970
971 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
972
973#if RK5_ENABLED
974 module function getStrippedCusComLR_D1_D0_RK5(array, pattern, iseq, side) result(arrayStripped)
975#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
976 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_RK5
977#endif
978 use pm_kind, only: RKG => RK5
979 real(RKG) , intent(in), contiguous :: array(:)
980 real(RKG) , intent(in) :: pattern
981 procedure(logical(LK)) :: iseq
982 real(RKG) , allocatable :: arrayStripped(:)
983 type(leftRight_type) , intent(in), optional :: side
984 end function
985#endif
986
987#if RK4_ENABLED
988 module function getStrippedCusComLR_D1_D0_RK4(array, pattern, iseq, side) result(arrayStripped)
989#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
990 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_RK4
991#endif
992 use pm_kind, only: RKG => RK4
993 real(RKG) , intent(in), contiguous :: array(:)
994 real(RKG) , intent(in) :: pattern
995 procedure(logical(LK)) :: iseq
996 real(RKG) , allocatable :: arrayStripped(:)
997 type(leftRight_type) , intent(in), optional :: side
998 end function
999#endif
1000
1001#if RK3_ENABLED
1002 module function getStrippedCusComLR_D1_D0_RK3(array, pattern, iseq, side) result(arrayStripped)
1003#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1004 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_RK3
1005#endif
1006 use pm_kind, only: RKG => RK3
1007 real(RKG) , intent(in), contiguous :: array(:)
1008 real(RKG) , intent(in) :: pattern
1009 procedure(logical(LK)) :: iseq
1010 real(RKG) , allocatable :: arrayStripped(:)
1011 type(leftRight_type) , intent(in), optional :: side
1012 end function
1013#endif
1014
1015#if RK2_ENABLED
1016 module function getStrippedCusComLR_D1_D0_RK2(array, pattern, iseq, side) result(arrayStripped)
1017#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1018 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_RK2
1019#endif
1020 use pm_kind, only: RKG => RK2
1021 real(RKG) , intent(in), contiguous :: array(:)
1022 real(RKG) , intent(in) :: pattern
1023 procedure(logical(LK)) :: iseq
1024 real(RKG) , allocatable :: arrayStripped(:)
1025 type(leftRight_type) , intent(in), optional :: side
1026 end function
1027#endif
1028
1029#if RK1_ENABLED
1030 module function getStrippedCusComLR_D1_D0_RK1(array, pattern, iseq, side) result(arrayStripped)
1031#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1032 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D0_RK1
1033#endif
1034 use pm_kind, only: RKG => RK1
1035 real(RKG) , intent(in), contiguous :: array(:)
1036 real(RKG) , intent(in) :: pattern
1037 procedure(logical(LK)) :: iseq
1038 real(RKG) , allocatable :: arrayStripped(:)
1039 type(leftRight_type) , intent(in), optional :: side
1040 end function
1041#endif
1042
1043 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1044
1045 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1046 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1047 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1048
1049 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1050
1051#if SK5_ENABLED
1052 PURE module function getStrippedDefComB_D1_D1_SK5(array, pattern, side) result(arrayStripped)
1053#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1054 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_SK5
1055#endif
1056 use pm_kind, only: SKG => SK5
1057 character(*,SKG) , intent(in), contiguous :: array(:)
1058 character(*,SKG) , intent(in), contiguous :: pattern(:)
1059 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
1060 type(leftRight_type) , intent(in), optional :: side
1061 end function
1062#endif
1063
1064#if SK4_ENABLED
1065 PURE module function getStrippedDefComB_D1_D1_SK4(array, pattern, side) result(arrayStripped)
1066#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1067 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_SK4
1068#endif
1069 use pm_kind, only: SKG => SK4
1070 character(*,SKG) , intent(in), contiguous :: array(:)
1071 character(*,SKG) , intent(in), contiguous :: pattern(:)
1072 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
1073 type(leftRight_type) , intent(in), optional :: side
1074 end function
1075#endif
1076
1077#if SK3_ENABLED
1078 PURE module function getStrippedDefComB_D1_D1_SK3(array, pattern, side) result(arrayStripped)
1079#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1080 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_SK3
1081#endif
1082 use pm_kind, only: SKG => SK3
1083 character(*,SKG) , intent(in), contiguous :: array(:)
1084 character(*,SKG) , intent(in), contiguous :: pattern(:)
1085 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
1086 type(leftRight_type) , intent(in), optional :: side
1087 end function
1088#endif
1089
1090#if SK2_ENABLED
1091 PURE module function getStrippedDefComB_D1_D1_SK2(array, pattern, side) result(arrayStripped)
1092#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1093 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_SK2
1094#endif
1095 use pm_kind, only: SKG => SK2
1096 character(*,SKG) , intent(in), contiguous :: array(:)
1097 character(*,SKG) , intent(in), contiguous :: pattern(:)
1098 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
1099 type(leftRight_type) , intent(in), optional :: side
1100 end function
1101#endif
1102
1103#if SK1_ENABLED
1104 PURE module function getStrippedDefComB_D1_D1_SK1(array, pattern, side) result(arrayStripped)
1105#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1106 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_SK1
1107#endif
1108 use pm_kind, only: SKG => SK1
1109 character(*,SKG) , intent(in), contiguous :: array(:)
1110 character(*,SKG) , intent(in), contiguous :: pattern(:)
1111 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
1112 type(leftRight_type) , intent(in), optional :: side
1113 end function
1114#endif
1115
1116 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1117
1118#if IK5_ENABLED
1119 PURE module function getStrippedDefComB_D1_D1_IK5(array, pattern, side) result(arrayStripped)
1120#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1121 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_IK5
1122#endif
1123 use pm_kind, only: IKG => IK5
1124 integer(IKG) , intent(in), contiguous :: array(:)
1125 integer(IKG) , intent(in), contiguous :: pattern(:)
1126 integer(IKG) , allocatable :: arrayStripped(:)
1127 type(leftRight_type) , intent(in), optional :: side
1128 end function
1129#endif
1130
1131#if IK4_ENABLED
1132 PURE module function getStrippedDefComB_D1_D1_IK4(array, pattern, side) result(arrayStripped)
1133#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1134 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_IK4
1135#endif
1136 use pm_kind, only: IKG => IK4
1137 integer(IKG) , intent(in), contiguous :: array(:)
1138 integer(IKG) , intent(in), contiguous :: pattern(:)
1139 integer(IKG) , allocatable :: arrayStripped(:)
1140 type(leftRight_type) , intent(in), optional :: side
1141 end function
1142#endif
1143
1144#if IK3_ENABLED
1145 PURE module function getStrippedDefComB_D1_D1_IK3(array, pattern, side) result(arrayStripped)
1146#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1147 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_IK3
1148#endif
1149 use pm_kind, only: IKG => IK3
1150 integer(IKG) , intent(in), contiguous :: array(:)
1151 integer(IKG) , intent(in), contiguous :: pattern(:)
1152 integer(IKG) , allocatable :: arrayStripped(:)
1153 type(leftRight_type) , intent(in), optional :: side
1154 end function
1155#endif
1156
1157#if IK2_ENABLED
1158 PURE module function getStrippedDefComB_D1_D1_IK2(array, pattern, side) result(arrayStripped)
1159#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1160 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_IK2
1161#endif
1162 use pm_kind, only: IKG => IK2
1163 integer(IKG) , intent(in), contiguous :: array(:)
1164 integer(IKG) , intent(in), contiguous :: pattern(:)
1165 integer(IKG) , allocatable :: arrayStripped(:)
1166 type(leftRight_type) , intent(in), optional :: side
1167 end function
1168#endif
1169
1170#if IK1_ENABLED
1171 PURE module function getStrippedDefComB_D1_D1_IK1(array, pattern, side) result(arrayStripped)
1172#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1173 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_IK1
1174#endif
1175 use pm_kind, only: IKG => IK1
1176 integer(IKG) , intent(in), contiguous :: array(:)
1177 integer(IKG) , intent(in), contiguous :: pattern(:)
1178 integer(IKG) , allocatable :: arrayStripped(:)
1179 type(leftRight_type) , intent(in), optional :: side
1180 end function
1181#endif
1182
1183 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1184
1185#if LK5_ENABLED
1186 PURE module function getStrippedDefComB_D1_D1_LK5(array, pattern, side) result(arrayStripped)
1187#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1188 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_LK5
1189#endif
1190 use pm_kind, only: LKG => LK5
1191 logical(LKG) , intent(in), contiguous :: array(:)
1192 logical(LKG) , intent(in), contiguous :: pattern(:)
1193 logical(LKG) , allocatable :: arrayStripped(:)
1194 type(leftRight_type) , intent(in), optional :: side
1195 end function
1196#endif
1197
1198#if LK4_ENABLED
1199 PURE module function getStrippedDefComB_D1_D1_LK4(array, pattern, side) result(arrayStripped)
1200#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1201 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_LK4
1202#endif
1203 use pm_kind, only: LKG => LK4
1204 logical(LKG) , intent(in), contiguous :: array(:)
1205 logical(LKG) , intent(in), contiguous :: pattern(:)
1206 logical(LKG) , allocatable :: arrayStripped(:)
1207 type(leftRight_type) , intent(in), optional :: side
1208 end function
1209#endif
1210
1211#if LK3_ENABLED
1212 PURE module function getStrippedDefComB_D1_D1_LK3(array, pattern, side) result(arrayStripped)
1213#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1214 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_LK3
1215#endif
1216 use pm_kind, only: LKG => LK3
1217 logical(LKG) , intent(in), contiguous :: array(:)
1218 logical(LKG) , intent(in), contiguous :: pattern(:)
1219 logical(LKG) , allocatable :: arrayStripped(:)
1220 type(leftRight_type) , intent(in), optional :: side
1221 end function
1222#endif
1223
1224#if LK2_ENABLED
1225 PURE module function getStrippedDefComB_D1_D1_LK2(array, pattern, side) result(arrayStripped)
1226#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1227 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_LK2
1228#endif
1229 use pm_kind, only: LKG => LK2
1230 logical(LKG) , intent(in), contiguous :: array(:)
1231 logical(LKG) , intent(in), contiguous :: pattern(:)
1232 logical(LKG) , allocatable :: arrayStripped(:)
1233 type(leftRight_type) , intent(in), optional :: side
1234 end function
1235#endif
1236
1237#if LK1_ENABLED
1238 PURE module function getStrippedDefComB_D1_D1_LK1(array, pattern, side) result(arrayStripped)
1239#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1240 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_LK1
1241#endif
1242 use pm_kind, only: LKG => LK1
1243 logical(LKG) , intent(in), contiguous :: array(:)
1244 logical(LKG) , intent(in), contiguous :: pattern(:)
1245 logical(LKG) , allocatable :: arrayStripped(:)
1246 type(leftRight_type) , intent(in), optional :: side
1247 end function
1248#endif
1249
1250 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1251
1252#if CK5_ENABLED
1253 PURE module function getStrippedDefComB_D1_D1_CK5(array, pattern, side) result(arrayStripped)
1254#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1255 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_CK5
1256#endif
1257 use pm_kind, only: CKG => CK5
1258 complex(CKG) , intent(in), contiguous :: array(:)
1259 complex(CKG) , intent(in), contiguous :: pattern(:)
1260 complex(CKG) , allocatable :: arrayStripped(:)
1261 type(leftRight_type) , intent(in), optional :: side
1262 end function
1263#endif
1264
1265#if CK4_ENABLED
1266 PURE module function getStrippedDefComB_D1_D1_CK4(array, pattern, side) result(arrayStripped)
1267#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1268 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_CK4
1269#endif
1270 use pm_kind, only: CKG => CK4
1271 complex(CKG) , intent(in), contiguous :: array(:)
1272 complex(CKG) , intent(in), contiguous :: pattern(:)
1273 complex(CKG) , allocatable :: arrayStripped(:)
1274 type(leftRight_type) , intent(in), optional :: side
1275 end function
1276#endif
1277
1278#if CK3_ENABLED
1279 PURE module function getStrippedDefComB_D1_D1_CK3(array, pattern, side) result(arrayStripped)
1280#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1281 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_CK3
1282#endif
1283 use pm_kind, only: CKG => CK3
1284 complex(CKG) , intent(in), contiguous :: array(:)
1285 complex(CKG) , intent(in), contiguous :: pattern(:)
1286 complex(CKG) , allocatable :: arrayStripped(:)
1287 type(leftRight_type) , intent(in), optional :: side
1288 end function
1289#endif
1290
1291#if CK2_ENABLED
1292 PURE module function getStrippedDefComB_D1_D1_CK2(array, pattern, side) result(arrayStripped)
1293#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1294 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_CK2
1295#endif
1296 use pm_kind, only: CKG => CK2
1297 complex(CKG) , intent(in), contiguous :: array(:)
1298 complex(CKG) , intent(in), contiguous :: pattern(:)
1299 complex(CKG) , allocatable :: arrayStripped(:)
1300 type(leftRight_type) , intent(in), optional :: side
1301 end function
1302#endif
1303
1304#if CK1_ENABLED
1305 PURE module function getStrippedDefComB_D1_D1_CK1(array, pattern, side) result(arrayStripped)
1306#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1307 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_CK1
1308#endif
1309 use pm_kind, only: CKG => CK1
1310 complex(CKG) , intent(in), contiguous :: array(:)
1311 complex(CKG) , intent(in), contiguous :: pattern(:)
1312 complex(CKG) , allocatable :: arrayStripped(:)
1313 type(leftRight_type) , intent(in), optional :: side
1314 end function
1315#endif
1316
1317 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1318
1319#if RK5_ENABLED
1320 PURE module function getStrippedDefComB_D1_D1_RK5(array, pattern, side) result(arrayStripped)
1321#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1322 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_RK5
1323#endif
1324 use pm_kind, only: RKG => RK5
1325 real(RKG) , intent(in), contiguous :: array(:)
1326 real(RKG) , intent(in), contiguous :: pattern(:)
1327 real(RKG) , allocatable :: arrayStripped(:)
1328 type(leftRight_type) , intent(in), optional :: side
1329 end function
1330#endif
1331
1332#if RK4_ENABLED
1333 PURE module function getStrippedDefComB_D1_D1_RK4(array, pattern, side) result(arrayStripped)
1334#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1335 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_RK4
1336#endif
1337 use pm_kind, only: RKG => RK4
1338 real(RKG) , intent(in), contiguous :: array(:)
1339 real(RKG) , intent(in), contiguous :: pattern(:)
1340 real(RKG) , allocatable :: arrayStripped(:)
1341 type(leftRight_type) , intent(in), optional :: side
1342 end function
1343#endif
1344
1345#if RK3_ENABLED
1346 PURE module function getStrippedDefComB_D1_D1_RK3(array, pattern, side) result(arrayStripped)
1347#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1348 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_RK3
1349#endif
1350 use pm_kind, only: RKG => RK3
1351 real(RKG) , intent(in), contiguous :: array(:)
1352 real(RKG) , intent(in), contiguous :: pattern(:)
1353 real(RKG) , allocatable :: arrayStripped(:)
1354 type(leftRight_type) , intent(in), optional :: side
1355 end function
1356#endif
1357
1358#if RK2_ENABLED
1359 PURE module function getStrippedDefComB_D1_D1_RK2(array, pattern, side) result(arrayStripped)
1360#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1361 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_RK2
1362#endif
1363 use pm_kind, only: RKG => RK2
1364 real(RKG) , intent(in), contiguous :: array(:)
1365 real(RKG) , intent(in), contiguous :: pattern(:)
1366 real(RKG) , allocatable :: arrayStripped(:)
1367 type(leftRight_type) , intent(in), optional :: side
1368 end function
1369#endif
1370
1371#if RK1_ENABLED
1372 PURE module function getStrippedDefComB_D1_D1_RK1(array, pattern, side) result(arrayStripped)
1373#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1374 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComB_D1_D1_RK1
1375#endif
1376 use pm_kind, only: RKG => RK1
1377 real(RKG) , intent(in), contiguous :: array(:)
1378 real(RKG) , intent(in), contiguous :: pattern(:)
1379 real(RKG) , allocatable :: arrayStripped(:)
1380 type(leftRight_type) , intent(in), optional :: side
1381 end function
1382#endif
1383
1384 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1385
1386 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1387 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1388 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1389
1390 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1391
1392#if SK5_ENABLED
1393 module function getStrippedCusComLR_D1_D1_SK5(array, pattern, iseq, side) result(arrayStripped)
1394#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1395 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_SK5
1396#endif
1397 use pm_kind, only: SKG => SK5
1398 procedure(logical(LK)) :: iseq
1399 character(*,SKG) , intent(in), contiguous :: array(:)
1400 character(*,SKG) , intent(in), contiguous :: pattern(:)
1401 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
1402 type(leftRight_type) , intent(in), optional :: side
1403 end function
1404#endif
1405
1406#if SK4_ENABLED
1407 module function getStrippedCusComLR_D1_D1_SK4(array, pattern, iseq, side) result(arrayStripped)
1408#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1409 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_SK4
1410#endif
1411 use pm_kind, only: SKG => SK4
1412 procedure(logical(LK)) :: iseq
1413 character(*,SKG) , intent(in), contiguous :: array(:)
1414 character(*,SKG) , intent(in), contiguous :: pattern(:)
1415 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
1416 type(leftRight_type) , intent(in), optional :: side
1417 end function
1418#endif
1419
1420#if SK3_ENABLED
1421 module function getStrippedCusComLR_D1_D1_SK3(array, pattern, iseq, side) result(arrayStripped)
1422#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1423 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_SK3
1424#endif
1425 use pm_kind, only: SKG => SK3
1426 procedure(logical(LK)) :: iseq
1427 character(*,SKG) , intent(in), contiguous :: array(:)
1428 character(*,SKG) , intent(in), contiguous :: pattern(:)
1429 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
1430 type(leftRight_type) , intent(in), optional :: side
1431 end function
1432#endif
1433
1434#if SK2_ENABLED
1435 module function getStrippedCusComLR_D1_D1_SK2(array, pattern, iseq, side) result(arrayStripped)
1436#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1437 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_SK2
1438#endif
1439 use pm_kind, only: SKG => SK2
1440 procedure(logical(LK)) :: iseq
1441 character(*,SKG) , intent(in), contiguous :: array(:)
1442 character(*,SKG) , intent(in), contiguous :: pattern(:)
1443 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
1444 type(leftRight_type) , intent(in), optional :: side
1445 end function
1446#endif
1447
1448#if SK1_ENABLED
1449 module function getStrippedCusComLR_D1_D1_SK1(array, pattern, iseq, side) result(arrayStripped)
1450#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1451 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_SK1
1452#endif
1453 use pm_kind, only: SKG => SK1
1454 procedure(logical(LK)) :: iseq
1455 character(*,SKG) , intent(in), contiguous :: array(:)
1456 character(*,SKG) , intent(in), contiguous :: pattern(:)
1457 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
1458 type(leftRight_type) , intent(in), optional :: side
1459 end function
1460#endif
1461
1462 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1463
1464#if IK5_ENABLED
1465 module function getStrippedCusComLR_D1_D1_IK5(array, pattern, iseq, side) result(arrayStripped)
1466#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1467 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_IK5
1468#endif
1469 use pm_kind, only: IKG => IK5
1470 procedure(logical(LK)) :: iseq
1471 integer(IKG) , intent(in), contiguous :: array(:)
1472 integer(IKG) , intent(in), contiguous :: pattern(:)
1473 integer(IKG) , allocatable :: arrayStripped(:)
1474 type(leftRight_type) , intent(in), optional :: side
1475 end function
1476#endif
1477
1478#if IK4_ENABLED
1479 module function getStrippedCusComLR_D1_D1_IK4(array, pattern, iseq, side) result(arrayStripped)
1480#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1481 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_IK4
1482#endif
1483 use pm_kind, only: IKG => IK4
1484 procedure(logical(LK)) :: iseq
1485 integer(IKG) , intent(in), contiguous :: array(:)
1486 integer(IKG) , intent(in), contiguous :: pattern(:)
1487 integer(IKG) , allocatable :: arrayStripped(:)
1488 type(leftRight_type) , intent(in), optional :: side
1489 end function
1490#endif
1491
1492#if IK3_ENABLED
1493 module function getStrippedCusComLR_D1_D1_IK3(array, pattern, iseq, side) result(arrayStripped)
1494#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1495 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_IK3
1496#endif
1497 use pm_kind, only: IKG => IK3
1498 procedure(logical(LK)) :: iseq
1499 integer(IKG) , intent(in), contiguous :: array(:)
1500 integer(IKG) , intent(in), contiguous :: pattern(:)
1501 integer(IKG) , allocatable :: arrayStripped(:)
1502 type(leftRight_type) , intent(in), optional :: side
1503 end function
1504#endif
1505
1506#if IK2_ENABLED
1507 module function getStrippedCusComLR_D1_D1_IK2(array, pattern, iseq, side) result(arrayStripped)
1508#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1509 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_IK2
1510#endif
1511 use pm_kind, only: IKG => IK2
1512 procedure(logical(LK)) :: iseq
1513 integer(IKG) , intent(in), contiguous :: array(:)
1514 integer(IKG) , intent(in), contiguous :: pattern(:)
1515 integer(IKG) , allocatable :: arrayStripped(:)
1516 type(leftRight_type) , intent(in), optional :: side
1517 end function
1518#endif
1519
1520#if IK1_ENABLED
1521 module function getStrippedCusComLR_D1_D1_IK1(array, pattern, iseq, side) result(arrayStripped)
1522#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1523 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_IK1
1524#endif
1525 use pm_kind, only: IKG => IK1
1526 procedure(logical(LK)) :: iseq
1527 integer(IKG) , intent(in), contiguous :: array(:)
1528 integer(IKG) , intent(in), contiguous :: pattern(:)
1529 integer(IKG) , allocatable :: arrayStripped(:)
1530 type(leftRight_type) , intent(in), optional :: side
1531 end function
1532#endif
1533
1534 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1535
1536#if LK5_ENABLED
1537 module function getStrippedCusComLR_D1_D1_LK5(array, pattern, iseq, side) result(arrayStripped)
1538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1539 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_LK5
1540#endif
1541 use pm_kind, only: LKG => LK5
1542 procedure(logical(LK)) :: iseq
1543 logical(LKG) , intent(in), contiguous :: array(:)
1544 logical(LKG) , intent(in), contiguous :: pattern(:)
1545 logical(LKG) , allocatable :: arrayStripped(:)
1546 type(leftRight_type) , intent(in), optional :: side
1547 end function
1548#endif
1549
1550#if LK4_ENABLED
1551 module function getStrippedCusComLR_D1_D1_LK4(array, pattern, iseq, side) result(arrayStripped)
1552#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1553 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_LK4
1554#endif
1555 use pm_kind, only: LKG => LK4
1556 procedure(logical(LK)) :: iseq
1557 logical(LKG) , intent(in), contiguous :: array(:)
1558 logical(LKG) , intent(in), contiguous :: pattern(:)
1559 logical(LKG) , allocatable :: arrayStripped(:)
1560 type(leftRight_type) , intent(in), optional :: side
1561 end function
1562#endif
1563
1564#if LK3_ENABLED
1565 module function getStrippedCusComLR_D1_D1_LK3(array, pattern, iseq, side) result(arrayStripped)
1566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1567 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_LK3
1568#endif
1569 use pm_kind, only: LKG => LK3
1570 procedure(logical(LK)) :: iseq
1571 logical(LKG) , intent(in), contiguous :: array(:)
1572 logical(LKG) , intent(in), contiguous :: pattern(:)
1573 logical(LKG) , allocatable :: arrayStripped(:)
1574 type(leftRight_type) , intent(in), optional :: side
1575 end function
1576#endif
1577
1578#if LK2_ENABLED
1579 module function getStrippedCusComLR_D1_D1_LK2(array, pattern, iseq, side) result(arrayStripped)
1580#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1581 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_LK2
1582#endif
1583 use pm_kind, only: LKG => LK2
1584 procedure(logical(LK)) :: iseq
1585 logical(LKG) , intent(in), contiguous :: array(:)
1586 logical(LKG) , intent(in), contiguous :: pattern(:)
1587 logical(LKG) , allocatable :: arrayStripped(:)
1588 type(leftRight_type) , intent(in), optional :: side
1589 end function
1590#endif
1591
1592#if LK1_ENABLED
1593 module function getStrippedCusComLR_D1_D1_LK1(array, pattern, iseq, side) result(arrayStripped)
1594#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1595 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_LK1
1596#endif
1597 use pm_kind, only: LKG => LK1
1598 procedure(logical(LK)) :: iseq
1599 logical(LKG) , intent(in), contiguous :: array(:)
1600 logical(LKG) , intent(in), contiguous :: pattern(:)
1601 logical(LKG) , allocatable :: arrayStripped(:)
1602 type(leftRight_type) , intent(in), optional :: side
1603 end function
1604#endif
1605
1606 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1607
1608#if CK5_ENABLED
1609 module function getStrippedCusComLR_D1_D1_CK5(array, pattern, iseq, side) result(arrayStripped)
1610#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1611 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_CK5
1612#endif
1613 use pm_kind, only: CKG => CK5
1614 procedure(logical(LK)) :: iseq
1615 complex(CKG) , intent(in), contiguous :: array(:)
1616 complex(CKG) , intent(in), contiguous :: pattern(:)
1617 complex(CKG) , allocatable :: arrayStripped(:)
1618 type(leftRight_type) , intent(in), optional :: side
1619 end function
1620#endif
1621
1622#if CK4_ENABLED
1623 module function getStrippedCusComLR_D1_D1_CK4(array, pattern, iseq, side) result(arrayStripped)
1624#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1625 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_CK4
1626#endif
1627 use pm_kind, only: CKG => CK4
1628 procedure(logical(LK)) :: iseq
1629 complex(CKG) , intent(in), contiguous :: array(:)
1630 complex(CKG) , intent(in), contiguous :: pattern(:)
1631 complex(CKG) , allocatable :: arrayStripped(:)
1632 type(leftRight_type) , intent(in), optional :: side
1633 end function
1634#endif
1635
1636#if CK3_ENABLED
1637 module function getStrippedCusComLR_D1_D1_CK3(array, pattern, iseq, side) result(arrayStripped)
1638#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1639 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_CK3
1640#endif
1641 use pm_kind, only: CKG => CK3
1642 procedure(logical(LK)) :: iseq
1643 complex(CKG) , intent(in), contiguous :: array(:)
1644 complex(CKG) , intent(in), contiguous :: pattern(:)
1645 complex(CKG) , allocatable :: arrayStripped(:)
1646 type(leftRight_type) , intent(in), optional :: side
1647 end function
1648#endif
1649
1650#if CK2_ENABLED
1651 module function getStrippedCusComLR_D1_D1_CK2(array, pattern, iseq, side) result(arrayStripped)
1652#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1653 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_CK2
1654#endif
1655 use pm_kind, only: CKG => CK2
1656 procedure(logical(LK)) :: iseq
1657 complex(CKG) , intent(in), contiguous :: array(:)
1658 complex(CKG) , intent(in), contiguous :: pattern(:)
1659 complex(CKG) , allocatable :: arrayStripped(:)
1660 type(leftRight_type) , intent(in), optional :: side
1661 end function
1662#endif
1663
1664#if CK1_ENABLED
1665 module function getStrippedCusComLR_D1_D1_CK1(array, pattern, iseq, side) result(arrayStripped)
1666#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1667 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_CK1
1668#endif
1669 use pm_kind, only: CKG => CK1
1670 procedure(logical(LK)) :: iseq
1671 complex(CKG) , intent(in), contiguous :: array(:)
1672 complex(CKG) , intent(in), contiguous :: pattern(:)
1673 complex(CKG) , allocatable :: arrayStripped(:)
1674 type(leftRight_type) , intent(in), optional :: side
1675 end function
1676#endif
1677
1678 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1679
1680#if RK5_ENABLED
1681 module function getStrippedCusComLR_D1_D1_RK5(array, pattern, iseq, side) result(arrayStripped)
1682#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1683 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_RK5
1684#endif
1685 use pm_kind, only: RKG => RK5
1686 procedure(logical(LK)) :: iseq
1687 real(RKG) , intent(in), contiguous :: array(:)
1688 real(RKG) , intent(in), contiguous :: pattern(:)
1689 real(RKG) , allocatable :: arrayStripped(:)
1690 type(leftRight_type) , intent(in), optional :: side
1691 end function
1692#endif
1693
1694#if RK4_ENABLED
1695 module function getStrippedCusComLR_D1_D1_RK4(array, pattern, iseq, side) result(arrayStripped)
1696#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1697 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_RK4
1698#endif
1699 use pm_kind, only: RKG => RK4
1700 procedure(logical(LK)) :: iseq
1701 real(RKG) , intent(in), contiguous :: array(:)
1702 real(RKG) , intent(in), contiguous :: pattern(:)
1703 real(RKG) , allocatable :: arrayStripped(:)
1704 type(leftRight_type) , intent(in), optional :: side
1705 end function
1706#endif
1707
1708#if RK3_ENABLED
1709 module function getStrippedCusComLR_D1_D1_RK3(array, pattern, iseq, side) result(arrayStripped)
1710#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1711 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_RK3
1712#endif
1713 use pm_kind, only: RKG => RK3
1714 procedure(logical(LK)) :: iseq
1715 real(RKG) , intent(in), contiguous :: array(:)
1716 real(RKG) , intent(in), contiguous :: pattern(:)
1717 real(RKG) , allocatable :: arrayStripped(:)
1718 type(leftRight_type) , intent(in), optional :: side
1719 end function
1720#endif
1721
1722#if RK2_ENABLED
1723 module function getStrippedCusComLR_D1_D1_RK2(array, pattern, iseq, side) result(arrayStripped)
1724#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1725 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_RK2
1726#endif
1727 use pm_kind, only: RKG => RK2
1728 procedure(logical(LK)) :: iseq
1729 real(RKG) , intent(in), contiguous :: array(:)
1730 real(RKG) , intent(in), contiguous :: pattern(:)
1731 real(RKG) , allocatable :: arrayStripped(:)
1732 type(leftRight_type) , intent(in), optional :: side
1733 end function
1734#endif
1735
1736#if RK1_ENABLED
1737 module function getStrippedCusComLR_D1_D1_RK1(array, pattern, iseq, side) result(arrayStripped)
1738#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1739 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComLR_D1_D1_RK1
1740#endif
1741 use pm_kind, only: RKG => RK1
1742 procedure(logical(LK)) :: iseq
1743 real(RKG) , intent(in), contiguous :: array(:)
1744 real(RKG) , intent(in), contiguous :: pattern(:)
1745 real(RKG) , allocatable :: arrayStripped(:)
1746 type(leftRight_type) , intent(in), optional :: side
1747 end function
1748#endif
1749
1750 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1751
1752 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1753 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1754 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1755
1756 end interface
1757
1758 ! side: left
1759
1760 interface getStripped
1761
1762 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1763 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1764 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1765
1766 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1767
1768#if SK5_ENABLED
1769 PURE module function getStrippedDefComSL_D0_D0_SK5(array, pattern, side) result(arrayStripped)
1770#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1771 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D0_D0_SK5
1772#endif
1773 use pm_kind, only: SKG => SK5
1774 character(*,SKG) , intent(in) :: array
1775 character(*,SKG) , intent(in) :: pattern
1776 character(:,SKG) , allocatable :: arrayStripped
1777 type(left_type) , intent(in) :: side
1778 end function
1779#endif
1780
1781#if SK4_ENABLED
1782 PURE module function getStrippedDefComSL_D0_D0_SK4(array, pattern, side) result(arrayStripped)
1783#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1784 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D0_D0_SK4
1785#endif
1786 use pm_kind, only: SKG => SK4
1787 character(*,SKG) , intent(in) :: array
1788 character(*,SKG) , intent(in) :: pattern
1789 character(:,SKG) , allocatable :: arrayStripped
1790 type(left_type) , intent(in) :: side
1791 end function
1792#endif
1793
1794#if SK3_ENABLED
1795 PURE module function getStrippedDefComSL_D0_D0_SK3(array, pattern, side) result(arrayStripped)
1796#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1797 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D0_D0_SK3
1798#endif
1799 use pm_kind, only: SKG => SK3
1800 character(*,SKG) , intent(in) :: array
1801 character(*,SKG) , intent(in) :: pattern
1802 character(:,SKG) , allocatable :: arrayStripped
1803 type(left_type) , intent(in) :: side
1804 end function
1805#endif
1806
1807#if SK2_ENABLED
1808 PURE module function getStrippedDefComSL_D0_D0_SK2(array, pattern, side) result(arrayStripped)
1809#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1810 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D0_D0_SK2
1811#endif
1812 use pm_kind, only: SKG => SK2
1813 character(*,SKG) , intent(in) :: array
1814 character(*,SKG) , intent(in) :: pattern
1815 character(:,SKG) , allocatable :: arrayStripped
1816 type(left_type) , intent(in) :: side
1817 end function
1818#endif
1819
1820#if SK1_ENABLED
1821 PURE module function getStrippedDefComSL_D0_D0_SK1(array, pattern, side) result(arrayStripped)
1822#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1823 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D0_D0_SK1
1824#endif
1825 use pm_kind, only: SKG => SK1
1826 character(*,SKG) , intent(in) :: array
1827 character(*,SKG) , intent(in) :: pattern
1828 character(:,SKG) , allocatable :: arrayStripped
1829 type(left_type) , intent(in) :: side
1830 end function
1831#endif
1832
1833 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1834
1835#if SK5_ENABLED
1836 PURE module function getStrippedDefComSL_D1_D0_SK5(array, pattern, side) result(arrayStripped)
1837#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1838 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_SK5
1839#endif
1840 use pm_kind, only: SKG => SK5
1841 character(*,SKG) , intent(in) :: pattern
1842 character(*,SKG) , intent(in), contiguous :: array(:)
1843 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
1844 type(left_type) , intent(in) :: side
1845 end function
1846#endif
1847
1848#if SK4_ENABLED
1849 PURE module function getStrippedDefComSL_D1_D0_SK4(array, pattern, side) result(arrayStripped)
1850#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1851 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_SK4
1852#endif
1853 use pm_kind, only: SKG => SK4
1854 character(*,SKG) , intent(in) :: pattern
1855 character(*,SKG) , intent(in), contiguous :: array(:)
1856 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
1857 type(left_type) , intent(in) :: side
1858 end function
1859#endif
1860
1861#if SK3_ENABLED
1862 PURE module function getStrippedDefComSL_D1_D0_SK3(array, pattern, side) result(arrayStripped)
1863#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1864 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_SK3
1865#endif
1866 use pm_kind, only: SKG => SK3
1867 character(*,SKG) , intent(in) :: pattern
1868 character(*,SKG) , intent(in), contiguous :: array(:)
1869 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
1870 type(left_type) , intent(in) :: side
1871 end function
1872#endif
1873
1874#if SK2_ENABLED
1875 PURE module function getStrippedDefComSL_D1_D0_SK2(array, pattern, side) result(arrayStripped)
1876#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1877 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_SK2
1878#endif
1879 use pm_kind, only: SKG => SK2
1880 character(*,SKG) , intent(in) :: pattern
1881 character(*,SKG) , intent(in), contiguous :: array(:)
1882 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
1883 type(left_type) , intent(in) :: side
1884 end function
1885#endif
1886
1887#if SK1_ENABLED
1888 PURE module function getStrippedDefComSL_D1_D0_SK1(array, pattern, side) result(arrayStripped)
1889#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1890 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_SK1
1891#endif
1892 use pm_kind, only: SKG => SK1
1893 character(*,SKG) , intent(in) :: pattern
1894 character(*,SKG) , intent(in), contiguous :: array(:)
1895 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
1896 type(left_type) , intent(in) :: side
1897 end function
1898#endif
1899
1900 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1901
1902#if IK5_ENABLED
1903 PURE module function getStrippedDefComSL_D1_D0_IK5(array, pattern, side) result(arrayStripped)
1904#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1905 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_IK5
1906#endif
1907 use pm_kind, only: IKG => IK5
1908 integer(IKG) , intent(in), contiguous :: array(:)
1909 integer(IKG) , intent(in) :: pattern
1910 integer(IKG) , allocatable :: arrayStripped(:)
1911 type(left_type) , intent(in) :: side
1912 end function
1913#endif
1914
1915#if IK4_ENABLED
1916 PURE module function getStrippedDefComSL_D1_D0_IK4(array, pattern, side) result(arrayStripped)
1917#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1918 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_IK4
1919#endif
1920 use pm_kind, only: IKG => IK4
1921 integer(IKG) , intent(in), contiguous :: array(:)
1922 integer(IKG) , intent(in) :: pattern
1923 integer(IKG) , allocatable :: arrayStripped(:)
1924 type(left_type) , intent(in) :: side
1925 end function
1926#endif
1927
1928#if IK3_ENABLED
1929 PURE module function getStrippedDefComSL_D1_D0_IK3(array, pattern, side) result(arrayStripped)
1930#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1931 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_IK3
1932#endif
1933 use pm_kind, only: IKG => IK3
1934 integer(IKG) , intent(in), contiguous :: array(:)
1935 integer(IKG) , intent(in) :: pattern
1936 integer(IKG) , allocatable :: arrayStripped(:)
1937 type(left_type) , intent(in) :: side
1938 end function
1939#endif
1940
1941#if IK2_ENABLED
1942 PURE module function getStrippedDefComSL_D1_D0_IK2(array, pattern, side) result(arrayStripped)
1943#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1944 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_IK2
1945#endif
1946 use pm_kind, only: IKG => IK2
1947 integer(IKG) , intent(in), contiguous :: array(:)
1948 integer(IKG) , intent(in) :: pattern
1949 integer(IKG) , allocatable :: arrayStripped(:)
1950 type(left_type) , intent(in) :: side
1951 end function
1952#endif
1953
1954#if IK1_ENABLED
1955 PURE module function getStrippedDefComSL_D1_D0_IK1(array, pattern, side) result(arrayStripped)
1956#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1957 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_IK1
1958#endif
1959 use pm_kind, only: IKG => IK1
1960 integer(IKG) , intent(in), contiguous :: array(:)
1961 integer(IKG) , intent(in) :: pattern
1962 integer(IKG) , allocatable :: arrayStripped(:)
1963 type(left_type) , intent(in) :: side
1964 end function
1965#endif
1966
1967 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1968
1969#if LK5_ENABLED
1970 PURE module function getStrippedDefComSL_D1_D0_LK5(array, pattern, side) result(arrayStripped)
1971#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1972 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_LK5
1973#endif
1974 use pm_kind, only: LKG => LK5
1975 logical(LKG) , intent(in), contiguous :: array(:)
1976 logical(LKG) , intent(in) :: pattern
1977 logical(LKG) , allocatable :: arrayStripped(:)
1978 type(left_type) , intent(in) :: side
1979 end function
1980#endif
1981
1982#if LK4_ENABLED
1983 PURE module function getStrippedDefComSL_D1_D0_LK4(array, pattern, side) result(arrayStripped)
1984#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1985 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_LK4
1986#endif
1987 use pm_kind, only: LKG => LK4
1988 logical(LKG) , intent(in), contiguous :: array(:)
1989 logical(LKG) , intent(in) :: pattern
1990 logical(LKG) , allocatable :: arrayStripped(:)
1991 type(left_type) , intent(in) :: side
1992 end function
1993#endif
1994
1995#if LK3_ENABLED
1996 PURE module function getStrippedDefComSL_D1_D0_LK3(array, pattern, side) result(arrayStripped)
1997#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1998 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_LK3
1999#endif
2000 use pm_kind, only: LKG => LK3
2001 logical(LKG) , intent(in), contiguous :: array(:)
2002 logical(LKG) , intent(in) :: pattern
2003 logical(LKG) , allocatable :: arrayStripped(:)
2004 type(left_type) , intent(in) :: side
2005 end function
2006#endif
2007
2008#if LK2_ENABLED
2009 PURE module function getStrippedDefComSL_D1_D0_LK2(array, pattern, side) result(arrayStripped)
2010#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2011 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_LK2
2012#endif
2013 use pm_kind, only: LKG => LK2
2014 logical(LKG) , intent(in), contiguous :: array(:)
2015 logical(LKG) , intent(in) :: pattern
2016 logical(LKG) , allocatable :: arrayStripped(:)
2017 type(left_type) , intent(in) :: side
2018 end function
2019#endif
2020
2021#if LK1_ENABLED
2022 PURE module function getStrippedDefComSL_D1_D0_LK1(array, pattern, side) result(arrayStripped)
2023#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2024 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_LK1
2025#endif
2026 use pm_kind, only: LKG => LK1
2027 logical(LKG) , intent(in), contiguous :: array(:)
2028 logical(LKG) , intent(in) :: pattern
2029 logical(LKG) , allocatable :: arrayStripped(:)
2030 type(left_type) , intent(in) :: side
2031 end function
2032#endif
2033
2034 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2035
2036#if CK5_ENABLED
2037 PURE module function getStrippedDefComSL_D1_D0_CK5(array, pattern, side) result(arrayStripped)
2038#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2039 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_CK5
2040#endif
2041 use pm_kind, only: CKG => CK5
2042 complex(CKG) , intent(in), contiguous :: array(:)
2043 complex(CKG) , intent(in) :: pattern
2044 complex(CKG) , allocatable :: arrayStripped(:)
2045 type(left_type) , intent(in) :: side
2046 end function
2047#endif
2048
2049#if CK4_ENABLED
2050 PURE module function getStrippedDefComSL_D1_D0_CK4(array, pattern, side) result(arrayStripped)
2051#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2052 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_CK4
2053#endif
2054 use pm_kind, only: CKG => CK4
2055 complex(CKG) , intent(in), contiguous :: array(:)
2056 complex(CKG) , intent(in) :: pattern
2057 complex(CKG) , allocatable :: arrayStripped(:)
2058 type(left_type) , intent(in) :: side
2059 end function
2060#endif
2061
2062#if CK3_ENABLED
2063 PURE module function getStrippedDefComSL_D1_D0_CK3(array, pattern, side) result(arrayStripped)
2064#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2065 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_CK3
2066#endif
2067 use pm_kind, only: CKG => CK3
2068 complex(CKG) , intent(in), contiguous :: array(:)
2069 complex(CKG) , intent(in) :: pattern
2070 complex(CKG) , allocatable :: arrayStripped(:)
2071 type(left_type) , intent(in) :: side
2072 end function
2073#endif
2074
2075#if CK2_ENABLED
2076 PURE module function getStrippedDefComSL_D1_D0_CK2(array, pattern, side) result(arrayStripped)
2077#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2078 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_CK2
2079#endif
2080 use pm_kind, only: CKG => CK2
2081 complex(CKG) , intent(in), contiguous :: array(:)
2082 complex(CKG) , intent(in) :: pattern
2083 complex(CKG) , allocatable :: arrayStripped(:)
2084 type(left_type) , intent(in) :: side
2085 end function
2086#endif
2087
2088#if CK1_ENABLED
2089 PURE module function getStrippedDefComSL_D1_D0_CK1(array, pattern, side) result(arrayStripped)
2090#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2091 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_CK1
2092#endif
2093 use pm_kind, only: CKG => CK1
2094 complex(CKG) , intent(in), contiguous :: array(:)
2095 complex(CKG) , intent(in) :: pattern
2096 complex(CKG) , allocatable :: arrayStripped(:)
2097 type(left_type) , intent(in) :: side
2098 end function
2099#endif
2100
2101 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2102
2103#if RK5_ENABLED
2104 PURE module function getStrippedDefComSL_D1_D0_RK5(array, pattern, side) result(arrayStripped)
2105#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2106 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_RK5
2107#endif
2108 use pm_kind, only: RKG => RK5
2109 real(RKG) , intent(in), contiguous :: array(:)
2110 real(RKG) , intent(in) :: pattern
2111 real(RKG) , allocatable :: arrayStripped(:)
2112 type(left_type) , intent(in) :: side
2113 end function
2114#endif
2115
2116#if RK4_ENABLED
2117 PURE module function getStrippedDefComSL_D1_D0_RK4(array, pattern, side) result(arrayStripped)
2118#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2119 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_RK4
2120#endif
2121 use pm_kind, only: RKG => RK4
2122 real(RKG) , intent(in), contiguous :: array(:)
2123 real(RKG) , intent(in) :: pattern
2124 real(RKG) , allocatable :: arrayStripped(:)
2125 type(left_type) , intent(in) :: side
2126 end function
2127#endif
2128
2129#if RK3_ENABLED
2130 PURE module function getStrippedDefComSL_D1_D0_RK3(array, pattern, side) result(arrayStripped)
2131#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2132 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_RK3
2133#endif
2134 use pm_kind, only: RKG => RK3
2135 real(RKG) , intent(in), contiguous :: array(:)
2136 real(RKG) , intent(in) :: pattern
2137 real(RKG) , allocatable :: arrayStripped(:)
2138 type(left_type) , intent(in) :: side
2139 end function
2140#endif
2141
2142#if RK2_ENABLED
2143 PURE module function getStrippedDefComSL_D1_D0_RK2(array, pattern, side) result(arrayStripped)
2144#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2145 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_RK2
2146#endif
2147 use pm_kind, only: RKG => RK2
2148 real(RKG) , intent(in), contiguous :: array(:)
2149 real(RKG) , intent(in) :: pattern
2150 real(RKG) , allocatable :: arrayStripped(:)
2151 type(left_type) , intent(in) :: side
2152 end function
2153#endif
2154
2155#if RK1_ENABLED
2156 PURE module function getStrippedDefComSL_D1_D0_RK1(array, pattern, side) result(arrayStripped)
2157#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2158 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D0_RK1
2159#endif
2160 use pm_kind, only: RKG => RK1
2161 real(RKG) , intent(in), contiguous :: array(:)
2162 real(RKG) , intent(in) :: pattern
2163 real(RKG) , allocatable :: arrayStripped(:)
2164 type(left_type) , intent(in) :: side
2165 end function
2166#endif
2167
2168 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2169
2170 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2171 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2172 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2173
2174 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2175
2176#if SK5_ENABLED
2177 module function getStrippedCusComSL_D0_D0_SK5(array, pattern, iseq, side) result(arrayStripped)
2178#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2179 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D0_D0_SK5
2180#endif
2181 use pm_kind, only: SKG => SK5
2182 procedure(logical(LK)) :: iseq
2183 character(*,SKG) , intent(in) :: array
2184 character(*,SKG) , intent(in) :: pattern
2185 character(:,SKG) , allocatable :: arrayStripped
2186 type(left_type) , intent(in) :: side
2187 end function
2188#endif
2189
2190#if SK4_ENABLED
2191 module function getStrippedCusComSL_D0_D0_SK4(array, pattern, iseq, side) result(arrayStripped)
2192#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2193 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D0_D0_SK4
2194#endif
2195 use pm_kind, only: SKG => SK4
2196 procedure(logical(LK)) :: iseq
2197 character(*,SKG) , intent(in) :: array
2198 character(*,SKG) , intent(in) :: pattern
2199 character(:,SKG) , allocatable :: arrayStripped
2200 type(left_type) , intent(in) :: side
2201 end function
2202#endif
2203
2204#if SK3_ENABLED
2205 module function getStrippedCusComSL_D0_D0_SK3(array, pattern, iseq, side) result(arrayStripped)
2206#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2207 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D0_D0_SK3
2208#endif
2209 use pm_kind, only: SKG => SK3
2210 procedure(logical(LK)) :: iseq
2211 character(*,SKG) , intent(in) :: array
2212 character(*,SKG) , intent(in) :: pattern
2213 character(:,SKG) , allocatable :: arrayStripped
2214 type(left_type) , intent(in) :: side
2215 end function
2216#endif
2217
2218#if SK2_ENABLED
2219 module function getStrippedCusComSL_D0_D0_SK2(array, pattern, iseq, side) result(arrayStripped)
2220#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2221 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D0_D0_SK2
2222#endif
2223 use pm_kind, only: SKG => SK2
2224 procedure(logical(LK)) :: iseq
2225 character(*,SKG) , intent(in) :: array
2226 character(*,SKG) , intent(in) :: pattern
2227 character(:,SKG) , allocatable :: arrayStripped
2228 type(left_type) , intent(in) :: side
2229 end function
2230#endif
2231
2232#if SK1_ENABLED
2233 module function getStrippedCusComSL_D0_D0_SK1(array, pattern, iseq, side) result(arrayStripped)
2234#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2235 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D0_D0_SK1
2236#endif
2237 use pm_kind, only: SKG => SK1
2238 procedure(logical(LK)) :: iseq
2239 character(*,SKG) , intent(in) :: array
2240 character(*,SKG) , intent(in) :: pattern
2241 character(:,SKG) , allocatable :: arrayStripped
2242 type(left_type) , intent(in) :: side
2243 end function
2244#endif
2245
2246 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2247
2248#if SK5_ENABLED
2249 module function getStrippedCusComSL_D1_D0_SK5(array, pattern, iseq, side) result(arrayStripped)
2250#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2251 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_SK5
2252#endif
2253 use pm_kind, only: SKG => SK5
2254 procedure(logical(LK)) :: iseq
2255 character(*,SKG) , intent(in) :: pattern
2256 character(*,SKG) , intent(in), contiguous :: array(:)
2257 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
2258 type(left_type) , intent(in) :: side
2259 end function
2260#endif
2261
2262#if SK4_ENABLED
2263 module function getStrippedCusComSL_D1_D0_SK4(array, pattern, iseq, side) result(arrayStripped)
2264#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2265 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_SK4
2266#endif
2267 use pm_kind, only: SKG => SK4
2268 procedure(logical(LK)) :: iseq
2269 character(*,SKG) , intent(in) :: pattern
2270 character(*,SKG) , intent(in), contiguous :: array(:)
2271 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
2272 type(left_type) , intent(in) :: side
2273 end function
2274#endif
2275
2276#if SK3_ENABLED
2277 module function getStrippedCusComSL_D1_D0_SK3(array, pattern, iseq, side) result(arrayStripped)
2278#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2279 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_SK3
2280#endif
2281 use pm_kind, only: SKG => SK3
2282 procedure(logical(LK)) :: iseq
2283 character(*,SKG) , intent(in) :: pattern
2284 character(*,SKG) , intent(in), contiguous :: array(:)
2285 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
2286 type(left_type) , intent(in) :: side
2287 end function
2288#endif
2289
2290#if SK2_ENABLED
2291 module function getStrippedCusComSL_D1_D0_SK2(array, pattern, iseq, side) result(arrayStripped)
2292#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2293 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_SK2
2294#endif
2295 use pm_kind, only: SKG => SK2
2296 procedure(logical(LK)) :: iseq
2297 character(*,SKG) , intent(in) :: pattern
2298 character(*,SKG) , intent(in), contiguous :: array(:)
2299 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
2300 type(left_type) , intent(in) :: side
2301 end function
2302#endif
2303
2304#if SK1_ENABLED
2305 module function getStrippedCusComSL_D1_D0_SK1(array, pattern, iseq, side) result(arrayStripped)
2306#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2307 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_SK1
2308#endif
2309 use pm_kind, only: SKG => SK1
2310 procedure(logical(LK)) :: iseq
2311 character(*,SKG) , intent(in) :: pattern
2312 character(*,SKG) , intent(in), contiguous :: array(:)
2313 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
2314 type(left_type) , intent(in) :: side
2315 end function
2316#endif
2317
2318 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2319
2320#if IK5_ENABLED
2321 module function getStrippedCusComSL_D1_D0_IK5(array, pattern, iseq, side) result(arrayStripped)
2322#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2323 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_IK5
2324#endif
2325 use pm_kind, only: IKG => IK5
2326 procedure(logical(LK)) :: iseq
2327 integer(IKG) , intent(in), contiguous :: array(:)
2328 integer(IKG) , intent(in) :: pattern
2329 integer(IKG) , allocatable :: arrayStripped(:)
2330 type(left_type) , intent(in) :: side
2331 end function
2332#endif
2333
2334#if IK4_ENABLED
2335 module function getStrippedCusComSL_D1_D0_IK4(array, pattern, iseq, side) result(arrayStripped)
2336#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2337 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_IK4
2338#endif
2339 use pm_kind, only: IKG => IK4
2340 procedure(logical(LK)) :: iseq
2341 integer(IKG) , intent(in), contiguous :: array(:)
2342 integer(IKG) , intent(in) :: pattern
2343 integer(IKG) , allocatable :: arrayStripped(:)
2344 type(left_type) , intent(in) :: side
2345 end function
2346#endif
2347
2348#if IK3_ENABLED
2349 module function getStrippedCusComSL_D1_D0_IK3(array, pattern, iseq, side) result(arrayStripped)
2350#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2351 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_IK3
2352#endif
2353 use pm_kind, only: IKG => IK3
2354 procedure(logical(LK)) :: iseq
2355 integer(IKG) , intent(in), contiguous :: array(:)
2356 integer(IKG) , intent(in) :: pattern
2357 integer(IKG) , allocatable :: arrayStripped(:)
2358 type(left_type) , intent(in) :: side
2359 end function
2360#endif
2361
2362#if IK2_ENABLED
2363 module function getStrippedCusComSL_D1_D0_IK2(array, pattern, iseq, side) result(arrayStripped)
2364#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2365 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_IK2
2366#endif
2367 use pm_kind, only: IKG => IK2
2368 procedure(logical(LK)) :: iseq
2369 integer(IKG) , intent(in), contiguous :: array(:)
2370 integer(IKG) , intent(in) :: pattern
2371 integer(IKG) , allocatable :: arrayStripped(:)
2372 type(left_type) , intent(in) :: side
2373 end function
2374#endif
2375
2376#if IK1_ENABLED
2377 module function getStrippedCusComSL_D1_D0_IK1(array, pattern, iseq, side) result(arrayStripped)
2378#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2379 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_IK1
2380#endif
2381 use pm_kind, only: IKG => IK1
2382 procedure(logical(LK)) :: iseq
2383 integer(IKG) , intent(in), contiguous :: array(:)
2384 integer(IKG) , intent(in) :: pattern
2385 integer(IKG) , allocatable :: arrayStripped(:)
2386 type(left_type) , intent(in) :: side
2387 end function
2388#endif
2389
2390 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2391
2392#if LK5_ENABLED
2393 module function getStrippedCusComSL_D1_D0_LK5(array, pattern, iseq, side) result(arrayStripped)
2394#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2395 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_LK5
2396#endif
2397 use pm_kind, only: LKG => LK5
2398 procedure(logical(LK)) :: iseq
2399 logical(LKG) , intent(in), contiguous :: array(:)
2400 logical(LKG) , intent(in) :: pattern
2401 logical(LKG) , allocatable :: arrayStripped(:)
2402 type(left_type) , intent(in) :: side
2403 end function
2404#endif
2405
2406#if LK4_ENABLED
2407 module function getStrippedCusComSL_D1_D0_LK4(array, pattern, iseq, side) result(arrayStripped)
2408#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2409 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_LK4
2410#endif
2411 use pm_kind, only: LKG => LK4
2412 procedure(logical(LK)) :: iseq
2413 logical(LKG) , intent(in), contiguous :: array(:)
2414 logical(LKG) , intent(in) :: pattern
2415 logical(LKG) , allocatable :: arrayStripped(:)
2416 type(left_type) , intent(in) :: side
2417 end function
2418#endif
2419
2420#if LK3_ENABLED
2421 module function getStrippedCusComSL_D1_D0_LK3(array, pattern, iseq, side) result(arrayStripped)
2422#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2423 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_LK3
2424#endif
2425 use pm_kind, only: LKG => LK3
2426 procedure(logical(LK)) :: iseq
2427 logical(LKG) , intent(in), contiguous :: array(:)
2428 logical(LKG) , intent(in) :: pattern
2429 logical(LKG) , allocatable :: arrayStripped(:)
2430 type(left_type) , intent(in) :: side
2431 end function
2432#endif
2433
2434#if LK2_ENABLED
2435 module function getStrippedCusComSL_D1_D0_LK2(array, pattern, iseq, side) result(arrayStripped)
2436#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2437 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_LK2
2438#endif
2439 use pm_kind, only: LKG => LK2
2440 procedure(logical(LK)) :: iseq
2441 logical(LKG) , intent(in), contiguous :: array(:)
2442 logical(LKG) , intent(in) :: pattern
2443 logical(LKG) , allocatable :: arrayStripped(:)
2444 type(left_type) , intent(in) :: side
2445 end function
2446#endif
2447
2448#if LK1_ENABLED
2449 module function getStrippedCusComSL_D1_D0_LK1(array, pattern, iseq, side) result(arrayStripped)
2450#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2451 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_LK1
2452#endif
2453 use pm_kind, only: LKG => LK1
2454 procedure(logical(LK)) :: iseq
2455 logical(LKG) , intent(in), contiguous :: array(:)
2456 logical(LKG) , intent(in) :: pattern
2457 logical(LKG) , allocatable :: arrayStripped(:)
2458 type(left_type) , intent(in) :: side
2459 end function
2460#endif
2461
2462 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2463
2464#if CK5_ENABLED
2465 module function getStrippedCusComSL_D1_D0_CK5(array, pattern, iseq, side) result(arrayStripped)
2466#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2467 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_CK5
2468#endif
2469 use pm_kind, only: CKG => CK5
2470 procedure(logical(LK)) :: iseq
2471 complex(CKG) , intent(in), contiguous :: array(:)
2472 complex(CKG) , intent(in) :: pattern
2473 complex(CKG) , allocatable :: arrayStripped(:)
2474 type(left_type) , intent(in) :: side
2475 end function
2476#endif
2477
2478#if CK4_ENABLED
2479 module function getStrippedCusComSL_D1_D0_CK4(array, pattern, iseq, side) result(arrayStripped)
2480#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2481 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_CK4
2482#endif
2483 use pm_kind, only: CKG => CK4
2484 procedure(logical(LK)) :: iseq
2485 complex(CKG) , intent(in), contiguous :: array(:)
2486 complex(CKG) , intent(in) :: pattern
2487 complex(CKG) , allocatable :: arrayStripped(:)
2488 type(left_type) , intent(in) :: side
2489 end function
2490#endif
2491
2492#if CK3_ENABLED
2493 module function getStrippedCusComSL_D1_D0_CK3(array, pattern, iseq, side) result(arrayStripped)
2494#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2495 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_CK3
2496#endif
2497 use pm_kind, only: CKG => CK3
2498 procedure(logical(LK)) :: iseq
2499 complex(CKG) , intent(in), contiguous :: array(:)
2500 complex(CKG) , intent(in) :: pattern
2501 complex(CKG) , allocatable :: arrayStripped(:)
2502 type(left_type) , intent(in) :: side
2503 end function
2504#endif
2505
2506#if CK2_ENABLED
2507 module function getStrippedCusComSL_D1_D0_CK2(array, pattern, iseq, side) result(arrayStripped)
2508#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2509 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_CK2
2510#endif
2511 use pm_kind, only: CKG => CK2
2512 procedure(logical(LK)) :: iseq
2513 complex(CKG) , intent(in), contiguous :: array(:)
2514 complex(CKG) , intent(in) :: pattern
2515 complex(CKG) , allocatable :: arrayStripped(:)
2516 type(left_type) , intent(in) :: side
2517 end function
2518#endif
2519
2520#if CK1_ENABLED
2521 module function getStrippedCusComSL_D1_D0_CK1(array, pattern, iseq, side) result(arrayStripped)
2522#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2523 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_CK1
2524#endif
2525 use pm_kind, only: CKG => CK1
2526 procedure(logical(LK)) :: iseq
2527 complex(CKG) , intent(in), contiguous :: array(:)
2528 complex(CKG) , intent(in) :: pattern
2529 complex(CKG) , allocatable :: arrayStripped(:)
2530 type(left_type) , intent(in) :: side
2531 end function
2532#endif
2533
2534 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2535
2536#if RK5_ENABLED
2537 module function getStrippedCusComSL_D1_D0_RK5(array, pattern, iseq, side) result(arrayStripped)
2538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2539 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_RK5
2540#endif
2541 use pm_kind, only: RKG => RK5
2542 real(RKG) , intent(in), contiguous :: array(:)
2543 real(RKG) , intent(in) :: pattern
2544 procedure(logical(LK)) :: iseq
2545 real(RKG) , allocatable :: arrayStripped(:)
2546 type(left_type) , intent(in) :: side
2547 end function
2548#endif
2549
2550#if RK4_ENABLED
2551 module function getStrippedCusComSL_D1_D0_RK4(array, pattern, iseq, side) result(arrayStripped)
2552#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2553 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_RK4
2554#endif
2555 use pm_kind, only: RKG => RK4
2556 real(RKG) , intent(in), contiguous :: array(:)
2557 real(RKG) , intent(in) :: pattern
2558 procedure(logical(LK)) :: iseq
2559 real(RKG) , allocatable :: arrayStripped(:)
2560 type(left_type) , intent(in) :: side
2561 end function
2562#endif
2563
2564#if RK3_ENABLED
2565 module function getStrippedCusComSL_D1_D0_RK3(array, pattern, iseq, side) result(arrayStripped)
2566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2567 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_RK3
2568#endif
2569 use pm_kind, only: RKG => RK3
2570 real(RKG) , intent(in), contiguous :: array(:)
2571 real(RKG) , intent(in) :: pattern
2572 procedure(logical(LK)) :: iseq
2573 real(RKG) , allocatable :: arrayStripped(:)
2574 type(left_type) , intent(in) :: side
2575 end function
2576#endif
2577
2578#if RK2_ENABLED
2579 module function getStrippedCusComSL_D1_D0_RK2(array, pattern, iseq, side) result(arrayStripped)
2580#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2581 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_RK2
2582#endif
2583 use pm_kind, only: RKG => RK2
2584 real(RKG) , intent(in), contiguous :: array(:)
2585 real(RKG) , intent(in) :: pattern
2586 procedure(logical(LK)) :: iseq
2587 real(RKG) , allocatable :: arrayStripped(:)
2588 type(left_type) , intent(in) :: side
2589 end function
2590#endif
2591
2592#if RK1_ENABLED
2593 module function getStrippedCusComSL_D1_D0_RK1(array, pattern, iseq, side) result(arrayStripped)
2594#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2595 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D0_RK1
2596#endif
2597 use pm_kind, only: RKG => RK1
2598 real(RKG) , intent(in), contiguous :: array(:)
2599 real(RKG) , intent(in) :: pattern
2600 procedure(logical(LK)) :: iseq
2601 real(RKG) , allocatable :: arrayStripped(:)
2602 type(left_type) , intent(in) :: side
2603 end function
2604#endif
2605
2606 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2607
2608 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2609 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2610 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2611
2612 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2613
2614#if SK5_ENABLED
2615 PURE module function getStrippedDefComSL_D1_D1_SK5(array, pattern, side) result(arrayStripped)
2616#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2617 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_SK5
2618#endif
2619 use pm_kind, only: SKG => SK5
2620 character(*,SKG) , intent(in), contiguous :: array(:)
2621 character(*,SKG) , intent(in), contiguous :: pattern(:)
2622 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
2623 type(left_type) , intent(in) :: side
2624 end function
2625#endif
2626
2627#if SK4_ENABLED
2628 PURE module function getStrippedDefComSL_D1_D1_SK4(array, pattern, side) result(arrayStripped)
2629#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2630 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_SK4
2631#endif
2632 use pm_kind, only: SKG => SK4
2633 character(*,SKG) , intent(in), contiguous :: array(:)
2634 character(*,SKG) , intent(in), contiguous :: pattern(:)
2635 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
2636 type(left_type) , intent(in) :: side
2637 end function
2638#endif
2639
2640#if SK3_ENABLED
2641 PURE module function getStrippedDefComSL_D1_D1_SK3(array, pattern, side) result(arrayStripped)
2642#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2643 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_SK3
2644#endif
2645 use pm_kind, only: SKG => SK3
2646 character(*,SKG) , intent(in), contiguous :: array(:)
2647 character(*,SKG) , intent(in), contiguous :: pattern(:)
2648 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
2649 type(left_type) , intent(in) :: side
2650 end function
2651#endif
2652
2653#if SK2_ENABLED
2654 PURE module function getStrippedDefComSL_D1_D1_SK2(array, pattern, side) result(arrayStripped)
2655#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2656 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_SK2
2657#endif
2658 use pm_kind, only: SKG => SK2
2659 character(*,SKG) , intent(in), contiguous :: array(:)
2660 character(*,SKG) , intent(in), contiguous :: pattern(:)
2661 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
2662 type(left_type) , intent(in) :: side
2663 end function
2664#endif
2665
2666#if SK1_ENABLED
2667 PURE module function getStrippedDefComSL_D1_D1_SK1(array, pattern, side) result(arrayStripped)
2668#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2669 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_SK1
2670#endif
2671 use pm_kind, only: SKG => SK1
2672 character(*,SKG) , intent(in), contiguous :: array(:)
2673 character(*,SKG) , intent(in), contiguous :: pattern(:)
2674 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
2675 type(left_type) , intent(in) :: side
2676 end function
2677#endif
2678
2679 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2680
2681#if IK5_ENABLED
2682 PURE module function getStrippedDefComSL_D1_D1_IK5(array, pattern, side) result(arrayStripped)
2683#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2684 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_IK5
2685#endif
2686 use pm_kind, only: IKG => IK5
2687 integer(IKG) , intent(in), contiguous :: array(:)
2688 integer(IKG) , intent(in), contiguous :: pattern(:)
2689 integer(IKG) , allocatable :: arrayStripped(:)
2690 type(left_type) , intent(in) :: side
2691 end function
2692#endif
2693
2694#if IK4_ENABLED
2695 PURE module function getStrippedDefComSL_D1_D1_IK4(array, pattern, side) result(arrayStripped)
2696#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2697 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_IK4
2698#endif
2699 use pm_kind, only: IKG => IK4
2700 integer(IKG) , intent(in), contiguous :: array(:)
2701 integer(IKG) , intent(in), contiguous :: pattern(:)
2702 integer(IKG) , allocatable :: arrayStripped(:)
2703 type(left_type) , intent(in) :: side
2704 end function
2705#endif
2706
2707#if IK3_ENABLED
2708 PURE module function getStrippedDefComSL_D1_D1_IK3(array, pattern, side) result(arrayStripped)
2709#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2710 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_IK3
2711#endif
2712 use pm_kind, only: IKG => IK3
2713 integer(IKG) , intent(in), contiguous :: array(:)
2714 integer(IKG) , intent(in), contiguous :: pattern(:)
2715 integer(IKG) , allocatable :: arrayStripped(:)
2716 type(left_type) , intent(in) :: side
2717 end function
2718#endif
2719
2720#if IK2_ENABLED
2721 PURE module function getStrippedDefComSL_D1_D1_IK2(array, pattern, side) result(arrayStripped)
2722#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2723 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_IK2
2724#endif
2725 use pm_kind, only: IKG => IK2
2726 integer(IKG) , intent(in), contiguous :: array(:)
2727 integer(IKG) , intent(in), contiguous :: pattern(:)
2728 integer(IKG) , allocatable :: arrayStripped(:)
2729 type(left_type) , intent(in) :: side
2730 end function
2731#endif
2732
2733#if IK1_ENABLED
2734 PURE module function getStrippedDefComSL_D1_D1_IK1(array, pattern, side) result(arrayStripped)
2735#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2736 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_IK1
2737#endif
2738 use pm_kind, only: IKG => IK1
2739 integer(IKG) , intent(in), contiguous :: array(:)
2740 integer(IKG) , intent(in), contiguous :: pattern(:)
2741 integer(IKG) , allocatable :: arrayStripped(:)
2742 type(left_type) , intent(in) :: side
2743 end function
2744#endif
2745
2746 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2747
2748#if LK5_ENABLED
2749 PURE module function getStrippedDefComSL_D1_D1_LK5(array, pattern, side) result(arrayStripped)
2750#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2751 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_LK5
2752#endif
2753 use pm_kind, only: LKG => LK5
2754 logical(LKG) , intent(in), contiguous :: array(:)
2755 logical(LKG) , intent(in), contiguous :: pattern(:)
2756 logical(LKG) , allocatable :: arrayStripped(:)
2757 type(left_type) , intent(in) :: side
2758 end function
2759#endif
2760
2761#if LK4_ENABLED
2762 PURE module function getStrippedDefComSL_D1_D1_LK4(array, pattern, side) result(arrayStripped)
2763#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2764 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_LK4
2765#endif
2766 use pm_kind, only: LKG => LK4
2767 logical(LKG) , intent(in), contiguous :: array(:)
2768 logical(LKG) , intent(in), contiguous :: pattern(:)
2769 logical(LKG) , allocatable :: arrayStripped(:)
2770 type(left_type) , intent(in) :: side
2771 end function
2772#endif
2773
2774#if LK3_ENABLED
2775 PURE module function getStrippedDefComSL_D1_D1_LK3(array, pattern, side) result(arrayStripped)
2776#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2777 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_LK3
2778#endif
2779 use pm_kind, only: LKG => LK3
2780 logical(LKG) , intent(in), contiguous :: array(:)
2781 logical(LKG) , intent(in), contiguous :: pattern(:)
2782 logical(LKG) , allocatable :: arrayStripped(:)
2783 type(left_type) , intent(in) :: side
2784 end function
2785#endif
2786
2787#if LK2_ENABLED
2788 PURE module function getStrippedDefComSL_D1_D1_LK2(array, pattern, side) result(arrayStripped)
2789#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2790 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_LK2
2791#endif
2792 use pm_kind, only: LKG => LK2
2793 logical(LKG) , intent(in), contiguous :: array(:)
2794 logical(LKG) , intent(in), contiguous :: pattern(:)
2795 logical(LKG) , allocatable :: arrayStripped(:)
2796 type(left_type) , intent(in) :: side
2797 end function
2798#endif
2799
2800#if LK1_ENABLED
2801 PURE module function getStrippedDefComSL_D1_D1_LK1(array, pattern, side) result(arrayStripped)
2802#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2803 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_LK1
2804#endif
2805 use pm_kind, only: LKG => LK1
2806 logical(LKG) , intent(in), contiguous :: array(:)
2807 logical(LKG) , intent(in), contiguous :: pattern(:)
2808 logical(LKG) , allocatable :: arrayStripped(:)
2809 type(left_type) , intent(in) :: side
2810 end function
2811#endif
2812
2813 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2814
2815#if CK5_ENABLED
2816 PURE module function getStrippedDefComSL_D1_D1_CK5(array, pattern, side) result(arrayStripped)
2817#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2818 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_CK5
2819#endif
2820 use pm_kind, only: CKG => CK5
2821 complex(CKG) , intent(in), contiguous :: array(:)
2822 complex(CKG) , intent(in), contiguous :: pattern(:)
2823 complex(CKG) , allocatable :: arrayStripped(:)
2824 type(left_type) , intent(in) :: side
2825 end function
2826#endif
2827
2828#if CK4_ENABLED
2829 PURE module function getStrippedDefComSL_D1_D1_CK4(array, pattern, side) result(arrayStripped)
2830#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2831 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_CK4
2832#endif
2833 use pm_kind, only: CKG => CK4
2834 complex(CKG) , intent(in), contiguous :: array(:)
2835 complex(CKG) , intent(in), contiguous :: pattern(:)
2836 complex(CKG) , allocatable :: arrayStripped(:)
2837 type(left_type) , intent(in) :: side
2838 end function
2839#endif
2840
2841#if CK3_ENABLED
2842 PURE module function getStrippedDefComSL_D1_D1_CK3(array, pattern, side) result(arrayStripped)
2843#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2844 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_CK3
2845#endif
2846 use pm_kind, only: CKG => CK3
2847 complex(CKG) , intent(in), contiguous :: array(:)
2848 complex(CKG) , intent(in), contiguous :: pattern(:)
2849 complex(CKG) , allocatable :: arrayStripped(:)
2850 type(left_type) , intent(in) :: side
2851 end function
2852#endif
2853
2854#if CK2_ENABLED
2855 PURE module function getStrippedDefComSL_D1_D1_CK2(array, pattern, side) result(arrayStripped)
2856#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2857 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_CK2
2858#endif
2859 use pm_kind, only: CKG => CK2
2860 complex(CKG) , intent(in), contiguous :: array(:)
2861 complex(CKG) , intent(in), contiguous :: pattern(:)
2862 complex(CKG) , allocatable :: arrayStripped(:)
2863 type(left_type) , intent(in) :: side
2864 end function
2865#endif
2866
2867#if CK1_ENABLED
2868 PURE module function getStrippedDefComSL_D1_D1_CK1(array, pattern, side) result(arrayStripped)
2869#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2870 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_CK1
2871#endif
2872 use pm_kind, only: CKG => CK1
2873 complex(CKG) , intent(in), contiguous :: array(:)
2874 complex(CKG) , intent(in), contiguous :: pattern(:)
2875 complex(CKG) , allocatable :: arrayStripped(:)
2876 type(left_type) , intent(in) :: side
2877 end function
2878#endif
2879
2880 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2881
2882#if RK5_ENABLED
2883 PURE module function getStrippedDefComSL_D1_D1_RK5(array, pattern, side) result(arrayStripped)
2884#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2885 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_RK5
2886#endif
2887 use pm_kind, only: RKG => RK5
2888 real(RKG) , intent(in), contiguous :: array(:)
2889 real(RKG) , intent(in), contiguous :: pattern(:)
2890 real(RKG) , allocatable :: arrayStripped(:)
2891 type(left_type) , intent(in) :: side
2892 end function
2893#endif
2894
2895#if RK4_ENABLED
2896 PURE module function getStrippedDefComSL_D1_D1_RK4(array, pattern, side) result(arrayStripped)
2897#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2898 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_RK4
2899#endif
2900 use pm_kind, only: RKG => RK4
2901 real(RKG) , intent(in), contiguous :: array(:)
2902 real(RKG) , intent(in), contiguous :: pattern(:)
2903 real(RKG) , allocatable :: arrayStripped(:)
2904 type(left_type) , intent(in) :: side
2905 end function
2906#endif
2907
2908#if RK3_ENABLED
2909 PURE module function getStrippedDefComSL_D1_D1_RK3(array, pattern, side) result(arrayStripped)
2910#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2911 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_RK3
2912#endif
2913 use pm_kind, only: RKG => RK3
2914 real(RKG) , intent(in), contiguous :: array(:)
2915 real(RKG) , intent(in), contiguous :: pattern(:)
2916 real(RKG) , allocatable :: arrayStripped(:)
2917 type(left_type) , intent(in) :: side
2918 end function
2919#endif
2920
2921#if RK2_ENABLED
2922 PURE module function getStrippedDefComSL_D1_D1_RK2(array, pattern, side) result(arrayStripped)
2923#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2924 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_RK2
2925#endif
2926 use pm_kind, only: RKG => RK2
2927 real(RKG) , intent(in), contiguous :: array(:)
2928 real(RKG) , intent(in), contiguous :: pattern(:)
2929 real(RKG) , allocatable :: arrayStripped(:)
2930 type(left_type) , intent(in) :: side
2931 end function
2932#endif
2933
2934#if RK1_ENABLED
2935 PURE module function getStrippedDefComSL_D1_D1_RK1(array, pattern, side) result(arrayStripped)
2936#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2937 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSL_D1_D1_RK1
2938#endif
2939 use pm_kind, only: RKG => RK1
2940 real(RKG) , intent(in), contiguous :: array(:)
2941 real(RKG) , intent(in), contiguous :: pattern(:)
2942 real(RKG) , allocatable :: arrayStripped(:)
2943 type(left_type) , intent(in) :: side
2944 end function
2945#endif
2946
2947 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2948
2949 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2950 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2951 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2952
2953 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2954
2955#if SK5_ENABLED
2956 module function getStrippedCusComSL_D1_D1_SK5(array, pattern, iseq, side) result(arrayStripped)
2957#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2958 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_SK5
2959#endif
2960 use pm_kind, only: SKG => SK5
2961 procedure(logical(LK)) :: iseq
2962 character(*,SKG) , intent(in), contiguous :: array(:)
2963 character(*,SKG) , intent(in), contiguous :: pattern(:)
2964 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
2965 type(left_type) , intent(in) :: side
2966 end function
2967#endif
2968
2969#if SK4_ENABLED
2970 module function getStrippedCusComSL_D1_D1_SK4(array, pattern, iseq, side) result(arrayStripped)
2971#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2972 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_SK4
2973#endif
2974 use pm_kind, only: SKG => SK4
2975 procedure(logical(LK)) :: iseq
2976 character(*,SKG) , intent(in), contiguous :: array(:)
2977 character(*,SKG) , intent(in), contiguous :: pattern(:)
2978 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
2979 type(left_type) , intent(in) :: side
2980 end function
2981#endif
2982
2983#if SK3_ENABLED
2984 module function getStrippedCusComSL_D1_D1_SK3(array, pattern, iseq, side) result(arrayStripped)
2985#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2986 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_SK3
2987#endif
2988 use pm_kind, only: SKG => SK3
2989 procedure(logical(LK)) :: iseq
2990 character(*,SKG) , intent(in), contiguous :: array(:)
2991 character(*,SKG) , intent(in), contiguous :: pattern(:)
2992 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
2993 type(left_type) , intent(in) :: side
2994 end function
2995#endif
2996
2997#if SK2_ENABLED
2998 module function getStrippedCusComSL_D1_D1_SK2(array, pattern, iseq, side) result(arrayStripped)
2999#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3000 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_SK2
3001#endif
3002 use pm_kind, only: SKG => SK2
3003 procedure(logical(LK)) :: iseq
3004 character(*,SKG) , intent(in), contiguous :: array(:)
3005 character(*,SKG) , intent(in), contiguous :: pattern(:)
3006 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
3007 type(left_type) , intent(in) :: side
3008 end function
3009#endif
3010
3011#if SK1_ENABLED
3012 module function getStrippedCusComSL_D1_D1_SK1(array, pattern, iseq, side) result(arrayStripped)
3013#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3014 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_SK1
3015#endif
3016 use pm_kind, only: SKG => SK1
3017 procedure(logical(LK)) :: iseq
3018 character(*,SKG) , intent(in), contiguous :: array(:)
3019 character(*,SKG) , intent(in), contiguous :: pattern(:)
3020 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
3021 type(left_type) , intent(in) :: side
3022 end function
3023#endif
3024
3025 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3026
3027#if IK5_ENABLED
3028 module function getStrippedCusComSL_D1_D1_IK5(array, pattern, iseq, side) result(arrayStripped)
3029#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3030 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_IK5
3031#endif
3032 use pm_kind, only: IKG => IK5
3033 procedure(logical(LK)) :: iseq
3034 integer(IKG) , intent(in), contiguous :: array(:)
3035 integer(IKG) , intent(in), contiguous :: pattern(:)
3036 integer(IKG) , allocatable :: arrayStripped(:)
3037 type(left_type) , intent(in) :: side
3038 end function
3039#endif
3040
3041#if IK4_ENABLED
3042 module function getStrippedCusComSL_D1_D1_IK4(array, pattern, iseq, side) result(arrayStripped)
3043#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3044 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_IK4
3045#endif
3046 use pm_kind, only: IKG => IK4
3047 procedure(logical(LK)) :: iseq
3048 integer(IKG) , intent(in), contiguous :: array(:)
3049 integer(IKG) , intent(in), contiguous :: pattern(:)
3050 integer(IKG) , allocatable :: arrayStripped(:)
3051 type(left_type) , intent(in) :: side
3052 end function
3053#endif
3054
3055#if IK3_ENABLED
3056 module function getStrippedCusComSL_D1_D1_IK3(array, pattern, iseq, side) result(arrayStripped)
3057#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3058 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_IK3
3059#endif
3060 use pm_kind, only: IKG => IK3
3061 procedure(logical(LK)) :: iseq
3062 integer(IKG) , intent(in), contiguous :: array(:)
3063 integer(IKG) , intent(in), contiguous :: pattern(:)
3064 integer(IKG) , allocatable :: arrayStripped(:)
3065 type(left_type) , intent(in) :: side
3066 end function
3067#endif
3068
3069#if IK2_ENABLED
3070 module function getStrippedCusComSL_D1_D1_IK2(array, pattern, iseq, side) result(arrayStripped)
3071#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3072 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_IK2
3073#endif
3074 use pm_kind, only: IKG => IK2
3075 procedure(logical(LK)) :: iseq
3076 integer(IKG) , intent(in), contiguous :: array(:)
3077 integer(IKG) , intent(in), contiguous :: pattern(:)
3078 integer(IKG) , allocatable :: arrayStripped(:)
3079 type(left_type) , intent(in) :: side
3080 end function
3081#endif
3082
3083#if IK1_ENABLED
3084 module function getStrippedCusComSL_D1_D1_IK1(array, pattern, iseq, side) result(arrayStripped)
3085#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3086 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_IK1
3087#endif
3088 use pm_kind, only: IKG => IK1
3089 procedure(logical(LK)) :: iseq
3090 integer(IKG) , intent(in), contiguous :: array(:)
3091 integer(IKG) , intent(in), contiguous :: pattern(:)
3092 integer(IKG) , allocatable :: arrayStripped(:)
3093 type(left_type) , intent(in) :: side
3094 end function
3095#endif
3096
3097 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3098
3099#if LK5_ENABLED
3100 module function getStrippedCusComSL_D1_D1_LK5(array, pattern, iseq, side) result(arrayStripped)
3101#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3102 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_LK5
3103#endif
3104 use pm_kind, only: LKG => LK5
3105 procedure(logical(LK)) :: iseq
3106 logical(LKG) , intent(in), contiguous :: array(:)
3107 logical(LKG) , intent(in), contiguous :: pattern(:)
3108 logical(LKG) , allocatable :: arrayStripped(:)
3109 type(left_type) , intent(in) :: side
3110 end function
3111#endif
3112
3113#if LK4_ENABLED
3114 module function getStrippedCusComSL_D1_D1_LK4(array, pattern, iseq, side) result(arrayStripped)
3115#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3116 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_LK4
3117#endif
3118 use pm_kind, only: LKG => LK4
3119 procedure(logical(LK)) :: iseq
3120 logical(LKG) , intent(in), contiguous :: array(:)
3121 logical(LKG) , intent(in), contiguous :: pattern(:)
3122 logical(LKG) , allocatable :: arrayStripped(:)
3123 type(left_type) , intent(in) :: side
3124 end function
3125#endif
3126
3127#if LK3_ENABLED
3128 module function getStrippedCusComSL_D1_D1_LK3(array, pattern, iseq, side) result(arrayStripped)
3129#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3130 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_LK3
3131#endif
3132 use pm_kind, only: LKG => LK3
3133 procedure(logical(LK)) :: iseq
3134 logical(LKG) , intent(in), contiguous :: array(:)
3135 logical(LKG) , intent(in), contiguous :: pattern(:)
3136 logical(LKG) , allocatable :: arrayStripped(:)
3137 type(left_type) , intent(in) :: side
3138 end function
3139#endif
3140
3141#if LK2_ENABLED
3142 module function getStrippedCusComSL_D1_D1_LK2(array, pattern, iseq, side) result(arrayStripped)
3143#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3144 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_LK2
3145#endif
3146 use pm_kind, only: LKG => LK2
3147 procedure(logical(LK)) :: iseq
3148 logical(LKG) , intent(in), contiguous :: array(:)
3149 logical(LKG) , intent(in), contiguous :: pattern(:)
3150 logical(LKG) , allocatable :: arrayStripped(:)
3151 type(left_type) , intent(in) :: side
3152 end function
3153#endif
3154
3155#if LK1_ENABLED
3156 module function getStrippedCusComSL_D1_D1_LK1(array, pattern, iseq, side) result(arrayStripped)
3157#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3158 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_LK1
3159#endif
3160 use pm_kind, only: LKG => LK1
3161 procedure(logical(LK)) :: iseq
3162 logical(LKG) , intent(in), contiguous :: array(:)
3163 logical(LKG) , intent(in), contiguous :: pattern(:)
3164 logical(LKG) , allocatable :: arrayStripped(:)
3165 type(left_type) , intent(in) :: side
3166 end function
3167#endif
3168
3169 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3170
3171#if CK5_ENABLED
3172 module function getStrippedCusComSL_D1_D1_CK5(array, pattern, iseq, side) result(arrayStripped)
3173#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3174 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_CK5
3175#endif
3176 use pm_kind, only: CKG => CK5
3177 procedure(logical(LK)) :: iseq
3178 complex(CKG) , intent(in), contiguous :: array(:)
3179 complex(CKG) , intent(in), contiguous :: pattern(:)
3180 complex(CKG) , allocatable :: arrayStripped(:)
3181 type(left_type) , intent(in) :: side
3182 end function
3183#endif
3184
3185#if CK4_ENABLED
3186 module function getStrippedCusComSL_D1_D1_CK4(array, pattern, iseq, side) result(arrayStripped)
3187#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3188 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_CK4
3189#endif
3190 use pm_kind, only: CKG => CK4
3191 procedure(logical(LK)) :: iseq
3192 complex(CKG) , intent(in), contiguous :: array(:)
3193 complex(CKG) , intent(in), contiguous :: pattern(:)
3194 complex(CKG) , allocatable :: arrayStripped(:)
3195 type(left_type) , intent(in) :: side
3196 end function
3197#endif
3198
3199#if CK3_ENABLED
3200 module function getStrippedCusComSL_D1_D1_CK3(array, pattern, iseq, side) result(arrayStripped)
3201#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3202 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_CK3
3203#endif
3204 use pm_kind, only: CKG => CK3
3205 procedure(logical(LK)) :: iseq
3206 complex(CKG) , intent(in), contiguous :: array(:)
3207 complex(CKG) , intent(in), contiguous :: pattern(:)
3208 complex(CKG) , allocatable :: arrayStripped(:)
3209 type(left_type) , intent(in) :: side
3210 end function
3211#endif
3212
3213#if CK2_ENABLED
3214 module function getStrippedCusComSL_D1_D1_CK2(array, pattern, iseq, side) result(arrayStripped)
3215#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3216 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_CK2
3217#endif
3218 use pm_kind, only: CKG => CK2
3219 procedure(logical(LK)) :: iseq
3220 complex(CKG) , intent(in), contiguous :: array(:)
3221 complex(CKG) , intent(in), contiguous :: pattern(:)
3222 complex(CKG) , allocatable :: arrayStripped(:)
3223 type(left_type) , intent(in) :: side
3224 end function
3225#endif
3226
3227#if CK1_ENABLED
3228 module function getStrippedCusComSL_D1_D1_CK1(array, pattern, iseq, side) result(arrayStripped)
3229#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3230 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_CK1
3231#endif
3232 use pm_kind, only: CKG => CK1
3233 procedure(logical(LK)) :: iseq
3234 complex(CKG) , intent(in), contiguous :: array(:)
3235 complex(CKG) , intent(in), contiguous :: pattern(:)
3236 complex(CKG) , allocatable :: arrayStripped(:)
3237 type(left_type) , intent(in) :: side
3238 end function
3239#endif
3240
3241 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3242
3243#if RK5_ENABLED
3244 module function getStrippedCusComSL_D1_D1_RK5(array, pattern, iseq, side) result(arrayStripped)
3245#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3246 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_RK5
3247#endif
3248 use pm_kind, only: RKG => RK5
3249 procedure(logical(LK)) :: iseq
3250 real(RKG) , intent(in), contiguous :: array(:)
3251 real(RKG) , intent(in), contiguous :: pattern(:)
3252 real(RKG) , allocatable :: arrayStripped(:)
3253 type(left_type) , intent(in) :: side
3254 end function
3255#endif
3256
3257#if RK4_ENABLED
3258 module function getStrippedCusComSL_D1_D1_RK4(array, pattern, iseq, side) result(arrayStripped)
3259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3260 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_RK4
3261#endif
3262 use pm_kind, only: RKG => RK4
3263 procedure(logical(LK)) :: iseq
3264 real(RKG) , intent(in), contiguous :: array(:)
3265 real(RKG) , intent(in), contiguous :: pattern(:)
3266 real(RKG) , allocatable :: arrayStripped(:)
3267 type(left_type) , intent(in) :: side
3268 end function
3269#endif
3270
3271#if RK3_ENABLED
3272 module function getStrippedCusComSL_D1_D1_RK3(array, pattern, iseq, side) result(arrayStripped)
3273#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3274 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_RK3
3275#endif
3276 use pm_kind, only: RKG => RK3
3277 procedure(logical(LK)) :: iseq
3278 real(RKG) , intent(in), contiguous :: array(:)
3279 real(RKG) , intent(in), contiguous :: pattern(:)
3280 real(RKG) , allocatable :: arrayStripped(:)
3281 type(left_type) , intent(in) :: side
3282 end function
3283#endif
3284
3285#if RK2_ENABLED
3286 module function getStrippedCusComSL_D1_D1_RK2(array, pattern, iseq, side) result(arrayStripped)
3287#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3288 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_RK2
3289#endif
3290 use pm_kind, only: RKG => RK2
3291 procedure(logical(LK)) :: iseq
3292 real(RKG) , intent(in), contiguous :: array(:)
3293 real(RKG) , intent(in), contiguous :: pattern(:)
3294 real(RKG) , allocatable :: arrayStripped(:)
3295 type(left_type) , intent(in) :: side
3296 end function
3297#endif
3298
3299#if RK1_ENABLED
3300 module function getStrippedCusComSL_D1_D1_RK1(array, pattern, iseq, side) result(arrayStripped)
3301#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3302 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSL_D1_D1_RK1
3303#endif
3304 use pm_kind, only: RKG => RK1
3305 procedure(logical(LK)) :: iseq
3306 real(RKG) , intent(in), contiguous :: array(:)
3307 real(RKG) , intent(in), contiguous :: pattern(:)
3308 real(RKG) , allocatable :: arrayStripped(:)
3309 type(left_type) , intent(in) :: side
3310 end function
3311#endif
3312
3313 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3314
3315 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3316 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3317 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3318
3319 end interface
3320
3321 ! side: right
3322
3323 interface getStripped
3324
3325 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3326 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3327 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3328
3329 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3330
3331#if SK5_ENABLED
3332 PURE module function getStrippedDefComSR_D0_D0_SK5(array, pattern, side) result(arrayStripped)
3333#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3334 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D0_D0_SK5
3335#endif
3336 use pm_kind, only: SKG => SK5
3337 character(*,SKG) , intent(in) :: array
3338 character(*,SKG) , intent(in) :: pattern
3339 character(:,SKG) , allocatable :: arrayStripped
3340 type(right_type) , intent(in) :: side
3341 end function
3342#endif
3343
3344#if SK4_ENABLED
3345 PURE module function getStrippedDefComSR_D0_D0_SK4(array, pattern, side) result(arrayStripped)
3346#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3347 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D0_D0_SK4
3348#endif
3349 use pm_kind, only: SKG => SK4
3350 character(*,SKG) , intent(in) :: array
3351 character(*,SKG) , intent(in) :: pattern
3352 character(:,SKG) , allocatable :: arrayStripped
3353 type(right_type) , intent(in) :: side
3354 end function
3355#endif
3356
3357#if SK3_ENABLED
3358 PURE module function getStrippedDefComSR_D0_D0_SK3(array, pattern, side) result(arrayStripped)
3359#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3360 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D0_D0_SK3
3361#endif
3362 use pm_kind, only: SKG => SK3
3363 character(*,SKG) , intent(in) :: array
3364 character(*,SKG) , intent(in) :: pattern
3365 character(:,SKG) , allocatable :: arrayStripped
3366 type(right_type) , intent(in) :: side
3367 end function
3368#endif
3369
3370#if SK2_ENABLED
3371 PURE module function getStrippedDefComSR_D0_D0_SK2(array, pattern, side) result(arrayStripped)
3372#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3373 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D0_D0_SK2
3374#endif
3375 use pm_kind, only: SKG => SK2
3376 character(*,SKG) , intent(in) :: array
3377 character(*,SKG) , intent(in) :: pattern
3378 character(:,SKG) , allocatable :: arrayStripped
3379 type(right_type) , intent(in) :: side
3380 end function
3381#endif
3382
3383#if SK1_ENABLED
3384 PURE module function getStrippedDefComSR_D0_D0_SK1(array, pattern, side) result(arrayStripped)
3385#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3386 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D0_D0_SK1
3387#endif
3388 use pm_kind, only: SKG => SK1
3389 character(*,SKG) , intent(in) :: array
3390 character(*,SKG) , intent(in) :: pattern
3391 character(:,SKG) , allocatable :: arrayStripped
3392 type(right_type) , intent(in) :: side
3393 end function
3394#endif
3395
3396 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3397
3398#if SK5_ENABLED
3399 PURE module function getStrippedDefComSR_D1_D0_SK5(array, pattern, side) result(arrayStripped)
3400#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3401 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_SK5
3402#endif
3403 use pm_kind, only: SKG => SK5
3404 character(*,SKG) , intent(in) :: pattern
3405 character(*,SKG) , intent(in), contiguous :: array(:)
3406 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
3407 type(right_type) , intent(in) :: side
3408 end function
3409#endif
3410
3411#if SK4_ENABLED
3412 PURE module function getStrippedDefComSR_D1_D0_SK4(array, pattern, side) result(arrayStripped)
3413#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3414 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_SK4
3415#endif
3416 use pm_kind, only: SKG => SK4
3417 character(*,SKG) , intent(in) :: pattern
3418 character(*,SKG) , intent(in), contiguous :: array(:)
3419 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
3420 type(right_type) , intent(in) :: side
3421 end function
3422#endif
3423
3424#if SK3_ENABLED
3425 PURE module function getStrippedDefComSR_D1_D0_SK3(array, pattern, side) result(arrayStripped)
3426#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3427 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_SK3
3428#endif
3429 use pm_kind, only: SKG => SK3
3430 character(*,SKG) , intent(in) :: pattern
3431 character(*,SKG) , intent(in), contiguous :: array(:)
3432 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
3433 type(right_type) , intent(in) :: side
3434 end function
3435#endif
3436
3437#if SK2_ENABLED
3438 PURE module function getStrippedDefComSR_D1_D0_SK2(array, pattern, side) result(arrayStripped)
3439#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3440 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_SK2
3441#endif
3442 use pm_kind, only: SKG => SK2
3443 character(*,SKG) , intent(in) :: pattern
3444 character(*,SKG) , intent(in), contiguous :: array(:)
3445 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
3446 type(right_type) , intent(in) :: side
3447 end function
3448#endif
3449
3450#if SK1_ENABLED
3451 PURE module function getStrippedDefComSR_D1_D0_SK1(array, pattern, side) result(arrayStripped)
3452#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3453 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_SK1
3454#endif
3455 use pm_kind, only: SKG => SK1
3456 character(*,SKG) , intent(in) :: pattern
3457 character(*,SKG) , intent(in), contiguous :: array(:)
3458 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
3459 type(right_type) , intent(in) :: side
3460 end function
3461#endif
3462
3463 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3464
3465#if IK5_ENABLED
3466 PURE module function getStrippedDefComSR_D1_D0_IK5(array, pattern, side) result(arrayStripped)
3467#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3468 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_IK5
3469#endif
3470 use pm_kind, only: IKG => IK5
3471 integer(IKG) , intent(in), contiguous :: array(:)
3472 integer(IKG) , intent(in) :: pattern
3473 integer(IKG) , allocatable :: arrayStripped(:)
3474 type(right_type) , intent(in) :: side
3475 end function
3476#endif
3477
3478#if IK4_ENABLED
3479 PURE module function getStrippedDefComSR_D1_D0_IK4(array, pattern, side) result(arrayStripped)
3480#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3481 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_IK4
3482#endif
3483 use pm_kind, only: IKG => IK4
3484 integer(IKG) , intent(in), contiguous :: array(:)
3485 integer(IKG) , intent(in) :: pattern
3486 integer(IKG) , allocatable :: arrayStripped(:)
3487 type(right_type) , intent(in) :: side
3488 end function
3489#endif
3490
3491#if IK3_ENABLED
3492 PURE module function getStrippedDefComSR_D1_D0_IK3(array, pattern, side) result(arrayStripped)
3493#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3494 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_IK3
3495#endif
3496 use pm_kind, only: IKG => IK3
3497 integer(IKG) , intent(in), contiguous :: array(:)
3498 integer(IKG) , intent(in) :: pattern
3499 integer(IKG) , allocatable :: arrayStripped(:)
3500 type(right_type) , intent(in) :: side
3501 end function
3502#endif
3503
3504#if IK2_ENABLED
3505 PURE module function getStrippedDefComSR_D1_D0_IK2(array, pattern, side) result(arrayStripped)
3506#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3507 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_IK2
3508#endif
3509 use pm_kind, only: IKG => IK2
3510 integer(IKG) , intent(in), contiguous :: array(:)
3511 integer(IKG) , intent(in) :: pattern
3512 integer(IKG) , allocatable :: arrayStripped(:)
3513 type(right_type) , intent(in) :: side
3514 end function
3515#endif
3516
3517#if IK1_ENABLED
3518 PURE module function getStrippedDefComSR_D1_D0_IK1(array, pattern, side) result(arrayStripped)
3519#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3520 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_IK1
3521#endif
3522 use pm_kind, only: IKG => IK1
3523 integer(IKG) , intent(in), contiguous :: array(:)
3524 integer(IKG) , intent(in) :: pattern
3525 integer(IKG) , allocatable :: arrayStripped(:)
3526 type(right_type) , intent(in) :: side
3527 end function
3528#endif
3529
3530 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3531
3532#if LK5_ENABLED
3533 PURE module function getStrippedDefComSR_D1_D0_LK5(array, pattern, side) result(arrayStripped)
3534#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3535 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_LK5
3536#endif
3537 use pm_kind, only: LKG => LK5
3538 logical(LKG) , intent(in), contiguous :: array(:)
3539 logical(LKG) , intent(in) :: pattern
3540 logical(LKG) , allocatable :: arrayStripped(:)
3541 type(right_type) , intent(in) :: side
3542 end function
3543#endif
3544
3545#if LK4_ENABLED
3546 PURE module function getStrippedDefComSR_D1_D0_LK4(array, pattern, side) result(arrayStripped)
3547#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3548 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_LK4
3549#endif
3550 use pm_kind, only: LKG => LK4
3551 logical(LKG) , intent(in), contiguous :: array(:)
3552 logical(LKG) , intent(in) :: pattern
3553 logical(LKG) , allocatable :: arrayStripped(:)
3554 type(right_type) , intent(in) :: side
3555 end function
3556#endif
3557
3558#if LK3_ENABLED
3559 PURE module function getStrippedDefComSR_D1_D0_LK3(array, pattern, side) result(arrayStripped)
3560#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3561 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_LK3
3562#endif
3563 use pm_kind, only: LKG => LK3
3564 logical(LKG) , intent(in), contiguous :: array(:)
3565 logical(LKG) , intent(in) :: pattern
3566 logical(LKG) , allocatable :: arrayStripped(:)
3567 type(right_type) , intent(in) :: side
3568 end function
3569#endif
3570
3571#if LK2_ENABLED
3572 PURE module function getStrippedDefComSR_D1_D0_LK2(array, pattern, side) result(arrayStripped)
3573#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3574 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_LK2
3575#endif
3576 use pm_kind, only: LKG => LK2
3577 logical(LKG) , intent(in), contiguous :: array(:)
3578 logical(LKG) , intent(in) :: pattern
3579 logical(LKG) , allocatable :: arrayStripped(:)
3580 type(right_type) , intent(in) :: side
3581 end function
3582#endif
3583
3584#if LK1_ENABLED
3585 PURE module function getStrippedDefComSR_D1_D0_LK1(array, pattern, side) result(arrayStripped)
3586#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3587 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_LK1
3588#endif
3589 use pm_kind, only: LKG => LK1
3590 logical(LKG) , intent(in), contiguous :: array(:)
3591 logical(LKG) , intent(in) :: pattern
3592 logical(LKG) , allocatable :: arrayStripped(:)
3593 type(right_type) , intent(in) :: side
3594 end function
3595#endif
3596
3597 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3598
3599#if CK5_ENABLED
3600 PURE module function getStrippedDefComSR_D1_D0_CK5(array, pattern, side) result(arrayStripped)
3601#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3602 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_CK5
3603#endif
3604 use pm_kind, only: CKG => CK5
3605 complex(CKG) , intent(in), contiguous :: array(:)
3606 complex(CKG) , intent(in) :: pattern
3607 complex(CKG) , allocatable :: arrayStripped(:)
3608 type(right_type) , intent(in) :: side
3609 end function
3610#endif
3611
3612#if CK4_ENABLED
3613 PURE module function getStrippedDefComSR_D1_D0_CK4(array, pattern, side) result(arrayStripped)
3614#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3615 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_CK4
3616#endif
3617 use pm_kind, only: CKG => CK4
3618 complex(CKG) , intent(in), contiguous :: array(:)
3619 complex(CKG) , intent(in) :: pattern
3620 complex(CKG) , allocatable :: arrayStripped(:)
3621 type(right_type) , intent(in) :: side
3622 end function
3623#endif
3624
3625#if CK3_ENABLED
3626 PURE module function getStrippedDefComSR_D1_D0_CK3(array, pattern, side) result(arrayStripped)
3627#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3628 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_CK3
3629#endif
3630 use pm_kind, only: CKG => CK3
3631 complex(CKG) , intent(in), contiguous :: array(:)
3632 complex(CKG) , intent(in) :: pattern
3633 complex(CKG) , allocatable :: arrayStripped(:)
3634 type(right_type) , intent(in) :: side
3635 end function
3636#endif
3637
3638#if CK2_ENABLED
3639 PURE module function getStrippedDefComSR_D1_D0_CK2(array, pattern, side) result(arrayStripped)
3640#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3641 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_CK2
3642#endif
3643 use pm_kind, only: CKG => CK2
3644 complex(CKG) , intent(in), contiguous :: array(:)
3645 complex(CKG) , intent(in) :: pattern
3646 complex(CKG) , allocatable :: arrayStripped(:)
3647 type(right_type) , intent(in) :: side
3648 end function
3649#endif
3650
3651#if CK1_ENABLED
3652 PURE module function getStrippedDefComSR_D1_D0_CK1(array, pattern, side) result(arrayStripped)
3653#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3654 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_CK1
3655#endif
3656 use pm_kind, only: CKG => CK1
3657 complex(CKG) , intent(in), contiguous :: array(:)
3658 complex(CKG) , intent(in) :: pattern
3659 complex(CKG) , allocatable :: arrayStripped(:)
3660 type(right_type) , intent(in) :: side
3661 end function
3662#endif
3663
3664 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3665
3666#if RK5_ENABLED
3667 PURE module function getStrippedDefComSR_D1_D0_RK5(array, pattern, side) result(arrayStripped)
3668#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3669 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_RK5
3670#endif
3671 use pm_kind, only: RKG => RK5
3672 real(RKG) , intent(in), contiguous :: array(:)
3673 real(RKG) , intent(in) :: pattern
3674 real(RKG) , allocatable :: arrayStripped(:)
3675 type(right_type) , intent(in) :: side
3676 end function
3677#endif
3678
3679#if RK4_ENABLED
3680 PURE module function getStrippedDefComSR_D1_D0_RK4(array, pattern, side) result(arrayStripped)
3681#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3682 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_RK4
3683#endif
3684 use pm_kind, only: RKG => RK4
3685 real(RKG) , intent(in), contiguous :: array(:)
3686 real(RKG) , intent(in) :: pattern
3687 real(RKG) , allocatable :: arrayStripped(:)
3688 type(right_type) , intent(in) :: side
3689 end function
3690#endif
3691
3692#if RK3_ENABLED
3693 PURE module function getStrippedDefComSR_D1_D0_RK3(array, pattern, side) result(arrayStripped)
3694#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3695 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_RK3
3696#endif
3697 use pm_kind, only: RKG => RK3
3698 real(RKG) , intent(in), contiguous :: array(:)
3699 real(RKG) , intent(in) :: pattern
3700 real(RKG) , allocatable :: arrayStripped(:)
3701 type(right_type) , intent(in) :: side
3702 end function
3703#endif
3704
3705#if RK2_ENABLED
3706 PURE module function getStrippedDefComSR_D1_D0_RK2(array, pattern, side) result(arrayStripped)
3707#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3708 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_RK2
3709#endif
3710 use pm_kind, only: RKG => RK2
3711 real(RKG) , intent(in), contiguous :: array(:)
3712 real(RKG) , intent(in) :: pattern
3713 real(RKG) , allocatable :: arrayStripped(:)
3714 type(right_type) , intent(in) :: side
3715 end function
3716#endif
3717
3718#if RK1_ENABLED
3719 PURE module function getStrippedDefComSR_D1_D0_RK1(array, pattern, side) result(arrayStripped)
3720#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3721 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D0_RK1
3722#endif
3723 use pm_kind, only: RKG => RK1
3724 real(RKG) , intent(in), contiguous :: array(:)
3725 real(RKG) , intent(in) :: pattern
3726 real(RKG) , allocatable :: arrayStripped(:)
3727 type(right_type) , intent(in) :: side
3728 end function
3729#endif
3730
3731 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3732
3733 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3734 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3735 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3736
3737 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3738
3739#if SK5_ENABLED
3740 module function getStrippedCusComSR_D0_D0_SK5(array, pattern, iseq, side) result(arrayStripped)
3741#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3742 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D0_D0_SK5
3743#endif
3744 use pm_kind, only: SKG => SK5
3745 procedure(logical(LK)) :: iseq
3746 character(*,SKG) , intent(in) :: array
3747 character(*,SKG) , intent(in) :: pattern
3748 character(:,SKG) , allocatable :: arrayStripped
3749 type(right_type) , intent(in) :: side
3750 end function
3751#endif
3752
3753#if SK4_ENABLED
3754 module function getStrippedCusComSR_D0_D0_SK4(array, pattern, iseq, side) result(arrayStripped)
3755#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3756 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D0_D0_SK4
3757#endif
3758 use pm_kind, only: SKG => SK4
3759 procedure(logical(LK)) :: iseq
3760 character(*,SKG) , intent(in) :: array
3761 character(*,SKG) , intent(in) :: pattern
3762 character(:,SKG) , allocatable :: arrayStripped
3763 type(right_type) , intent(in) :: side
3764 end function
3765#endif
3766
3767#if SK3_ENABLED
3768 module function getStrippedCusComSR_D0_D0_SK3(array, pattern, iseq, side) result(arrayStripped)
3769#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3770 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D0_D0_SK3
3771#endif
3772 use pm_kind, only: SKG => SK3
3773 procedure(logical(LK)) :: iseq
3774 character(*,SKG) , intent(in) :: array
3775 character(*,SKG) , intent(in) :: pattern
3776 character(:,SKG) , allocatable :: arrayStripped
3777 type(right_type) , intent(in) :: side
3778 end function
3779#endif
3780
3781#if SK2_ENABLED
3782 module function getStrippedCusComSR_D0_D0_SK2(array, pattern, iseq, side) result(arrayStripped)
3783#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3784 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D0_D0_SK2
3785#endif
3786 use pm_kind, only: SKG => SK2
3787 procedure(logical(LK)) :: iseq
3788 character(*,SKG) , intent(in) :: array
3789 character(*,SKG) , intent(in) :: pattern
3790 character(:,SKG) , allocatable :: arrayStripped
3791 type(right_type) , intent(in) :: side
3792 end function
3793#endif
3794
3795#if SK1_ENABLED
3796 module function getStrippedCusComSR_D0_D0_SK1(array, pattern, iseq, side) result(arrayStripped)
3797#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3798 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D0_D0_SK1
3799#endif
3800 use pm_kind, only: SKG => SK1
3801 procedure(logical(LK)) :: iseq
3802 character(*,SKG) , intent(in) :: array
3803 character(*,SKG) , intent(in) :: pattern
3804 character(:,SKG) , allocatable :: arrayStripped
3805 type(right_type) , intent(in) :: side
3806 end function
3807#endif
3808
3809 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3810
3811#if SK5_ENABLED
3812 module function getStrippedCusComSR_D1_D0_SK5(array, pattern, iseq, side) result(arrayStripped)
3813#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3814 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_SK5
3815#endif
3816 use pm_kind, only: SKG => SK5
3817 procedure(logical(LK)) :: iseq
3818 character(*,SKG) , intent(in) :: pattern
3819 character(*,SKG) , intent(in), contiguous :: array(:)
3820 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
3821 type(right_type) , intent(in) :: side
3822 end function
3823#endif
3824
3825#if SK4_ENABLED
3826 module function getStrippedCusComSR_D1_D0_SK4(array, pattern, iseq, side) result(arrayStripped)
3827#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3828 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_SK4
3829#endif
3830 use pm_kind, only: SKG => SK4
3831 procedure(logical(LK)) :: iseq
3832 character(*,SKG) , intent(in) :: pattern
3833 character(*,SKG) , intent(in), contiguous :: array(:)
3834 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
3835 type(right_type) , intent(in) :: side
3836 end function
3837#endif
3838
3839#if SK3_ENABLED
3840 module function getStrippedCusComSR_D1_D0_SK3(array, pattern, iseq, side) result(arrayStripped)
3841#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3842 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_SK3
3843#endif
3844 use pm_kind, only: SKG => SK3
3845 procedure(logical(LK)) :: iseq
3846 character(*,SKG) , intent(in) :: pattern
3847 character(*,SKG) , intent(in), contiguous :: array(:)
3848 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
3849 type(right_type) , intent(in) :: side
3850 end function
3851#endif
3852
3853#if SK2_ENABLED
3854 module function getStrippedCusComSR_D1_D0_SK2(array, pattern, iseq, side) result(arrayStripped)
3855#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3856 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_SK2
3857#endif
3858 use pm_kind, only: SKG => SK2
3859 procedure(logical(LK)) :: iseq
3860 character(*,SKG) , intent(in) :: pattern
3861 character(*,SKG) , intent(in), contiguous :: array(:)
3862 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
3863 type(right_type) , intent(in) :: side
3864 end function
3865#endif
3866
3867#if SK1_ENABLED
3868 module function getStrippedCusComSR_D1_D0_SK1(array, pattern, iseq, side) result(arrayStripped)
3869#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3870 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_SK1
3871#endif
3872 use pm_kind, only: SKG => SK1
3873 procedure(logical(LK)) :: iseq
3874 character(*,SKG) , intent(in) :: pattern
3875 character(*,SKG) , intent(in), contiguous :: array(:)
3876 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
3877 type(right_type) , intent(in) :: side
3878 end function
3879#endif
3880
3881 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3882
3883#if IK5_ENABLED
3884 module function getStrippedCusComSR_D1_D0_IK5(array, pattern, iseq, side) result(arrayStripped)
3885#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3886 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_IK5
3887#endif
3888 use pm_kind, only: IKG => IK5
3889 procedure(logical(LK)) :: iseq
3890 integer(IKG) , intent(in), contiguous :: array(:)
3891 integer(IKG) , intent(in) :: pattern
3892 integer(IKG) , allocatable :: arrayStripped(:)
3893 type(right_type) , intent(in) :: side
3894 end function
3895#endif
3896
3897#if IK4_ENABLED
3898 module function getStrippedCusComSR_D1_D0_IK4(array, pattern, iseq, side) result(arrayStripped)
3899#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3900 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_IK4
3901#endif
3902 use pm_kind, only: IKG => IK4
3903 procedure(logical(LK)) :: iseq
3904 integer(IKG) , intent(in), contiguous :: array(:)
3905 integer(IKG) , intent(in) :: pattern
3906 integer(IKG) , allocatable :: arrayStripped(:)
3907 type(right_type) , intent(in) :: side
3908 end function
3909#endif
3910
3911#if IK3_ENABLED
3912 module function getStrippedCusComSR_D1_D0_IK3(array, pattern, iseq, side) result(arrayStripped)
3913#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3914 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_IK3
3915#endif
3916 use pm_kind, only: IKG => IK3
3917 procedure(logical(LK)) :: iseq
3918 integer(IKG) , intent(in), contiguous :: array(:)
3919 integer(IKG) , intent(in) :: pattern
3920 integer(IKG) , allocatable :: arrayStripped(:)
3921 type(right_type) , intent(in) :: side
3922 end function
3923#endif
3924
3925#if IK2_ENABLED
3926 module function getStrippedCusComSR_D1_D0_IK2(array, pattern, iseq, side) result(arrayStripped)
3927#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3928 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_IK2
3929#endif
3930 use pm_kind, only: IKG => IK2
3931 procedure(logical(LK)) :: iseq
3932 integer(IKG) , intent(in), contiguous :: array(:)
3933 integer(IKG) , intent(in) :: pattern
3934 integer(IKG) , allocatable :: arrayStripped(:)
3935 type(right_type) , intent(in) :: side
3936 end function
3937#endif
3938
3939#if IK1_ENABLED
3940 module function getStrippedCusComSR_D1_D0_IK1(array, pattern, iseq, side) result(arrayStripped)
3941#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3942 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_IK1
3943#endif
3944 use pm_kind, only: IKG => IK1
3945 procedure(logical(LK)) :: iseq
3946 integer(IKG) , intent(in), contiguous :: array(:)
3947 integer(IKG) , intent(in) :: pattern
3948 integer(IKG) , allocatable :: arrayStripped(:)
3949 type(right_type) , intent(in) :: side
3950 end function
3951#endif
3952
3953 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3954
3955#if LK5_ENABLED
3956 module function getStrippedCusComSR_D1_D0_LK5(array, pattern, iseq, side) result(arrayStripped)
3957#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3958 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_LK5
3959#endif
3960 use pm_kind, only: LKG => LK5
3961 procedure(logical(LK)) :: iseq
3962 logical(LKG) , intent(in), contiguous :: array(:)
3963 logical(LKG) , intent(in) :: pattern
3964 logical(LKG) , allocatable :: arrayStripped(:)
3965 type(right_type) , intent(in) :: side
3966 end function
3967#endif
3968
3969#if LK4_ENABLED
3970 module function getStrippedCusComSR_D1_D0_LK4(array, pattern, iseq, side) result(arrayStripped)
3971#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3972 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_LK4
3973#endif
3974 use pm_kind, only: LKG => LK4
3975 procedure(logical(LK)) :: iseq
3976 logical(LKG) , intent(in), contiguous :: array(:)
3977 logical(LKG) , intent(in) :: pattern
3978 logical(LKG) , allocatable :: arrayStripped(:)
3979 type(right_type) , intent(in) :: side
3980 end function
3981#endif
3982
3983#if LK3_ENABLED
3984 module function getStrippedCusComSR_D1_D0_LK3(array, pattern, iseq, side) result(arrayStripped)
3985#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3986 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_LK3
3987#endif
3988 use pm_kind, only: LKG => LK3
3989 procedure(logical(LK)) :: iseq
3990 logical(LKG) , intent(in), contiguous :: array(:)
3991 logical(LKG) , intent(in) :: pattern
3992 logical(LKG) , allocatable :: arrayStripped(:)
3993 type(right_type) , intent(in) :: side
3994 end function
3995#endif
3996
3997#if LK2_ENABLED
3998 module function getStrippedCusComSR_D1_D0_LK2(array, pattern, iseq, side) result(arrayStripped)
3999#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4000 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_LK2
4001#endif
4002 use pm_kind, only: LKG => LK2
4003 procedure(logical(LK)) :: iseq
4004 logical(LKG) , intent(in), contiguous :: array(:)
4005 logical(LKG) , intent(in) :: pattern
4006 logical(LKG) , allocatable :: arrayStripped(:)
4007 type(right_type) , intent(in) :: side
4008 end function
4009#endif
4010
4011#if LK1_ENABLED
4012 module function getStrippedCusComSR_D1_D0_LK1(array, pattern, iseq, side) result(arrayStripped)
4013#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4014 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_LK1
4015#endif
4016 use pm_kind, only: LKG => LK1
4017 procedure(logical(LK)) :: iseq
4018 logical(LKG) , intent(in), contiguous :: array(:)
4019 logical(LKG) , intent(in) :: pattern
4020 logical(LKG) , allocatable :: arrayStripped(:)
4021 type(right_type) , intent(in) :: side
4022 end function
4023#endif
4024
4025 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4026
4027#if CK5_ENABLED
4028 module function getStrippedCusComSR_D1_D0_CK5(array, pattern, iseq, side) result(arrayStripped)
4029#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4030 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_CK5
4031#endif
4032 use pm_kind, only: CKG => CK5
4033 procedure(logical(LK)) :: iseq
4034 complex(CKG) , intent(in), contiguous :: array(:)
4035 complex(CKG) , intent(in) :: pattern
4036 complex(CKG) , allocatable :: arrayStripped(:)
4037 type(right_type) , intent(in) :: side
4038 end function
4039#endif
4040
4041#if CK4_ENABLED
4042 module function getStrippedCusComSR_D1_D0_CK4(array, pattern, iseq, side) result(arrayStripped)
4043#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4044 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_CK4
4045#endif
4046 use pm_kind, only: CKG => CK4
4047 procedure(logical(LK)) :: iseq
4048 complex(CKG) , intent(in), contiguous :: array(:)
4049 complex(CKG) , intent(in) :: pattern
4050 complex(CKG) , allocatable :: arrayStripped(:)
4051 type(right_type) , intent(in) :: side
4052 end function
4053#endif
4054
4055#if CK3_ENABLED
4056 module function getStrippedCusComSR_D1_D0_CK3(array, pattern, iseq, side) result(arrayStripped)
4057#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4058 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_CK3
4059#endif
4060 use pm_kind, only: CKG => CK3
4061 procedure(logical(LK)) :: iseq
4062 complex(CKG) , intent(in), contiguous :: array(:)
4063 complex(CKG) , intent(in) :: pattern
4064 complex(CKG) , allocatable :: arrayStripped(:)
4065 type(right_type) , intent(in) :: side
4066 end function
4067#endif
4068
4069#if CK2_ENABLED
4070 module function getStrippedCusComSR_D1_D0_CK2(array, pattern, iseq, side) result(arrayStripped)
4071#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4072 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_CK2
4073#endif
4074 use pm_kind, only: CKG => CK2
4075 procedure(logical(LK)) :: iseq
4076 complex(CKG) , intent(in), contiguous :: array(:)
4077 complex(CKG) , intent(in) :: pattern
4078 complex(CKG) , allocatable :: arrayStripped(:)
4079 type(right_type) , intent(in) :: side
4080 end function
4081#endif
4082
4083#if CK1_ENABLED
4084 module function getStrippedCusComSR_D1_D0_CK1(array, pattern, iseq, side) result(arrayStripped)
4085#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4086 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_CK1
4087#endif
4088 use pm_kind, only: CKG => CK1
4089 procedure(logical(LK)) :: iseq
4090 complex(CKG) , intent(in), contiguous :: array(:)
4091 complex(CKG) , intent(in) :: pattern
4092 complex(CKG) , allocatable :: arrayStripped(:)
4093 type(right_type) , intent(in) :: side
4094 end function
4095#endif
4096
4097 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4098
4099#if RK5_ENABLED
4100 module function getStrippedCusComSR_D1_D0_RK5(array, pattern, iseq, side) result(arrayStripped)
4101#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4102 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_RK5
4103#endif
4104 use pm_kind, only: RKG => RK5
4105 real(RKG) , intent(in), contiguous :: array(:)
4106 real(RKG) , intent(in) :: pattern
4107 procedure(logical(LK)) :: iseq
4108 real(RKG) , allocatable :: arrayStripped(:)
4109 type(right_type) , intent(in) :: side
4110 end function
4111#endif
4112
4113#if RK4_ENABLED
4114 module function getStrippedCusComSR_D1_D0_RK4(array, pattern, iseq, side) result(arrayStripped)
4115#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4116 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_RK4
4117#endif
4118 use pm_kind, only: RKG => RK4
4119 real(RKG) , intent(in), contiguous :: array(:)
4120 real(RKG) , intent(in) :: pattern
4121 procedure(logical(LK)) :: iseq
4122 real(RKG) , allocatable :: arrayStripped(:)
4123 type(right_type) , intent(in) :: side
4124 end function
4125#endif
4126
4127#if RK3_ENABLED
4128 module function getStrippedCusComSR_D1_D0_RK3(array, pattern, iseq, side) result(arrayStripped)
4129#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4130 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_RK3
4131#endif
4132 use pm_kind, only: RKG => RK3
4133 real(RKG) , intent(in), contiguous :: array(:)
4134 real(RKG) , intent(in) :: pattern
4135 procedure(logical(LK)) :: iseq
4136 real(RKG) , allocatable :: arrayStripped(:)
4137 type(right_type) , intent(in) :: side
4138 end function
4139#endif
4140
4141#if RK2_ENABLED
4142 module function getStrippedCusComSR_D1_D0_RK2(array, pattern, iseq, side) result(arrayStripped)
4143#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4144 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_RK2
4145#endif
4146 use pm_kind, only: RKG => RK2
4147 real(RKG) , intent(in), contiguous :: array(:)
4148 real(RKG) , intent(in) :: pattern
4149 procedure(logical(LK)) :: iseq
4150 real(RKG) , allocatable :: arrayStripped(:)
4151 type(right_type) , intent(in) :: side
4152 end function
4153#endif
4154
4155#if RK1_ENABLED
4156 module function getStrippedCusComSR_D1_D0_RK1(array, pattern, iseq, side) result(arrayStripped)
4157#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4158 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D0_RK1
4159#endif
4160 use pm_kind, only: RKG => RK1
4161 real(RKG) , intent(in), contiguous :: array(:)
4162 real(RKG) , intent(in) :: pattern
4163 procedure(logical(LK)) :: iseq
4164 real(RKG) , allocatable :: arrayStripped(:)
4165 type(right_type) , intent(in) :: side
4166 end function
4167#endif
4168
4169 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4170
4171 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4172 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4173 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4174
4175 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4176
4177#if SK5_ENABLED
4178 PURE module function getStrippedDefComSR_D1_D1_SK5(array, pattern, side) result(arrayStripped)
4179#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4180 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_SK5
4181#endif
4182 use pm_kind, only: SKG => SK5
4183 character(*,SKG) , intent(in), contiguous :: array(:)
4184 character(*,SKG) , intent(in), contiguous :: pattern(:)
4185 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
4186 type(right_type) , intent(in) :: side
4187 end function
4188#endif
4189
4190#if SK4_ENABLED
4191 PURE module function getStrippedDefComSR_D1_D1_SK4(array, pattern, side) result(arrayStripped)
4192#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4193 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_SK4
4194#endif
4195 use pm_kind, only: SKG => SK4
4196 character(*,SKG) , intent(in), contiguous :: array(:)
4197 character(*,SKG) , intent(in), contiguous :: pattern(:)
4198 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
4199 type(right_type) , intent(in) :: side
4200 end function
4201#endif
4202
4203#if SK3_ENABLED
4204 PURE module function getStrippedDefComSR_D1_D1_SK3(array, pattern, side) result(arrayStripped)
4205#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4206 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_SK3
4207#endif
4208 use pm_kind, only: SKG => SK3
4209 character(*,SKG) , intent(in), contiguous :: array(:)
4210 character(*,SKG) , intent(in), contiguous :: pattern(:)
4211 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
4212 type(right_type) , intent(in) :: side
4213 end function
4214#endif
4215
4216#if SK2_ENABLED
4217 PURE module function getStrippedDefComSR_D1_D1_SK2(array, pattern, side) result(arrayStripped)
4218#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4219 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_SK2
4220#endif
4221 use pm_kind, only: SKG => SK2
4222 character(*,SKG) , intent(in), contiguous :: array(:)
4223 character(*,SKG) , intent(in), contiguous :: pattern(:)
4224 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
4225 type(right_type) , intent(in) :: side
4226 end function
4227#endif
4228
4229#if SK1_ENABLED
4230 PURE module function getStrippedDefComSR_D1_D1_SK1(array, pattern, side) result(arrayStripped)
4231#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4232 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_SK1
4233#endif
4234 use pm_kind, only: SKG => SK1
4235 character(*,SKG) , intent(in), contiguous :: array(:)
4236 character(*,SKG) , intent(in), contiguous :: pattern(:)
4237 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
4238 type(right_type) , intent(in) :: side
4239 end function
4240#endif
4241
4242 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4243
4244#if IK5_ENABLED
4245 PURE module function getStrippedDefComSR_D1_D1_IK5(array, pattern, side) result(arrayStripped)
4246#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4247 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_IK5
4248#endif
4249 use pm_kind, only: IKG => IK5
4250 integer(IKG) , intent(in), contiguous :: array(:)
4251 integer(IKG) , intent(in), contiguous :: pattern(:)
4252 integer(IKG) , allocatable :: arrayStripped(:)
4253 type(right_type) , intent(in) :: side
4254 end function
4255#endif
4256
4257#if IK4_ENABLED
4258 PURE module function getStrippedDefComSR_D1_D1_IK4(array, pattern, side) result(arrayStripped)
4259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4260 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_IK4
4261#endif
4262 use pm_kind, only: IKG => IK4
4263 integer(IKG) , intent(in), contiguous :: array(:)
4264 integer(IKG) , intent(in), contiguous :: pattern(:)
4265 integer(IKG) , allocatable :: arrayStripped(:)
4266 type(right_type) , intent(in) :: side
4267 end function
4268#endif
4269
4270#if IK3_ENABLED
4271 PURE module function getStrippedDefComSR_D1_D1_IK3(array, pattern, side) result(arrayStripped)
4272#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4273 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_IK3
4274#endif
4275 use pm_kind, only: IKG => IK3
4276 integer(IKG) , intent(in), contiguous :: array(:)
4277 integer(IKG) , intent(in), contiguous :: pattern(:)
4278 integer(IKG) , allocatable :: arrayStripped(:)
4279 type(right_type) , intent(in) :: side
4280 end function
4281#endif
4282
4283#if IK2_ENABLED
4284 PURE module function getStrippedDefComSR_D1_D1_IK2(array, pattern, side) result(arrayStripped)
4285#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4286 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_IK2
4287#endif
4288 use pm_kind, only: IKG => IK2
4289 integer(IKG) , intent(in), contiguous :: array(:)
4290 integer(IKG) , intent(in), contiguous :: pattern(:)
4291 integer(IKG) , allocatable :: arrayStripped(:)
4292 type(right_type) , intent(in) :: side
4293 end function
4294#endif
4295
4296#if IK1_ENABLED
4297 PURE module function getStrippedDefComSR_D1_D1_IK1(array, pattern, side) result(arrayStripped)
4298#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4299 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_IK1
4300#endif
4301 use pm_kind, only: IKG => IK1
4302 integer(IKG) , intent(in), contiguous :: array(:)
4303 integer(IKG) , intent(in), contiguous :: pattern(:)
4304 integer(IKG) , allocatable :: arrayStripped(:)
4305 type(right_type) , intent(in) :: side
4306 end function
4307#endif
4308
4309 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4310
4311#if LK5_ENABLED
4312 PURE module function getStrippedDefComSR_D1_D1_LK5(array, pattern, side) result(arrayStripped)
4313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4314 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_LK5
4315#endif
4316 use pm_kind, only: LKG => LK5
4317 logical(LKG) , intent(in), contiguous :: array(:)
4318 logical(LKG) , intent(in), contiguous :: pattern(:)
4319 logical(LKG) , allocatable :: arrayStripped(:)
4320 type(right_type) , intent(in) :: side
4321 end function
4322#endif
4323
4324#if LK4_ENABLED
4325 PURE module function getStrippedDefComSR_D1_D1_LK4(array, pattern, side) result(arrayStripped)
4326#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4327 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_LK4
4328#endif
4329 use pm_kind, only: LKG => LK4
4330 logical(LKG) , intent(in), contiguous :: array(:)
4331 logical(LKG) , intent(in), contiguous :: pattern(:)
4332 logical(LKG) , allocatable :: arrayStripped(:)
4333 type(right_type) , intent(in) :: side
4334 end function
4335#endif
4336
4337#if LK3_ENABLED
4338 PURE module function getStrippedDefComSR_D1_D1_LK3(array, pattern, side) result(arrayStripped)
4339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4340 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_LK3
4341#endif
4342 use pm_kind, only: LKG => LK3
4343 logical(LKG) , intent(in), contiguous :: array(:)
4344 logical(LKG) , intent(in), contiguous :: pattern(:)
4345 logical(LKG) , allocatable :: arrayStripped(:)
4346 type(right_type) , intent(in) :: side
4347 end function
4348#endif
4349
4350#if LK2_ENABLED
4351 PURE module function getStrippedDefComSR_D1_D1_LK2(array, pattern, side) result(arrayStripped)
4352#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4353 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_LK2
4354#endif
4355 use pm_kind, only: LKG => LK2
4356 logical(LKG) , intent(in), contiguous :: array(:)
4357 logical(LKG) , intent(in), contiguous :: pattern(:)
4358 logical(LKG) , allocatable :: arrayStripped(:)
4359 type(right_type) , intent(in) :: side
4360 end function
4361#endif
4362
4363#if LK1_ENABLED
4364 PURE module function getStrippedDefComSR_D1_D1_LK1(array, pattern, side) result(arrayStripped)
4365#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4366 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_LK1
4367#endif
4368 use pm_kind, only: LKG => LK1
4369 logical(LKG) , intent(in), contiguous :: array(:)
4370 logical(LKG) , intent(in), contiguous :: pattern(:)
4371 logical(LKG) , allocatable :: arrayStripped(:)
4372 type(right_type) , intent(in) :: side
4373 end function
4374#endif
4375
4376 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4377
4378#if CK5_ENABLED
4379 PURE module function getStrippedDefComSR_D1_D1_CK5(array, pattern, side) result(arrayStripped)
4380#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4381 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_CK5
4382#endif
4383 use pm_kind, only: CKG => CK5
4384 complex(CKG) , intent(in), contiguous :: array(:)
4385 complex(CKG) , intent(in), contiguous :: pattern(:)
4386 complex(CKG) , allocatable :: arrayStripped(:)
4387 type(right_type) , intent(in) :: side
4388 end function
4389#endif
4390
4391#if CK4_ENABLED
4392 PURE module function getStrippedDefComSR_D1_D1_CK4(array, pattern, side) result(arrayStripped)
4393#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4394 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_CK4
4395#endif
4396 use pm_kind, only: CKG => CK4
4397 complex(CKG) , intent(in), contiguous :: array(:)
4398 complex(CKG) , intent(in), contiguous :: pattern(:)
4399 complex(CKG) , allocatable :: arrayStripped(:)
4400 type(right_type) , intent(in) :: side
4401 end function
4402#endif
4403
4404#if CK3_ENABLED
4405 PURE module function getStrippedDefComSR_D1_D1_CK3(array, pattern, side) result(arrayStripped)
4406#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4407 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_CK3
4408#endif
4409 use pm_kind, only: CKG => CK3
4410 complex(CKG) , intent(in), contiguous :: array(:)
4411 complex(CKG) , intent(in), contiguous :: pattern(:)
4412 complex(CKG) , allocatable :: arrayStripped(:)
4413 type(right_type) , intent(in) :: side
4414 end function
4415#endif
4416
4417#if CK2_ENABLED
4418 PURE module function getStrippedDefComSR_D1_D1_CK2(array, pattern, side) result(arrayStripped)
4419#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4420 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_CK2
4421#endif
4422 use pm_kind, only: CKG => CK2
4423 complex(CKG) , intent(in), contiguous :: array(:)
4424 complex(CKG) , intent(in), contiguous :: pattern(:)
4425 complex(CKG) , allocatable :: arrayStripped(:)
4426 type(right_type) , intent(in) :: side
4427 end function
4428#endif
4429
4430#if CK1_ENABLED
4431 PURE module function getStrippedDefComSR_D1_D1_CK1(array, pattern, side) result(arrayStripped)
4432#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4433 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_CK1
4434#endif
4435 use pm_kind, only: CKG => CK1
4436 complex(CKG) , intent(in), contiguous :: array(:)
4437 complex(CKG) , intent(in), contiguous :: pattern(:)
4438 complex(CKG) , allocatable :: arrayStripped(:)
4439 type(right_type) , intent(in) :: side
4440 end function
4441#endif
4442
4443 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4444
4445#if RK5_ENABLED
4446 PURE module function getStrippedDefComSR_D1_D1_RK5(array, pattern, side) result(arrayStripped)
4447#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4448 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_RK5
4449#endif
4450 use pm_kind, only: RKG => RK5
4451 real(RKG) , intent(in), contiguous :: array(:)
4452 real(RKG) , intent(in), contiguous :: pattern(:)
4453 real(RKG) , allocatable :: arrayStripped(:)
4454 type(right_type) , intent(in) :: side
4455 end function
4456#endif
4457
4458#if RK4_ENABLED
4459 PURE module function getStrippedDefComSR_D1_D1_RK4(array, pattern, side) result(arrayStripped)
4460#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4461 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_RK4
4462#endif
4463 use pm_kind, only: RKG => RK4
4464 real(RKG) , intent(in), contiguous :: array(:)
4465 real(RKG) , intent(in), contiguous :: pattern(:)
4466 real(RKG) , allocatable :: arrayStripped(:)
4467 type(right_type) , intent(in) :: side
4468 end function
4469#endif
4470
4471#if RK3_ENABLED
4472 PURE module function getStrippedDefComSR_D1_D1_RK3(array, pattern, side) result(arrayStripped)
4473#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4474 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_RK3
4475#endif
4476 use pm_kind, only: RKG => RK3
4477 real(RKG) , intent(in), contiguous :: array(:)
4478 real(RKG) , intent(in), contiguous :: pattern(:)
4479 real(RKG) , allocatable :: arrayStripped(:)
4480 type(right_type) , intent(in) :: side
4481 end function
4482#endif
4483
4484#if RK2_ENABLED
4485 PURE module function getStrippedDefComSR_D1_D1_RK2(array, pattern, side) result(arrayStripped)
4486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4487 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_RK2
4488#endif
4489 use pm_kind, only: RKG => RK2
4490 real(RKG) , intent(in), contiguous :: array(:)
4491 real(RKG) , intent(in), contiguous :: pattern(:)
4492 real(RKG) , allocatable :: arrayStripped(:)
4493 type(right_type) , intent(in) :: side
4494 end function
4495#endif
4496
4497#if RK1_ENABLED
4498 PURE module function getStrippedDefComSR_D1_D1_RK1(array, pattern, side) result(arrayStripped)
4499#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4500 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedDefComSR_D1_D1_RK1
4501#endif
4502 use pm_kind, only: RKG => RK1
4503 real(RKG) , intent(in), contiguous :: array(:)
4504 real(RKG) , intent(in), contiguous :: pattern(:)
4505 real(RKG) , allocatable :: arrayStripped(:)
4506 type(right_type) , intent(in) :: side
4507 end function
4508#endif
4509
4510 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4511
4512 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4513 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4514 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4515
4516 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4517
4518#if SK5_ENABLED
4519 module function getStrippedCusComSR_D1_D1_SK5(array, pattern, iseq, side) result(arrayStripped)
4520#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4521 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_SK5
4522#endif
4523 use pm_kind, only: SKG => SK5
4524 procedure(logical(LK)) :: iseq
4525 character(*,SKG) , intent(in), contiguous :: array(:)
4526 character(*,SKG) , intent(in), contiguous :: pattern(:)
4527 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
4528 type(right_type) , intent(in) :: side
4529 end function
4530#endif
4531
4532#if SK4_ENABLED
4533 module function getStrippedCusComSR_D1_D1_SK4(array, pattern, iseq, side) result(arrayStripped)
4534#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4535 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_SK4
4536#endif
4537 use pm_kind, only: SKG => SK4
4538 procedure(logical(LK)) :: iseq
4539 character(*,SKG) , intent(in), contiguous :: array(:)
4540 character(*,SKG) , intent(in), contiguous :: pattern(:)
4541 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
4542 type(right_type) , intent(in) :: side
4543 end function
4544#endif
4545
4546#if SK3_ENABLED
4547 module function getStrippedCusComSR_D1_D1_SK3(array, pattern, iseq, side) result(arrayStripped)
4548#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4549 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_SK3
4550#endif
4551 use pm_kind, only: SKG => SK3
4552 procedure(logical(LK)) :: iseq
4553 character(*,SKG) , intent(in), contiguous :: array(:)
4554 character(*,SKG) , intent(in), contiguous :: pattern(:)
4555 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
4556 type(right_type) , intent(in) :: side
4557 end function
4558#endif
4559
4560#if SK2_ENABLED
4561 module function getStrippedCusComSR_D1_D1_SK2(array, pattern, iseq, side) result(arrayStripped)
4562#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4563 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_SK2
4564#endif
4565 use pm_kind, only: SKG => SK2
4566 procedure(logical(LK)) :: iseq
4567 character(*,SKG) , intent(in), contiguous :: array(:)
4568 character(*,SKG) , intent(in), contiguous :: pattern(:)
4569 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
4570 type(right_type) , intent(in) :: side
4571 end function
4572#endif
4573
4574#if SK1_ENABLED
4575 module function getStrippedCusComSR_D1_D1_SK1(array, pattern, iseq, side) result(arrayStripped)
4576#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4577 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_SK1
4578#endif
4579 use pm_kind, only: SKG => SK1
4580 procedure(logical(LK)) :: iseq
4581 character(*,SKG) , intent(in), contiguous :: array(:)
4582 character(*,SKG) , intent(in), contiguous :: pattern(:)
4583 character(len(array,IK),SKG) , allocatable :: arrayStripped(:)
4584 type(right_type) , intent(in) :: side
4585 end function
4586#endif
4587
4588 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4589
4590#if IK5_ENABLED
4591 module function getStrippedCusComSR_D1_D1_IK5(array, pattern, iseq, side) result(arrayStripped)
4592#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4593 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_IK5
4594#endif
4595 use pm_kind, only: IKG => IK5
4596 procedure(logical(LK)) :: iseq
4597 integer(IKG) , intent(in), contiguous :: array(:)
4598 integer(IKG) , intent(in), contiguous :: pattern(:)
4599 integer(IKG) , allocatable :: arrayStripped(:)
4600 type(right_type) , intent(in) :: side
4601 end function
4602#endif
4603
4604#if IK4_ENABLED
4605 module function getStrippedCusComSR_D1_D1_IK4(array, pattern, iseq, side) result(arrayStripped)
4606#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4607 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_IK4
4608#endif
4609 use pm_kind, only: IKG => IK4
4610 procedure(logical(LK)) :: iseq
4611 integer(IKG) , intent(in), contiguous :: array(:)
4612 integer(IKG) , intent(in), contiguous :: pattern(:)
4613 integer(IKG) , allocatable :: arrayStripped(:)
4614 type(right_type) , intent(in) :: side
4615 end function
4616#endif
4617
4618#if IK3_ENABLED
4619 module function getStrippedCusComSR_D1_D1_IK3(array, pattern, iseq, side) result(arrayStripped)
4620#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4621 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_IK3
4622#endif
4623 use pm_kind, only: IKG => IK3
4624 procedure(logical(LK)) :: iseq
4625 integer(IKG) , intent(in), contiguous :: array(:)
4626 integer(IKG) , intent(in), contiguous :: pattern(:)
4627 integer(IKG) , allocatable :: arrayStripped(:)
4628 type(right_type) , intent(in) :: side
4629 end function
4630#endif
4631
4632#if IK2_ENABLED
4633 module function getStrippedCusComSR_D1_D1_IK2(array, pattern, iseq, side) result(arrayStripped)
4634#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4635 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_IK2
4636#endif
4637 use pm_kind, only: IKG => IK2
4638 procedure(logical(LK)) :: iseq
4639 integer(IKG) , intent(in), contiguous :: array(:)
4640 integer(IKG) , intent(in), contiguous :: pattern(:)
4641 integer(IKG) , allocatable :: arrayStripped(:)
4642 type(right_type) , intent(in) :: side
4643 end function
4644#endif
4645
4646#if IK1_ENABLED
4647 module function getStrippedCusComSR_D1_D1_IK1(array, pattern, iseq, side) result(arrayStripped)
4648#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4649 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_IK1
4650#endif
4651 use pm_kind, only: IKG => IK1
4652 procedure(logical(LK)) :: iseq
4653 integer(IKG) , intent(in), contiguous :: array(:)
4654 integer(IKG) , intent(in), contiguous :: pattern(:)
4655 integer(IKG) , allocatable :: arrayStripped(:)
4656 type(right_type) , intent(in) :: side
4657 end function
4658#endif
4659
4660 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4661
4662#if LK5_ENABLED
4663 module function getStrippedCusComSR_D1_D1_LK5(array, pattern, iseq, side) result(arrayStripped)
4664#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4665 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_LK5
4666#endif
4667 use pm_kind, only: LKG => LK5
4668 procedure(logical(LK)) :: iseq
4669 logical(LKG) , intent(in), contiguous :: array(:)
4670 logical(LKG) , intent(in), contiguous :: pattern(:)
4671 logical(LKG) , allocatable :: arrayStripped(:)
4672 type(right_type) , intent(in) :: side
4673 end function
4674#endif
4675
4676#if LK4_ENABLED
4677 module function getStrippedCusComSR_D1_D1_LK4(array, pattern, iseq, side) result(arrayStripped)
4678#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4679 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_LK4
4680#endif
4681 use pm_kind, only: LKG => LK4
4682 procedure(logical(LK)) :: iseq
4683 logical(LKG) , intent(in), contiguous :: array(:)
4684 logical(LKG) , intent(in), contiguous :: pattern(:)
4685 logical(LKG) , allocatable :: arrayStripped(:)
4686 type(right_type) , intent(in) :: side
4687 end function
4688#endif
4689
4690#if LK3_ENABLED
4691 module function getStrippedCusComSR_D1_D1_LK3(array, pattern, iseq, side) result(arrayStripped)
4692#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4693 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_LK3
4694#endif
4695 use pm_kind, only: LKG => LK3
4696 procedure(logical(LK)) :: iseq
4697 logical(LKG) , intent(in), contiguous :: array(:)
4698 logical(LKG) , intent(in), contiguous :: pattern(:)
4699 logical(LKG) , allocatable :: arrayStripped(:)
4700 type(right_type) , intent(in) :: side
4701 end function
4702#endif
4703
4704#if LK2_ENABLED
4705 module function getStrippedCusComSR_D1_D1_LK2(array, pattern, iseq, side) result(arrayStripped)
4706#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4707 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_LK2
4708#endif
4709 use pm_kind, only: LKG => LK2
4710 procedure(logical(LK)) :: iseq
4711 logical(LKG) , intent(in), contiguous :: array(:)
4712 logical(LKG) , intent(in), contiguous :: pattern(:)
4713 logical(LKG) , allocatable :: arrayStripped(:)
4714 type(right_type) , intent(in) :: side
4715 end function
4716#endif
4717
4718#if LK1_ENABLED
4719 module function getStrippedCusComSR_D1_D1_LK1(array, pattern, iseq, side) result(arrayStripped)
4720#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4721 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_LK1
4722#endif
4723 use pm_kind, only: LKG => LK1
4724 procedure(logical(LK)) :: iseq
4725 logical(LKG) , intent(in), contiguous :: array(:)
4726 logical(LKG) , intent(in), contiguous :: pattern(:)
4727 logical(LKG) , allocatable :: arrayStripped(:)
4728 type(right_type) , intent(in) :: side
4729 end function
4730#endif
4731
4732 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4733
4734#if CK5_ENABLED
4735 module function getStrippedCusComSR_D1_D1_CK5(array, pattern, iseq, side) result(arrayStripped)
4736#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4737 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_CK5
4738#endif
4739 use pm_kind, only: CKG => CK5
4740 procedure(logical(LK)) :: iseq
4741 complex(CKG) , intent(in), contiguous :: array(:)
4742 complex(CKG) , intent(in), contiguous :: pattern(:)
4743 complex(CKG) , allocatable :: arrayStripped(:)
4744 type(right_type) , intent(in) :: side
4745 end function
4746#endif
4747
4748#if CK4_ENABLED
4749 module function getStrippedCusComSR_D1_D1_CK4(array, pattern, iseq, side) result(arrayStripped)
4750#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4751 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_CK4
4752#endif
4753 use pm_kind, only: CKG => CK4
4754 procedure(logical(LK)) :: iseq
4755 complex(CKG) , intent(in), contiguous :: array(:)
4756 complex(CKG) , intent(in), contiguous :: pattern(:)
4757 complex(CKG) , allocatable :: arrayStripped(:)
4758 type(right_type) , intent(in) :: side
4759 end function
4760#endif
4761
4762#if CK3_ENABLED
4763 module function getStrippedCusComSR_D1_D1_CK3(array, pattern, iseq, side) result(arrayStripped)
4764#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4765 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_CK3
4766#endif
4767 use pm_kind, only: CKG => CK3
4768 procedure(logical(LK)) :: iseq
4769 complex(CKG) , intent(in), contiguous :: array(:)
4770 complex(CKG) , intent(in), contiguous :: pattern(:)
4771 complex(CKG) , allocatable :: arrayStripped(:)
4772 type(right_type) , intent(in) :: side
4773 end function
4774#endif
4775
4776#if CK2_ENABLED
4777 module function getStrippedCusComSR_D1_D1_CK2(array, pattern, iseq, side) result(arrayStripped)
4778#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4779 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_CK2
4780#endif
4781 use pm_kind, only: CKG => CK2
4782 procedure(logical(LK)) :: iseq
4783 complex(CKG) , intent(in), contiguous :: array(:)
4784 complex(CKG) , intent(in), contiguous :: pattern(:)
4785 complex(CKG) , allocatable :: arrayStripped(:)
4786 type(right_type) , intent(in) :: side
4787 end function
4788#endif
4789
4790#if CK1_ENABLED
4791 module function getStrippedCusComSR_D1_D1_CK1(array, pattern, iseq, side) result(arrayStripped)
4792#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4793 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_CK1
4794#endif
4795 use pm_kind, only: CKG => CK1
4796 procedure(logical(LK)) :: iseq
4797 complex(CKG) , intent(in), contiguous :: array(:)
4798 complex(CKG) , intent(in), contiguous :: pattern(:)
4799 complex(CKG) , allocatable :: arrayStripped(:)
4800 type(right_type) , intent(in) :: side
4801 end function
4802#endif
4803
4804 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4805
4806#if RK5_ENABLED
4807 module function getStrippedCusComSR_D1_D1_RK5(array, pattern, iseq, side) result(arrayStripped)
4808#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4809 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_RK5
4810#endif
4811 use pm_kind, only: RKG => RK5
4812 procedure(logical(LK)) :: iseq
4813 real(RKG) , intent(in), contiguous :: array(:)
4814 real(RKG) , intent(in), contiguous :: pattern(:)
4815 real(RKG) , allocatable :: arrayStripped(:)
4816 type(right_type) , intent(in) :: side
4817 end function
4818#endif
4819
4820#if RK4_ENABLED
4821 module function getStrippedCusComSR_D1_D1_RK4(array, pattern, iseq, side) result(arrayStripped)
4822#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4823 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_RK4
4824#endif
4825 use pm_kind, only: RKG => RK4
4826 procedure(logical(LK)) :: iseq
4827 real(RKG) , intent(in), contiguous :: array(:)
4828 real(RKG) , intent(in), contiguous :: pattern(:)
4829 real(RKG) , allocatable :: arrayStripped(:)
4830 type(right_type) , intent(in) :: side
4831 end function
4832#endif
4833
4834#if RK3_ENABLED
4835 module function getStrippedCusComSR_D1_D1_RK3(array, pattern, iseq, side) result(arrayStripped)
4836#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4837 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_RK3
4838#endif
4839 use pm_kind, only: RKG => RK3
4840 procedure(logical(LK)) :: iseq
4841 real(RKG) , intent(in), contiguous :: array(:)
4842 real(RKG) , intent(in), contiguous :: pattern(:)
4843 real(RKG) , allocatable :: arrayStripped(:)
4844 type(right_type) , intent(in) :: side
4845 end function
4846#endif
4847
4848#if RK2_ENABLED
4849 module function getStrippedCusComSR_D1_D1_RK2(array, pattern, iseq, side) result(arrayStripped)
4850#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4851 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_RK2
4852#endif
4853 use pm_kind, only: RKG => RK2
4854 procedure(logical(LK)) :: iseq
4855 real(RKG) , intent(in), contiguous :: array(:)
4856 real(RKG) , intent(in), contiguous :: pattern(:)
4857 real(RKG) , allocatable :: arrayStripped(:)
4858 type(right_type) , intent(in) :: side
4859 end function
4860#endif
4861
4862#if RK1_ENABLED
4863 module function getStrippedCusComSR_D1_D1_RK1(array, pattern, iseq, side) result(arrayStripped)
4864#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4865 !DEC$ ATTRIBUTES DLLEXPORT :: getStrippedCusComSR_D1_D1_RK1
4866#endif
4867 use pm_kind, only: RKG => RK1
4868 procedure(logical(LK)) :: iseq
4869 real(RKG) , intent(in), contiguous :: array(:)
4870 real(RKG) , intent(in), contiguous :: pattern(:)
4871 real(RKG) , allocatable :: arrayStripped(:)
4872 type(right_type) , intent(in) :: side
4873 end function
4874#endif
4875
4876 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4877
4878 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4879 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4880 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4881
4882 end interface
4883
4884!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4885
5003 interface getSIL
5004
5005 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5006 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5007 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5008
5009 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5010
5011#if SK5_ENABLED
5012 PURE module function getSILDefCom_D0_D0_SK5(array, pattern) result(index)
5013#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5014 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D0_D0_SK5
5015#endif
5016 use pm_kind, only: SKG => SK5
5017 character(*,SKG) , intent(in) :: array
5018 character(*,SKG) , intent(in) :: pattern
5019 integer(IK) :: index
5020 end function
5021#endif
5022
5023#if SK4_ENABLED
5024 PURE module function getSILDefCom_D0_D0_SK4(array, pattern) result(index)
5025#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5026 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D0_D0_SK4
5027#endif
5028 use pm_kind, only: SKG => SK4
5029 character(*,SKG) , intent(in) :: array
5030 character(*,SKG) , intent(in) :: pattern
5031 integer(IK) :: index
5032 end function
5033#endif
5034
5035#if SK3_ENABLED
5036 PURE module function getSILDefCom_D0_D0_SK3(array, pattern) result(index)
5037#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5038 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D0_D0_SK3
5039#endif
5040 use pm_kind, only: SKG => SK3
5041 character(*,SKG) , intent(in) :: array
5042 character(*,SKG) , intent(in) :: pattern
5043 integer(IK) :: index
5044 end function
5045#endif
5046
5047#if SK2_ENABLED
5048 PURE module function getSILDefCom_D0_D0_SK2(array, pattern) result(index)
5049#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5050 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D0_D0_SK2
5051#endif
5052 use pm_kind, only: SKG => SK2
5053 character(*,SKG) , intent(in) :: array
5054 character(*,SKG) , intent(in) :: pattern
5055 integer(IK) :: index
5056 end function
5057#endif
5058
5059#if SK1_ENABLED
5060 PURE module function getSILDefCom_D0_D0_SK1(array, pattern) result(index)
5061#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5062 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D0_D0_SK1
5063#endif
5064 use pm_kind, only: SKG => SK1
5065 character(*,SKG) , intent(in) :: array
5066 character(*,SKG) , intent(in) :: pattern
5067 integer(IK) :: index
5068 end function
5069#endif
5070
5071 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5072
5073#if SK5_ENABLED
5074 PURE module function getSILDefCom_D1_D0_SK5(array, pattern) result(index)
5075#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5076 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_SK5
5077#endif
5078 use pm_kind, only: SKG => SK5
5079 character(*,SKG) , intent(in), contiguous :: array(:)
5080 character(*,SKG) , intent(in) :: pattern
5081 integer(IK) :: index
5082 end function
5083#endif
5084
5085#if SK4_ENABLED
5086 PURE module function getSILDefCom_D1_D0_SK4(array, pattern) result(index)
5087#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5088 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_SK4
5089#endif
5090 use pm_kind, only: SKG => SK4
5091 character(*,SKG) , intent(in), contiguous :: array(:)
5092 character(*,SKG) , intent(in) :: pattern
5093 integer(IK) :: index
5094 end function
5095#endif
5096
5097#if SK3_ENABLED
5098 PURE module function getSILDefCom_D1_D0_SK3(array, pattern) result(index)
5099#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5100 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_SK3
5101#endif
5102 use pm_kind, only: SKG => SK3
5103 character(*,SKG) , intent(in), contiguous :: array(:)
5104 character(*,SKG) , intent(in) :: pattern
5105 integer(IK) :: index
5106 end function
5107#endif
5108
5109#if SK2_ENABLED
5110 PURE module function getSILDefCom_D1_D0_SK2(array, pattern) result(index)
5111#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5112 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_SK2
5113#endif
5114 use pm_kind, only: SKG => SK2
5115 character(*,SKG) , intent(in), contiguous :: array(:)
5116 character(*,SKG) , intent(in) :: pattern
5117 integer(IK) :: index
5118 end function
5119#endif
5120
5121#if SK1_ENABLED
5122 PURE module function getSILDefCom_D1_D0_SK1(array, pattern) result(index)
5123#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5124 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_SK1
5125#endif
5126 use pm_kind, only: SKG => SK1
5127 character(*,SKG) , intent(in), contiguous :: array(:)
5128 character(*,SKG) , intent(in) :: pattern
5129 integer(IK) :: index
5130 end function
5131#endif
5132
5133 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5134
5135#if IK5_ENABLED
5136 PURE module function getSILDefCom_D1_D0_IK5(array, pattern) result(index)
5137#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5138 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_IK5
5139#endif
5140 use pm_kind, only: IKG => IK5
5141 integer(IKG) , intent(in), contiguous :: array(:)
5142 integer(IKG) , intent(in) :: pattern
5143 integer(IK) :: index
5144 end function
5145#endif
5146
5147#if IK4_ENABLED
5148 PURE module function getSILDefCom_D1_D0_IK4(array, pattern) result(index)
5149#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5150 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_IK4
5151#endif
5152 use pm_kind, only: IKG => IK4
5153 integer(IKG) , intent(in), contiguous :: array(:)
5154 integer(IKG) , intent(in) :: pattern
5155 integer(IK) :: index
5156 end function
5157#endif
5158
5159#if IK3_ENABLED
5160 PURE module function getSILDefCom_D1_D0_IK3(array, pattern) result(index)
5161#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5162 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_IK3
5163#endif
5164 use pm_kind, only: IKG => IK3
5165 integer(IKG) , intent(in), contiguous :: array(:)
5166 integer(IKG) , intent(in) :: pattern
5167 integer(IK) :: index
5168 end function
5169#endif
5170
5171#if IK2_ENABLED
5172 PURE module function getSILDefCom_D1_D0_IK2(array, pattern) result(index)
5173#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5174 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_IK2
5175#endif
5176 use pm_kind, only: IKG => IK2
5177 integer(IKG) , intent(in), contiguous :: array(:)
5178 integer(IKG) , intent(in) :: pattern
5179 integer(IK) :: index
5180 end function
5181#endif
5182
5183#if IK1_ENABLED
5184 PURE module function getSILDefCom_D1_D0_IK1(array, pattern) result(index)
5185#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5186 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_IK1
5187#endif
5188 use pm_kind, only: IKG => IK1
5189 integer(IKG) , intent(in), contiguous :: array(:)
5190 integer(IKG) , intent(in) :: pattern
5191 integer(IK) :: index
5192 end function
5193#endif
5194
5195 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5196
5197#if LK5_ENABLED
5198 PURE module function getSILDefCom_D1_D0_LK5(array, pattern) result(index)
5199#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5200 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_LK5
5201#endif
5202 use pm_kind, only: LKG => LK5
5203 logical(LKG) , intent(in), contiguous :: array(:)
5204 logical(LKG) , intent(in) :: pattern
5205 integer(IK) :: index
5206 end function
5207#endif
5208
5209#if LK4_ENABLED
5210 PURE module function getSILDefCom_D1_D0_LK4(array, pattern) result(index)
5211#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5212 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_LK4
5213#endif
5214 use pm_kind, only: LKG => LK4
5215 logical(LKG) , intent(in), contiguous :: array(:)
5216 logical(LKG) , intent(in) :: pattern
5217 integer(IK) :: index
5218 end function
5219#endif
5220
5221#if LK3_ENABLED
5222 PURE module function getSILDefCom_D1_D0_LK3(array, pattern) result(index)
5223#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5224 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_LK3
5225#endif
5226 use pm_kind, only: LKG => LK3
5227 logical(LKG) , intent(in), contiguous :: array(:)
5228 logical(LKG) , intent(in) :: pattern
5229 integer(IK) :: index
5230 end function
5231#endif
5232
5233#if LK2_ENABLED
5234 PURE module function getSILDefCom_D1_D0_LK2(array, pattern) result(index)
5235#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5236 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_LK2
5237#endif
5238 use pm_kind, only: LKG => LK2
5239 logical(LKG) , intent(in), contiguous :: array(:)
5240 logical(LKG) , intent(in) :: pattern
5241 integer(IK) :: index
5242 end function
5243#endif
5244
5245#if LK1_ENABLED
5246 PURE module function getSILDefCom_D1_D0_LK1(array, pattern) result(index)
5247#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5248 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_LK1
5249#endif
5250 use pm_kind, only: LKG => LK1
5251 logical(LKG) , intent(in), contiguous :: array(:)
5252 logical(LKG) , intent(in) :: pattern
5253 integer(IK) :: index
5254 end function
5255#endif
5256
5257 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5258
5259#if CK5_ENABLED
5260 PURE module function getSILDefCom_D1_D0_CK5(array, pattern) result(index)
5261#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5262 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_CK5
5263#endif
5264 use pm_kind, only: CKG => CK5
5265 complex(CKG) , intent(in), contiguous :: array(:)
5266 complex(CKG) , intent(in) :: pattern
5267 integer(IK) :: index
5268 end function
5269#endif
5270
5271#if CK4_ENABLED
5272 PURE module function getSILDefCom_D1_D0_CK4(array, pattern) result(index)
5273#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5274 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_CK4
5275#endif
5276 use pm_kind, only: CKG => CK4
5277 complex(CKG) , intent(in), contiguous :: array(:)
5278 complex(CKG) , intent(in) :: pattern
5279 integer(IK) :: index
5280 end function
5281#endif
5282
5283#if CK3_ENABLED
5284 PURE module function getSILDefCom_D1_D0_CK3(array, pattern) result(index)
5285#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5286 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_CK3
5287#endif
5288 use pm_kind, only: CKG => CK3
5289 complex(CKG) , intent(in), contiguous :: array(:)
5290 complex(CKG) , intent(in) :: pattern
5291 integer(IK) :: index
5292 end function
5293#endif
5294
5295#if CK2_ENABLED
5296 PURE module function getSILDefCom_D1_D0_CK2(array, pattern) result(index)
5297#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5298 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_CK2
5299#endif
5300 use pm_kind, only: CKG => CK2
5301 complex(CKG) , intent(in), contiguous :: array(:)
5302 complex(CKG) , intent(in) :: pattern
5303 integer(IK) :: index
5304 end function
5305#endif
5306
5307#if CK1_ENABLED
5308 PURE module function getSILDefCom_D1_D0_CK1(array, pattern) result(index)
5309#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5310 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_CK1
5311#endif
5312 use pm_kind, only: CKG => CK1
5313 complex(CKG) , intent(in), contiguous :: array(:)
5314 complex(CKG) , intent(in) :: pattern
5315 integer(IK) :: index
5316 end function
5317#endif
5318
5319 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5320
5321#if RK5_ENABLED
5322 PURE module function getSILDefCom_D1_D0_RK5(array, pattern) result(index)
5323#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5324 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_RK5
5325#endif
5326 use pm_kind, only: RKG => RK5
5327 real(RKG) , intent(in), contiguous :: array(:)
5328 real(RKG) , intent(in) :: pattern
5329 integer(IK) :: index
5330 end function
5331#endif
5332
5333#if RK4_ENABLED
5334 PURE module function getSILDefCom_D1_D0_RK4(array, pattern) result(index)
5335#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5336 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_RK4
5337#endif
5338 use pm_kind, only: RKG => RK4
5339 real(RKG) , intent(in), contiguous :: array(:)
5340 real(RKG) , intent(in) :: pattern
5341 integer(IK) :: index
5342 end function
5343#endif
5344
5345#if RK3_ENABLED
5346 PURE module function getSILDefCom_D1_D0_RK3(array, pattern) result(index)
5347#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5348 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_RK3
5349#endif
5350 use pm_kind, only: RKG => RK3
5351 real(RKG) , intent(in), contiguous :: array(:)
5352 real(RKG) , intent(in) :: pattern
5353 integer(IK) :: index
5354 end function
5355#endif
5356
5357#if RK2_ENABLED
5358 PURE module function getSILDefCom_D1_D0_RK2(array, pattern) result(index)
5359#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5360 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_RK2
5361#endif
5362 use pm_kind, only: RKG => RK2
5363 real(RKG) , intent(in), contiguous :: array(:)
5364 real(RKG) , intent(in) :: pattern
5365 integer(IK) :: index
5366 end function
5367#endif
5368
5369#if RK1_ENABLED
5370 PURE module function getSILDefCom_D1_D0_RK1(array, pattern) result(index)
5371#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5372 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D0_RK1
5373#endif
5374 use pm_kind, only: RKG => RK1
5375 real(RKG) , intent(in), contiguous :: array(:)
5376 real(RKG) , intent(in) :: pattern
5377 integer(IK) :: index
5378 end function
5379#endif
5380
5381 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5382
5383 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5384 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5385 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5386
5387 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5388
5389#if SK5_ENABLED
5390 module function getSILCusCom_D0_D0_SK5(array, pattern, iseq) result(index)
5391#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5392 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D0_D0_SK5
5393#endif
5394 use pm_kind, only: SKG => SK5
5395 character(*,SKG) , intent(in) :: array
5396 character(*,SKG) , intent(in) :: pattern
5397 procedure(logical(LK)) :: iseq
5398 integer(IK) :: index
5399 end function
5400#endif
5401
5402#if SK4_ENABLED
5403 module function getSILCusCom_D0_D0_SK4(array, pattern, iseq) result(index)
5404#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5405 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D0_D0_SK4
5406#endif
5407 use pm_kind, only: SKG => SK4
5408 character(*,SKG) , intent(in) :: array
5409 character(*,SKG) , intent(in) :: pattern
5410 procedure(logical(LK)) :: iseq
5411 integer(IK) :: index
5412 end function
5413#endif
5414
5415#if SK3_ENABLED
5416 module function getSILCusCom_D0_D0_SK3(array, pattern, iseq) result(index)
5417#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5418 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D0_D0_SK3
5419#endif
5420 use pm_kind, only: SKG => SK3
5421 character(*,SKG) , intent(in) :: array
5422 character(*,SKG) , intent(in) :: pattern
5423 procedure(logical(LK)) :: iseq
5424 integer(IK) :: index
5425 end function
5426#endif
5427
5428#if SK2_ENABLED
5429 module function getSILCusCom_D0_D0_SK2(array, pattern, iseq) result(index)
5430#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5431 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D0_D0_SK2
5432#endif
5433 use pm_kind, only: SKG => SK2
5434 character(*,SKG) , intent(in) :: array
5435 character(*,SKG) , intent(in) :: pattern
5436 procedure(logical(LK)) :: iseq
5437 integer(IK) :: index
5438 end function
5439#endif
5440
5441#if SK1_ENABLED
5442 module function getSILCusCom_D0_D0_SK1(array, pattern, iseq) result(index)
5443#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5444 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D0_D0_SK1
5445#endif
5446 use pm_kind, only: SKG => SK1
5447 character(*,SKG) , intent(in) :: array
5448 character(*,SKG) , intent(in) :: pattern
5449 procedure(logical(LK)) :: iseq
5450 integer(IK) :: index
5451 end function
5452#endif
5453
5454 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5455
5456#if SK5_ENABLED
5457 module function getSILCusCom_D1_D0_SK5(array, pattern, iseq) result(index)
5458#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5459 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_SK5
5460#endif
5461 use pm_kind, only: SKG => SK5
5462 character(*,SKG) , intent(in), contiguous :: array(:)
5463 character(*,SKG) , intent(in) :: pattern
5464 procedure(logical(LK)) :: iseq
5465 integer(IK) :: index
5466 end function
5467#endif
5468
5469#if SK4_ENABLED
5470 module function getSILCusCom_D1_D0_SK4(array, pattern, iseq) result(index)
5471#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5472 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_SK4
5473#endif
5474 use pm_kind, only: SKG => SK4
5475 character(*,SKG) , intent(in), contiguous :: array(:)
5476 character(*,SKG) , intent(in) :: pattern
5477 procedure(logical(LK)) :: iseq
5478 integer(IK) :: index
5479 end function
5480#endif
5481
5482#if SK3_ENABLED
5483 module function getSILCusCom_D1_D0_SK3(array, pattern, iseq) result(index)
5484#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5485 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_SK3
5486#endif
5487 use pm_kind, only: SKG => SK3
5488 character(*,SKG) , intent(in), contiguous :: array(:)
5489 character(*,SKG) , intent(in) :: pattern
5490 procedure(logical(LK)) :: iseq
5491 integer(IK) :: index
5492 end function
5493#endif
5494
5495#if SK2_ENABLED
5496 module function getSILCusCom_D1_D0_SK2(array, pattern, iseq) result(index)
5497#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5498 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_SK2
5499#endif
5500 use pm_kind, only: SKG => SK2
5501 character(*,SKG) , intent(in), contiguous :: array(:)
5502 character(*,SKG) , intent(in) :: pattern
5503 procedure(logical(LK)) :: iseq
5504 integer(IK) :: index
5505 end function
5506#endif
5507
5508#if SK1_ENABLED
5509 module function getSILCusCom_D1_D0_SK1(array, pattern, iseq) result(index)
5510#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5511 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_SK1
5512#endif
5513 use pm_kind, only: SKG => SK1
5514 character(*,SKG) , intent(in), contiguous :: array(:)
5515 character(*,SKG) , intent(in) :: pattern
5516 procedure(logical(LK)) :: iseq
5517 integer(IK) :: index
5518 end function
5519#endif
5520
5521 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5522
5523#if IK5_ENABLED
5524 module function getSILCusCom_D1_D0_IK5(array, pattern, iseq) result(index)
5525#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5526 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_IK5
5527#endif
5528 use pm_kind, only: IKG => IK5
5529 integer(IKG) , intent(in), contiguous :: array(:)
5530 integer(IKG) , intent(in) :: pattern
5531 procedure(logical(LK)) :: iseq
5532 integer(IK) :: index
5533 end function
5534#endif
5535
5536#if IK4_ENABLED
5537 module function getSILCusCom_D1_D0_IK4(array, pattern, iseq) result(index)
5538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5539 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_IK4
5540#endif
5541 use pm_kind, only: IKG => IK4
5542 integer(IKG) , intent(in), contiguous :: array(:)
5543 integer(IKG) , intent(in) :: pattern
5544 procedure(logical(LK)) :: iseq
5545 integer(IK) :: index
5546 end function
5547#endif
5548
5549#if IK3_ENABLED
5550 module function getSILCusCom_D1_D0_IK3(array, pattern, iseq) result(index)
5551#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5552 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_IK3
5553#endif
5554 use pm_kind, only: IKG => IK3
5555 integer(IKG) , intent(in), contiguous :: array(:)
5556 integer(IKG) , intent(in) :: pattern
5557 procedure(logical(LK)) :: iseq
5558 integer(IK) :: index
5559 end function
5560#endif
5561
5562#if IK2_ENABLED
5563 module function getSILCusCom_D1_D0_IK2(array, pattern, iseq) result(index)
5564#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5565 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_IK2
5566#endif
5567 use pm_kind, only: IKG => IK2
5568 integer(IKG) , intent(in), contiguous :: array(:)
5569 integer(IKG) , intent(in) :: pattern
5570 procedure(logical(LK)) :: iseq
5571 integer(IK) :: index
5572 end function
5573#endif
5574
5575#if IK1_ENABLED
5576 module function getSILCusCom_D1_D0_IK1(array, pattern, iseq) result(index)
5577#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5578 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_IK1
5579#endif
5580 use pm_kind, only: IKG => IK1
5581 integer(IKG) , intent(in), contiguous :: array(:)
5582 integer(IKG) , intent(in) :: pattern
5583 procedure(logical(LK)) :: iseq
5584 integer(IK) :: index
5585 end function
5586#endif
5587
5588 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5589
5590#if LK5_ENABLED
5591 module function getSILCusCom_D1_D0_LK5(array, pattern, iseq) result(index)
5592#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5593 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_LK5
5594#endif
5595 use pm_kind, only: LKG => LK5
5596 logical(LKG) , intent(in), contiguous :: array(:)
5597 logical(LKG) , intent(in) :: pattern
5598 procedure(logical(LK)) :: iseq
5599 integer(IK) :: index
5600 end function
5601#endif
5602
5603#if LK4_ENABLED
5604 module function getSILCusCom_D1_D0_LK4(array, pattern, iseq) result(index)
5605#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5606 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_LK4
5607#endif
5608 use pm_kind, only: LKG => LK4
5609 logical(LKG) , intent(in), contiguous :: array(:)
5610 logical(LKG) , intent(in) :: pattern
5611 procedure(logical(LK)) :: iseq
5612 integer(IK) :: index
5613 end function
5614#endif
5615
5616#if LK3_ENABLED
5617 module function getSILCusCom_D1_D0_LK3(array, pattern, iseq) result(index)
5618#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5619 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_LK3
5620#endif
5621 use pm_kind, only: LKG => LK3
5622 logical(LKG) , intent(in), contiguous :: array(:)
5623 logical(LKG) , intent(in) :: pattern
5624 procedure(logical(LK)) :: iseq
5625 integer(IK) :: index
5626 end function
5627#endif
5628
5629#if LK2_ENABLED
5630 module function getSILCusCom_D1_D0_LK2(array, pattern, iseq) result(index)
5631#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5632 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_LK2
5633#endif
5634 use pm_kind, only: LKG => LK2
5635 logical(LKG) , intent(in), contiguous :: array(:)
5636 logical(LKG) , intent(in) :: pattern
5637 procedure(logical(LK)) :: iseq
5638 integer(IK) :: index
5639 end function
5640#endif
5641
5642#if LK1_ENABLED
5643 module function getSILCusCom_D1_D0_LK1(array, pattern, iseq) result(index)
5644#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5645 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_LK1
5646#endif
5647 use pm_kind, only: LKG => LK1
5648 logical(LKG) , intent(in), contiguous :: array(:)
5649 logical(LKG) , intent(in) :: pattern
5650 procedure(logical(LK)) :: iseq
5651 integer(IK) :: index
5652 end function
5653#endif
5654
5655 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5656
5657#if CK5_ENABLED
5658 module function getSILCusCom_D1_D0_CK5(array, pattern, iseq) result(index)
5659#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5660 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_CK5
5661#endif
5662 use pm_kind, only: CKG => CK5
5663 complex(CKG) , intent(in), contiguous :: array(:)
5664 complex(CKG) , intent(in) :: pattern
5665 procedure(logical(LK)) :: iseq
5666 integer(IK) :: index
5667 end function
5668#endif
5669
5670#if CK4_ENABLED
5671 module function getSILCusCom_D1_D0_CK4(array, pattern, iseq) result(index)
5672#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5673 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_CK4
5674#endif
5675 use pm_kind, only: CKG => CK4
5676 complex(CKG) , intent(in), contiguous :: array(:)
5677 complex(CKG) , intent(in) :: pattern
5678 procedure(logical(LK)) :: iseq
5679 integer(IK) :: index
5680 end function
5681#endif
5682
5683#if CK3_ENABLED
5684 module function getSILCusCom_D1_D0_CK3(array, pattern, iseq) result(index)
5685#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5686 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_CK3
5687#endif
5688 use pm_kind, only: CKG => CK3
5689 complex(CKG) , intent(in), contiguous :: array(:)
5690 complex(CKG) , intent(in) :: pattern
5691 procedure(logical(LK)) :: iseq
5692 integer(IK) :: index
5693 end function
5694#endif
5695
5696#if CK2_ENABLED
5697 module function getSILCusCom_D1_D0_CK2(array, pattern, iseq) result(index)
5698#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5699 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_CK2
5700#endif
5701 use pm_kind, only: CKG => CK2
5702 complex(CKG) , intent(in), contiguous :: array(:)
5703 complex(CKG) , intent(in) :: pattern
5704 procedure(logical(LK)) :: iseq
5705 integer(IK) :: index
5706 end function
5707#endif
5708
5709#if CK1_ENABLED
5710 module function getSILCusCom_D1_D0_CK1(array, pattern, iseq) result(index)
5711#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5712 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_CK1
5713#endif
5714 use pm_kind, only: CKG => CK1
5715 complex(CKG) , intent(in), contiguous :: array(:)
5716 complex(CKG) , intent(in) :: pattern
5717 procedure(logical(LK)) :: iseq
5718 integer(IK) :: index
5719 end function
5720#endif
5721
5722 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5723
5724#if RK5_ENABLED
5725 module function getSILCusCom_D1_D0_RK5(array, pattern, iseq) result(index)
5726#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5727 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_RK5
5728#endif
5729 use pm_kind, only: RKG => RK5
5730 real(RKG) , intent(in), contiguous :: array(:)
5731 real(RKG) , intent(in) :: pattern
5732 procedure(logical(LK)) :: iseq
5733 integer(IK) :: index
5734 end function
5735#endif
5736
5737#if RK4_ENABLED
5738 module function getSILCusCom_D1_D0_RK4(array, pattern, iseq) result(index)
5739#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5740 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_RK4
5741#endif
5742 use pm_kind, only: RKG => RK4
5743 real(RKG) , intent(in), contiguous :: array(:)
5744 real(RKG) , intent(in) :: pattern
5745 procedure(logical(LK)) :: iseq
5746 integer(IK) :: index
5747 end function
5748#endif
5749
5750#if RK3_ENABLED
5751 module function getSILCusCom_D1_D0_RK3(array, pattern, iseq) result(index)
5752#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5753 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_RK3
5754#endif
5755 use pm_kind, only: RKG => RK3
5756 real(RKG) , intent(in), contiguous :: array(:)
5757 real(RKG) , intent(in) :: pattern
5758 procedure(logical(LK)) :: iseq
5759 integer(IK) :: index
5760 end function
5761#endif
5762
5763#if RK2_ENABLED
5764 module function getSILCusCom_D1_D0_RK2(array, pattern, iseq) result(index)
5765#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5766 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_RK2
5767#endif
5768 use pm_kind, only: RKG => RK2
5769 real(RKG) , intent(in), contiguous :: array(:)
5770 real(RKG) , intent(in) :: pattern
5771 procedure(logical(LK)) :: iseq
5772 integer(IK) :: index
5773 end function
5774#endif
5775
5776#if RK1_ENABLED
5777 module function getSILCusCom_D1_D0_RK1(array, pattern, iseq) result(index)
5778#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5779 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D0_RK1
5780#endif
5781 use pm_kind, only: RKG => RK1
5782 real(RKG) , intent(in), contiguous :: array(:)
5783 real(RKG) , intent(in) :: pattern
5784 procedure(logical(LK)) :: iseq
5785 integer(IK) :: index
5786 end function
5787#endif
5788
5789 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5790
5791 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5792 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5793 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5794
5795 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5796
5797#if SK5_ENABLED
5798 PURE module function getSILDefCom_D1_D1_SK5(array, pattern) result(index)
5799#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5800 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_SK5
5801#endif
5802 use pm_kind, only: SKG => SK5
5803 character(*,SKG) , intent(in), contiguous :: array(:)
5804 character(*,SKG) , intent(in), contiguous :: pattern(:)
5805 integer(IK) :: index
5806 end function
5807#endif
5808
5809#if SK4_ENABLED
5810 PURE module function getSILDefCom_D1_D1_SK4(array, pattern) result(index)
5811#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5812 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_SK4
5813#endif
5814 use pm_kind, only: SKG => SK4
5815 character(*,SKG) , intent(in), contiguous :: array(:)
5816 character(*,SKG) , intent(in), contiguous :: pattern(:)
5817 integer(IK) :: index
5818 end function
5819#endif
5820
5821#if SK3_ENABLED
5822 PURE module function getSILDefCom_D1_D1_SK3(array, pattern) result(index)
5823#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5824 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_SK3
5825#endif
5826 use pm_kind, only: SKG => SK3
5827 character(*,SKG) , intent(in), contiguous :: array(:)
5828 character(*,SKG) , intent(in), contiguous :: pattern(:)
5829 integer(IK) :: index
5830 end function
5831#endif
5832
5833#if SK2_ENABLED
5834 PURE module function getSILDefCom_D1_D1_SK2(array, pattern) result(index)
5835#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5836 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_SK2
5837#endif
5838 use pm_kind, only: SKG => SK2
5839 character(*,SKG) , intent(in), contiguous :: array(:)
5840 character(*,SKG) , intent(in), contiguous :: pattern(:)
5841 integer(IK) :: index
5842 end function
5843#endif
5844
5845#if SK1_ENABLED
5846 PURE module function getSILDefCom_D1_D1_SK1(array, pattern) result(index)
5847#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5848 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_SK1
5849#endif
5850 use pm_kind, only: SKG => SK1
5851 character(*,SKG) , intent(in), contiguous :: array(:)
5852 character(*,SKG) , intent(in), contiguous :: pattern(:)
5853 integer(IK) :: index
5854 end function
5855#endif
5856
5857 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5858
5859#if IK5_ENABLED
5860 PURE module function getSILDefCom_D1_D1_IK5(array, pattern) result(index)
5861#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5862 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_IK5
5863#endif
5864 use pm_kind, only: IKG => IK5
5865 integer(IKG) , intent(in), contiguous :: array(:)
5866 integer(IKG) , intent(in), contiguous :: pattern(:)
5867 integer(IK) :: index
5868 end function
5869#endif
5870
5871#if IK4_ENABLED
5872 PURE module function getSILDefCom_D1_D1_IK4(array, pattern) result(index)
5873#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5874 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_IK4
5875#endif
5876 use pm_kind, only: IKG => IK4
5877 integer(IKG) , intent(in), contiguous :: array(:)
5878 integer(IKG) , intent(in), contiguous :: pattern(:)
5879 integer(IK) :: index
5880 end function
5881#endif
5882
5883#if IK3_ENABLED
5884 PURE module function getSILDefCom_D1_D1_IK3(array, pattern) result(index)
5885#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5886 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_IK3
5887#endif
5888 use pm_kind, only: IKG => IK3
5889 integer(IKG) , intent(in), contiguous :: array(:)
5890 integer(IKG) , intent(in), contiguous :: pattern(:)
5891 integer(IK) :: index
5892 end function
5893#endif
5894
5895#if IK2_ENABLED
5896 PURE module function getSILDefCom_D1_D1_IK2(array, pattern) result(index)
5897#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5898 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_IK2
5899#endif
5900 use pm_kind, only: IKG => IK2
5901 integer(IKG) , intent(in), contiguous :: array(:)
5902 integer(IKG) , intent(in), contiguous :: pattern(:)
5903 integer(IK) :: index
5904 end function
5905#endif
5906
5907#if IK1_ENABLED
5908 PURE module function getSILDefCom_D1_D1_IK1(array, pattern) result(index)
5909#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5910 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_IK1
5911#endif
5912 use pm_kind, only: IKG => IK1
5913 integer(IKG) , intent(in), contiguous :: array(:)
5914 integer(IKG) , intent(in), contiguous :: pattern(:)
5915 integer(IK) :: index
5916 end function
5917#endif
5918
5919 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5920
5921#if LK5_ENABLED
5922 PURE module function getSILDefCom_D1_D1_LK5(array, pattern) result(index)
5923#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5924 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_LK5
5925#endif
5926 use pm_kind, only: LKG => LK5
5927 logical(LKG) , intent(in), contiguous :: array(:)
5928 logical(LKG) , intent(in), contiguous :: pattern(:)
5929 integer(IK) :: index
5930 end function
5931#endif
5932
5933#if LK4_ENABLED
5934 PURE module function getSILDefCom_D1_D1_LK4(array, pattern) result(index)
5935#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5936 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_LK4
5937#endif
5938 use pm_kind, only: LKG => LK4
5939 logical(LKG) , intent(in), contiguous :: array(:)
5940 logical(LKG) , intent(in), contiguous :: pattern(:)
5941 integer(IK) :: index
5942 end function
5943#endif
5944
5945#if LK3_ENABLED
5946 PURE module function getSILDefCom_D1_D1_LK3(array, pattern) result(index)
5947#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5948 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_LK3
5949#endif
5950 use pm_kind, only: LKG => LK3
5951 logical(LKG) , intent(in), contiguous :: array(:)
5952 logical(LKG) , intent(in), contiguous :: pattern(:)
5953 integer(IK) :: index
5954 end function
5955#endif
5956
5957#if LK2_ENABLED
5958 PURE module function getSILDefCom_D1_D1_LK2(array, pattern) result(index)
5959#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5960 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_LK2
5961#endif
5962 use pm_kind, only: LKG => LK2
5963 logical(LKG) , intent(in), contiguous :: array(:)
5964 logical(LKG) , intent(in), contiguous :: pattern(:)
5965 integer(IK) :: index
5966 end function
5967#endif
5968
5969#if LK1_ENABLED
5970 PURE module function getSILDefCom_D1_D1_LK1(array, pattern) result(index)
5971#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5972 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_LK1
5973#endif
5974 use pm_kind, only: LKG => LK1
5975 logical(LKG) , intent(in), contiguous :: array(:)
5976 logical(LKG) , intent(in), contiguous :: pattern(:)
5977 integer(IK) :: index
5978 end function
5979#endif
5980
5981 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5982
5983#if CK5_ENABLED
5984 PURE module function getSILDefCom_D1_D1_CK5(array, pattern) result(index)
5985#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5986 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_CK5
5987#endif
5988 use pm_kind, only: CKG => CK5
5989 complex(CKG) , intent(in), contiguous :: array(:)
5990 complex(CKG) , intent(in), contiguous :: pattern(:)
5991 integer(IK) :: index
5992 end function
5993#endif
5994
5995#if CK4_ENABLED
5996 PURE module function getSILDefCom_D1_D1_CK4(array, pattern) result(index)
5997#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5998 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_CK4
5999#endif
6000 use pm_kind, only: CKG => CK4
6001 complex(CKG) , intent(in), contiguous :: array(:)
6002 complex(CKG) , intent(in), contiguous :: pattern(:)
6003 integer(IK) :: index
6004 end function
6005#endif
6006
6007#if CK3_ENABLED
6008 PURE module function getSILDefCom_D1_D1_CK3(array, pattern) result(index)
6009#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6010 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_CK3
6011#endif
6012 use pm_kind, only: CKG => CK3
6013 complex(CKG) , intent(in), contiguous :: array(:)
6014 complex(CKG) , intent(in), contiguous :: pattern(:)
6015 integer(IK) :: index
6016 end function
6017#endif
6018
6019#if CK2_ENABLED
6020 PURE module function getSILDefCom_D1_D1_CK2(array, pattern) result(index)
6021#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6022 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_CK2
6023#endif
6024 use pm_kind, only: CKG => CK2
6025 complex(CKG) , intent(in), contiguous :: array(:)
6026 complex(CKG) , intent(in), contiguous :: pattern(:)
6027 integer(IK) :: index
6028 end function
6029#endif
6030
6031#if CK1_ENABLED
6032 PURE module function getSILDefCom_D1_D1_CK1(array, pattern) result(index)
6033#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6034 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_CK1
6035#endif
6036 use pm_kind, only: CKG => CK1
6037 complex(CKG) , intent(in), contiguous :: array(:)
6038 complex(CKG) , intent(in), contiguous :: pattern(:)
6039 integer(IK) :: index
6040 end function
6041#endif
6042
6043 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6044
6045#if RK5_ENABLED
6046 PURE module function getSILDefCom_D1_D1_RK5(array, pattern) result(index)
6047#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6048 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_RK5
6049#endif
6050 use pm_kind, only: RKG => RK5
6051 real(RKG) , intent(in), contiguous :: array(:)
6052 real(RKG) , intent(in), contiguous :: pattern(:)
6053 integer(IK) :: index
6054 end function
6055#endif
6056
6057#if RK4_ENABLED
6058 PURE module function getSILDefCom_D1_D1_RK4(array, pattern) result(index)
6059#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6060 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_RK4
6061#endif
6062 use pm_kind, only: RKG => RK4
6063 real(RKG) , intent(in), contiguous :: array(:)
6064 real(RKG) , intent(in), contiguous :: pattern(:)
6065 integer(IK) :: index
6066 end function
6067#endif
6068
6069#if RK3_ENABLED
6070 PURE module function getSILDefCom_D1_D1_RK3(array, pattern) result(index)
6071#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6072 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_RK3
6073#endif
6074 use pm_kind, only: RKG => RK3
6075 real(RKG) , intent(in), contiguous :: array(:)
6076 real(RKG) , intent(in), contiguous :: pattern(:)
6077 integer(IK) :: index
6078 end function
6079#endif
6080
6081#if RK2_ENABLED
6082 PURE module function getSILDefCom_D1_D1_RK2(array, pattern) result(index)
6083#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6084 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_RK2
6085#endif
6086 use pm_kind, only: RKG => RK2
6087 real(RKG) , intent(in), contiguous :: array(:)
6088 real(RKG) , intent(in), contiguous :: pattern(:)
6089 integer(IK) :: index
6090 end function
6091#endif
6092
6093#if RK1_ENABLED
6094 PURE module function getSILDefCom_D1_D1_RK1(array, pattern) result(index)
6095#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6096 !DEC$ ATTRIBUTES DLLEXPORT :: getSILDefCom_D1_D1_RK1
6097#endif
6098 use pm_kind, only: RKG => RK1
6099 real(RKG) , intent(in), contiguous :: array(:)
6100 real(RKG) , intent(in), contiguous :: pattern(:)
6101 integer(IK) :: index
6102 end function
6103#endif
6104
6105 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6106
6107 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6108 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6109 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6110
6111 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6112
6113#if SK5_ENABLED
6114 module function getSILCusCom_D1_D1_SK5(array, pattern, iseq) result(index)
6115#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6116 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_SK5
6117#endif
6118 use pm_kind, only: SKG => SK5
6119 character(*,SKG) , intent(in), contiguous :: array(:)
6120 character(*,SKG) , intent(in), contiguous :: pattern(:)
6121 procedure(logical(LK)) :: iseq
6122 integer(IK) :: index
6123 end function
6124#endif
6125
6126#if SK4_ENABLED
6127 module function getSILCusCom_D1_D1_SK4(array, pattern, iseq) result(index)
6128#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6129 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_SK4
6130#endif
6131 use pm_kind, only: SKG => SK4
6132 character(*,SKG) , intent(in), contiguous :: array(:)
6133 character(*,SKG) , intent(in), contiguous :: pattern(:)
6134 procedure(logical(LK)) :: iseq
6135 integer(IK) :: index
6136 end function
6137#endif
6138
6139#if SK3_ENABLED
6140 module function getSILCusCom_D1_D1_SK3(array, pattern, iseq) result(index)
6141#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6142 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_SK3
6143#endif
6144 use pm_kind, only: SKG => SK3
6145 character(*,SKG) , intent(in), contiguous :: array(:)
6146 character(*,SKG) , intent(in), contiguous :: pattern(:)
6147 procedure(logical(LK)) :: iseq
6148 integer(IK) :: index
6149 end function
6150#endif
6151
6152#if SK2_ENABLED
6153 module function getSILCusCom_D1_D1_SK2(array, pattern, iseq) result(index)
6154#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6155 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_SK2
6156#endif
6157 use pm_kind, only: SKG => SK2
6158 character(*,SKG) , intent(in), contiguous :: array(:)
6159 character(*,SKG) , intent(in), contiguous :: pattern(:)
6160 procedure(logical(LK)) :: iseq
6161 integer(IK) :: index
6162 end function
6163#endif
6164
6165#if SK1_ENABLED
6166 module function getSILCusCom_D1_D1_SK1(array, pattern, iseq) result(index)
6167#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6168 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_SK1
6169#endif
6170 use pm_kind, only: SKG => SK1
6171 character(*,SKG) , intent(in), contiguous :: array(:)
6172 character(*,SKG) , intent(in), contiguous :: pattern(:)
6173 procedure(logical(LK)) :: iseq
6174 integer(IK) :: index
6175 end function
6176#endif
6177
6178 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6179
6180#if IK5_ENABLED
6181 module function getSILCusCom_D1_D1_IK5(array, pattern, iseq) result(index)
6182#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6183 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_IK5
6184#endif
6185 use pm_kind, only: IKG => IK5
6186 integer(IKG) , intent(in), contiguous :: array(:)
6187 integer(IKG) , intent(in), contiguous :: pattern(:)
6188 procedure(logical(LK)) :: iseq
6189 integer(IK) :: index
6190 end function
6191#endif
6192
6193#if IK4_ENABLED
6194 module function getSILCusCom_D1_D1_IK4(array, pattern, iseq) result(index)
6195#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6196 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_IK4
6197#endif
6198 use pm_kind, only: IKG => IK4
6199 integer(IKG) , intent(in), contiguous :: array(:)
6200 integer(IKG) , intent(in), contiguous :: pattern(:)
6201 procedure(logical(LK)) :: iseq
6202 integer(IK) :: index
6203 end function
6204#endif
6205
6206#if IK3_ENABLED
6207 module function getSILCusCom_D1_D1_IK3(array, pattern, iseq) result(index)
6208#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6209 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_IK3
6210#endif
6211 use pm_kind, only: IKG => IK3
6212 integer(IKG) , intent(in), contiguous :: array(:)
6213 integer(IKG) , intent(in), contiguous :: pattern(:)
6214 procedure(logical(LK)) :: iseq
6215 integer(IK) :: index
6216 end function
6217#endif
6218
6219#if IK2_ENABLED
6220 module function getSILCusCom_D1_D1_IK2(array, pattern, iseq) result(index)
6221#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6222 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_IK2
6223#endif
6224 use pm_kind, only: IKG => IK2
6225 integer(IKG) , intent(in), contiguous :: array(:)
6226 integer(IKG) , intent(in), contiguous :: pattern(:)
6227 procedure(logical(LK)) :: iseq
6228 integer(IK) :: index
6229 end function
6230#endif
6231
6232#if IK1_ENABLED
6233 module function getSILCusCom_D1_D1_IK1(array, pattern, iseq) result(index)
6234#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6235 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_IK1
6236#endif
6237 use pm_kind, only: IKG => IK1
6238 integer(IKG) , intent(in), contiguous :: array(:)
6239 integer(IKG) , intent(in), contiguous :: pattern(:)
6240 procedure(logical(LK)) :: iseq
6241 integer(IK) :: index
6242 end function
6243#endif
6244
6245 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6246
6247#if LK5_ENABLED
6248 module function getSILCusCom_D1_D1_LK5(array, pattern, iseq) result(index)
6249#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6250 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_LK5
6251#endif
6252 use pm_kind, only: LKG => LK5
6253 logical(LKG) , intent(in), contiguous :: array(:)
6254 logical(LKG) , intent(in), contiguous :: pattern(:)
6255 procedure(logical(LK)) :: iseq
6256 integer(IK) :: index
6257 end function
6258#endif
6259
6260#if LK4_ENABLED
6261 module function getSILCusCom_D1_D1_LK4(array, pattern, iseq) result(index)
6262#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6263 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_LK4
6264#endif
6265 use pm_kind, only: LKG => LK4
6266 logical(LKG) , intent(in), contiguous :: array(:)
6267 logical(LKG) , intent(in), contiguous :: pattern(:)
6268 procedure(logical(LK)) :: iseq
6269 integer(IK) :: index
6270 end function
6271#endif
6272
6273#if LK3_ENABLED
6274 module function getSILCusCom_D1_D1_LK3(array, pattern, iseq) result(index)
6275#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6276 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_LK3
6277#endif
6278 use pm_kind, only: LKG => LK3
6279 logical(LKG) , intent(in), contiguous :: array(:)
6280 logical(LKG) , intent(in), contiguous :: pattern(:)
6281 procedure(logical(LK)) :: iseq
6282 integer(IK) :: index
6283 end function
6284#endif
6285
6286#if LK2_ENABLED
6287 module function getSILCusCom_D1_D1_LK2(array, pattern, iseq) result(index)
6288#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6289 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_LK2
6290#endif
6291 use pm_kind, only: LKG => LK2
6292 logical(LKG) , intent(in), contiguous :: array(:)
6293 logical(LKG) , intent(in), contiguous :: pattern(:)
6294 procedure(logical(LK)) :: iseq
6295 integer(IK) :: index
6296 end function
6297#endif
6298
6299#if LK1_ENABLED
6300 module function getSILCusCom_D1_D1_LK1(array, pattern, iseq) result(index)
6301#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6302 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_LK1
6303#endif
6304 use pm_kind, only: LKG => LK1
6305 logical(LKG) , intent(in), contiguous :: array(:)
6306 logical(LKG) , intent(in), contiguous :: pattern(:)
6307 procedure(logical(LK)) :: iseq
6308 integer(IK) :: index
6309 end function
6310#endif
6311
6312 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6313
6314#if CK5_ENABLED
6315 module function getSILCusCom_D1_D1_CK5(array, pattern, iseq) result(index)
6316#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6317 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_CK5
6318#endif
6319 use pm_kind, only: CKG => CK5
6320 complex(CKG) , intent(in), contiguous :: array(:)
6321 complex(CKG) , intent(in), contiguous :: pattern(:)
6322 procedure(logical(LK)) :: iseq
6323 integer(IK) :: index
6324 end function
6325#endif
6326
6327#if CK4_ENABLED
6328 module function getSILCusCom_D1_D1_CK4(array, pattern, iseq) result(index)
6329#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6330 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_CK4
6331#endif
6332 use pm_kind, only: CKG => CK4
6333 complex(CKG) , intent(in), contiguous :: array(:)
6334 complex(CKG) , intent(in), contiguous :: pattern(:)
6335 procedure(logical(LK)) :: iseq
6336 integer(IK) :: index
6337 end function
6338#endif
6339
6340#if CK3_ENABLED
6341 module function getSILCusCom_D1_D1_CK3(array, pattern, iseq) result(index)
6342#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6343 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_CK3
6344#endif
6345 use pm_kind, only: CKG => CK3
6346 complex(CKG) , intent(in), contiguous :: array(:)
6347 complex(CKG) , intent(in), contiguous :: pattern(:)
6348 procedure(logical(LK)) :: iseq
6349 integer(IK) :: index
6350 end function
6351#endif
6352
6353#if CK2_ENABLED
6354 module function getSILCusCom_D1_D1_CK2(array, pattern, iseq) result(index)
6355#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6356 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_CK2
6357#endif
6358 use pm_kind, only: CKG => CK2
6359 complex(CKG) , intent(in), contiguous :: array(:)
6360 complex(CKG) , intent(in), contiguous :: pattern(:)
6361 procedure(logical(LK)) :: iseq
6362 integer(IK) :: index
6363 end function
6364#endif
6365
6366#if CK1_ENABLED
6367 module function getSILCusCom_D1_D1_CK1(array, pattern, iseq) result(index)
6368#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6369 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_CK1
6370#endif
6371 use pm_kind, only: CKG => CK1
6372 complex(CKG) , intent(in), contiguous :: array(:)
6373 complex(CKG) , intent(in), contiguous :: pattern(:)
6374 procedure(logical(LK)) :: iseq
6375 integer(IK) :: index
6376 end function
6377#endif
6378
6379 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6380
6381#if RK5_ENABLED
6382 module function getSILCusCom_D1_D1_RK5(array, pattern, iseq) result(index)
6383#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6384 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_RK5
6385#endif
6386 use pm_kind, only: RKG => RK5
6387 real(RKG) , intent(in), contiguous :: array(:)
6388 real(RKG) , intent(in), contiguous :: pattern(:)
6389 procedure(logical(LK)) :: iseq
6390 integer(IK) :: index
6391 end function
6392#endif
6393
6394#if RK4_ENABLED
6395 module function getSILCusCom_D1_D1_RK4(array, pattern, iseq) result(index)
6396#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6397 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_RK4
6398#endif
6399 use pm_kind, only: RKG => RK4
6400 real(RKG) , intent(in), contiguous :: array(:)
6401 real(RKG) , intent(in), contiguous :: pattern(:)
6402 procedure(logical(LK)) :: iseq
6403 integer(IK) :: index
6404 end function
6405#endif
6406
6407#if RK3_ENABLED
6408 module function getSILCusCom_D1_D1_RK3(array, pattern, iseq) result(index)
6409#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6410 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_RK3
6411#endif
6412 use pm_kind, only: RKG => RK3
6413 real(RKG) , intent(in), contiguous :: array(:)
6414 real(RKG) , intent(in), contiguous :: pattern(:)
6415 procedure(logical(LK)) :: iseq
6416 integer(IK) :: index
6417 end function
6418#endif
6419
6420#if RK2_ENABLED
6421 module function getSILCusCom_D1_D1_RK2(array, pattern, iseq) result(index)
6422#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6423 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_RK2
6424#endif
6425 use pm_kind, only: RKG => RK2
6426 real(RKG) , intent(in), contiguous :: array(:)
6427 real(RKG) , intent(in), contiguous :: pattern(:)
6428 procedure(logical(LK)) :: iseq
6429 integer(IK) :: index
6430 end function
6431#endif
6432
6433#if RK1_ENABLED
6434 module function getSILCusCom_D1_D1_RK1(array, pattern, iseq) result(index)
6435#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6436 !DEC$ ATTRIBUTES DLLEXPORT :: getSILCusCom_D1_D1_RK1
6437#endif
6438 use pm_kind, only: RKG => RK1
6439 real(RKG) , intent(in), contiguous :: array(:)
6440 real(RKG) , intent(in), contiguous :: pattern(:)
6441 procedure(logical(LK)) :: iseq
6442 integer(IK) :: index
6443 end function
6444#endif
6445
6446 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6447
6448 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6449 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6450 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6451
6452 end interface
6453
6454!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6455
6573 interface getSIR
6574
6575 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6576 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6577 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6578
6579 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6580
6581#if SK5_ENABLED
6582 PURE module function getSIRDefCom_D0_D0_SK5(array, pattern) result(index)
6583#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6584 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D0_D0_SK5
6585#endif
6586 use pm_kind, only: SKG => SK5
6587 character(*,SKG) , intent(in) :: array
6588 character(*,SKG) , intent(in) :: pattern
6589 integer(IK) :: index
6590 end function
6591#endif
6592
6593#if SK4_ENABLED
6594 PURE module function getSIRDefCom_D0_D0_SK4(array, pattern) result(index)
6595#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6596 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D0_D0_SK4
6597#endif
6598 use pm_kind, only: SKG => SK4
6599 character(*,SKG) , intent(in) :: array
6600 character(*,SKG) , intent(in) :: pattern
6601 integer(IK) :: index
6602 end function
6603#endif
6604
6605#if SK3_ENABLED
6606 PURE module function getSIRDefCom_D0_D0_SK3(array, pattern) result(index)
6607#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6608 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D0_D0_SK3
6609#endif
6610 use pm_kind, only: SKG => SK3
6611 character(*,SKG) , intent(in) :: array
6612 character(*,SKG) , intent(in) :: pattern
6613 integer(IK) :: index
6614 end function
6615#endif
6616
6617#if SK2_ENABLED
6618 PURE module function getSIRDefCom_D0_D0_SK2(array, pattern) result(index)
6619#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6620 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D0_D0_SK2
6621#endif
6622 use pm_kind, only: SKG => SK2
6623 character(*,SKG) , intent(in) :: array
6624 character(*,SKG) , intent(in) :: pattern
6625 integer(IK) :: index
6626 end function
6627#endif
6628
6629#if SK1_ENABLED
6630 PURE module function getSIRDefCom_D0_D0_SK1(array, pattern) result(index)
6631#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6632 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D0_D0_SK1
6633#endif
6634 use pm_kind, only: SKG => SK1
6635 character(*,SKG) , intent(in) :: array
6636 character(*,SKG) , intent(in) :: pattern
6637 integer(IK) :: index
6638 end function
6639#endif
6640
6641 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6642
6643#if SK5_ENABLED
6644 PURE module function getSIRDefCom_D1_D0_SK5(array, pattern) result(index)
6645#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6646 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_SK5
6647#endif
6648 use pm_kind, only: SKG => SK5
6649 character(*,SKG) , intent(in), contiguous :: array(:)
6650 character(*,SKG) , intent(in) :: pattern
6651 integer(IK) :: index
6652 end function
6653#endif
6654
6655#if SK4_ENABLED
6656 PURE module function getSIRDefCom_D1_D0_SK4(array, pattern) result(index)
6657#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6658 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_SK4
6659#endif
6660 use pm_kind, only: SKG => SK4
6661 character(*,SKG) , intent(in), contiguous :: array(:)
6662 character(*,SKG) , intent(in) :: pattern
6663 integer(IK) :: index
6664 end function
6665#endif
6666
6667#if SK3_ENABLED
6668 PURE module function getSIRDefCom_D1_D0_SK3(array, pattern) result(index)
6669#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6670 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_SK3
6671#endif
6672 use pm_kind, only: SKG => SK3
6673 character(*,SKG) , intent(in), contiguous :: array(:)
6674 character(*,SKG) , intent(in) :: pattern
6675 integer(IK) :: index
6676 end function
6677#endif
6678
6679#if SK2_ENABLED
6680 PURE module function getSIRDefCom_D1_D0_SK2(array, pattern) result(index)
6681#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6682 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_SK2
6683#endif
6684 use pm_kind, only: SKG => SK2
6685 character(*,SKG) , intent(in), contiguous :: array(:)
6686 character(*,SKG) , intent(in) :: pattern
6687 integer(IK) :: index
6688 end function
6689#endif
6690
6691#if SK1_ENABLED
6692 PURE module function getSIRDefCom_D1_D0_SK1(array, pattern) result(index)
6693#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6694 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_SK1
6695#endif
6696 use pm_kind, only: SKG => SK1
6697 character(*,SKG) , intent(in), contiguous :: array(:)
6698 character(*,SKG) , intent(in) :: pattern
6699 integer(IK) :: index
6700 end function
6701#endif
6702
6703 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6704
6705#if IK5_ENABLED
6706 PURE module function getSIRDefCom_D1_D0_IK5(array, pattern) result(index)
6707#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6708 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_IK5
6709#endif
6710 use pm_kind, only: IKG => IK5
6711 integer(IKG) , intent(in), contiguous :: array(:)
6712 integer(IKG) , intent(in) :: pattern
6713 integer(IK) :: index
6714 end function
6715#endif
6716
6717#if IK4_ENABLED
6718 PURE module function getSIRDefCom_D1_D0_IK4(array, pattern) result(index)
6719#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6720 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_IK4
6721#endif
6722 use pm_kind, only: IKG => IK4
6723 integer(IKG) , intent(in), contiguous :: array(:)
6724 integer(IKG) , intent(in) :: pattern
6725 integer(IK) :: index
6726 end function
6727#endif
6728
6729#if IK3_ENABLED
6730 PURE module function getSIRDefCom_D1_D0_IK3(array, pattern) result(index)
6731#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6732 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_IK3
6733#endif
6734 use pm_kind, only: IKG => IK3
6735 integer(IKG) , intent(in), contiguous :: array(:)
6736 integer(IKG) , intent(in) :: pattern
6737 integer(IK) :: index
6738 end function
6739#endif
6740
6741#if IK2_ENABLED
6742 PURE module function getSIRDefCom_D1_D0_IK2(array, pattern) result(index)
6743#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6744 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_IK2
6745#endif
6746 use pm_kind, only: IKG => IK2
6747 integer(IKG) , intent(in), contiguous :: array(:)
6748 integer(IKG) , intent(in) :: pattern
6749 integer(IK) :: index
6750 end function
6751#endif
6752
6753#if IK1_ENABLED
6754 PURE module function getSIRDefCom_D1_D0_IK1(array, pattern) result(index)
6755#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6756 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_IK1
6757#endif
6758 use pm_kind, only: IKG => IK1
6759 integer(IKG) , intent(in), contiguous :: array(:)
6760 integer(IKG) , intent(in) :: pattern
6761 integer(IK) :: index
6762 end function
6763#endif
6764
6765 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6766
6767#if LK5_ENABLED
6768 PURE module function getSIRDefCom_D1_D0_LK5(array, pattern) result(index)
6769#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6770 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_LK5
6771#endif
6772 use pm_kind, only: LKG => LK5
6773 logical(LKG) , intent(in), contiguous :: array(:)
6774 logical(LKG) , intent(in) :: pattern
6775 integer(IK) :: index
6776 end function
6777#endif
6778
6779#if LK4_ENABLED
6780 PURE module function getSIRDefCom_D1_D0_LK4(array, pattern) result(index)
6781#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6782 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_LK4
6783#endif
6784 use pm_kind, only: LKG => LK4
6785 logical(LKG) , intent(in), contiguous :: array(:)
6786 logical(LKG) , intent(in) :: pattern
6787 integer(IK) :: index
6788 end function
6789#endif
6790
6791#if LK3_ENABLED
6792 PURE module function getSIRDefCom_D1_D0_LK3(array, pattern) result(index)
6793#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6794 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_LK3
6795#endif
6796 use pm_kind, only: LKG => LK3
6797 logical(LKG) , intent(in), contiguous :: array(:)
6798 logical(LKG) , intent(in) :: pattern
6799 integer(IK) :: index
6800 end function
6801#endif
6802
6803#if LK2_ENABLED
6804 PURE module function getSIRDefCom_D1_D0_LK2(array, pattern) result(index)
6805#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6806 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_LK2
6807#endif
6808 use pm_kind, only: LKG => LK2
6809 logical(LKG) , intent(in), contiguous :: array(:)
6810 logical(LKG) , intent(in) :: pattern
6811 integer(IK) :: index
6812 end function
6813#endif
6814
6815#if LK1_ENABLED
6816 PURE module function getSIRDefCom_D1_D0_LK1(array, pattern) result(index)
6817#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6818 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_LK1
6819#endif
6820 use pm_kind, only: LKG => LK1
6821 logical(LKG) , intent(in), contiguous :: array(:)
6822 logical(LKG) , intent(in) :: pattern
6823 integer(IK) :: index
6824 end function
6825#endif
6826
6827 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6828
6829#if CK5_ENABLED
6830 PURE module function getSIRDefCom_D1_D0_CK5(array, pattern) result(index)
6831#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6832 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_CK5
6833#endif
6834 use pm_kind, only: CKG => CK5
6835 complex(CKG) , intent(in), contiguous :: array(:)
6836 complex(CKG) , intent(in) :: pattern
6837 integer(IK) :: index
6838 end function
6839#endif
6840
6841#if CK4_ENABLED
6842 PURE module function getSIRDefCom_D1_D0_CK4(array, pattern) result(index)
6843#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6844 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_CK4
6845#endif
6846 use pm_kind, only: CKG => CK4
6847 complex(CKG) , intent(in), contiguous :: array(:)
6848 complex(CKG) , intent(in) :: pattern
6849 integer(IK) :: index
6850 end function
6851#endif
6852
6853#if CK3_ENABLED
6854 PURE module function getSIRDefCom_D1_D0_CK3(array, pattern) result(index)
6855#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6856 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_CK3
6857#endif
6858 use pm_kind, only: CKG => CK3
6859 complex(CKG) , intent(in), contiguous :: array(:)
6860 complex(CKG) , intent(in) :: pattern
6861 integer(IK) :: index
6862 end function
6863#endif
6864
6865#if CK2_ENABLED
6866 PURE module function getSIRDefCom_D1_D0_CK2(array, pattern) result(index)
6867#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6868 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_CK2
6869#endif
6870 use pm_kind, only: CKG => CK2
6871 complex(CKG) , intent(in), contiguous :: array(:)
6872 complex(CKG) , intent(in) :: pattern
6873 integer(IK) :: index
6874 end function
6875#endif
6876
6877#if CK1_ENABLED
6878 PURE module function getSIRDefCom_D1_D0_CK1(array, pattern) result(index)
6879#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6880 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_CK1
6881#endif
6882 use pm_kind, only: CKG => CK1
6883 complex(CKG) , intent(in), contiguous :: array(:)
6884 complex(CKG) , intent(in) :: pattern
6885 integer(IK) :: index
6886 end function
6887#endif
6888
6889 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6890
6891#if RK5_ENABLED
6892 PURE module function getSIRDefCom_D1_D0_RK5(array, pattern) result(index)
6893#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6894 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_RK5
6895#endif
6896 use pm_kind, only: RKG => RK5
6897 real(RKG) , intent(in), contiguous :: array(:)
6898 real(RKG) , intent(in) :: pattern
6899 integer(IK) :: index
6900 end function
6901#endif
6902
6903#if RK4_ENABLED
6904 PURE module function getSIRDefCom_D1_D0_RK4(array, pattern) result(index)
6905#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6906 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_RK4
6907#endif
6908 use pm_kind, only: RKG => RK4
6909 real(RKG) , intent(in), contiguous :: array(:)
6910 real(RKG) , intent(in) :: pattern
6911 integer(IK) :: index
6912 end function
6913#endif
6914
6915#if RK3_ENABLED
6916 PURE module function getSIRDefCom_D1_D0_RK3(array, pattern) result(index)
6917#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6918 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_RK3
6919#endif
6920 use pm_kind, only: RKG => RK3
6921 real(RKG) , intent(in), contiguous :: array(:)
6922 real(RKG) , intent(in) :: pattern
6923 integer(IK) :: index
6924 end function
6925#endif
6926
6927#if RK2_ENABLED
6928 PURE module function getSIRDefCom_D1_D0_RK2(array, pattern) result(index)
6929#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6930 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_RK2
6931#endif
6932 use pm_kind, only: RKG => RK2
6933 real(RKG) , intent(in), contiguous :: array(:)
6934 real(RKG) , intent(in) :: pattern
6935 integer(IK) :: index
6936 end function
6937#endif
6938
6939#if RK1_ENABLED
6940 PURE module function getSIRDefCom_D1_D0_RK1(array, pattern) result(index)
6941#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6942 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D0_RK1
6943#endif
6944 use pm_kind, only: RKG => RK1
6945 real(RKG) , intent(in), contiguous :: array(:)
6946 real(RKG) , intent(in) :: pattern
6947 integer(IK) :: index
6948 end function
6949#endif
6950
6951 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6952
6953 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6954 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6955 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6956
6957 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6958
6959#if SK5_ENABLED
6960 module function getSIRCusCom_D0_D0_SK5(array, pattern, iseq) result(index)
6961#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6962 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D0_D0_SK5
6963#endif
6964 use pm_kind, only: SKG => SK5
6965 character(*,SKG) , intent(in) :: array
6966 character(*,SKG) , intent(in) :: pattern
6967 procedure(logical(LK)) :: iseq
6968 integer(IK) :: index
6969 end function
6970#endif
6971
6972#if SK4_ENABLED
6973 module function getSIRCusCom_D0_D0_SK4(array, pattern, iseq) result(index)
6974#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6975 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D0_D0_SK4
6976#endif
6977 use pm_kind, only: SKG => SK4
6978 character(*,SKG) , intent(in) :: array
6979 character(*,SKG) , intent(in) :: pattern
6980 procedure(logical(LK)) :: iseq
6981 integer(IK) :: index
6982 end function
6983#endif
6984
6985#if SK3_ENABLED
6986 module function getSIRCusCom_D0_D0_SK3(array, pattern, iseq) result(index)
6987#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6988 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D0_D0_SK3
6989#endif
6990 use pm_kind, only: SKG => SK3
6991 character(*,SKG) , intent(in) :: array
6992 character(*,SKG) , intent(in) :: pattern
6993 procedure(logical(LK)) :: iseq
6994 integer(IK) :: index
6995 end function
6996#endif
6997
6998#if SK2_ENABLED
6999 module function getSIRCusCom_D0_D0_SK2(array, pattern, iseq) result(index)
7000#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7001 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D0_D0_SK2
7002#endif
7003 use pm_kind, only: SKG => SK2
7004 character(*,SKG) , intent(in) :: array
7005 character(*,SKG) , intent(in) :: pattern
7006 procedure(logical(LK)) :: iseq
7007 integer(IK) :: index
7008 end function
7009#endif
7010
7011#if SK1_ENABLED
7012 module function getSIRCusCom_D0_D0_SK1(array, pattern, iseq) result(index)
7013#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7014 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D0_D0_SK1
7015#endif
7016 use pm_kind, only: SKG => SK1
7017 character(*,SKG) , intent(in) :: array
7018 character(*,SKG) , intent(in) :: pattern
7019 procedure(logical(LK)) :: iseq
7020 integer(IK) :: index
7021 end function
7022#endif
7023
7024 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7025
7026#if SK5_ENABLED
7027 module function getSIRCusCom_D1_D0_SK5(array, pattern, iseq) result(index)
7028#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7029 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_SK5
7030#endif
7031 use pm_kind, only: SKG => SK5
7032 character(*,SKG) , intent(in), contiguous :: array(:)
7033 character(*,SKG) , intent(in) :: pattern
7034 procedure(logical(LK)) :: iseq
7035 integer(IK) :: index
7036 end function
7037#endif
7038
7039#if SK4_ENABLED
7040 module function getSIRCusCom_D1_D0_SK4(array, pattern, iseq) result(index)
7041#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7042 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_SK4
7043#endif
7044 use pm_kind, only: SKG => SK4
7045 character(*,SKG) , intent(in), contiguous :: array(:)
7046 character(*,SKG) , intent(in) :: pattern
7047 procedure(logical(LK)) :: iseq
7048 integer(IK) :: index
7049 end function
7050#endif
7051
7052#if SK3_ENABLED
7053 module function getSIRCusCom_D1_D0_SK3(array, pattern, iseq) result(index)
7054#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7055 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_SK3
7056#endif
7057 use pm_kind, only: SKG => SK3
7058 character(*,SKG) , intent(in), contiguous :: array(:)
7059 character(*,SKG) , intent(in) :: pattern
7060 procedure(logical(LK)) :: iseq
7061 integer(IK) :: index
7062 end function
7063#endif
7064
7065#if SK2_ENABLED
7066 module function getSIRCusCom_D1_D0_SK2(array, pattern, iseq) result(index)
7067#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7068 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_SK2
7069#endif
7070 use pm_kind, only: SKG => SK2
7071 character(*,SKG) , intent(in), contiguous :: array(:)
7072 character(*,SKG) , intent(in) :: pattern
7073 procedure(logical(LK)) :: iseq
7074 integer(IK) :: index
7075 end function
7076#endif
7077
7078#if SK1_ENABLED
7079 module function getSIRCusCom_D1_D0_SK1(array, pattern, iseq) result(index)
7080#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7081 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_SK1
7082#endif
7083 use pm_kind, only: SKG => SK1
7084 character(*,SKG) , intent(in), contiguous :: array(:)
7085 character(*,SKG) , intent(in) :: pattern
7086 procedure(logical(LK)) :: iseq
7087 integer(IK) :: index
7088 end function
7089#endif
7090
7091 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7092
7093#if IK5_ENABLED
7094 module function getSIRCusCom_D1_D0_IK5(array, pattern, iseq) result(index)
7095#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7096 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_IK5
7097#endif
7098 use pm_kind, only: IKG => IK5
7099 integer(IKG) , intent(in), contiguous :: array(:)
7100 integer(IKG) , intent(in) :: pattern
7101 procedure(logical(LK)) :: iseq
7102 integer(IK) :: index
7103 end function
7104#endif
7105
7106#if IK4_ENABLED
7107 module function getSIRCusCom_D1_D0_IK4(array, pattern, iseq) result(index)
7108#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7109 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_IK4
7110#endif
7111 use pm_kind, only: IKG => IK4
7112 integer(IKG) , intent(in), contiguous :: array(:)
7113 integer(IKG) , intent(in) :: pattern
7114 procedure(logical(LK)) :: iseq
7115 integer(IK) :: index
7116 end function
7117#endif
7118
7119#if IK3_ENABLED
7120 module function getSIRCusCom_D1_D0_IK3(array, pattern, iseq) result(index)
7121#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7122 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_IK3
7123#endif
7124 use pm_kind, only: IKG => IK3
7125 integer(IKG) , intent(in), contiguous :: array(:)
7126 integer(IKG) , intent(in) :: pattern
7127 procedure(logical(LK)) :: iseq
7128 integer(IK) :: index
7129 end function
7130#endif
7131
7132#if IK2_ENABLED
7133 module function getSIRCusCom_D1_D0_IK2(array, pattern, iseq) result(index)
7134#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7135 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_IK2
7136#endif
7137 use pm_kind, only: IKG => IK2
7138 integer(IKG) , intent(in), contiguous :: array(:)
7139 integer(IKG) , intent(in) :: pattern
7140 procedure(logical(LK)) :: iseq
7141 integer(IK) :: index
7142 end function
7143#endif
7144
7145#if IK1_ENABLED
7146 module function getSIRCusCom_D1_D0_IK1(array, pattern, iseq) result(index)
7147#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7148 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_IK1
7149#endif
7150 use pm_kind, only: IKG => IK1
7151 integer(IKG) , intent(in), contiguous :: array(:)
7152 integer(IKG) , intent(in) :: pattern
7153 procedure(logical(LK)) :: iseq
7154 integer(IK) :: index
7155 end function
7156#endif
7157
7158 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7159
7160#if LK5_ENABLED
7161 module function getSIRCusCom_D1_D0_LK5(array, pattern, iseq) result(index)
7162#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7163 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_LK5
7164#endif
7165 use pm_kind, only: LKG => LK5
7166 logical(LKG) , intent(in), contiguous :: array(:)
7167 logical(LKG) , intent(in) :: pattern
7168 procedure(logical(LK)) :: iseq
7169 integer(IK) :: index
7170 end function
7171#endif
7172
7173#if LK4_ENABLED
7174 module function getSIRCusCom_D1_D0_LK4(array, pattern, iseq) result(index)
7175#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7176 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_LK4
7177#endif
7178 use pm_kind, only: LKG => LK4
7179 logical(LKG) , intent(in), contiguous :: array(:)
7180 logical(LKG) , intent(in) :: pattern
7181 procedure(logical(LK)) :: iseq
7182 integer(IK) :: index
7183 end function
7184#endif
7185
7186#if LK3_ENABLED
7187 module function getSIRCusCom_D1_D0_LK3(array, pattern, iseq) result(index)
7188#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7189 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_LK3
7190#endif
7191 use pm_kind, only: LKG => LK3
7192 logical(LKG) , intent(in), contiguous :: array(:)
7193 logical(LKG) , intent(in) :: pattern
7194 procedure(logical(LK)) :: iseq
7195 integer(IK) :: index
7196 end function
7197#endif
7198
7199#if LK2_ENABLED
7200 module function getSIRCusCom_D1_D0_LK2(array, pattern, iseq) result(index)
7201#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7202 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_LK2
7203#endif
7204 use pm_kind, only: LKG => LK2
7205 logical(LKG) , intent(in), contiguous :: array(:)
7206 logical(LKG) , intent(in) :: pattern
7207 procedure(logical(LK)) :: iseq
7208 integer(IK) :: index
7209 end function
7210#endif
7211
7212#if LK1_ENABLED
7213 module function getSIRCusCom_D1_D0_LK1(array, pattern, iseq) result(index)
7214#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7215 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_LK1
7216#endif
7217 use pm_kind, only: LKG => LK1
7218 logical(LKG) , intent(in), contiguous :: array(:)
7219 logical(LKG) , intent(in) :: pattern
7220 procedure(logical(LK)) :: iseq
7221 integer(IK) :: index
7222 end function
7223#endif
7224
7225 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7226
7227#if CK5_ENABLED
7228 module function getSIRCusCom_D1_D0_CK5(array, pattern, iseq) result(index)
7229#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7230 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_CK5
7231#endif
7232 use pm_kind, only: CKG => CK5
7233 complex(CKG) , intent(in), contiguous :: array(:)
7234 complex(CKG) , intent(in) :: pattern
7235 procedure(logical(LK)) :: iseq
7236 integer(IK) :: index
7237 end function
7238#endif
7239
7240#if CK4_ENABLED
7241 module function getSIRCusCom_D1_D0_CK4(array, pattern, iseq) result(index)
7242#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7243 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_CK4
7244#endif
7245 use pm_kind, only: CKG => CK4
7246 complex(CKG) , intent(in), contiguous :: array(:)
7247 complex(CKG) , intent(in) :: pattern
7248 procedure(logical(LK)) :: iseq
7249 integer(IK) :: index
7250 end function
7251#endif
7252
7253#if CK3_ENABLED
7254 module function getSIRCusCom_D1_D0_CK3(array, pattern, iseq) result(index)
7255#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7256 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_CK3
7257#endif
7258 use pm_kind, only: CKG => CK3
7259 complex(CKG) , intent(in), contiguous :: array(:)
7260 complex(CKG) , intent(in) :: pattern
7261 procedure(logical(LK)) :: iseq
7262 integer(IK) :: index
7263 end function
7264#endif
7265
7266#if CK2_ENABLED
7267 module function getSIRCusCom_D1_D0_CK2(array, pattern, iseq) result(index)
7268#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7269 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_CK2
7270#endif
7271 use pm_kind, only: CKG => CK2
7272 complex(CKG) , intent(in), contiguous :: array(:)
7273 complex(CKG) , intent(in) :: pattern
7274 procedure(logical(LK)) :: iseq
7275 integer(IK) :: index
7276 end function
7277#endif
7278
7279#if CK1_ENABLED
7280 module function getSIRCusCom_D1_D0_CK1(array, pattern, iseq) result(index)
7281#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7282 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_CK1
7283#endif
7284 use pm_kind, only: CKG => CK1
7285 complex(CKG) , intent(in), contiguous :: array(:)
7286 complex(CKG) , intent(in) :: pattern
7287 procedure(logical(LK)) :: iseq
7288 integer(IK) :: index
7289 end function
7290#endif
7291
7292 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7293
7294#if RK5_ENABLED
7295 module function getSIRCusCom_D1_D0_RK5(array, pattern, iseq) result(index)
7296#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7297 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_RK5
7298#endif
7299 use pm_kind, only: RKG => RK5
7300 real(RKG) , intent(in), contiguous :: array(:)
7301 real(RKG) , intent(in) :: pattern
7302 procedure(logical(LK)) :: iseq
7303 integer(IK) :: index
7304 end function
7305#endif
7306
7307#if RK4_ENABLED
7308 module function getSIRCusCom_D1_D0_RK4(array, pattern, iseq) result(index)
7309#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7310 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_RK4
7311#endif
7312 use pm_kind, only: RKG => RK4
7313 real(RKG) , intent(in), contiguous :: array(:)
7314 real(RKG) , intent(in) :: pattern
7315 procedure(logical(LK)) :: iseq
7316 integer(IK) :: index
7317 end function
7318#endif
7319
7320#if RK3_ENABLED
7321 module function getSIRCusCom_D1_D0_RK3(array, pattern, iseq) result(index)
7322#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7323 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_RK3
7324#endif
7325 use pm_kind, only: RKG => RK3
7326 real(RKG) , intent(in), contiguous :: array(:)
7327 real(RKG) , intent(in) :: pattern
7328 procedure(logical(LK)) :: iseq
7329 integer(IK) :: index
7330 end function
7331#endif
7332
7333#if RK2_ENABLED
7334 module function getSIRCusCom_D1_D0_RK2(array, pattern, iseq) result(index)
7335#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7336 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_RK2
7337#endif
7338 use pm_kind, only: RKG => RK2
7339 real(RKG) , intent(in), contiguous :: array(:)
7340 real(RKG) , intent(in) :: pattern
7341 procedure(logical(LK)) :: iseq
7342 integer(IK) :: index
7343 end function
7344#endif
7345
7346#if RK1_ENABLED
7347 module function getSIRCusCom_D1_D0_RK1(array, pattern, iseq) result(index)
7348#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7349 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D0_RK1
7350#endif
7351 use pm_kind, only: RKG => RK1
7352 real(RKG) , intent(in), contiguous :: array(:)
7353 real(RKG) , intent(in) :: pattern
7354 procedure(logical(LK)) :: iseq
7355 integer(IK) :: index
7356 end function
7357#endif
7358
7359 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7360
7361 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7362 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7363 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7364
7365 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7366
7367#if SK5_ENABLED
7368 PURE module function getSIRDefCom_D1_D1_SK5(array, pattern) result(index)
7369#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7370 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_SK5
7371#endif
7372 use pm_kind, only: SKG => SK5
7373 character(*,SKG) , intent(in), contiguous :: array(:)
7374 character(*,SKG) , intent(in), contiguous :: pattern(:)
7375 integer(IK) :: index
7376 end function
7377#endif
7378
7379#if SK4_ENABLED
7380 PURE module function getSIRDefCom_D1_D1_SK4(array, pattern) result(index)
7381#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7382 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_SK4
7383#endif
7384 use pm_kind, only: SKG => SK4
7385 character(*,SKG) , intent(in), contiguous :: array(:)
7386 character(*,SKG) , intent(in), contiguous :: pattern(:)
7387 integer(IK) :: index
7388 end function
7389#endif
7390
7391#if SK3_ENABLED
7392 PURE module function getSIRDefCom_D1_D1_SK3(array, pattern) result(index)
7393#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7394 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_SK3
7395#endif
7396 use pm_kind, only: SKG => SK3
7397 character(*,SKG) , intent(in), contiguous :: array(:)
7398 character(*,SKG) , intent(in), contiguous :: pattern(:)
7399 integer(IK) :: index
7400 end function
7401#endif
7402
7403#if SK2_ENABLED
7404 PURE module function getSIRDefCom_D1_D1_SK2(array, pattern) result(index)
7405#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7406 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_SK2
7407#endif
7408 use pm_kind, only: SKG => SK2
7409 character(*,SKG) , intent(in), contiguous :: array(:)
7410 character(*,SKG) , intent(in), contiguous :: pattern(:)
7411 integer(IK) :: index
7412 end function
7413#endif
7414
7415#if SK1_ENABLED
7416 PURE module function getSIRDefCom_D1_D1_SK1(array, pattern) result(index)
7417#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7418 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_SK1
7419#endif
7420 use pm_kind, only: SKG => SK1
7421 character(*,SKG) , intent(in), contiguous :: array(:)
7422 character(*,SKG) , intent(in), contiguous :: pattern(:)
7423 integer(IK) :: index
7424 end function
7425#endif
7426
7427 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7428
7429#if IK5_ENABLED
7430 PURE module function getSIRDefCom_D1_D1_IK5(array, pattern) result(index)
7431#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7432 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_IK5
7433#endif
7434 use pm_kind, only: IKG => IK5
7435 integer(IKG) , intent(in), contiguous :: array(:)
7436 integer(IKG) , intent(in), contiguous :: pattern(:)
7437 integer(IK) :: index
7438 end function
7439#endif
7440
7441#if IK4_ENABLED
7442 PURE module function getSIRDefCom_D1_D1_IK4(array, pattern) result(index)
7443#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7444 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_IK4
7445#endif
7446 use pm_kind, only: IKG => IK4
7447 integer(IKG) , intent(in), contiguous :: array(:)
7448 integer(IKG) , intent(in), contiguous :: pattern(:)
7449 integer(IK) :: index
7450 end function
7451#endif
7452
7453#if IK3_ENABLED
7454 PURE module function getSIRDefCom_D1_D1_IK3(array, pattern) result(index)
7455#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7456 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_IK3
7457#endif
7458 use pm_kind, only: IKG => IK3
7459 integer(IKG) , intent(in), contiguous :: array(:)
7460 integer(IKG) , intent(in), contiguous :: pattern(:)
7461 integer(IK) :: index
7462 end function
7463#endif
7464
7465#if IK2_ENABLED
7466 PURE module function getSIRDefCom_D1_D1_IK2(array, pattern) result(index)
7467#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7468 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_IK2
7469#endif
7470 use pm_kind, only: IKG => IK2
7471 integer(IKG) , intent(in), contiguous :: array(:)
7472 integer(IKG) , intent(in), contiguous :: pattern(:)
7473 integer(IK) :: index
7474 end function
7475#endif
7476
7477#if IK1_ENABLED
7478 PURE module function getSIRDefCom_D1_D1_IK1(array, pattern) result(index)
7479#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7480 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_IK1
7481#endif
7482 use pm_kind, only: IKG => IK1
7483 integer(IKG) , intent(in), contiguous :: array(:)
7484 integer(IKG) , intent(in), contiguous :: pattern(:)
7485 integer(IK) :: index
7486 end function
7487#endif
7488
7489 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7490
7491#if LK5_ENABLED
7492 PURE module function getSIRDefCom_D1_D1_LK5(array, pattern) result(index)
7493#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7494 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_LK5
7495#endif
7496 use pm_kind, only: LKG => LK5
7497 logical(LKG) , intent(in), contiguous :: array(:)
7498 logical(LKG) , intent(in), contiguous :: pattern(:)
7499 integer(IK) :: index
7500 end function
7501#endif
7502
7503#if LK4_ENABLED
7504 PURE module function getSIRDefCom_D1_D1_LK4(array, pattern) result(index)
7505#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7506 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_LK4
7507#endif
7508 use pm_kind, only: LKG => LK4
7509 logical(LKG) , intent(in), contiguous :: array(:)
7510 logical(LKG) , intent(in), contiguous :: pattern(:)
7511 integer(IK) :: index
7512 end function
7513#endif
7514
7515#if LK3_ENABLED
7516 PURE module function getSIRDefCom_D1_D1_LK3(array, pattern) result(index)
7517#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7518 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_LK3
7519#endif
7520 use pm_kind, only: LKG => LK3
7521 logical(LKG) , intent(in), contiguous :: array(:)
7522 logical(LKG) , intent(in), contiguous :: pattern(:)
7523 integer(IK) :: index
7524 end function
7525#endif
7526
7527#if LK2_ENABLED
7528 PURE module function getSIRDefCom_D1_D1_LK2(array, pattern) result(index)
7529#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7530 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_LK2
7531#endif
7532 use pm_kind, only: LKG => LK2
7533 logical(LKG) , intent(in), contiguous :: array(:)
7534 logical(LKG) , intent(in), contiguous :: pattern(:)
7535 integer(IK) :: index
7536 end function
7537#endif
7538
7539#if LK1_ENABLED
7540 PURE module function getSIRDefCom_D1_D1_LK1(array, pattern) result(index)
7541#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7542 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_LK1
7543#endif
7544 use pm_kind, only: LKG => LK1
7545 logical(LKG) , intent(in), contiguous :: array(:)
7546 logical(LKG) , intent(in), contiguous :: pattern(:)
7547 integer(IK) :: index
7548 end function
7549#endif
7550
7551 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7552
7553#if CK5_ENABLED
7554 PURE module function getSIRDefCom_D1_D1_CK5(array, pattern) result(index)
7555#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7556 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_CK5
7557#endif
7558 use pm_kind, only: CKG => CK5
7559 complex(CKG) , intent(in), contiguous :: array(:)
7560 complex(CKG) , intent(in), contiguous :: pattern(:)
7561 integer(IK) :: index
7562 end function
7563#endif
7564
7565#if CK4_ENABLED
7566 PURE module function getSIRDefCom_D1_D1_CK4(array, pattern) result(index)
7567#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7568 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_CK4
7569#endif
7570 use pm_kind, only: CKG => CK4
7571 complex(CKG) , intent(in), contiguous :: array(:)
7572 complex(CKG) , intent(in), contiguous :: pattern(:)
7573 integer(IK) :: index
7574 end function
7575#endif
7576
7577#if CK3_ENABLED
7578 PURE module function getSIRDefCom_D1_D1_CK3(array, pattern) result(index)
7579#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7580 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_CK3
7581#endif
7582 use pm_kind, only: CKG => CK3
7583 complex(CKG) , intent(in), contiguous :: array(:)
7584 complex(CKG) , intent(in), contiguous :: pattern(:)
7585 integer(IK) :: index
7586 end function
7587#endif
7588
7589#if CK2_ENABLED
7590 PURE module function getSIRDefCom_D1_D1_CK2(array, pattern) result(index)
7591#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7592 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_CK2
7593#endif
7594 use pm_kind, only: CKG => CK2
7595 complex(CKG) , intent(in), contiguous :: array(:)
7596 complex(CKG) , intent(in), contiguous :: pattern(:)
7597 integer(IK) :: index
7598 end function
7599#endif
7600
7601#if CK1_ENABLED
7602 PURE module function getSIRDefCom_D1_D1_CK1(array, pattern) result(index)
7603#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7604 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_CK1
7605#endif
7606 use pm_kind, only: CKG => CK1
7607 complex(CKG) , intent(in), contiguous :: array(:)
7608 complex(CKG) , intent(in), contiguous :: pattern(:)
7609 integer(IK) :: index
7610 end function
7611#endif
7612
7613 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7614
7615#if RK5_ENABLED
7616 PURE module function getSIRDefCom_D1_D1_RK5(array, pattern) result(index)
7617#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7618 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_RK5
7619#endif
7620 use pm_kind, only: RKG => RK5
7621 real(RKG) , intent(in), contiguous :: array(:)
7622 real(RKG) , intent(in), contiguous :: pattern(:)
7623 integer(IK) :: index
7624 end function
7625#endif
7626
7627#if RK4_ENABLED
7628 PURE module function getSIRDefCom_D1_D1_RK4(array, pattern) result(index)
7629#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7630 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_RK4
7631#endif
7632 use pm_kind, only: RKG => RK4
7633 real(RKG) , intent(in), contiguous :: array(:)
7634 real(RKG) , intent(in), contiguous :: pattern(:)
7635 integer(IK) :: index
7636 end function
7637#endif
7638
7639#if RK3_ENABLED
7640 PURE module function getSIRDefCom_D1_D1_RK3(array, pattern) result(index)
7641#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7642 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_RK3
7643#endif
7644 use pm_kind, only: RKG => RK3
7645 real(RKG) , intent(in), contiguous :: array(:)
7646 real(RKG) , intent(in), contiguous :: pattern(:)
7647 integer(IK) :: index
7648 end function
7649#endif
7650
7651#if RK2_ENABLED
7652 PURE module function getSIRDefCom_D1_D1_RK2(array, pattern) result(index)
7653#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7654 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_RK2
7655#endif
7656 use pm_kind, only: RKG => RK2
7657 real(RKG) , intent(in), contiguous :: array(:)
7658 real(RKG) , intent(in), contiguous :: pattern(:)
7659 integer(IK) :: index
7660 end function
7661#endif
7662
7663#if RK1_ENABLED
7664 PURE module function getSIRDefCom_D1_D1_RK1(array, pattern) result(index)
7665#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7666 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRDefCom_D1_D1_RK1
7667#endif
7668 use pm_kind, only: RKG => RK1
7669 real(RKG) , intent(in), contiguous :: array(:)
7670 real(RKG) , intent(in), contiguous :: pattern(:)
7671 integer(IK) :: index
7672 end function
7673#endif
7674
7675 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7676
7677 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7678 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7679 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7680
7681 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7682
7683#if SK5_ENABLED
7684 module function getSIRCusCom_D1_D1_SK5(array, pattern, iseq) result(index)
7685#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7686 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_SK5
7687#endif
7688 use pm_kind, only: SKG => SK5
7689 character(*,SKG) , intent(in), contiguous :: array(:)
7690 character(*,SKG) , intent(in), contiguous :: pattern(:)
7691 procedure(logical(LK)) :: iseq
7692 integer(IK) :: index
7693 end function
7694#endif
7695
7696#if SK4_ENABLED
7697 module function getSIRCusCom_D1_D1_SK4(array, pattern, iseq) result(index)
7698#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7699 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_SK4
7700#endif
7701 use pm_kind, only: SKG => SK4
7702 character(*,SKG) , intent(in), contiguous :: array(:)
7703 character(*,SKG) , intent(in), contiguous :: pattern(:)
7704 procedure(logical(LK)) :: iseq
7705 integer(IK) :: index
7706 end function
7707#endif
7708
7709#if SK3_ENABLED
7710 module function getSIRCusCom_D1_D1_SK3(array, pattern, iseq) result(index)
7711#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7712 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_SK3
7713#endif
7714 use pm_kind, only: SKG => SK3
7715 character(*,SKG) , intent(in), contiguous :: array(:)
7716 character(*,SKG) , intent(in), contiguous :: pattern(:)
7717 procedure(logical(LK)) :: iseq
7718 integer(IK) :: index
7719 end function
7720#endif
7721
7722#if SK2_ENABLED
7723 module function getSIRCusCom_D1_D1_SK2(array, pattern, iseq) result(index)
7724#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7725 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_SK2
7726#endif
7727 use pm_kind, only: SKG => SK2
7728 character(*,SKG) , intent(in), contiguous :: array(:)
7729 character(*,SKG) , intent(in), contiguous :: pattern(:)
7730 procedure(logical(LK)) :: iseq
7731 integer(IK) :: index
7732 end function
7733#endif
7734
7735#if SK1_ENABLED
7736 module function getSIRCusCom_D1_D1_SK1(array, pattern, iseq) result(index)
7737#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7738 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_SK1
7739#endif
7740 use pm_kind, only: SKG => SK1
7741 character(*,SKG) , intent(in), contiguous :: array(:)
7742 character(*,SKG) , intent(in), contiguous :: pattern(:)
7743 procedure(logical(LK)) :: iseq
7744 integer(IK) :: index
7745 end function
7746#endif
7747
7748 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7749
7750#if IK5_ENABLED
7751 module function getSIRCusCom_D1_D1_IK5(array, pattern, iseq) result(index)
7752#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7753 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_IK5
7754#endif
7755 use pm_kind, only: IKG => IK5
7756 integer(IKG) , intent(in), contiguous :: array(:)
7757 integer(IKG) , intent(in), contiguous :: pattern(:)
7758 procedure(logical(LK)) :: iseq
7759 integer(IK) :: index
7760 end function
7761#endif
7762
7763#if IK4_ENABLED
7764 module function getSIRCusCom_D1_D1_IK4(array, pattern, iseq) result(index)
7765#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7766 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_IK4
7767#endif
7768 use pm_kind, only: IKG => IK4
7769 integer(IKG) , intent(in), contiguous :: array(:)
7770 integer(IKG) , intent(in), contiguous :: pattern(:)
7771 procedure(logical(LK)) :: iseq
7772 integer(IK) :: index
7773 end function
7774#endif
7775
7776#if IK3_ENABLED
7777 module function getSIRCusCom_D1_D1_IK3(array, pattern, iseq) result(index)
7778#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7779 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_IK3
7780#endif
7781 use pm_kind, only: IKG => IK3
7782 integer(IKG) , intent(in), contiguous :: array(:)
7783 integer(IKG) , intent(in), contiguous :: pattern(:)
7784 procedure(logical(LK)) :: iseq
7785 integer(IK) :: index
7786 end function
7787#endif
7788
7789#if IK2_ENABLED
7790 module function getSIRCusCom_D1_D1_IK2(array, pattern, iseq) result(index)
7791#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7792 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_IK2
7793#endif
7794 use pm_kind, only: IKG => IK2
7795 integer(IKG) , intent(in), contiguous :: array(:)
7796 integer(IKG) , intent(in), contiguous :: pattern(:)
7797 procedure(logical(LK)) :: iseq
7798 integer(IK) :: index
7799 end function
7800#endif
7801
7802#if IK1_ENABLED
7803 module function getSIRCusCom_D1_D1_IK1(array, pattern, iseq) result(index)
7804#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7805 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_IK1
7806#endif
7807 use pm_kind, only: IKG => IK1
7808 integer(IKG) , intent(in), contiguous :: array(:)
7809 integer(IKG) , intent(in), contiguous :: pattern(:)
7810 procedure(logical(LK)) :: iseq
7811 integer(IK) :: index
7812 end function
7813#endif
7814
7815 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7816
7817#if LK5_ENABLED
7818 module function getSIRCusCom_D1_D1_LK5(array, pattern, iseq) result(index)
7819#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7820 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_LK5
7821#endif
7822 use pm_kind, only: LKG => LK5
7823 logical(LKG) , intent(in), contiguous :: array(:)
7824 logical(LKG) , intent(in), contiguous :: pattern(:)
7825 procedure(logical(LK)) :: iseq
7826 integer(IK) :: index
7827 end function
7828#endif
7829
7830#if LK4_ENABLED
7831 module function getSIRCusCom_D1_D1_LK4(array, pattern, iseq) result(index)
7832#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7833 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_LK4
7834#endif
7835 use pm_kind, only: LKG => LK4
7836 logical(LKG) , intent(in), contiguous :: array(:)
7837 logical(LKG) , intent(in), contiguous :: pattern(:)
7838 procedure(logical(LK)) :: iseq
7839 integer(IK) :: index
7840 end function
7841#endif
7842
7843#if LK3_ENABLED
7844 module function getSIRCusCom_D1_D1_LK3(array, pattern, iseq) result(index)
7845#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7846 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_LK3
7847#endif
7848 use pm_kind, only: LKG => LK3
7849 logical(LKG) , intent(in), contiguous :: array(:)
7850 logical(LKG) , intent(in), contiguous :: pattern(:)
7851 procedure(logical(LK)) :: iseq
7852 integer(IK) :: index
7853 end function
7854#endif
7855
7856#if LK2_ENABLED
7857 module function getSIRCusCom_D1_D1_LK2(array, pattern, iseq) result(index)
7858#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7859 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_LK2
7860#endif
7861 use pm_kind, only: LKG => LK2
7862 logical(LKG) , intent(in), contiguous :: array(:)
7863 logical(LKG) , intent(in), contiguous :: pattern(:)
7864 procedure(logical(LK)) :: iseq
7865 integer(IK) :: index
7866 end function
7867#endif
7868
7869#if LK1_ENABLED
7870 module function getSIRCusCom_D1_D1_LK1(array, pattern, iseq) result(index)
7871#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7872 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_LK1
7873#endif
7874 use pm_kind, only: LKG => LK1
7875 logical(LKG) , intent(in), contiguous :: array(:)
7876 logical(LKG) , intent(in), contiguous :: pattern(:)
7877 procedure(logical(LK)) :: iseq
7878 integer(IK) :: index
7879 end function
7880#endif
7881
7882 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7883
7884#if CK5_ENABLED
7885 module function getSIRCusCom_D1_D1_CK5(array, pattern, iseq) result(index)
7886#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7887 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_CK5
7888#endif
7889 use pm_kind, only: CKG => CK5
7890 complex(CKG) , intent(in), contiguous :: array(:)
7891 complex(CKG) , intent(in), contiguous :: pattern(:)
7892 procedure(logical(LK)) :: iseq
7893 integer(IK) :: index
7894 end function
7895#endif
7896
7897#if CK4_ENABLED
7898 module function getSIRCusCom_D1_D1_CK4(array, pattern, iseq) result(index)
7899#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7900 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_CK4
7901#endif
7902 use pm_kind, only: CKG => CK4
7903 complex(CKG) , intent(in), contiguous :: array(:)
7904 complex(CKG) , intent(in), contiguous :: pattern(:)
7905 procedure(logical(LK)) :: iseq
7906 integer(IK) :: index
7907 end function
7908#endif
7909
7910#if CK3_ENABLED
7911 module function getSIRCusCom_D1_D1_CK3(array, pattern, iseq) result(index)
7912#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7913 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_CK3
7914#endif
7915 use pm_kind, only: CKG => CK3
7916 complex(CKG) , intent(in), contiguous :: array(:)
7917 complex(CKG) , intent(in), contiguous :: pattern(:)
7918 procedure(logical(LK)) :: iseq
7919 integer(IK) :: index
7920 end function
7921#endif
7922
7923#if CK2_ENABLED
7924 module function getSIRCusCom_D1_D1_CK2(array, pattern, iseq) result(index)
7925#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7926 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_CK2
7927#endif
7928 use pm_kind, only: CKG => CK2
7929 complex(CKG) , intent(in), contiguous :: array(:)
7930 complex(CKG) , intent(in), contiguous :: pattern(:)
7931 procedure(logical(LK)) :: iseq
7932 integer(IK) :: index
7933 end function
7934#endif
7935
7936#if CK1_ENABLED
7937 module function getSIRCusCom_D1_D1_CK1(array, pattern, iseq) result(index)
7938#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7939 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_CK1
7940#endif
7941 use pm_kind, only: CKG => CK1
7942 complex(CKG) , intent(in), contiguous :: array(:)
7943 complex(CKG) , intent(in), contiguous :: pattern(:)
7944 procedure(logical(LK)) :: iseq
7945 integer(IK) :: index
7946 end function
7947#endif
7948
7949 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7950
7951#if RK5_ENABLED
7952 module function getSIRCusCom_D1_D1_RK5(array, pattern, iseq) result(index)
7953#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7954 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_RK5
7955#endif
7956 use pm_kind, only: RKG => RK5
7957 real(RKG) , intent(in), contiguous :: array(:)
7958 real(RKG) , intent(in), contiguous :: pattern(:)
7959 procedure(logical(LK)) :: iseq
7960 integer(IK) :: index
7961 end function
7962#endif
7963
7964#if RK4_ENABLED
7965 module function getSIRCusCom_D1_D1_RK4(array, pattern, iseq) result(index)
7966#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7967 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_RK4
7968#endif
7969 use pm_kind, only: RKG => RK4
7970 real(RKG) , intent(in), contiguous :: array(:)
7971 real(RKG) , intent(in), contiguous :: pattern(:)
7972 procedure(logical(LK)) :: iseq
7973 integer(IK) :: index
7974 end function
7975#endif
7976
7977#if RK3_ENABLED
7978 module function getSIRCusCom_D1_D1_RK3(array, pattern, iseq) result(index)
7979#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7980 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_RK3
7981#endif
7982 use pm_kind, only: RKG => RK3
7983 real(RKG) , intent(in), contiguous :: array(:)
7984 real(RKG) , intent(in), contiguous :: pattern(:)
7985 procedure(logical(LK)) :: iseq
7986 integer(IK) :: index
7987 end function
7988#endif
7989
7990#if RK2_ENABLED
7991 module function getSIRCusCom_D1_D1_RK2(array, pattern, iseq) result(index)
7992#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
7993 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_RK2
7994#endif
7995 use pm_kind, only: RKG => RK2
7996 real(RKG) , intent(in), contiguous :: array(:)
7997 real(RKG) , intent(in), contiguous :: pattern(:)
7998 procedure(logical(LK)) :: iseq
7999 integer(IK) :: index
8000 end function
8001#endif
8002
8003#if RK1_ENABLED
8004 module function getSIRCusCom_D1_D1_RK1(array, pattern, iseq) result(index)
8005#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
8006 !DEC$ ATTRIBUTES DLLEXPORT :: getSIRCusCom_D1_D1_RK1
8007#endif
8008 use pm_kind, only: RKG => RK1
8009 real(RKG) , intent(in), contiguous :: array(:)
8010 real(RKG) , intent(in), contiguous :: pattern(:)
8011 procedure(logical(LK)) :: iseq
8012 integer(IK) :: index
8013 end function
8014#endif
8015
8016 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8017
8018 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8019 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8020 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8021
8022 end interface
8023
8024!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8025
8026end module pm_arrayStrip ! LCOV_EXCL_LINE
Generate and return index, the index of the first element of the input array such that array(1:index-...
Generate and return index, the index of the last element of the input array such that array(index+1:)...
Generate and return the input array modified such that all instances of the input pattern are strippe...
This module contains procedures and generic interfaces for stripping a given pattern from the left an...
This module contains abstract and concrete derived types that are required for compile-time resolutio...
Definition: pm_array.F90:44
character(*, SK), parameter MODULE_NAME
Definition: pm_array.F90:50
type(left_type), parameter left
This is a scalar parameter object of type left_type that is exclusively used to request the left side...
Definition: pm_array.F90:650
type(leftRight_type), parameter leftRight
This is a scalar parameter object of type leftRight_type that is exclusively used to request the left...
Definition: pm_array.F90:812
type(right_type), parameter right
This is a scalar parameter object of type right_type that is exclusively used to request the right si...
Definition: pm_array.F90:731
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter SK5
Definition: pm_kind.F90:326
integer, parameter LK1
Definition: pm_kind.F90:412
integer, parameter IK3
Definition: pm_kind.F90:368
integer, parameter RK5
Definition: pm_kind.F90:478
integer, parameter RK4
Definition: pm_kind.F90:489
integer, parameter SK1
Definition: pm_kind.F90:346
integer, parameter IK1
Definition: pm_kind.F90:382
integer, parameter LK5
Definition: pm_kind.F90:392
integer, parameter RK2
Definition: pm_kind.F90:511
integer, parameter CK1
Definition: pm_kind.F90:464
integer, parameter RK3
Definition: pm_kind.F90:500
integer, parameter LK
The default logical kind in the ParaMonte library: kind(.true.) in Fortran, kind(....
Definition: pm_kind.F90:541
integer, parameter LK2
Definition: pm_kind.F90:407
integer, parameter LK4
Definition: pm_kind.F90:397
integer, parameter CK5
Definition: pm_kind.F90:420
integer, parameter CK4
Definition: pm_kind.F90:431
integer, parameter SK4
Definition: pm_kind.F90:331
integer, parameter LK3
Definition: pm_kind.F90:402
integer, parameter IK2
Definition: pm_kind.F90:375
integer, parameter CK2
Definition: pm_kind.F90:453
integer, parameter SK2
Definition: pm_kind.F90:341
integer, parameter CK3
Definition: pm_kind.F90:442
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
Definition: pm_kind.F90:540
integer, parameter IK4
Definition: pm_kind.F90:361
integer, parameter IK5
Definition: pm_kind.F90:354
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
Definition: pm_kind.F90:539
integer, parameter RK1
Definition: pm_kind.F90:522
integer, parameter SK3
Definition: pm_kind.F90:336
This is a concrete derived type whose instances are exclusively used to request left-and-right sides ...
Definition: pm_array.F90:777
This is a concrete derived type whose instances are exclusively used to request left side of a given ...
Definition: pm_array.F90:615
This is a concrete derived type whose instances are exclusively used to request the right side of a g...
Definition: pm_array.F90:696