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