ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_arrayUnique.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
27
28!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
29
31
32 use pm_container, only: cvi_type
33 use pm_kind, only: SK, IK, LK
34 implicit none
35
36 character(*, SK), parameter :: MODULE_NAME = "@pm_arrayUnique"
37
39! \bug
40! The following bypasses the bug reported below that creates a conflict between Intel and gfortran.
41#if __INTEL_COMPILER
42#define LEN_ARRAY :
43#else
44#define LEN_ARRAY len(array)
45#endif
46
47
48!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
49
139 interface isUnique
140
141 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
142 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
143 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
144
145#if SK5_ENABLED
146 pure module function isUniqueDefCom_D0_SK5(array) result(unique)
147#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
148 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D0_SK5
149#endif
150 use pm_kind, only: SKG => SK5
151 character(*,SKG) , intent(in) :: array
152 logical(LK) :: unique(len(array, IK))
153 end function
154#endif
155
156#if SK4_ENABLED
157 pure module function isUniqueDefCom_D0_SK4(array) result(unique)
158#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
159 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D0_SK4
160#endif
161 use pm_kind, only: SKG => SK4
162 character(*,SKG) , intent(in) :: array
163 logical(LK) :: unique(len(array, IK))
164 end function
165#endif
166
167#if SK3_ENABLED
168 pure module function isUniqueDefCom_D0_SK3(array) result(unique)
169#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
170 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D0_SK3
171#endif
172 use pm_kind, only: SKG => SK3
173 character(*,SKG) , intent(in) :: array
174 logical(LK) :: unique(len(array, IK))
175 end function
176#endif
177
178#if SK2_ENABLED
179 pure module function isUniqueDefCom_D0_SK2(array) result(unique)
180#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
181 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D0_SK2
182#endif
183 use pm_kind, only: SKG => SK2
184 character(*,SKG) , intent(in) :: array
185 logical(LK) :: unique(len(array, IK))
186 end function
187#endif
188
189#if SK1_ENABLED
190 pure module function isUniqueDefCom_D0_SK1(array) result(unique)
191#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
192 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D0_SK1
193#endif
194 use pm_kind, only: SKG => SK1
195 character(*,SKG) , intent(in) :: array
196 logical(LK) :: unique(len(array, IK))
197 end function
198#endif
199
200 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
201
202#if SK5_ENABLED
203 pure module function isUniqueDefCom_D1_SK5(array) result(unique)
204#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
205 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_SK5
206#endif
207 use pm_kind, only: SKG => SK5
208 character(*,SKG) , intent(in), contiguous :: array(:)
209 logical(LK) :: unique(size(array, 1, IK))
210 end function
211#endif
212
213#if SK4_ENABLED
214 pure module function isUniqueDefCom_D1_SK4(array) result(unique)
215#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
216 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_SK4
217#endif
218 use pm_kind, only: SKG => SK4
219 character(*,SKG) , intent(in), contiguous :: array(:)
220 logical(LK) :: unique(size(array, 1, IK))
221 end function
222#endif
223
224#if SK3_ENABLED
225 pure module function isUniqueDefCom_D1_SK3(array) result(unique)
226#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
227 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_SK3
228#endif
229 use pm_kind, only: SKG => SK3
230 character(*,SKG) , intent(in), contiguous :: array(:)
231 logical(LK) :: unique(size(array, 1, IK))
232 end function
233#endif
234
235#if SK2_ENABLED
236 pure module function isUniqueDefCom_D1_SK2(array) result(unique)
237#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
238 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_SK2
239#endif
240 use pm_kind, only: SKG => SK2
241 character(*,SKG) , intent(in), contiguous :: array(:)
242 logical(LK) :: unique(size(array, 1, IK))
243 end function
244#endif
245
246#if SK1_ENABLED
247 pure module function isUniqueDefCom_D1_SK1(array) result(unique)
248#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
249 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_SK1
250#endif
251 use pm_kind, only: SKG => SK1
252 character(*,SKG) , intent(in), contiguous :: array(:)
253 logical(LK) :: unique(size(array, 1, IK))
254 end function
255#endif
256
257 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
258
259#if IK5_ENABLED
260 pure module function isUniqueDefCom_D1_IK5(array) result(unique)
261#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
262 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_IK5
263#endif
264 use pm_kind, only: IKG => IK5
265 integer(IKG) , intent(in), contiguous :: array(:)
266 logical(LK) :: unique(size(array, 1, IK))
267 end function
268#endif
269
270#if IK4_ENABLED
271 pure module function isUniqueDefCom_D1_IK4(array) result(unique)
272#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
273 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_IK4
274#endif
275 use pm_kind, only: IKG => IK4
276 integer(IKG) , intent(in), contiguous :: array(:)
277 logical(LK) :: unique(size(array, 1, IK))
278 end function
279#endif
280
281#if IK3_ENABLED
282 pure module function isUniqueDefCom_D1_IK3(array) result(unique)
283#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
284 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_IK3
285#endif
286 use pm_kind, only: IKG => IK3
287 integer(IKG) , intent(in), contiguous :: array(:)
288 logical(LK) :: unique(size(array, 1, IK))
289 end function
290#endif
291
292#if IK2_ENABLED
293 pure module function isUniqueDefCom_D1_IK2(array) result(unique)
294#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
295 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_IK2
296#endif
297 use pm_kind, only: IKG => IK2
298 integer(IKG) , intent(in), contiguous :: array(:)
299 logical(LK) :: unique(size(array, 1, IK))
300 end function
301#endif
302
303#if IK1_ENABLED
304 pure module function isUniqueDefCom_D1_IK1(array) result(unique)
305#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
306 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_IK1
307#endif
308 use pm_kind, only: IKG => IK1
309 integer(IKG) , intent(in), contiguous :: array(:)
310 logical(LK) :: unique(size(array, 1, IK))
311 end function
312#endif
313
314 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
315
316#if LK5_ENABLED
317 pure module function isUniqueDefCom_D1_LK5(array) result(unique)
318#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
319 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_LK5
320#endif
321 use pm_kind, only: LKG => LK5
322 logical(LKG) , intent(in), contiguous :: array(:)
323 logical(LK) :: unique(size(array, 1, IK))
324 end function
325#endif
326
327#if LK4_ENABLED
328 pure module function isUniqueDefCom_D1_LK4(array) result(unique)
329#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
330 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_LK4
331#endif
332 use pm_kind, only: LKG => LK4
333 logical(LKG) , intent(in), contiguous :: array(:)
334 logical(LK) :: unique(size(array, 1, IK))
335 end function
336#endif
337
338#if LK3_ENABLED
339 pure module function isUniqueDefCom_D1_LK3(array) result(unique)
340#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
341 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_LK3
342#endif
343 use pm_kind, only: LKG => LK3
344 logical(LKG) , intent(in), contiguous :: array(:)
345 logical(LK) :: unique(size(array, 1, IK))
346 end function
347#endif
348
349#if LK2_ENABLED
350 pure module function isUniqueDefCom_D1_LK2(array) result(unique)
351#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
352 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_LK2
353#endif
354 use pm_kind, only: LKG => LK2
355 logical(LKG) , intent(in), contiguous :: array(:)
356 logical(LK) :: unique(size(array, 1, IK))
357 end function
358#endif
359
360#if LK1_ENABLED
361 pure module function isUniqueDefCom_D1_LK1(array) result(unique)
362#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
363 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_LK1
364#endif
365 use pm_kind, only: LKG => LK1
366 logical(LKG) , intent(in), contiguous :: array(:)
367 logical(LK) :: unique(size(array, 1, IK))
368 end function
369#endif
370
371 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
372
373#if CK5_ENABLED
374 pure module function isUniqueDefCom_D1_CK5(array) result(unique)
375#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
376 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_CK5
377#endif
378 use pm_kind, only: CKG => CK5
379 complex(CKG) , intent(in), contiguous :: array(:)
380 logical(LK) :: unique(size(array, 1, IK))
381 end function
382#endif
383
384#if CK4_ENABLED
385 pure module function isUniqueDefCom_D1_CK4(array) result(unique)
386#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
387 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_CK4
388#endif
389 use pm_kind, only: CKG => CK4
390 complex(CKG) , intent(in), contiguous :: array(:)
391 logical(LK) :: unique(size(array, 1, IK))
392 end function
393#endif
394
395#if CK3_ENABLED
396 pure module function isUniqueDefCom_D1_CK3(array) result(unique)
397#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
398 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_CK3
399#endif
400 use pm_kind, only: CKG => CK3
401 complex(CKG) , intent(in), contiguous :: array(:)
402 logical(LK) :: unique(size(array, 1, IK))
403 end function
404#endif
405
406#if CK2_ENABLED
407 pure module function isUniqueDefCom_D1_CK2(array) result(unique)
408#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
409 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_CK2
410#endif
411 use pm_kind, only: CKG => CK2
412 complex(CKG) , intent(in), contiguous :: array(:)
413 logical(LK) :: unique(size(array, 1, IK))
414 end function
415#endif
416
417#if CK1_ENABLED
418 pure module function isUniqueDefCom_D1_CK1(array) result(unique)
419#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
420 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_CK1
421#endif
422 use pm_kind, only: CKG => CK1
423 complex(CKG) , intent(in), contiguous :: array(:)
424 logical(LK) :: unique(size(array, 1, IK))
425 end function
426#endif
427
428 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
429
430#if RK5_ENABLED
431 pure module function isUniqueDefCom_D1_RK5(array) result(unique)
432#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
433 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_RK5
434#endif
435 use pm_kind, only: RKG => RK5
436 real(RKG) , intent(in), contiguous :: array(:)
437 logical(LK) :: unique(size(array, 1, IK))
438 end function
439#endif
440
441#if RK4_ENABLED
442 pure module function isUniqueDefCom_D1_RK4(array) result(unique)
443#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
444 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_RK4
445#endif
446 use pm_kind, only: RKG => RK4
447 real(RKG) , intent(in), contiguous :: array(:)
448 logical(LK) :: unique(size(array, 1, IK))
449 end function
450#endif
451
452#if RK3_ENABLED
453 pure module function isUniqueDefCom_D1_RK3(array) result(unique)
454#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
455 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_RK3
456#endif
457 use pm_kind, only: RKG => RK3
458 real(RKG) , intent(in), contiguous :: array(:)
459 logical(LK) :: unique(size(array, 1, IK))
460 end function
461#endif
462
463#if RK2_ENABLED
464 pure module function isUniqueDefCom_D1_RK2(array) result(unique)
465#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
466 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_RK2
467#endif
468 use pm_kind, only: RKG => RK2
469 real(RKG) , intent(in), contiguous :: array(:)
470 logical(LK) :: unique(size(array, 1, IK))
471 end function
472#endif
473
474#if RK1_ENABLED
475 pure module function isUniqueDefCom_D1_RK1(array) result(unique)
476#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
477 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueDefCom_D1_RK1
478#endif
479 use pm_kind, only: RKG => RK1
480 real(RKG) , intent(in), contiguous :: array(:)
481 logical(LK) :: unique(size(array, 1, IK))
482 end function
483#endif
484
485 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
486 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
487 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
488
489#if SK5_ENABLED
490 module function isUniqueCusCom_D0_SK5(array, iseq) result(unique)
491#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
492 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D0_SK5
493#endif
494 use pm_kind, only: SKG => SK5
495 character(*,SKG) , intent(in) :: array
496 procedure(logical(LK)) :: iseq
497 logical(LK) :: unique(len(array, IK))
498 end function
499#endif
500
501#if SK4_ENABLED
502 module function isUniqueCusCom_D0_SK4(array, iseq) result(unique)
503#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
504 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D0_SK4
505#endif
506 use pm_kind, only: SKG => SK4
507 character(*,SKG) , intent(in) :: array
508 procedure(logical(LK)) :: iseq
509 logical(LK) :: unique(len(array, IK))
510 end function
511#endif
512
513#if SK3_ENABLED
514 module function isUniqueCusCom_D0_SK3(array, iseq) result(unique)
515#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
516 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D0_SK3
517#endif
518 use pm_kind, only: SKG => SK3
519 character(*,SKG) , intent(in) :: array
520 procedure(logical(LK)) :: iseq
521 logical(LK) :: unique(len(array, IK))
522 end function
523#endif
524
525#if SK2_ENABLED
526 module function isUniqueCusCom_D0_SK2(array, iseq) result(unique)
527#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
528 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D0_SK2
529#endif
530 use pm_kind, only: SKG => SK2
531 character(*,SKG) , intent(in) :: array
532 procedure(logical(LK)) :: iseq
533 logical(LK) :: unique(len(array, IK))
534 end function
535#endif
536
537#if SK1_ENABLED
538 module function isUniqueCusCom_D0_SK1(array, iseq) result(unique)
539#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
540 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D0_SK1
541#endif
542 use pm_kind, only: SKG => SK1
543 character(*,SKG) , intent(in) :: array
544 procedure(logical(LK)) :: iseq
545 logical(LK) :: unique(len(array, IK))
546 end function
547#endif
548
549 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
550
551#if SK5_ENABLED
552 module function isUniqueCusCom_D1_SK5(array, iseq) result(unique)
553#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
554 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_SK5
555#endif
556 use pm_kind, only: SKG => SK5
557 character(*,SKG) , intent(in), contiguous :: array(:)
558 procedure(logical(LK)) :: iseq
559 logical(LK) :: unique(size(array, 1, IK))
560 end function
561#endif
562
563#if SK4_ENABLED
564 module function isUniqueCusCom_D1_SK4(array, iseq) result(unique)
565#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
566 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_SK4
567#endif
568 use pm_kind, only: SKG => SK4
569 character(*,SKG) , intent(in), contiguous :: array(:)
570 procedure(logical(LK)) :: iseq
571 logical(LK) :: unique(size(array, 1, IK))
572 end function
573#endif
574
575#if SK3_ENABLED
576 module function isUniqueCusCom_D1_SK3(array, iseq) result(unique)
577#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
578 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_SK3
579#endif
580 use pm_kind, only: SKG => SK3
581 character(*,SKG) , intent(in), contiguous :: array(:)
582 procedure(logical(LK)) :: iseq
583 logical(LK) :: unique(size(array, 1, IK))
584 end function
585#endif
586
587#if SK2_ENABLED
588 module function isUniqueCusCom_D1_SK2(array, iseq) result(unique)
589#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
590 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_SK2
591#endif
592 use pm_kind, only: SKG => SK2
593 character(*,SKG) , intent(in), contiguous :: array(:)
594 procedure(logical(LK)) :: iseq
595 logical(LK) :: unique(size(array, 1, IK))
596 end function
597#endif
598
599#if SK1_ENABLED
600 module function isUniqueCusCom_D1_SK1(array, iseq) result(unique)
601#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
602 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_SK1
603#endif
604 use pm_kind, only: SKG => SK1
605 character(*,SKG) , intent(in), contiguous :: array(:)
606 procedure(logical(LK)) :: iseq
607 logical(LK) :: unique(size(array, 1, IK))
608 end function
609#endif
610
611 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
612
613#if IK5_ENABLED
614 module function isUniqueCusCom_D1_IK5(array, iseq) result(unique)
615#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
616 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_IK5
617#endif
618 use pm_kind, only: IKG => IK5
619 integer(IKG) , intent(in), contiguous :: array(:)
620 procedure(logical(LK)) :: iseq
621 logical(LK) :: unique(size(array, 1, IK))
622 end function
623#endif
624
625#if IK4_ENABLED
626 module function isUniqueCusCom_D1_IK4(array, iseq) result(unique)
627#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
628 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_IK4
629#endif
630 use pm_kind, only: IKG => IK4
631 integer(IKG) , intent(in), contiguous :: array(:)
632 procedure(logical(LK)) :: iseq
633 logical(LK) :: unique(size(array, 1, IK))
634 end function
635#endif
636
637#if IK3_ENABLED
638 module function isUniqueCusCom_D1_IK3(array, iseq) result(unique)
639#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
640 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_IK3
641#endif
642 use pm_kind, only: IKG => IK3
643 integer(IKG) , intent(in), contiguous :: array(:)
644 procedure(logical(LK)) :: iseq
645 logical(LK) :: unique(size(array, 1, IK))
646 end function
647#endif
648
649#if IK2_ENABLED
650 module function isUniqueCusCom_D1_IK2(array, iseq) result(unique)
651#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
652 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_IK2
653#endif
654 use pm_kind, only: IKG => IK2
655 integer(IKG) , intent(in), contiguous :: array(:)
656 procedure(logical(LK)) :: iseq
657 logical(LK) :: unique(size(array, 1, IK))
658 end function
659#endif
660
661#if IK1_ENABLED
662 module function isUniqueCusCom_D1_IK1(array, iseq) result(unique)
663#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
664 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_IK1
665#endif
666 use pm_kind, only: IKG => IK1
667 integer(IKG) , intent(in), contiguous :: array(:)
668 procedure(logical(LK)) :: iseq
669 logical(LK) :: unique(size(array, 1, IK))
670 end function
671#endif
672
673 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
674
675#if LK5_ENABLED
676 module function isUniqueCusCom_D1_LK5(array, iseq) result(unique)
677#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
678 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_LK5
679#endif
680 use pm_kind, only: LKG => LK5
681 logical(LKG) , intent(in), contiguous :: array(:)
682 procedure(logical(LK)) :: iseq
683 logical(LK) :: unique(size(array, 1, IK))
684 end function
685#endif
686
687#if LK4_ENABLED
688 module function isUniqueCusCom_D1_LK4(array, iseq) result(unique)
689#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
690 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_LK4
691#endif
692 use pm_kind, only: LKG => LK4
693 logical(LKG) , intent(in), contiguous :: array(:)
694 procedure(logical(LK)) :: iseq
695 logical(LK) :: unique(size(array, 1, IK))
696 end function
697#endif
698
699#if LK3_ENABLED
700 module function isUniqueCusCom_D1_LK3(array, iseq) result(unique)
701#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
702 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_LK3
703#endif
704 use pm_kind, only: LKG => LK3
705 logical(LKG) , intent(in), contiguous :: array(:)
706 procedure(logical(LK)) :: iseq
707 logical(LK) :: unique(size(array, 1, IK))
708 end function
709#endif
710
711#if LK2_ENABLED
712 module function isUniqueCusCom_D1_LK2(array, iseq) result(unique)
713#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
714 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_LK2
715#endif
716 use pm_kind, only: LKG => LK2
717 logical(LKG) , intent(in), contiguous :: array(:)
718 procedure(logical(LK)) :: iseq
719 logical(LK) :: unique(size(array, 1, IK))
720 end function
721#endif
722
723#if LK1_ENABLED
724 module function isUniqueCusCom_D1_LK1(array, iseq) result(unique)
725#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
726 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_LK1
727#endif
728 use pm_kind, only: LKG => LK1
729 logical(LKG) , intent(in), contiguous :: array(:)
730 procedure(logical(LK)) :: iseq
731 logical(LK) :: unique(size(array, 1, IK))
732 end function
733#endif
734
735 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
736
737#if CK5_ENABLED
738 module function isUniqueCusCom_D1_CK5(array, iseq) result(unique)
739#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
740 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_CK5
741#endif
742 use pm_kind, only: CKG => CK5
743 complex(CKG) , intent(in), contiguous :: array(:)
744 procedure(logical(LK)) :: iseq
745 logical(LK) :: unique(size(array, 1, IK))
746 end function
747#endif
748
749#if CK4_ENABLED
750 module function isUniqueCusCom_D1_CK4(array, iseq) result(unique)
751#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
752 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_CK4
753#endif
754 use pm_kind, only: CKG => CK4
755 complex(CKG) , intent(in), contiguous :: array(:)
756 procedure(logical(LK)) :: iseq
757 logical(LK) :: unique(size(array, 1, IK))
758 end function
759#endif
760
761#if CK3_ENABLED
762 module function isUniqueCusCom_D1_CK3(array, iseq) result(unique)
763#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
764 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_CK3
765#endif
766 use pm_kind, only: CKG => CK3
767 complex(CKG) , intent(in), contiguous :: array(:)
768 procedure(logical(LK)) :: iseq
769 logical(LK) :: unique(size(array, 1, IK))
770 end function
771#endif
772
773#if CK2_ENABLED
774 module function isUniqueCusCom_D1_CK2(array, iseq) result(unique)
775#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
776 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_CK2
777#endif
778 use pm_kind, only: CKG => CK2
779 complex(CKG) , intent(in), contiguous :: array(:)
780 procedure(logical(LK)) :: iseq
781 logical(LK) :: unique(size(array, 1, IK))
782 end function
783#endif
784
785#if CK1_ENABLED
786 module function isUniqueCusCom_D1_CK1(array, iseq) result(unique)
787#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
788 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_CK1
789#endif
790 use pm_kind, only: CKG => CK1
791 complex(CKG) , intent(in), contiguous :: array(:)
792 procedure(logical(LK)) :: iseq
793 logical(LK) :: unique(size(array, 1, IK))
794 end function
795#endif
796
797 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
798
799#if RK5_ENABLED
800 module function isUniqueCusCom_D1_RK5(array, iseq) result(unique)
801#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
802 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_RK5
803#endif
804 use pm_kind, only: RKG => RK5
805 real(RKG) , intent(in), contiguous :: array(:)
806 procedure(logical(LK)) :: iseq
807 logical(LK) :: unique(size(array, 1, IK))
808 end function
809#endif
810
811#if RK4_ENABLED
812 module function isUniqueCusCom_D1_RK4(array, iseq) result(unique)
813#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
814 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_RK4
815#endif
816 use pm_kind, only: RKG => RK4
817 real(RKG) , intent(in), contiguous :: array(:)
818 procedure(logical(LK)) :: iseq
819 logical(LK) :: unique(size(array, 1, IK))
820 end function
821#endif
822
823#if RK3_ENABLED
824 module function isUniqueCusCom_D1_RK3(array, iseq) result(unique)
825#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
826 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_RK3
827#endif
828 use pm_kind, only: RKG => RK3
829 real(RKG) , intent(in), contiguous :: array(:)
830 procedure(logical(LK)) :: iseq
831 logical(LK) :: unique(size(array, 1, IK))
832 end function
833#endif
834
835#if RK2_ENABLED
836 module function isUniqueCusCom_D1_RK2(array, iseq) result(unique)
837#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
838 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_RK2
839#endif
840 use pm_kind, only: RKG => RK2
841 real(RKG) , intent(in), contiguous :: array(:)
842 procedure(logical(LK)) :: iseq
843 logical(LK) :: unique(size(array, 1, IK))
844 end function
845#endif
846
847#if RK1_ENABLED
848 module function isUniqueCusCom_D1_RK1(array, iseq) result(unique)
849#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
850 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueCusCom_D1_RK1
851#endif
852 use pm_kind, only: RKG => RK1
853 real(RKG) , intent(in), contiguous :: array(:)
854 procedure(logical(LK)) :: iseq
855 logical(LK) :: unique(size(array, 1, IK))
856 end function
857#endif
858
859 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
860 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
861 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
862
863 end interface isUnique
864
865!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
866
955 interface isUniqueAll
956
957 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
958 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
959 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
960
961#if SK5_ENABLED
962 PURE module function isUniqueAllDefCom_D0_SK5(array) result(uniqueAll)
963#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
964 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D0_SK5
965#endif
966 use pm_kind, only: SKG => SK5
967 character(*,SKG) , intent(in) :: array
968 logical(LK) :: uniqueAll
969 end function
970#endif
971
972#if SK4_ENABLED
973 PURE module function isUniqueAllDefCom_D0_SK4(array) result(uniqueAll)
974#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
975 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D0_SK4
976#endif
977 use pm_kind, only: SKG => SK4
978 character(*,SKG) , intent(in) :: array
979 logical(LK) :: uniqueAll
980 end function
981#endif
982
983#if SK3_ENABLED
984 PURE module function isUniqueAllDefCom_D0_SK3(array) result(uniqueAll)
985#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
986 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D0_SK3
987#endif
988 use pm_kind, only: SKG => SK3
989 character(*,SKG) , intent(in) :: array
990 logical(LK) :: uniqueAll
991 end function
992#endif
993
994#if SK2_ENABLED
995 PURE module function isUniqueAllDefCom_D0_SK2(array) result(uniqueAll)
996#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
997 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D0_SK2
998#endif
999 use pm_kind, only: SKG => SK2
1000 character(*,SKG) , intent(in) :: array
1001 logical(LK) :: uniqueAll
1002 end function
1003#endif
1004
1005#if SK1_ENABLED
1006 PURE module function isUniqueAllDefCom_D0_SK1(array) result(uniqueAll)
1007#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1008 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D0_SK1
1009#endif
1010 use pm_kind, only: SKG => SK1
1011 character(*,SKG) , intent(in) :: array
1012 logical(LK) :: uniqueAll
1013 end function
1014#endif
1015
1016 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1017
1018#if SK5_ENABLED
1019 PURE module function isUniqueAllDefCom_D1_SK5(array) result(uniqueAll)
1020#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1021 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_SK5
1022#endif
1023 use pm_kind, only: SKG => SK5
1024 character(*,SKG) , intent(in), contiguous :: array(:)
1025 logical(LK) :: uniqueAll
1026 end function
1027#endif
1028
1029#if SK4_ENABLED
1030 PURE module function isUniqueAllDefCom_D1_SK4(array) result(uniqueAll)
1031#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1032 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_SK4
1033#endif
1034 use pm_kind, only: SKG => SK4
1035 character(*,SKG) , intent(in), contiguous :: array(:)
1036 logical(LK) :: uniqueAll
1037 end function
1038#endif
1039
1040#if SK3_ENABLED
1041 PURE module function isUniqueAllDefCom_D1_SK3(array) result(uniqueAll)
1042#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1043 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_SK3
1044#endif
1045 use pm_kind, only: SKG => SK3
1046 character(*,SKG) , intent(in), contiguous :: array(:)
1047 logical(LK) :: uniqueAll
1048 end function
1049#endif
1050
1051#if SK2_ENABLED
1052 PURE module function isUniqueAllDefCom_D1_SK2(array) result(uniqueAll)
1053#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1054 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_SK2
1055#endif
1056 use pm_kind, only: SKG => SK2
1057 character(*,SKG) , intent(in), contiguous :: array(:)
1058 logical(LK) :: uniqueAll
1059 end function
1060#endif
1061
1062#if SK1_ENABLED
1063 PURE module function isUniqueAllDefCom_D1_SK1(array) result(uniqueAll)
1064#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1065 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_SK1
1066#endif
1067 use pm_kind, only: SKG => SK1
1068 character(*,SKG) , intent(in), contiguous :: array(:)
1069 logical(LK) :: uniqueAll
1070 end function
1071#endif
1072
1073 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1074
1075#if IK5_ENABLED
1076 PURE module function isUniqueAllDefCom_D1_IK5(array) result(uniqueAll)
1077#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1078 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_IK5
1079#endif
1080 use pm_kind, only: IKG => IK5
1081 integer(IKG) , intent(in), contiguous :: array(:)
1082 logical(LK) :: uniqueAll
1083 end function
1084#endif
1085
1086#if IK4_ENABLED
1087 PURE module function isUniqueAllDefCom_D1_IK4(array) result(uniqueAll)
1088#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1089 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_IK4
1090#endif
1091 use pm_kind, only: IKG => IK4
1092 integer(IKG) , intent(in), contiguous :: array(:)
1093 logical(LK) :: uniqueAll
1094 end function
1095#endif
1096
1097#if IK3_ENABLED
1098 PURE module function isUniqueAllDefCom_D1_IK3(array) result(uniqueAll)
1099#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1100 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_IK3
1101#endif
1102 use pm_kind, only: IKG => IK3
1103 integer(IKG) , intent(in), contiguous :: array(:)
1104 logical(LK) :: uniqueAll
1105 end function
1106#endif
1107
1108#if IK2_ENABLED
1109 PURE module function isUniqueAllDefCom_D1_IK2(array) result(uniqueAll)
1110#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1111 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_IK2
1112#endif
1113 use pm_kind, only: IKG => IK2
1114 integer(IKG) , intent(in), contiguous :: array(:)
1115 logical(LK) :: uniqueAll
1116 end function
1117#endif
1118
1119#if IK1_ENABLED
1120 PURE module function isUniqueAllDefCom_D1_IK1(array) result(uniqueAll)
1121#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1122 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_IK1
1123#endif
1124 use pm_kind, only: IKG => IK1
1125 integer(IKG) , intent(in), contiguous :: array(:)
1126 logical(LK) :: uniqueAll
1127 end function
1128#endif
1129
1130 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1131
1132#if LK5_ENABLED
1133 PURE module function isUniqueAllDefCom_D1_LK5(array) result(uniqueAll)
1134#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1135 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_LK5
1136#endif
1137 use pm_kind, only: LKG => LK5
1138 logical(LKG) , intent(in), contiguous :: array(:)
1139 logical(LK) :: uniqueAll
1140 end function
1141#endif
1142
1143#if LK4_ENABLED
1144 PURE module function isUniqueAllDefCom_D1_LK4(array) result(uniqueAll)
1145#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1146 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_LK4
1147#endif
1148 use pm_kind, only: LKG => LK4
1149 logical(LKG) , intent(in), contiguous :: array(:)
1150 logical(LK) :: uniqueAll
1151 end function
1152#endif
1153
1154#if LK3_ENABLED
1155 PURE module function isUniqueAllDefCom_D1_LK3(array) result(uniqueAll)
1156#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1157 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_LK3
1158#endif
1159 use pm_kind, only: LKG => LK3
1160 logical(LKG) , intent(in), contiguous :: array(:)
1161 logical(LK) :: uniqueAll
1162 end function
1163#endif
1164
1165#if LK2_ENABLED
1166 PURE module function isUniqueAllDefCom_D1_LK2(array) result(uniqueAll)
1167#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1168 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_LK2
1169#endif
1170 use pm_kind, only: LKG => LK2
1171 logical(LKG) , intent(in), contiguous :: array(:)
1172 logical(LK) :: uniqueAll
1173 end function
1174#endif
1175
1176#if LK1_ENABLED
1177 PURE module function isUniqueAllDefCom_D1_LK1(array) result(uniqueAll)
1178#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1179 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_LK1
1180#endif
1181 use pm_kind, only: LKG => LK1
1182 logical(LKG) , intent(in), contiguous :: array(:)
1183 logical(LK) :: uniqueAll
1184 end function
1185#endif
1186
1187 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1188
1189#if CK5_ENABLED
1190 PURE module function isUniqueAllDefCom_D1_CK5(array) result(uniqueAll)
1191#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1192 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_CK5
1193#endif
1194 use pm_kind, only: CKG => CK5
1195 complex(CKG) , intent(in), contiguous :: array(:)
1196 logical(LK) :: uniqueAll
1197 end function
1198#endif
1199
1200#if CK4_ENABLED
1201 PURE module function isUniqueAllDefCom_D1_CK4(array) result(uniqueAll)
1202#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1203 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_CK4
1204#endif
1205 use pm_kind, only: CKG => CK4
1206 complex(CKG) , intent(in), contiguous :: array(:)
1207 logical(LK) :: uniqueAll
1208 end function
1209#endif
1210
1211#if CK3_ENABLED
1212 PURE module function isUniqueAllDefCom_D1_CK3(array) result(uniqueAll)
1213#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1214 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_CK3
1215#endif
1216 use pm_kind, only: CKG => CK3
1217 complex(CKG) , intent(in), contiguous :: array(:)
1218 logical(LK) :: uniqueAll
1219 end function
1220#endif
1221
1222#if CK2_ENABLED
1223 PURE module function isUniqueAllDefCom_D1_CK2(array) result(uniqueAll)
1224#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1225 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_CK2
1226#endif
1227 use pm_kind, only: CKG => CK2
1228 complex(CKG) , intent(in), contiguous :: array(:)
1229 logical(LK) :: uniqueAll
1230 end function
1231#endif
1232
1233#if CK1_ENABLED
1234 PURE module function isUniqueAllDefCom_D1_CK1(array) result(uniqueAll)
1235#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1236 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_CK1
1237#endif
1238 use pm_kind, only: CKG => CK1
1239 complex(CKG) , intent(in), contiguous :: array(:)
1240 logical(LK) :: uniqueAll
1241 end function
1242#endif
1243
1244 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1245
1246#if RK5_ENABLED
1247 PURE module function isUniqueAllDefCom_D1_RK5(array) result(uniqueAll)
1248#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1249 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_RK5
1250#endif
1251 use pm_kind, only: RKG => RK5
1252 real(RKG) , intent(in), contiguous :: array(:)
1253 logical(LK) :: uniqueAll
1254 end function
1255#endif
1256
1257#if RK4_ENABLED
1258 PURE module function isUniqueAllDefCom_D1_RK4(array) result(uniqueAll)
1259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1260 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_RK4
1261#endif
1262 use pm_kind, only: RKG => RK4
1263 real(RKG) , intent(in), contiguous :: array(:)
1264 logical(LK) :: uniqueAll
1265 end function
1266#endif
1267
1268#if RK3_ENABLED
1269 PURE module function isUniqueAllDefCom_D1_RK3(array) result(uniqueAll)
1270#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1271 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_RK3
1272#endif
1273 use pm_kind, only: RKG => RK3
1274 real(RKG) , intent(in), contiguous :: array(:)
1275 logical(LK) :: uniqueAll
1276 end function
1277#endif
1278
1279#if RK2_ENABLED
1280 PURE module function isUniqueAllDefCom_D1_RK2(array) result(uniqueAll)
1281#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1282 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_RK2
1283#endif
1284 use pm_kind, only: RKG => RK2
1285 real(RKG) , intent(in), contiguous :: array(:)
1286 logical(LK) :: uniqueAll
1287 end function
1288#endif
1289
1290#if RK1_ENABLED
1291 PURE module function isUniqueAllDefCom_D1_RK1(array) result(uniqueAll)
1292#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1293 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllDefCom_D1_RK1
1294#endif
1295 use pm_kind, only: RKG => RK1
1296 real(RKG) , intent(in), contiguous :: array(:)
1297 logical(LK) :: uniqueAll
1298 end function
1299#endif
1300
1301 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1302 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1303 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1304
1305#if SK5_ENABLED
1306 module function isUniqueAllCusCom_D0_SK5(array, iseq) result(uniqueAll)
1307#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1308 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D0_SK5
1309#endif
1310 use pm_kind, only: SKG => SK5
1311 character(*,SKG) , intent(in) :: array
1312 procedure(logical(LK)) :: iseq
1313 logical(LK) :: uniqueAll
1314 end function
1315#endif
1316
1317#if SK4_ENABLED
1318 module function isUniqueAllCusCom_D0_SK4(array, iseq) result(uniqueAll)
1319#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1320 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D0_SK4
1321#endif
1322 use pm_kind, only: SKG => SK4
1323 character(*,SKG) , intent(in) :: array
1324 procedure(logical(LK)) :: iseq
1325 logical(LK) :: uniqueAll
1326 end function
1327#endif
1328
1329#if SK3_ENABLED
1330 module function isUniqueAllCusCom_D0_SK3(array, iseq) result(uniqueAll)
1331#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1332 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D0_SK3
1333#endif
1334 use pm_kind, only: SKG => SK3
1335 character(*,SKG) , intent(in) :: array
1336 procedure(logical(LK)) :: iseq
1337 logical(LK) :: uniqueAll
1338 end function
1339#endif
1340
1341#if SK2_ENABLED
1342 module function isUniqueAllCusCom_D0_SK2(array, iseq) result(uniqueAll)
1343#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1344 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D0_SK2
1345#endif
1346 use pm_kind, only: SKG => SK2
1347 character(*,SKG) , intent(in) :: array
1348 procedure(logical(LK)) :: iseq
1349 logical(LK) :: uniqueAll
1350 end function
1351#endif
1352
1353#if SK1_ENABLED
1354 module function isUniqueAllCusCom_D0_SK1(array, iseq) result(uniqueAll)
1355#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1356 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D0_SK1
1357#endif
1358 use pm_kind, only: SKG => SK1
1359 character(*,SKG) , intent(in) :: array
1360 procedure(logical(LK)) :: iseq
1361 logical(LK) :: uniqueAll
1362 end function
1363#endif
1364
1365 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1366
1367#if SK5_ENABLED
1368 module function isUniqueAllCusCom_D1_SK5(array, iseq) result(uniqueAll)
1369#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1370 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_SK5
1371#endif
1372 use pm_kind, only: SKG => SK5
1373 character(*,SKG) , intent(in), contiguous :: array(:)
1374 procedure(logical(LK)) :: iseq
1375 logical(LK) :: uniqueAll
1376 end function
1377#endif
1378
1379#if SK4_ENABLED
1380 module function isUniqueAllCusCom_D1_SK4(array, iseq) result(uniqueAll)
1381#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1382 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_SK4
1383#endif
1384 use pm_kind, only: SKG => SK4
1385 character(*,SKG) , intent(in), contiguous :: array(:)
1386 procedure(logical(LK)) :: iseq
1387 logical(LK) :: uniqueAll
1388 end function
1389#endif
1390
1391#if SK3_ENABLED
1392 module function isUniqueAllCusCom_D1_SK3(array, iseq) result(uniqueAll)
1393#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1394 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_SK3
1395#endif
1396 use pm_kind, only: SKG => SK3
1397 character(*,SKG) , intent(in), contiguous :: array(:)
1398 procedure(logical(LK)) :: iseq
1399 logical(LK) :: uniqueAll
1400 end function
1401#endif
1402
1403#if SK2_ENABLED
1404 module function isUniqueAllCusCom_D1_SK2(array, iseq) result(uniqueAll)
1405#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1406 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_SK2
1407#endif
1408 use pm_kind, only: SKG => SK2
1409 character(*,SKG) , intent(in), contiguous :: array(:)
1410 procedure(logical(LK)) :: iseq
1411 logical(LK) :: uniqueAll
1412 end function
1413#endif
1414
1415#if SK1_ENABLED
1416 module function isUniqueAllCusCom_D1_SK1(array, iseq) result(uniqueAll)
1417#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1418 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_SK1
1419#endif
1420 use pm_kind, only: SKG => SK1
1421 character(*,SKG) , intent(in), contiguous :: array(:)
1422 procedure(logical(LK)) :: iseq
1423 logical(LK) :: uniqueAll
1424 end function
1425#endif
1426
1427 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1428
1429#if IK5_ENABLED
1430 module function isUniqueAllCusCom_D1_IK5(array, iseq) result(uniqueAll)
1431#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1432 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_IK5
1433#endif
1434 use pm_kind, only: IKG => IK5
1435 integer(IKG) , intent(in), contiguous :: array(:)
1436 procedure(logical(LK)) :: iseq
1437 logical(LK) :: uniqueAll
1438 end function
1439#endif
1440
1441#if IK4_ENABLED
1442 module function isUniqueAllCusCom_D1_IK4(array, iseq) result(uniqueAll)
1443#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1444 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_IK4
1445#endif
1446 use pm_kind, only: IKG => IK4
1447 integer(IKG) , intent(in), contiguous :: array(:)
1448 procedure(logical(LK)) :: iseq
1449 logical(LK) :: uniqueAll
1450 end function
1451#endif
1452
1453#if IK3_ENABLED
1454 module function isUniqueAllCusCom_D1_IK3(array, iseq) result(uniqueAll)
1455#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1456 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_IK3
1457#endif
1458 use pm_kind, only: IKG => IK3
1459 integer(IKG) , intent(in), contiguous :: array(:)
1460 procedure(logical(LK)) :: iseq
1461 logical(LK) :: uniqueAll
1462 end function
1463#endif
1464
1465#if IK2_ENABLED
1466 module function isUniqueAllCusCom_D1_IK2(array, iseq) result(uniqueAll)
1467#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1468 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_IK2
1469#endif
1470 use pm_kind, only: IKG => IK2
1471 integer(IKG) , intent(in), contiguous :: array(:)
1472 procedure(logical(LK)) :: iseq
1473 logical(LK) :: uniqueAll
1474 end function
1475#endif
1476
1477#if IK1_ENABLED
1478 module function isUniqueAllCusCom_D1_IK1(array, iseq) result(uniqueAll)
1479#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1480 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_IK1
1481#endif
1482 use pm_kind, only: IKG => IK1
1483 integer(IKG) , intent(in), contiguous :: array(:)
1484 procedure(logical(LK)) :: iseq
1485 logical(LK) :: uniqueAll
1486 end function
1487#endif
1488
1489 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1490
1491#if LK5_ENABLED
1492 module function isUniqueAllCusCom_D1_LK5(array, iseq) result(uniqueAll)
1493#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1494 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_LK5
1495#endif
1496 use pm_kind, only: LKG => LK5
1497 logical(LKG) , intent(in), contiguous :: array(:)
1498 procedure(logical(LK)) :: iseq
1499 logical(LK) :: uniqueAll
1500 end function
1501#endif
1502
1503#if LK4_ENABLED
1504 module function isUniqueAllCusCom_D1_LK4(array, iseq) result(uniqueAll)
1505#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1506 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_LK4
1507#endif
1508 use pm_kind, only: LKG => LK4
1509 logical(LKG) , intent(in), contiguous :: array(:)
1510 procedure(logical(LK)) :: iseq
1511 logical(LK) :: uniqueAll
1512 end function
1513#endif
1514
1515#if LK3_ENABLED
1516 module function isUniqueAllCusCom_D1_LK3(array, iseq) result(uniqueAll)
1517#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1518 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_LK3
1519#endif
1520 use pm_kind, only: LKG => LK3
1521 logical(LKG) , intent(in), contiguous :: array(:)
1522 procedure(logical(LK)) :: iseq
1523 logical(LK) :: uniqueAll
1524 end function
1525#endif
1526
1527#if LK2_ENABLED
1528 module function isUniqueAllCusCom_D1_LK2(array, iseq) result(uniqueAll)
1529#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1530 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_LK2
1531#endif
1532 use pm_kind, only: LKG => LK2
1533 logical(LKG) , intent(in), contiguous :: array(:)
1534 procedure(logical(LK)) :: iseq
1535 logical(LK) :: uniqueAll
1536 end function
1537#endif
1538
1539#if LK1_ENABLED
1540 module function isUniqueAllCusCom_D1_LK1(array, iseq) result(uniqueAll)
1541#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1542 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_LK1
1543#endif
1544 use pm_kind, only: LKG => LK1
1545 logical(LKG) , intent(in), contiguous :: array(:)
1546 procedure(logical(LK)) :: iseq
1547 logical(LK) :: uniqueAll
1548 end function
1549#endif
1550
1551 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1552
1553#if CK5_ENABLED
1554 module function isUniqueAllCusCom_D1_CK5(array, iseq) result(uniqueAll)
1555#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1556 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_CK5
1557#endif
1558 use pm_kind, only: CKG => CK5
1559 complex(CKG) , intent(in), contiguous :: array(:)
1560 procedure(logical(LK)) :: iseq
1561 logical(LK) :: uniqueAll
1562 end function
1563#endif
1564
1565#if CK4_ENABLED
1566 module function isUniqueAllCusCom_D1_CK4(array, iseq) result(uniqueAll)
1567#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1568 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_CK4
1569#endif
1570 use pm_kind, only: CKG => CK4
1571 complex(CKG) , intent(in), contiguous :: array(:)
1572 procedure(logical(LK)) :: iseq
1573 logical(LK) :: uniqueAll
1574 end function
1575#endif
1576
1577#if CK3_ENABLED
1578 module function isUniqueAllCusCom_D1_CK3(array, iseq) result(uniqueAll)
1579#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1580 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_CK3
1581#endif
1582 use pm_kind, only: CKG => CK3
1583 complex(CKG) , intent(in), contiguous :: array(:)
1584 procedure(logical(LK)) :: iseq
1585 logical(LK) :: uniqueAll
1586 end function
1587#endif
1588
1589#if CK2_ENABLED
1590 module function isUniqueAllCusCom_D1_CK2(array, iseq) result(uniqueAll)
1591#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1592 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_CK2
1593#endif
1594 use pm_kind, only: CKG => CK2
1595 complex(CKG) , intent(in), contiguous :: array(:)
1596 procedure(logical(LK)) :: iseq
1597 logical(LK) :: uniqueAll
1598 end function
1599#endif
1600
1601#if CK1_ENABLED
1602 module function isUniqueAllCusCom_D1_CK1(array, iseq) result(uniqueAll)
1603#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1604 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_CK1
1605#endif
1606 use pm_kind, only: CKG => CK1
1607 complex(CKG) , intent(in), contiguous :: array(:)
1608 procedure(logical(LK)) :: iseq
1609 logical(LK) :: uniqueAll
1610 end function
1611#endif
1612
1613 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1614
1615#if RK5_ENABLED
1616 module function isUniqueAllCusCom_D1_RK5(array, iseq) result(uniqueAll)
1617#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1618 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_RK5
1619#endif
1620 use pm_kind, only: RKG => RK5
1621 real(RKG) , intent(in), contiguous :: array(:)
1622 procedure(logical(LK)) :: iseq
1623 logical(LK) :: uniqueAll
1624 end function
1625#endif
1626
1627#if RK4_ENABLED
1628 module function isUniqueAllCusCom_D1_RK4(array, iseq) result(uniqueAll)
1629#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1630 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_RK4
1631#endif
1632 use pm_kind, only: RKG => RK4
1633 real(RKG) , intent(in), contiguous :: array(:)
1634 procedure(logical(LK)) :: iseq
1635 logical(LK) :: uniqueAll
1636 end function
1637#endif
1638
1639#if RK3_ENABLED
1640 module function isUniqueAllCusCom_D1_RK3(array, iseq) result(uniqueAll)
1641#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1642 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_RK3
1643#endif
1644 use pm_kind, only: RKG => RK3
1645 real(RKG) , intent(in), contiguous :: array(:)
1646 procedure(logical(LK)) :: iseq
1647 logical(LK) :: uniqueAll
1648 end function
1649#endif
1650
1651#if RK2_ENABLED
1652 module function isUniqueAllCusCom_D1_RK2(array, iseq) result(uniqueAll)
1653#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1654 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_RK2
1655#endif
1656 use pm_kind, only: RKG => RK2
1657 real(RKG) , intent(in), contiguous :: array(:)
1658 procedure(logical(LK)) :: iseq
1659 logical(LK) :: uniqueAll
1660 end function
1661#endif
1662
1663#if RK1_ENABLED
1664 module function isUniqueAllCusCom_D1_RK1(array, iseq) result(uniqueAll)
1665#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1666 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAllCusCom_D1_RK1
1667#endif
1668 use pm_kind, only: RKG => RK1
1669 real(RKG) , intent(in), contiguous :: array(:)
1670 procedure(logical(LK)) :: iseq
1671 logical(LK) :: uniqueAll
1672 end function
1673#endif
1674
1675 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1676 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1677 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1678
1679 end interface isUniqueAll
1680
1681!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1682
1770 interface isUniqueAny
1771
1772 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1773 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1774 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1775
1776#if SK5_ENABLED
1777 PURE module function isUniqueAnyDefCom_D0_SK5(array) result(uniqueAny)
1778#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1779 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D0_SK5
1780#endif
1781 use pm_kind, only: SKG => SK5
1782 character(*,SKG) , intent(in) :: array
1783 logical(LK) :: uniqueAny
1784 end function
1785#endif
1786
1787#if SK4_ENABLED
1788 PURE module function isUniqueAnyDefCom_D0_SK4(array) result(uniqueAny)
1789#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1790 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D0_SK4
1791#endif
1792 use pm_kind, only: SKG => SK4
1793 character(*,SKG) , intent(in) :: array
1794 logical(LK) :: uniqueAny
1795 end function
1796#endif
1797
1798#if SK3_ENABLED
1799 PURE module function isUniqueAnyDefCom_D0_SK3(array) result(uniqueAny)
1800#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1801 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D0_SK3
1802#endif
1803 use pm_kind, only: SKG => SK3
1804 character(*,SKG) , intent(in) :: array
1805 logical(LK) :: uniqueAny
1806 end function
1807#endif
1808
1809#if SK2_ENABLED
1810 PURE module function isUniqueAnyDefCom_D0_SK2(array) result(uniqueAny)
1811#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1812 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D0_SK2
1813#endif
1814 use pm_kind, only: SKG => SK2
1815 character(*,SKG) , intent(in) :: array
1816 logical(LK) :: uniqueAny
1817 end function
1818#endif
1819
1820#if SK1_ENABLED
1821 PURE module function isUniqueAnyDefCom_D0_SK1(array) result(uniqueAny)
1822#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1823 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D0_SK1
1824#endif
1825 use pm_kind, only: SKG => SK1
1826 character(*,SKG) , intent(in) :: array
1827 logical(LK) :: uniqueAny
1828 end function
1829#endif
1830
1831 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1832
1833#if SK5_ENABLED
1834 PURE module function isUniqueAnyDefCom_D1_SK5(array) result(uniqueAny)
1835#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1836 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_SK5
1837#endif
1838 use pm_kind, only: SKG => SK5
1839 character(*,SKG) , intent(in), contiguous :: array(:)
1840 logical(LK) :: uniqueAny
1841 end function
1842#endif
1843
1844#if SK4_ENABLED
1845 PURE module function isUniqueAnyDefCom_D1_SK4(array) result(uniqueAny)
1846#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1847 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_SK4
1848#endif
1849 use pm_kind, only: SKG => SK4
1850 character(*,SKG) , intent(in), contiguous :: array(:)
1851 logical(LK) :: uniqueAny
1852 end function
1853#endif
1854
1855#if SK3_ENABLED
1856 PURE module function isUniqueAnyDefCom_D1_SK3(array) result(uniqueAny)
1857#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1858 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_SK3
1859#endif
1860 use pm_kind, only: SKG => SK3
1861 character(*,SKG) , intent(in), contiguous :: array(:)
1862 logical(LK) :: uniqueAny
1863 end function
1864#endif
1865
1866#if SK2_ENABLED
1867 PURE module function isUniqueAnyDefCom_D1_SK2(array) result(uniqueAny)
1868#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1869 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_SK2
1870#endif
1871 use pm_kind, only: SKG => SK2
1872 character(*,SKG) , intent(in), contiguous :: array(:)
1873 logical(LK) :: uniqueAny
1874 end function
1875#endif
1876
1877#if SK1_ENABLED
1878 PURE module function isUniqueAnyDefCom_D1_SK1(array) result(uniqueAny)
1879#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1880 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_SK1
1881#endif
1882 use pm_kind, only: SKG => SK1
1883 character(*,SKG) , intent(in), contiguous :: array(:)
1884 logical(LK) :: uniqueAny
1885 end function
1886#endif
1887
1888 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1889
1890#if IK5_ENABLED
1891 PURE module function isUniqueAnyDefCom_D1_IK5(array) result(uniqueAny)
1892#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1893 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_IK5
1894#endif
1895 use pm_kind, only: IKG => IK5
1896 integer(IKG) , intent(in), contiguous :: array(:)
1897 logical(LK) :: uniqueAny
1898 end function
1899#endif
1900
1901#if IK4_ENABLED
1902 PURE module function isUniqueAnyDefCom_D1_IK4(array) result(uniqueAny)
1903#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1904 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_IK4
1905#endif
1906 use pm_kind, only: IKG => IK4
1907 integer(IKG) , intent(in), contiguous :: array(:)
1908 logical(LK) :: uniqueAny
1909 end function
1910#endif
1911
1912#if IK3_ENABLED
1913 PURE module function isUniqueAnyDefCom_D1_IK3(array) result(uniqueAny)
1914#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1915 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_IK3
1916#endif
1917 use pm_kind, only: IKG => IK3
1918 integer(IKG) , intent(in), contiguous :: array(:)
1919 logical(LK) :: uniqueAny
1920 end function
1921#endif
1922
1923#if IK2_ENABLED
1924 PURE module function isUniqueAnyDefCom_D1_IK2(array) result(uniqueAny)
1925#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1926 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_IK2
1927#endif
1928 use pm_kind, only: IKG => IK2
1929 integer(IKG) , intent(in), contiguous :: array(:)
1930 logical(LK) :: uniqueAny
1931 end function
1932#endif
1933
1934#if IK1_ENABLED
1935 PURE module function isUniqueAnyDefCom_D1_IK1(array) result(uniqueAny)
1936#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1937 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_IK1
1938#endif
1939 use pm_kind, only: IKG => IK1
1940 integer(IKG) , intent(in), contiguous :: array(:)
1941 logical(LK) :: uniqueAny
1942 end function
1943#endif
1944
1945 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1946
1947#if LK5_ENABLED
1948 PURE module function isUniqueAnyDefCom_D1_LK5(array) result(uniqueAny)
1949#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1950 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_LK5
1951#endif
1952 use pm_kind, only: LKG => LK5
1953 logical(LKG) , intent(in), contiguous :: array(:)
1954 logical(LK) :: uniqueAny
1955 end function
1956#endif
1957
1958#if LK4_ENABLED
1959 PURE module function isUniqueAnyDefCom_D1_LK4(array) result(uniqueAny)
1960#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1961 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_LK4
1962#endif
1963 use pm_kind, only: LKG => LK4
1964 logical(LKG) , intent(in), contiguous :: array(:)
1965 logical(LK) :: uniqueAny
1966 end function
1967#endif
1968
1969#if LK3_ENABLED
1970 PURE module function isUniqueAnyDefCom_D1_LK3(array) result(uniqueAny)
1971#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1972 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_LK3
1973#endif
1974 use pm_kind, only: LKG => LK3
1975 logical(LKG) , intent(in), contiguous :: array(:)
1976 logical(LK) :: uniqueAny
1977 end function
1978#endif
1979
1980#if LK2_ENABLED
1981 PURE module function isUniqueAnyDefCom_D1_LK2(array) result(uniqueAny)
1982#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1983 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_LK2
1984#endif
1985 use pm_kind, only: LKG => LK2
1986 logical(LKG) , intent(in), contiguous :: array(:)
1987 logical(LK) :: uniqueAny
1988 end function
1989#endif
1990
1991#if LK1_ENABLED
1992 PURE module function isUniqueAnyDefCom_D1_LK1(array) result(uniqueAny)
1993#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1994 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_LK1
1995#endif
1996 use pm_kind, only: LKG => LK1
1997 logical(LKG) , intent(in), contiguous :: array(:)
1998 logical(LK) :: uniqueAny
1999 end function
2000#endif
2001
2002 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2003
2004#if CK5_ENABLED
2005 PURE module function isUniqueAnyDefCom_D1_CK5(array) result(uniqueAny)
2006#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2007 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_CK5
2008#endif
2009 use pm_kind, only: CKG => CK5
2010 complex(CKG) , intent(in), contiguous :: array(:)
2011 logical(LK) :: uniqueAny
2012 end function
2013#endif
2014
2015#if CK4_ENABLED
2016 PURE module function isUniqueAnyDefCom_D1_CK4(array) result(uniqueAny)
2017#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2018 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_CK4
2019#endif
2020 use pm_kind, only: CKG => CK4
2021 complex(CKG) , intent(in), contiguous :: array(:)
2022 logical(LK) :: uniqueAny
2023 end function
2024#endif
2025
2026#if CK3_ENABLED
2027 PURE module function isUniqueAnyDefCom_D1_CK3(array) result(uniqueAny)
2028#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2029 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_CK3
2030#endif
2031 use pm_kind, only: CKG => CK3
2032 complex(CKG) , intent(in), contiguous :: array(:)
2033 logical(LK) :: uniqueAny
2034 end function
2035#endif
2036
2037#if CK2_ENABLED
2038 PURE module function isUniqueAnyDefCom_D1_CK2(array) result(uniqueAny)
2039#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2040 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_CK2
2041#endif
2042 use pm_kind, only: CKG => CK2
2043 complex(CKG) , intent(in), contiguous :: array(:)
2044 logical(LK) :: uniqueAny
2045 end function
2046#endif
2047
2048#if CK1_ENABLED
2049 PURE module function isUniqueAnyDefCom_D1_CK1(array) result(uniqueAny)
2050#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2051 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_CK1
2052#endif
2053 use pm_kind, only: CKG => CK1
2054 complex(CKG) , intent(in), contiguous :: array(:)
2055 logical(LK) :: uniqueAny
2056 end function
2057#endif
2058
2059 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2060
2061#if RK5_ENABLED
2062 PURE module function isUniqueAnyDefCom_D1_RK5(array) result(uniqueAny)
2063#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2064 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_RK5
2065#endif
2066 use pm_kind, only: RKG => RK5
2067 real(RKG) , intent(in), contiguous :: array(:)
2068 logical(LK) :: uniqueAny
2069 end function
2070#endif
2071
2072#if RK4_ENABLED
2073 PURE module function isUniqueAnyDefCom_D1_RK4(array) result(uniqueAny)
2074#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2075 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_RK4
2076#endif
2077 use pm_kind, only: RKG => RK4
2078 real(RKG) , intent(in), contiguous :: array(:)
2079 logical(LK) :: uniqueAny
2080 end function
2081#endif
2082
2083#if RK3_ENABLED
2084 PURE module function isUniqueAnyDefCom_D1_RK3(array) result(uniqueAny)
2085#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2086 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_RK3
2087#endif
2088 use pm_kind, only: RKG => RK3
2089 real(RKG) , intent(in), contiguous :: array(:)
2090 logical(LK) :: uniqueAny
2091 end function
2092#endif
2093
2094#if RK2_ENABLED
2095 PURE module function isUniqueAnyDefCom_D1_RK2(array) result(uniqueAny)
2096#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2097 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_RK2
2098#endif
2099 use pm_kind, only: RKG => RK2
2100 real(RKG) , intent(in), contiguous :: array(:)
2101 logical(LK) :: uniqueAny
2102 end function
2103#endif
2104
2105#if RK1_ENABLED
2106 PURE module function isUniqueAnyDefCom_D1_RK1(array) result(uniqueAny)
2107#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2108 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyDefCom_D1_RK1
2109#endif
2110 use pm_kind, only: RKG => RK1
2111 real(RKG) , intent(in), contiguous :: array(:)
2112 logical(LK) :: uniqueAny
2113 end function
2114#endif
2115
2116 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2117 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2118 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2119
2120#if SK5_ENABLED
2121 module function isUniqueAnyCusCom_D0_SK5(array, iseq) result(uniqueAny)
2122#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2123 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D0_SK5
2124#endif
2125 use pm_kind, only: SKG => SK5
2126 character(*,SKG) , intent(in) :: array
2127 procedure(logical(LK)) :: iseq
2128 logical(LK) :: uniqueAny
2129 end function
2130#endif
2131
2132#if SK4_ENABLED
2133 module function isUniqueAnyCusCom_D0_SK4(array, iseq) result(uniqueAny)
2134#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2135 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D0_SK4
2136#endif
2137 use pm_kind, only: SKG => SK4
2138 character(*,SKG) , intent(in) :: array
2139 procedure(logical(LK)) :: iseq
2140 logical(LK) :: uniqueAny
2141 end function
2142#endif
2143
2144#if SK3_ENABLED
2145 module function isUniqueAnyCusCom_D0_SK3(array, iseq) result(uniqueAny)
2146#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2147 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D0_SK3
2148#endif
2149 use pm_kind, only: SKG => SK3
2150 character(*,SKG) , intent(in) :: array
2151 procedure(logical(LK)) :: iseq
2152 logical(LK) :: uniqueAny
2153 end function
2154#endif
2155
2156#if SK2_ENABLED
2157 module function isUniqueAnyCusCom_D0_SK2(array, iseq) result(uniqueAny)
2158#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2159 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D0_SK2
2160#endif
2161 use pm_kind, only: SKG => SK2
2162 character(*,SKG) , intent(in) :: array
2163 procedure(logical(LK)) :: iseq
2164 logical(LK) :: uniqueAny
2165 end function
2166#endif
2167
2168#if SK1_ENABLED
2169 module function isUniqueAnyCusCom_D0_SK1(array, iseq) result(uniqueAny)
2170#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2171 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D0_SK1
2172#endif
2173 use pm_kind, only: SKG => SK1
2174 character(*,SKG) , intent(in) :: array
2175 procedure(logical(LK)) :: iseq
2176 logical(LK) :: uniqueAny
2177 end function
2178#endif
2179
2180 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2181
2182#if SK5_ENABLED
2183 module function isUniqueAnyCusCom_D1_SK5(array, iseq) result(uniqueAny)
2184#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2185 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_SK5
2186#endif
2187 use pm_kind, only: SKG => SK5
2188 character(*,SKG) , intent(in), contiguous :: array(:)
2189 procedure(logical(LK)) :: iseq
2190 logical(LK) :: uniqueAny
2191 end function
2192#endif
2193
2194#if SK4_ENABLED
2195 module function isUniqueAnyCusCom_D1_SK4(array, iseq) result(uniqueAny)
2196#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2197 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_SK4
2198#endif
2199 use pm_kind, only: SKG => SK4
2200 character(*,SKG) , intent(in), contiguous :: array(:)
2201 procedure(logical(LK)) :: iseq
2202 logical(LK) :: uniqueAny
2203 end function
2204#endif
2205
2206#if SK3_ENABLED
2207 module function isUniqueAnyCusCom_D1_SK3(array, iseq) result(uniqueAny)
2208#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2209 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_SK3
2210#endif
2211 use pm_kind, only: SKG => SK3
2212 character(*,SKG) , intent(in), contiguous :: array(:)
2213 procedure(logical(LK)) :: iseq
2214 logical(LK) :: uniqueAny
2215 end function
2216#endif
2217
2218#if SK2_ENABLED
2219 module function isUniqueAnyCusCom_D1_SK2(array, iseq) result(uniqueAny)
2220#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2221 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_SK2
2222#endif
2223 use pm_kind, only: SKG => SK2
2224 character(*,SKG) , intent(in), contiguous :: array(:)
2225 procedure(logical(LK)) :: iseq
2226 logical(LK) :: uniqueAny
2227 end function
2228#endif
2229
2230#if SK1_ENABLED
2231 module function isUniqueAnyCusCom_D1_SK1(array, iseq) result(uniqueAny)
2232#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2233 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_SK1
2234#endif
2235 use pm_kind, only: SKG => SK1
2236 character(*,SKG) , intent(in), contiguous :: array(:)
2237 procedure(logical(LK)) :: iseq
2238 logical(LK) :: uniqueAny
2239 end function
2240#endif
2241
2242 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2243
2244#if IK5_ENABLED
2245 module function isUniqueAnyCusCom_D1_IK5(array, iseq) result(uniqueAny)
2246#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2247 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_IK5
2248#endif
2249 use pm_kind, only: IKG => IK5
2250 integer(IKG) , intent(in), contiguous :: array(:)
2251 procedure(logical(LK)) :: iseq
2252 logical(LK) :: uniqueAny
2253 end function
2254#endif
2255
2256#if IK4_ENABLED
2257 module function isUniqueAnyCusCom_D1_IK4(array, iseq) result(uniqueAny)
2258#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2259 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_IK4
2260#endif
2261 use pm_kind, only: IKG => IK4
2262 integer(IKG) , intent(in), contiguous :: array(:)
2263 procedure(logical(LK)) :: iseq
2264 logical(LK) :: uniqueAny
2265 end function
2266#endif
2267
2268#if IK3_ENABLED
2269 module function isUniqueAnyCusCom_D1_IK3(array, iseq) result(uniqueAny)
2270#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2271 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_IK3
2272#endif
2273 use pm_kind, only: IKG => IK3
2274 integer(IKG) , intent(in), contiguous :: array(:)
2275 procedure(logical(LK)) :: iseq
2276 logical(LK) :: uniqueAny
2277 end function
2278#endif
2279
2280#if IK2_ENABLED
2281 module function isUniqueAnyCusCom_D1_IK2(array, iseq) result(uniqueAny)
2282#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2283 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_IK2
2284#endif
2285 use pm_kind, only: IKG => IK2
2286 integer(IKG) , intent(in), contiguous :: array(:)
2287 procedure(logical(LK)) :: iseq
2288 logical(LK) :: uniqueAny
2289 end function
2290#endif
2291
2292#if IK1_ENABLED
2293 module function isUniqueAnyCusCom_D1_IK1(array, iseq) result(uniqueAny)
2294#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2295 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_IK1
2296#endif
2297 use pm_kind, only: IKG => IK1
2298 integer(IKG) , intent(in), contiguous :: array(:)
2299 procedure(logical(LK)) :: iseq
2300 logical(LK) :: uniqueAny
2301 end function
2302#endif
2303
2304 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2305
2306#if LK5_ENABLED
2307 module function isUniqueAnyCusCom_D1_LK5(array, iseq) result(uniqueAny)
2308#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2309 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_LK5
2310#endif
2311 use pm_kind, only: LKG => LK5
2312 logical(LKG) , intent(in), contiguous :: array(:)
2313 procedure(logical(LK)) :: iseq
2314 logical(LK) :: uniqueAny
2315 end function
2316#endif
2317
2318#if LK4_ENABLED
2319 module function isUniqueAnyCusCom_D1_LK4(array, iseq) result(uniqueAny)
2320#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2321 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_LK4
2322#endif
2323 use pm_kind, only: LKG => LK4
2324 logical(LKG) , intent(in), contiguous :: array(:)
2325 procedure(logical(LK)) :: iseq
2326 logical(LK) :: uniqueAny
2327 end function
2328#endif
2329
2330#if LK3_ENABLED
2331 module function isUniqueAnyCusCom_D1_LK3(array, iseq) result(uniqueAny)
2332#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2333 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_LK3
2334#endif
2335 use pm_kind, only: LKG => LK3
2336 logical(LKG) , intent(in), contiguous :: array(:)
2337 procedure(logical(LK)) :: iseq
2338 logical(LK) :: uniqueAny
2339 end function
2340#endif
2341
2342#if LK2_ENABLED
2343 module function isUniqueAnyCusCom_D1_LK2(array, iseq) result(uniqueAny)
2344#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2345 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_LK2
2346#endif
2347 use pm_kind, only: LKG => LK2
2348 logical(LKG) , intent(in), contiguous :: array(:)
2349 procedure(logical(LK)) :: iseq
2350 logical(LK) :: uniqueAny
2351 end function
2352#endif
2353
2354#if LK1_ENABLED
2355 module function isUniqueAnyCusCom_D1_LK1(array, iseq) result(uniqueAny)
2356#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2357 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_LK1
2358#endif
2359 use pm_kind, only: LKG => LK1
2360 logical(LKG) , intent(in), contiguous :: array(:)
2361 procedure(logical(LK)) :: iseq
2362 logical(LK) :: uniqueAny
2363 end function
2364#endif
2365
2366 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2367
2368#if CK5_ENABLED
2369 module function isUniqueAnyCusCom_D1_CK5(array, iseq) result(uniqueAny)
2370#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2371 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_CK5
2372#endif
2373 use pm_kind, only: CKG => CK5
2374 complex(CKG) , intent(in), contiguous :: array(:)
2375 procedure(logical(LK)) :: iseq
2376 logical(LK) :: uniqueAny
2377 end function
2378#endif
2379
2380#if CK4_ENABLED
2381 module function isUniqueAnyCusCom_D1_CK4(array, iseq) result(uniqueAny)
2382#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2383 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_CK4
2384#endif
2385 use pm_kind, only: CKG => CK4
2386 complex(CKG) , intent(in), contiguous :: array(:)
2387 procedure(logical(LK)) :: iseq
2388 logical(LK) :: uniqueAny
2389 end function
2390#endif
2391
2392#if CK3_ENABLED
2393 module function isUniqueAnyCusCom_D1_CK3(array, iseq) result(uniqueAny)
2394#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2395 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_CK3
2396#endif
2397 use pm_kind, only: CKG => CK3
2398 complex(CKG) , intent(in), contiguous :: array(:)
2399 procedure(logical(LK)) :: iseq
2400 logical(LK) :: uniqueAny
2401 end function
2402#endif
2403
2404#if CK2_ENABLED
2405 module function isUniqueAnyCusCom_D1_CK2(array, iseq) result(uniqueAny)
2406#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2407 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_CK2
2408#endif
2409 use pm_kind, only: CKG => CK2
2410 complex(CKG) , intent(in), contiguous :: array(:)
2411 procedure(logical(LK)) :: iseq
2412 logical(LK) :: uniqueAny
2413 end function
2414#endif
2415
2416#if CK1_ENABLED
2417 module function isUniqueAnyCusCom_D1_CK1(array, iseq) result(uniqueAny)
2418#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2419 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_CK1
2420#endif
2421 use pm_kind, only: CKG => CK1
2422 complex(CKG) , intent(in), contiguous :: array(:)
2423 procedure(logical(LK)) :: iseq
2424 logical(LK) :: uniqueAny
2425 end function
2426#endif
2427
2428 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2429
2430#if RK5_ENABLED
2431 module function isUniqueAnyCusCom_D1_RK5(array, iseq) result(uniqueAny)
2432#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2433 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_RK5
2434#endif
2435 use pm_kind, only: RKG => RK5
2436 real(RKG) , intent(in), contiguous :: array(:)
2437 procedure(logical(LK)) :: iseq
2438 logical(LK) :: uniqueAny
2439 end function
2440#endif
2441
2442#if RK4_ENABLED
2443 module function isUniqueAnyCusCom_D1_RK4(array, iseq) result(uniqueAny)
2444#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2445 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_RK4
2446#endif
2447 use pm_kind, only: RKG => RK4
2448 real(RKG) , intent(in), contiguous :: array(:)
2449 procedure(logical(LK)) :: iseq
2450 logical(LK) :: uniqueAny
2451 end function
2452#endif
2453
2454#if RK3_ENABLED
2455 module function isUniqueAnyCusCom_D1_RK3(array, iseq) result(uniqueAny)
2456#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2457 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_RK3
2458#endif
2459 use pm_kind, only: RKG => RK3
2460 real(RKG) , intent(in), contiguous :: array(:)
2461 procedure(logical(LK)) :: iseq
2462 logical(LK) :: uniqueAny
2463 end function
2464#endif
2465
2466#if RK2_ENABLED
2467 module function isUniqueAnyCusCom_D1_RK2(array, iseq) result(uniqueAny)
2468#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2469 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_RK2
2470#endif
2471 use pm_kind, only: RKG => RK2
2472 real(RKG) , intent(in), contiguous :: array(:)
2473 procedure(logical(LK)) :: iseq
2474 logical(LK) :: uniqueAny
2475 end function
2476#endif
2477
2478#if RK1_ENABLED
2479 module function isUniqueAnyCusCom_D1_RK1(array, iseq) result(uniqueAny)
2480#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2481 !DEC$ ATTRIBUTES DLLEXPORT :: isUniqueAnyCusCom_D1_RK1
2482#endif
2483 use pm_kind, only: RKG => RK1
2484 real(RKG) , intent(in), contiguous :: array(:)
2485 procedure(logical(LK)) :: iseq
2486 logical(LK) :: uniqueAny
2487 end function
2488#endif
2489
2490 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2491 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2492 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2493
2494 end interface isUniqueAny
2495
2496!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2497
2682 interface getUnique
2683
2684 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2685 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2686 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2687
2688#if SK5_ENABLED
2689 PURE module function getUniArbDefCom_D0_SK5(array) result(unique)
2690#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2691 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D0_SK5
2692#endif
2693 use pm_kind, only: SKG => SK5
2694 character(*,SKG) , intent(in) :: array
2695 character(:,SKG) , allocatable :: unique
2696 end function
2697#endif
2698
2699#if SK4_ENABLED
2700 PURE module function getUniArbDefCom_D0_SK4(array) result(unique)
2701#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2702 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D0_SK4
2703#endif
2704 use pm_kind, only: SKG => SK4
2705 character(*,SKG) , intent(in) :: array
2706 character(:,SKG) , allocatable :: unique
2707 end function
2708#endif
2709
2710#if SK3_ENABLED
2711 PURE module function getUniArbDefCom_D0_SK3(array) result(unique)
2712#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2713 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D0_SK3
2714#endif
2715 use pm_kind, only: SKG => SK3
2716 character(*,SKG) , intent(in) :: array
2717 character(:,SKG) , allocatable :: unique
2718 end function
2719#endif
2720
2721#if SK2_ENABLED
2722 PURE module function getUniArbDefCom_D0_SK2(array) result(unique)
2723#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2724 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D0_SK2
2725#endif
2726 use pm_kind, only: SKG => SK2
2727 character(*,SKG) , intent(in) :: array
2728 character(:,SKG) , allocatable :: unique
2729 end function
2730#endif
2731
2732#if SK1_ENABLED
2733 PURE module function getUniArbDefCom_D0_SK1(array) result(unique)
2734#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2735 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D0_SK1
2736#endif
2737 use pm_kind, only: SKG => SK1
2738 character(*,SKG) , intent(in) :: array
2739 character(:,SKG) , allocatable :: unique
2740 end function
2741#endif
2742
2743 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2744
2745#if SK5_ENABLED
2746 PURE module function getUniArbDefCom_D1_SK5(array) result(unique)
2747#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2748 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_SK5
2749#endif
2750 use pm_kind, only: SKG => SK5
2751 character(*,SKG) , intent(in), contiguous :: array(:)
2752 character(LEN_ARRAY,SKG) , allocatable :: unique(:)
2753 end function
2754#endif
2755
2756#if SK4_ENABLED
2757 PURE module function getUniArbDefCom_D1_SK4(array) result(unique)
2758#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2759 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_SK4
2760#endif
2761 use pm_kind, only: SKG => SK4
2762 character(*,SKG) , intent(in), contiguous :: array(:)
2763 character(LEN_ARRAY,SKG) , allocatable :: unique(:)
2764 end function
2765#endif
2766
2767#if SK3_ENABLED
2768 PURE module function getUniArbDefCom_D1_SK3(array) result(unique)
2769#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2770 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_SK3
2771#endif
2772 use pm_kind, only: SKG => SK3
2773 character(*,SKG) , intent(in), contiguous :: array(:)
2774 character(LEN_ARRAY,SKG) , allocatable :: unique(:)
2775 end function
2776#endif
2777
2778#if SK2_ENABLED
2779 PURE module function getUniArbDefCom_D1_SK2(array) result(unique)
2780#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2781 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_SK2
2782#endif
2783 use pm_kind, only: SKG => SK2
2784 character(*,SKG) , intent(in), contiguous :: array(:)
2785 character(LEN_ARRAY,SKG) , allocatable :: unique(:)
2786 end function
2787#endif
2788
2789#if SK1_ENABLED
2790 PURE module function getUniArbDefCom_D1_SK1(array) result(unique)
2791#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2792 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_SK1
2793#endif
2794 use pm_kind, only: SKG => SK1
2795 character(*,SKG) , intent(in), contiguous :: array(:)
2796 character(LEN_ARRAY,SKG) , allocatable :: unique(:)
2797 end function
2798#endif
2799
2800 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2801
2802#if IK5_ENABLED
2803 PURE module function getUniArbDefCom_D1_IK5(array) result(unique)
2804#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2805 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_IK5
2806#endif
2807 use pm_kind, only: IKG => IK5
2808 integer(IKG) , intent(in), contiguous :: array(:)
2809 integer(IKG) , allocatable :: unique(:)
2810 end function
2811#endif
2812
2813#if IK4_ENABLED
2814 PURE module function getUniArbDefCom_D1_IK4(array) result(unique)
2815#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2816 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_IK4
2817#endif
2818 use pm_kind, only: IKG => IK4
2819 integer(IKG) , intent(in), contiguous :: array(:)
2820 integer(IKG) , allocatable :: unique(:)
2821 end function
2822#endif
2823
2824#if IK3_ENABLED
2825 PURE module function getUniArbDefCom_D1_IK3(array) result(unique)
2826#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2827 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_IK3
2828#endif
2829 use pm_kind, only: IKG => IK3
2830 integer(IKG) , intent(in), contiguous :: array(:)
2831 integer(IKG) , allocatable :: unique(:)
2832 end function
2833#endif
2834
2835#if IK2_ENABLED
2836 PURE module function getUniArbDefCom_D1_IK2(array) result(unique)
2837#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2838 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_IK2
2839#endif
2840 use pm_kind, only: IKG => IK2
2841 integer(IKG) , intent(in), contiguous :: array(:)
2842 integer(IKG) , allocatable :: unique(:)
2843 end function
2844#endif
2845
2846#if IK1_ENABLED
2847 PURE module function getUniArbDefCom_D1_IK1(array) result(unique)
2848#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2849 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_IK1
2850#endif
2851 use pm_kind, only: IKG => IK1
2852 integer(IKG) , intent(in), contiguous :: array(:)
2853 integer(IKG) , allocatable :: unique(:)
2854 end function
2855#endif
2856
2857 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2858
2859#if LK5_ENABLED
2860 PURE module function getUniArbDefCom_D1_LK5(array) result(unique)
2861#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2862 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_LK5
2863#endif
2864 use pm_kind, only: LKG => LK5
2865 logical(LKG) , intent(in), contiguous :: array(:)
2866 logical(LKG) , allocatable :: unique(:)
2867 end function
2868#endif
2869
2870#if LK4_ENABLED
2871 PURE module function getUniArbDefCom_D1_LK4(array) result(unique)
2872#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2873 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_LK4
2874#endif
2875 use pm_kind, only: LKG => LK4
2876 logical(LKG) , intent(in), contiguous :: array(:)
2877 logical(LKG) , allocatable :: unique(:)
2878 end function
2879#endif
2880
2881#if LK3_ENABLED
2882 PURE module function getUniArbDefCom_D1_LK3(array) result(unique)
2883#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2884 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_LK3
2885#endif
2886 use pm_kind, only: LKG => LK3
2887 logical(LKG) , intent(in), contiguous :: array(:)
2888 logical(LKG) , allocatable :: unique(:)
2889 end function
2890#endif
2891
2892#if LK2_ENABLED
2893 PURE module function getUniArbDefCom_D1_LK2(array) result(unique)
2894#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2895 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_LK2
2896#endif
2897 use pm_kind, only: LKG => LK2
2898 logical(LKG) , intent(in), contiguous :: array(:)
2899 logical(LKG) , allocatable :: unique(:)
2900 end function
2901#endif
2902
2903#if LK1_ENABLED
2904 PURE module function getUniArbDefCom_D1_LK1(array) result(unique)
2905#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2906 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_LK1
2907#endif
2908 use pm_kind, only: LKG => LK1
2909 logical(LKG) , intent(in), contiguous :: array(:)
2910 logical(LKG) , allocatable :: unique(:)
2911 end function
2912#endif
2913
2914 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2915
2916#if CK5_ENABLED
2917 PURE module function getUniArbDefCom_D1_CK5(array) result(unique)
2918#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2919 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_CK5
2920#endif
2921 use pm_kind, only: CKG => CK5
2922 complex(CKG) , intent(in), contiguous :: array(:)
2923 complex(CKG) , allocatable :: unique(:)
2924 end function
2925#endif
2926
2927#if CK4_ENABLED
2928 PURE module function getUniArbDefCom_D1_CK4(array) result(unique)
2929#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2930 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_CK4
2931#endif
2932 use pm_kind, only: CKG => CK4
2933 complex(CKG) , intent(in), contiguous :: array(:)
2934 complex(CKG) , allocatable :: unique(:)
2935 end function
2936#endif
2937
2938#if CK3_ENABLED
2939 PURE module function getUniArbDefCom_D1_CK3(array) result(unique)
2940#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2941 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_CK3
2942#endif
2943 use pm_kind, only: CKG => CK3
2944 complex(CKG) , intent(in), contiguous :: array(:)
2945 complex(CKG) , allocatable :: unique(:)
2946 end function
2947#endif
2948
2949#if CK2_ENABLED
2950 PURE module function getUniArbDefCom_D1_CK2(array) result(unique)
2951#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2952 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_CK2
2953#endif
2954 use pm_kind, only: CKG => CK2
2955 complex(CKG) , intent(in), contiguous :: array(:)
2956 complex(CKG) , allocatable :: unique(:)
2957 end function
2958#endif
2959
2960#if CK1_ENABLED
2961 PURE module function getUniArbDefCom_D1_CK1(array) result(unique)
2962#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2963 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_CK1
2964#endif
2965 use pm_kind, only: CKG => CK1
2966 complex(CKG) , intent(in), contiguous :: array(:)
2967 complex(CKG) , allocatable :: unique(:)
2968 end function
2969#endif
2970
2971 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2972
2973#if RK5_ENABLED
2974 PURE module function getUniArbDefCom_D1_RK5(array) result(unique)
2975#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2976 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_RK5
2977#endif
2978 use pm_kind, only: RKG => RK5
2979 real(RKG) , intent(in), contiguous :: array(:)
2980 real(RKG) , allocatable :: unique(:)
2981 end function
2982#endif
2983
2984#if RK4_ENABLED
2985 PURE module function getUniArbDefCom_D1_RK4(array) result(unique)
2986#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2987 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_RK4
2988#endif
2989 use pm_kind, only: RKG => RK4
2990 real(RKG) , intent(in), contiguous :: array(:)
2991 real(RKG) , allocatable :: unique(:)
2992 end function
2993#endif
2994
2995#if RK3_ENABLED
2996 PURE module function getUniArbDefCom_D1_RK3(array) result(unique)
2997#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2998 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_RK3
2999#endif
3000 use pm_kind, only: RKG => RK3
3001 real(RKG) , intent(in), contiguous :: array(:)
3002 real(RKG) , allocatable :: unique(:)
3003 end function
3004#endif
3005
3006#if RK2_ENABLED
3007 PURE module function getUniArbDefCom_D1_RK2(array) result(unique)
3008#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3009 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_RK2
3010#endif
3011 use pm_kind, only: RKG => RK2
3012 real(RKG) , intent(in), contiguous :: array(:)
3013 real(RKG) , allocatable :: unique(:)
3014 end function
3015#endif
3016
3017#if RK1_ENABLED
3018 PURE module function getUniArbDefCom_D1_RK1(array) result(unique)
3019#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3020 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbDefCom_D1_RK1
3021#endif
3022 use pm_kind, only: RKG => RK1
3023 real(RKG) , intent(in), contiguous :: array(:)
3024 real(RKG) , allocatable :: unique(:)
3025 end function
3026#endif
3027
3028 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3029 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3030 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3031
3032#if SK5_ENABLED
3033 module function getUniArbCusCom_D0_SK5(array, iseq) result(unique)
3034#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3035 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D0_SK5
3036#endif
3037 use pm_kind, only: SKG => SK5
3038 character(*,SKG) , intent(in) :: array
3039 procedure(logical(LK)) :: iseq
3040 character(:,SKG) , allocatable :: unique
3041 end function
3042#endif
3043
3044#if SK4_ENABLED
3045 module function getUniArbCusCom_D0_SK4(array, iseq) result(unique)
3046#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3047 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D0_SK4
3048#endif
3049 use pm_kind, only: SKG => SK4
3050 character(*,SKG) , intent(in) :: array
3051 procedure(logical(LK)) :: iseq
3052 character(:,SKG) , allocatable :: unique
3053 end function
3054#endif
3055
3056#if SK3_ENABLED
3057 module function getUniArbCusCom_D0_SK3(array, iseq) result(unique)
3058#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3059 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D0_SK3
3060#endif
3061 use pm_kind, only: SKG => SK3
3062 character(*,SKG) , intent(in) :: array
3063 procedure(logical(LK)) :: iseq
3064 character(:,SKG) , allocatable :: unique
3065 end function
3066#endif
3067
3068#if SK2_ENABLED
3069 module function getUniArbCusCom_D0_SK2(array, iseq) result(unique)
3070#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3071 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D0_SK2
3072#endif
3073 use pm_kind, only: SKG => SK2
3074 character(*,SKG) , intent(in) :: array
3075 procedure(logical(LK)) :: iseq
3076 character(:,SKG) , allocatable :: unique
3077 end function
3078#endif
3079
3080#if SK1_ENABLED
3081 module function getUniArbCusCom_D0_SK1(array, iseq) result(unique)
3082#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3083 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D0_SK1
3084#endif
3085 use pm_kind, only: SKG => SK1
3086 character(*,SKG) , intent(in) :: array
3087 procedure(logical(LK)) :: iseq
3088 character(:,SKG) , allocatable :: unique
3089 end function
3090#endif
3091
3092 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3093
3094#if SK5_ENABLED
3095 module function getUniArbCusCom_D1_SK5(array, iseq) result(unique)
3096#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3097 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_SK5
3098#endif
3099 use pm_kind, only: SKG => SK5
3100 character(*,SKG) , intent(in), contiguous :: array(:)
3101 procedure(logical(LK)) :: iseq
3102 character(LEN_ARRAY,SKG) , allocatable :: unique(:)
3103 end function
3104#endif
3105
3106#if SK4_ENABLED
3107 module function getUniArbCusCom_D1_SK4(array, iseq) result(unique)
3108#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3109 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_SK4
3110#endif
3111 use pm_kind, only: SKG => SK4
3112 character(*,SKG) , intent(in), contiguous :: array(:)
3113 procedure(logical(LK)) :: iseq
3114 character(LEN_ARRAY,SKG) , allocatable :: unique(:)
3115 end function
3116#endif
3117
3118#if SK3_ENABLED
3119 module function getUniArbCusCom_D1_SK3(array, iseq) result(unique)
3120#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3121 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_SK3
3122#endif
3123 use pm_kind, only: SKG => SK3
3124 character(*,SKG) , intent(in), contiguous :: array(:)
3125 procedure(logical(LK)) :: iseq
3126 character(LEN_ARRAY,SKG) , allocatable :: unique(:)
3127 end function
3128#endif
3129
3130#if SK2_ENABLED
3131 module function getUniArbCusCom_D1_SK2(array, iseq) result(unique)
3132#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3133 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_SK2
3134#endif
3135 use pm_kind, only: SKG => SK2
3136 character(*,SKG) , intent(in), contiguous :: array(:)
3137 procedure(logical(LK)) :: iseq
3138 character(LEN_ARRAY,SKG) , allocatable :: unique(:)
3139 end function
3140#endif
3141
3142#if SK1_ENABLED
3143 module function getUniArbCusCom_D1_SK1(array, iseq) result(unique)
3144#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3145 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_SK1
3146#endif
3147 use pm_kind, only: SKG => SK1
3148 character(*,SKG) , intent(in), contiguous :: array(:)
3149 procedure(logical(LK)) :: iseq
3150 character(LEN_ARRAY,SKG) , allocatable :: unique(:)
3151 end function
3152#endif
3153
3154 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3155
3156#if IK5_ENABLED
3157 module function getUniArbCusCom_D1_IK5(array, iseq) result(unique)
3158#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3159 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_IK5
3160#endif
3161 use pm_kind, only: IKG => IK5
3162 integer(IKG) , intent(in), contiguous :: array(:)
3163 procedure(logical(LK)) :: iseq
3164 integer(IKG) , allocatable :: unique(:)
3165 end function
3166#endif
3167
3168#if IK4_ENABLED
3169 module function getUniArbCusCom_D1_IK4(array, iseq) result(unique)
3170#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3171 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_IK4
3172#endif
3173 use pm_kind, only: IKG => IK4
3174 integer(IKG) , intent(in), contiguous :: array(:)
3175 procedure(logical(LK)) :: iseq
3176 integer(IKG) , allocatable :: unique(:)
3177 end function
3178#endif
3179
3180#if IK3_ENABLED
3181 module function getUniArbCusCom_D1_IK3(array, iseq) result(unique)
3182#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3183 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_IK3
3184#endif
3185 use pm_kind, only: IKG => IK3
3186 integer(IKG) , intent(in), contiguous :: array(:)
3187 procedure(logical(LK)) :: iseq
3188 integer(IKG) , allocatable :: unique(:)
3189 end function
3190#endif
3191
3192#if IK2_ENABLED
3193 module function getUniArbCusCom_D1_IK2(array, iseq) result(unique)
3194#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3195 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_IK2
3196#endif
3197 use pm_kind, only: IKG => IK2
3198 integer(IKG) , intent(in), contiguous :: array(:)
3199 procedure(logical(LK)) :: iseq
3200 integer(IKG) , allocatable :: unique(:)
3201 end function
3202#endif
3203
3204#if IK1_ENABLED
3205 module function getUniArbCusCom_D1_IK1(array, iseq) result(unique)
3206#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3207 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_IK1
3208#endif
3209 use pm_kind, only: IKG => IK1
3210 integer(IKG) , intent(in), contiguous :: array(:)
3211 procedure(logical(LK)) :: iseq
3212 integer(IKG) , allocatable :: unique(:)
3213 end function
3214#endif
3215
3216 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3217
3218#if LK5_ENABLED
3219 module function getUniArbCusCom_D1_LK5(array, iseq) result(unique)
3220#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3221 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_LK5
3222#endif
3223 use pm_kind, only: LKG => LK5
3224 logical(LKG) , intent(in), contiguous :: array(:)
3225 procedure(logical(LK)) :: iseq
3226 logical(LKG) , allocatable :: unique(:)
3227 end function
3228#endif
3229
3230#if LK4_ENABLED
3231 module function getUniArbCusCom_D1_LK4(array, iseq) result(unique)
3232#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3233 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_LK4
3234#endif
3235 use pm_kind, only: LKG => LK4
3236 logical(LKG) , intent(in), contiguous :: array(:)
3237 procedure(logical(LK)) :: iseq
3238 logical(LKG) , allocatable :: unique(:)
3239 end function
3240#endif
3241
3242#if LK3_ENABLED
3243 module function getUniArbCusCom_D1_LK3(array, iseq) result(unique)
3244#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3245 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_LK3
3246#endif
3247 use pm_kind, only: LKG => LK3
3248 logical(LKG) , intent(in), contiguous :: array(:)
3249 procedure(logical(LK)) :: iseq
3250 logical(LKG) , allocatable :: unique(:)
3251 end function
3252#endif
3253
3254#if LK2_ENABLED
3255 module function getUniArbCusCom_D1_LK2(array, iseq) result(unique)
3256#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3257 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_LK2
3258#endif
3259 use pm_kind, only: LKG => LK2
3260 logical(LKG) , intent(in), contiguous :: array(:)
3261 procedure(logical(LK)) :: iseq
3262 logical(LKG) , allocatable :: unique(:)
3263 end function
3264#endif
3265
3266#if LK1_ENABLED
3267 module function getUniArbCusCom_D1_LK1(array, iseq) result(unique)
3268#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3269 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_LK1
3270#endif
3271 use pm_kind, only: LKG => LK1
3272 logical(LKG) , intent(in), contiguous :: array(:)
3273 procedure(logical(LK)) :: iseq
3274 logical(LKG) , allocatable :: unique(:)
3275 end function
3276#endif
3277
3278 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3279
3280#if CK5_ENABLED
3281 module function getUniArbCusCom_D1_CK5(array, iseq) result(unique)
3282#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3283 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_CK5
3284#endif
3285 use pm_kind, only: CKG => CK5
3286 complex(CKG) , intent(in), contiguous :: array(:)
3287 procedure(logical(LK)) :: iseq
3288 complex(CKG) , allocatable :: unique(:)
3289 end function
3290#endif
3291
3292#if CK4_ENABLED
3293 module function getUniArbCusCom_D1_CK4(array, iseq) result(unique)
3294#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3295 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_CK4
3296#endif
3297 use pm_kind, only: CKG => CK4
3298 complex(CKG) , intent(in), contiguous :: array(:)
3299 procedure(logical(LK)) :: iseq
3300 complex(CKG) , allocatable :: unique(:)
3301 end function
3302#endif
3303
3304#if CK3_ENABLED
3305 module function getUniArbCusCom_D1_CK3(array, iseq) result(unique)
3306#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3307 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_CK3
3308#endif
3309 use pm_kind, only: CKG => CK3
3310 complex(CKG) , intent(in), contiguous :: array(:)
3311 procedure(logical(LK)) :: iseq
3312 complex(CKG) , allocatable :: unique(:)
3313 end function
3314#endif
3315
3316#if CK2_ENABLED
3317 module function getUniArbCusCom_D1_CK2(array, iseq) result(unique)
3318#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3319 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_CK2
3320#endif
3321 use pm_kind, only: CKG => CK2
3322 complex(CKG) , intent(in), contiguous :: array(:)
3323 procedure(logical(LK)) :: iseq
3324 complex(CKG) , allocatable :: unique(:)
3325 end function
3326#endif
3327
3328#if CK1_ENABLED
3329 module function getUniArbCusCom_D1_CK1(array, iseq) result(unique)
3330#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3331 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_CK1
3332#endif
3333 use pm_kind, only: CKG => CK1
3334 complex(CKG) , intent(in), contiguous :: array(:)
3335 procedure(logical(LK)) :: iseq
3336 complex(CKG) , allocatable :: unique(:)
3337 end function
3338#endif
3339
3340 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3341
3342#if RK5_ENABLED
3343 module function getUniArbCusCom_D1_RK5(array, iseq) result(unique)
3344#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3345 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_RK5
3346#endif
3347 use pm_kind, only: RKG => RK5
3348 real(RKG) , intent(in), contiguous :: array(:)
3349 procedure(logical(LK)) :: iseq
3350 real(RKG) , allocatable :: unique(:)
3351 end function
3352#endif
3353
3354#if RK4_ENABLED
3355 module function getUniArbCusCom_D1_RK4(array, iseq) result(unique)
3356#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3357 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_RK4
3358#endif
3359 use pm_kind, only: RKG => RK4
3360 real(RKG) , intent(in), contiguous :: array(:)
3361 procedure(logical(LK)) :: iseq
3362 real(RKG) , allocatable :: unique(:)
3363 end function
3364#endif
3365
3366#if RK3_ENABLED
3367 module function getUniArbCusCom_D1_RK3(array, iseq) result(unique)
3368#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3369 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_RK3
3370#endif
3371 use pm_kind, only: RKG => RK3
3372 real(RKG) , intent(in), contiguous :: array(:)
3373 procedure(logical(LK)) :: iseq
3374 real(RKG) , allocatable :: unique(:)
3375 end function
3376#endif
3377
3378#if RK2_ENABLED
3379 module function getUniArbCusCom_D1_RK2(array, iseq) result(unique)
3380#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3381 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_RK2
3382#endif
3383 use pm_kind, only: RKG => RK2
3384 real(RKG) , intent(in), contiguous :: array(:)
3385 procedure(logical(LK)) :: iseq
3386 real(RKG) , allocatable :: unique(:)
3387 end function
3388#endif
3389
3390#if RK1_ENABLED
3391 module function getUniArbCusCom_D1_RK1(array, iseq) result(unique)
3392#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3393 !DEC$ ATTRIBUTES DLLEXPORT :: getUniArbCusCom_D1_RK1
3394#endif
3395 use pm_kind, only: RKG => RK1
3396 real(RKG) , intent(in), contiguous :: array(:)
3397 procedure(logical(LK)) :: iseq
3398 real(RKG) , allocatable :: unique(:)
3399 end function
3400#endif
3401
3402 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3403 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3404 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3405
3406 end interface getUnique
3407
3408!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3409
3550 interface setUnique
3551
3552 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3553 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3554 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3555 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3556 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3557 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3558
3559 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3560
3561#if SK5_ENABLED
3562 PURE module subroutine setUniArbDefCom_D0_SK5(array, unique, count, index, order)
3563#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3564 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D0_SK5
3565#endif
3566 use pm_kind, only: SKG => SK5
3567 character(*,SKG) , intent(in) :: array
3568 character(:,SKG) , intent(out) , allocatable :: unique
3569 integer(IK) , intent(out) , allocatable :: count(:)
3570 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3571 integer(IK) , intent(in) , optional :: order
3572 end subroutine
3573#endif
3574
3575#if SK4_ENABLED
3576 PURE module subroutine setUniArbDefCom_D0_SK4(array, unique, count, index, order)
3577#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3578 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D0_SK4
3579#endif
3580 use pm_kind, only: SKG => SK4
3581 character(*,SKG) , intent(in) :: array
3582 character(:,SKG) , intent(out) , allocatable :: unique
3583 integer(IK) , intent(out) , allocatable :: count(:)
3584 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3585 integer(IK) , intent(in) , optional :: order
3586 end subroutine
3587#endif
3588
3589#if SK3_ENABLED
3590 PURE module subroutine setUniArbDefCom_D0_SK3(array, unique, count, index, order)
3591#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3592 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D0_SK3
3593#endif
3594 use pm_kind, only: SKG => SK3
3595 character(*,SKG) , intent(in) :: array
3596 character(:,SKG) , intent(out) , allocatable :: unique
3597 integer(IK) , intent(out) , allocatable :: count(:)
3598 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3599 integer(IK) , intent(in) , optional :: order
3600 end subroutine
3601#endif
3602
3603#if SK2_ENABLED
3604 PURE module subroutine setUniArbDefCom_D0_SK2(array, unique, count, index, order)
3605#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3606 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D0_SK2
3607#endif
3608 use pm_kind, only: SKG => SK2
3609 character(*,SKG) , intent(in) :: array
3610 character(:,SKG) , intent(out) , allocatable :: unique
3611 integer(IK) , intent(out) , allocatable :: count(:)
3612 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3613 integer(IK) , intent(in) , optional :: order
3614 end subroutine
3615#endif
3616
3617#if SK1_ENABLED
3618 PURE module subroutine setUniArbDefCom_D0_SK1(array, unique, count, index, order)
3619#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3620 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D0_SK1
3621#endif
3622 use pm_kind, only: SKG => SK1
3623 character(*,SKG) , intent(in) :: array
3624 character(:,SKG) , intent(out) , allocatable :: unique
3625 integer(IK) , intent(out) , allocatable :: count(:)
3626 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3627 integer(IK) , intent(in) , optional :: order
3628 end subroutine
3629#endif
3630
3631 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3632
3633#if SK5_ENABLED
3634 PURE module subroutine setUniArbDefCom_D1_SK5(array, unique, count, index, order)
3635#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3636 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_SK5
3637#endif
3638 use pm_kind, only: SKG => SK5
3639 character(*,SKG) , intent(in) , contiguous :: array(:)
3640 character(*,SKG) , intent(out) , allocatable :: unique(:)
3641 integer(IK) , intent(out) , allocatable :: count(:)
3642 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3643 integer(IK) , intent(in) , optional :: order
3644 end subroutine
3645#endif
3646
3647#if SK4_ENABLED
3648 PURE module subroutine setUniArbDefCom_D1_SK4(array, unique, count, index, order)
3649#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3650 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_SK4
3651#endif
3652 use pm_kind, only: SKG => SK4
3653 character(*,SKG) , intent(in) , contiguous :: array(:)
3654 character(*,SKG) , intent(out) , allocatable :: unique(:)
3655 integer(IK) , intent(out) , allocatable :: count(:)
3656 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3657 integer(IK) , intent(in) , optional :: order
3658 end subroutine
3659#endif
3660
3661#if SK3_ENABLED
3662 PURE module subroutine setUniArbDefCom_D1_SK3(array, unique, count, index, order)
3663#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3664 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_SK3
3665#endif
3666 use pm_kind, only: SKG => SK3
3667 character(*,SKG) , intent(in) , contiguous :: array(:)
3668 character(*,SKG) , intent(out) , allocatable :: unique(:)
3669 integer(IK) , intent(out) , allocatable :: count(:)
3670 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3671 integer(IK) , intent(in) , optional :: order
3672 end subroutine
3673#endif
3674
3675#if SK2_ENABLED
3676 PURE module subroutine setUniArbDefCom_D1_SK2(array, unique, count, index, order)
3677#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3678 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_SK2
3679#endif
3680 use pm_kind, only: SKG => SK2
3681 character(*,SKG) , intent(in) , contiguous :: array(:)
3682 character(*,SKG) , intent(out) , allocatable :: unique(:)
3683 integer(IK) , intent(out) , allocatable :: count(:)
3684 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3685 integer(IK) , intent(in) , optional :: order
3686 end subroutine
3687#endif
3688
3689#if SK1_ENABLED
3690 PURE module subroutine setUniArbDefCom_D1_SK1(array, unique, count, index, order)
3691#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3692 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_SK1
3693#endif
3694 use pm_kind, only: SKG => SK1
3695 character(*,SKG) , intent(in) , contiguous :: array(:)
3696 character(*,SKG) , intent(out) , allocatable :: unique(:)
3697 integer(IK) , intent(out) , allocatable :: count(:)
3698 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3699 integer(IK) , intent(in) , optional :: order
3700 end subroutine
3701#endif
3702
3703 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3704
3705#if IK5_ENABLED
3706 PURE module subroutine setUniArbDefCom_D1_IK5(array, unique, count, index, order)
3707#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3708 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_IK5
3709#endif
3710 use pm_kind, only: IKG => IK5
3711 integer(IKG) , intent(in) , contiguous :: array(:)
3712 integer(IKG) , intent(out) , allocatable :: unique(:)
3713 integer(IK) , intent(out) , allocatable :: count(:)
3714 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3715 integer(IK) , intent(in) , optional :: order
3716 end subroutine
3717#endif
3718
3719#if IK4_ENABLED
3720 PURE module subroutine setUniArbDefCom_D1_IK4(array, unique, count, index, order)
3721#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3722 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_IK4
3723#endif
3724 use pm_kind, only: IKG => IK4
3725 integer(IKG) , intent(in) , contiguous :: array(:)
3726 integer(IKG) , intent(out) , allocatable :: unique(:)
3727 integer(IK) , intent(out) , allocatable :: count(:)
3728 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3729 integer(IK) , intent(in) , optional :: order
3730 end subroutine
3731#endif
3732
3733#if IK3_ENABLED
3734 PURE module subroutine setUniArbDefCom_D1_IK3(array, unique, count, index, order)
3735#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3736 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_IK3
3737#endif
3738 use pm_kind, only: IKG => IK3
3739 integer(IKG) , intent(in) , contiguous :: array(:)
3740 integer(IKG) , intent(out) , allocatable :: unique(:)
3741 integer(IK) , intent(out) , allocatable :: count(:)
3742 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3743 integer(IK) , intent(in) , optional :: order
3744 end subroutine
3745
3746#endif
3747
3748#if IK2_ENABLED
3749 PURE module subroutine setUniArbDefCom_D1_IK2(array, unique, count, index, order)
3750#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3751 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_IK2
3752#endif
3753 use pm_kind, only: IKG => IK2
3754 integer(IKG) , intent(in) , contiguous :: array(:)
3755 integer(IKG) , intent(out) , allocatable :: unique(:)
3756 integer(IK) , intent(out) , allocatable :: count(:)
3757 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3758 integer(IK) , intent(in) , optional :: order
3759 end subroutine
3760#endif
3761
3762#if IK1_ENABLED
3763 PURE module subroutine setUniArbDefCom_D1_IK1(array, unique, count, index, order)
3764#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3765 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_IK1
3766#endif
3767 use pm_kind, only: IKG => IK1
3768 integer(IKG) , intent(in) , contiguous :: array(:)
3769 integer(IKG) , intent(out) , allocatable :: unique(:)
3770 integer(IK) , intent(out) , allocatable :: count(:)
3771 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3772 integer(IK) , intent(in) , optional :: order
3773 end subroutine
3774#endif
3775
3776 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3777
3778#if LK5_ENABLED
3779 PURE module subroutine setUniArbDefCom_D1_LK5(array, unique, count, index, order)
3780#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3781 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_LK5
3782#endif
3783 use pm_kind, only: LKG => LK5
3784 logical(LKG) , intent(in) , contiguous :: array(:)
3785 logical(LKG) , intent(out) , allocatable :: unique(:)
3786 integer(IK) , intent(out) , allocatable :: count(:)
3787 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3788 integer(IK) , intent(in) , optional :: order
3789 end subroutine
3790#endif
3791
3792#if LK4_ENABLED
3793 PURE module subroutine setUniArbDefCom_D1_LK4(array, unique, count, index, order)
3794#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3795 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_LK4
3796#endif
3797 use pm_kind, only: LKG => LK4
3798 logical(LKG) , intent(in) , contiguous :: array(:)
3799 logical(LKG) , intent(out) , allocatable :: unique(:)
3800 integer(IK) , intent(out) , allocatable :: count(:)
3801 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3802 integer(IK) , intent(in) , optional :: order
3803 end subroutine
3804#endif
3805
3806#if LK3_ENABLED
3807 PURE module subroutine setUniArbDefCom_D1_LK3(array, unique, count, index, order)
3808#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3809 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_LK3
3810#endif
3811 use pm_kind, only: LKG => LK3
3812 logical(LKG) , intent(in) , contiguous :: array(:)
3813 logical(LKG) , intent(out) , allocatable :: unique(:)
3814 integer(IK) , intent(out) , allocatable :: count(:)
3815 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3816 integer(IK) , intent(in) , optional :: order
3817 end subroutine
3818#endif
3819
3820#if LK2_ENABLED
3821 PURE module subroutine setUniArbDefCom_D1_LK2(array, unique, count, index, order)
3822#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3823 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_LK2
3824#endif
3825 use pm_kind, only: LKG => LK2
3826 logical(LKG) , intent(in) , contiguous :: array(:)
3827 logical(LKG) , intent(out) , allocatable :: unique(:)
3828 integer(IK) , intent(out) , allocatable :: count(:)
3829 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3830 integer(IK) , intent(in) , optional :: order
3831 end subroutine
3832#endif
3833
3834#if LK1_ENABLED
3835 PURE module subroutine setUniArbDefCom_D1_LK1(array, unique, count, index, order)
3836#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3837 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_LK1
3838#endif
3839 use pm_kind, only: LKG => LK1
3840 logical(LKG) , intent(in) , contiguous :: array(:)
3841 logical(LKG) , intent(out) , allocatable :: unique(:)
3842 integer(IK) , intent(out) , allocatable :: count(:)
3843 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3844 integer(IK) , intent(in) , optional :: order
3845 end subroutine
3846#endif
3847
3848 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3849
3850#if CK5_ENABLED
3851 PURE module subroutine setUniArbDefCom_D1_CK5(array, unique, count, index, order)
3852#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3853 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_CK5
3854#endif
3855 use pm_kind, only: CKG => CK5
3856 complex(CKG) , intent(in) , contiguous :: array(:)
3857 complex(CKG) , intent(out) , allocatable :: unique(:)
3858 integer(IK) , intent(out) , allocatable :: count(:)
3859 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3860 integer(IK) , intent(in) , optional :: order
3861 end subroutine
3862#endif
3863
3864#if CK4_ENABLED
3865 PURE module subroutine setUniArbDefCom_D1_CK4(array, unique, count, index, order)
3866#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3867 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_CK4
3868#endif
3869 use pm_kind, only: CKG => CK4
3870 complex(CKG) , intent(in) , contiguous :: array(:)
3871 complex(CKG) , intent(out) , allocatable :: unique(:)
3872 integer(IK) , intent(out) , allocatable :: count(:)
3873 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3874 integer(IK) , intent(in) , optional :: order
3875 end subroutine
3876#endif
3877
3878#if CK3_ENABLED
3879 PURE module subroutine setUniArbDefCom_D1_CK3(array, unique, count, index, order)
3880#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3881 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_CK3
3882#endif
3883 use pm_kind, only: CKG => CK3
3884 complex(CKG) , intent(in) , contiguous :: array(:)
3885 complex(CKG) , intent(out) , allocatable :: unique(:)
3886 integer(IK) , intent(out) , allocatable :: count(:)
3887 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3888 integer(IK) , intent(in) , optional :: order
3889 end subroutine
3890#endif
3891
3892#if CK2_ENABLED
3893 PURE module subroutine setUniArbDefCom_D1_CK2(array, unique, count, index, order)
3894#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3895 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_CK2
3896#endif
3897 use pm_kind, only: CKG => CK2
3898 complex(CKG) , intent(in) , contiguous :: array(:)
3899 complex(CKG) , intent(out) , allocatable :: unique(:)
3900 integer(IK) , intent(out) , allocatable :: count(:)
3901 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3902 integer(IK) , intent(in) , optional :: order
3903 end subroutine
3904#endif
3905
3906#if CK1_ENABLED
3907 PURE module subroutine setUniArbDefCom_D1_CK1(array, unique, count, index, order)
3908#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3909 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_CK1
3910#endif
3911 use pm_kind, only: CKG => CK1
3912 complex(CKG) , intent(in) , contiguous :: array(:)
3913 complex(CKG) , intent(out) , allocatable :: unique(:)
3914 integer(IK) , intent(out) , allocatable :: count(:)
3915 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3916 integer(IK) , intent(in) , optional :: order
3917 end subroutine
3918#endif
3919
3920 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3921
3922#if RK5_ENABLED
3923 PURE module subroutine setUniArbDefCom_D1_RK5(array, unique, count, index, order)
3924#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3925 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_RK5
3926#endif
3927 use pm_kind, only: RKG => RK5
3928 real(RKG) , intent(in) , contiguous :: array(:)
3929 real(RKG) , intent(out) , allocatable :: unique(:)
3930 integer(IK) , intent(out) , allocatable :: count(:)
3931 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3932 integer(IK) , intent(in) , optional :: order
3933 end subroutine
3934#endif
3935
3936#if RK4_ENABLED
3937 PURE module subroutine setUniArbDefCom_D1_RK4(array, unique, count, index, order)
3938#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3939 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_RK4
3940#endif
3941 use pm_kind, only: RKG => RK4
3942 real(RKG) , intent(in) , contiguous :: array(:)
3943 real(RKG) , intent(out) , allocatable :: unique(:)
3944 integer(IK) , intent(out) , allocatable :: count(:)
3945 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3946 integer(IK) , intent(in) , optional :: order
3947 end subroutine
3948#endif
3949
3950#if RK3_ENABLED
3951 PURE module subroutine setUniArbDefCom_D1_RK3(array, unique, count, index, order)
3952#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3953 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_RK3
3954#endif
3955 use pm_kind, only: RKG => RK3
3956 real(RKG) , intent(in) , contiguous :: array(:)
3957 real(RKG) , intent(out) , allocatable :: unique(:)
3958 integer(IK) , intent(out) , allocatable :: count(:)
3959 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3960 integer(IK) , intent(in) , optional :: order
3961 end subroutine
3962#endif
3963
3964#if RK2_ENABLED
3965 PURE module subroutine setUniArbDefCom_D1_RK2(array, unique, count, index, order)
3966#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3967 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_RK2
3968#endif
3969 use pm_kind, only: RKG => RK2
3970 real(RKG) , intent(in) , contiguous :: array(:)
3971 real(RKG) , intent(out) , allocatable :: unique(:)
3972 integer(IK) , intent(out) , allocatable :: count(:)
3973 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3974 integer(IK) , intent(in) , optional :: order
3975 end subroutine
3976#endif
3977
3978#if RK1_ENABLED
3979 PURE module subroutine setUniArbDefCom_D1_RK1(array, unique, count, index, order)
3980#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3981 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbDefCom_D1_RK1
3982#endif
3983 use pm_kind, only: RKG => RK1
3984 real(RKG) , intent(in) , contiguous :: array(:)
3985 real(RKG) , intent(out) , allocatable :: unique(:)
3986 integer(IK) , intent(out) , allocatable :: count(:)
3987 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
3988 integer(IK) , intent(in) , optional :: order
3989 end subroutine
3990#endif
3991
3992 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3993
3994 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3995 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3996 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3997
3998 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3999
4000#if SK5_ENABLED
4001 module subroutine setUniArbCusCom_D0_SK5(array, unique, count, iseq, index, order)
4002#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4003 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D0_SK5
4004#endif
4005 use pm_kind, only: SKG => SK5
4006 character(*,SKG) , intent(in) :: array
4007 character(:,SKG) , intent(out) , allocatable :: unique
4008 integer(IK) , intent(out) , allocatable :: count(:)
4009 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4010 integer(IK) , intent(in) , optional :: order
4011 procedure(logical(LK)) :: iseq
4012 end subroutine
4013#endif
4014
4015#if SK4_ENABLED
4016 module subroutine setUniArbCusCom_D0_SK4(array, unique, count, iseq, index, order)
4017#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4018 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D0_SK4
4019#endif
4020 use pm_kind, only: SKG => SK4
4021 character(*,SKG) , intent(in) :: array
4022 character(:,SKG) , intent(out) , allocatable :: unique
4023 integer(IK) , intent(out) , allocatable :: count(:)
4024 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4025 integer(IK) , intent(in) , optional :: order
4026 procedure(logical(LK)) :: iseq
4027 end subroutine
4028#endif
4029
4030#if SK3_ENABLED
4031 module subroutine setUniArbCusCom_D0_SK3(array, unique, count, iseq, index, order)
4032#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4033 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D0_SK3
4034#endif
4035 use pm_kind, only: SKG => SK3
4036 character(*,SKG) , intent(in) :: array
4037 character(:,SKG) , intent(out) , allocatable :: unique
4038 integer(IK) , intent(out) , allocatable :: count(:)
4039 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4040 integer(IK) , intent(in) , optional :: order
4041 procedure(logical(LK)) :: iseq
4042 end subroutine
4043#endif
4044
4045#if SK2_ENABLED
4046 module subroutine setUniArbCusCom_D0_SK2(array, unique, count, iseq, index, order)
4047#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4048 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D0_SK2
4049#endif
4050 use pm_kind, only: SKG => SK2
4051 character(*,SKG) , intent(in) :: array
4052 character(:,SKG) , intent(out) , allocatable :: unique
4053 integer(IK) , intent(out) , allocatable :: count(:)
4054 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4055 integer(IK) , intent(in) , optional :: order
4056 procedure(logical(LK)) :: iseq
4057 end subroutine
4058#endif
4059
4060#if SK1_ENABLED
4061 module subroutine setUniArbCusCom_D0_SK1(array, unique, count, iseq, index, order)
4062#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4063 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D0_SK1
4064#endif
4065 use pm_kind, only: SKG => SK1
4066 character(*,SKG) , intent(in) :: array
4067 character(:,SKG) , intent(out) , allocatable :: unique
4068 integer(IK) , intent(out) , allocatable :: count(:)
4069 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4070 integer(IK) , intent(in) , optional :: order
4071 procedure(logical(LK)) :: iseq
4072 end subroutine
4073#endif
4074
4075 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4076
4077#if SK5_ENABLED
4078 module subroutine setUniArbCusCom_D1_SK5(array, unique, count, iseq, index, order)
4079#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4080 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_SK5
4081#endif
4082 use pm_kind, only: SKG => SK5
4083 character(*,SKG) , intent(in) , contiguous :: array(:)
4084 character(*,SKG) , intent(out) , allocatable :: unique(:)
4085 integer(IK) , intent(out) , allocatable :: count(:)
4086 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4087 integer(IK) , intent(in) , optional :: order
4088 procedure(logical(LK)) :: iseq
4089 end subroutine
4090#endif
4091
4092#if SK4_ENABLED
4093 module subroutine setUniArbCusCom_D1_SK4(array, unique, count, iseq, index, order)
4094#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4095 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_SK4
4096#endif
4097 use pm_kind, only: SKG => SK4
4098 character(*,SKG) , intent(in) , contiguous :: array(:)
4099 character(*,SKG) , intent(out) , allocatable :: unique(:)
4100 integer(IK) , intent(out) , allocatable :: count(:)
4101 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4102 integer(IK) , intent(in) , optional :: order
4103 procedure(logical(LK)) :: iseq
4104 end subroutine
4105#endif
4106
4107#if SK3_ENABLED
4108 module subroutine setUniArbCusCom_D1_SK3(array, unique, count, iseq, index, order)
4109#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4110 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_SK3
4111#endif
4112 use pm_kind, only: SKG => SK3
4113 character(*,SKG) , intent(in) , contiguous :: array(:)
4114 character(*,SKG) , intent(out) , allocatable :: unique(:)
4115 integer(IK) , intent(out) , allocatable :: count(:)
4116 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4117 integer(IK) , intent(in) , optional :: order
4118 procedure(logical(LK)) :: iseq
4119 end subroutine
4120#endif
4121
4122#if SK2_ENABLED
4123 module subroutine setUniArbCusCom_D1_SK2(array, unique, count, iseq, index, order)
4124#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4125 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_SK2
4126#endif
4127 use pm_kind, only: SKG => SK2
4128 character(*,SKG) , intent(in) , contiguous :: array(:)
4129 character(*,SKG) , intent(out) , allocatable :: unique(:)
4130 integer(IK) , intent(out) , allocatable :: count(:)
4131 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4132 integer(IK) , intent(in) , optional :: order
4133 procedure(logical(LK)) :: iseq
4134 end subroutine
4135#endif
4136
4137#if SK1_ENABLED
4138 module subroutine setUniArbCusCom_D1_SK1(array, unique, count, iseq, index, order)
4139#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4140 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_SK1
4141#endif
4142 use pm_kind, only: SKG => SK1
4143 character(*,SKG) , intent(in) , contiguous :: array(:)
4144 character(*,SKG) , intent(out) , allocatable :: unique(:)
4145 integer(IK) , intent(out) , allocatable :: count(:)
4146 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4147 integer(IK) , intent(in) , optional :: order
4148 procedure(logical(LK)) :: iseq
4149 end subroutine
4150#endif
4151
4152 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4153
4154#if IK5_ENABLED
4155 module subroutine setUniArbCusCom_D1_IK5(array, unique, count, iseq, index, order)
4156#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4157 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_IK5
4158#endif
4159 use pm_kind, only: IKG => IK5
4160 integer(IKG) , intent(in) , contiguous :: array(:)
4161 integer(IKG) , intent(out) , allocatable :: unique(:)
4162 integer(IK) , intent(out) , allocatable :: count(:)
4163 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4164 integer(IK) , intent(in) , optional :: order
4165 procedure(logical(LK)) :: iseq
4166 end subroutine
4167#endif
4168
4169#if IK4_ENABLED
4170 module subroutine setUniArbCusCom_D1_IK4(array, unique, count, iseq, index, order)
4171#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4172 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_IK4
4173#endif
4174 use pm_kind, only: IKG => IK4
4175 integer(IKG) , intent(in) , contiguous :: array(:)
4176 integer(IKG) , intent(out) , allocatable :: unique(:)
4177 integer(IK) , intent(out) , allocatable :: count(:)
4178 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4179 integer(IK) , intent(in) , optional :: order
4180 procedure(logical(LK)) :: iseq
4181 end subroutine
4182#endif
4183
4184#if IK3_ENABLED
4185 module subroutine setUniArbCusCom_D1_IK3(array, unique, count, iseq, index, order)
4186#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4187 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_IK3
4188#endif
4189 use pm_kind, only: IKG => IK3
4190 integer(IKG) , intent(in) , contiguous :: array(:)
4191 integer(IKG) , intent(out) , allocatable :: unique(:)
4192 integer(IK) , intent(out) , allocatable :: count(:)
4193 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4194 integer(IK) , intent(in) , optional :: order
4195 procedure(logical(LK)) :: iseq
4196 end subroutine
4197
4198#endif
4199
4200#if IK2_ENABLED
4201 module subroutine setUniArbCusCom_D1_IK2(array, unique, count, iseq, index, order)
4202#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4203 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_IK2
4204#endif
4205 use pm_kind, only: IKG => IK2
4206 integer(IKG) , intent(in) , contiguous :: array(:)
4207 integer(IKG) , intent(out) , allocatable :: unique(:)
4208 integer(IK) , intent(out) , allocatable :: count(:)
4209 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4210 integer(IK) , intent(in) , optional :: order
4211 procedure(logical(LK)) :: iseq
4212 end subroutine
4213#endif
4214
4215#if IK1_ENABLED
4216 module subroutine setUniArbCusCom_D1_IK1(array, unique, count, iseq, index, order)
4217#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4218 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_IK1
4219#endif
4220 use pm_kind, only: IKG => IK1
4221 integer(IKG) , intent(in) , contiguous :: array(:)
4222 integer(IKG) , intent(out) , allocatable :: unique(:)
4223 integer(IK) , intent(out) , allocatable :: count(:)
4224 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4225 integer(IK) , intent(in) , optional :: order
4226 procedure(logical(LK)) :: iseq
4227 end subroutine
4228#endif
4229
4230 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4231
4232#if LK5_ENABLED
4233 module subroutine setUniArbCusCom_D1_LK5(array, unique, count, iseq, index, order)
4234#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4235 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_LK5
4236#endif
4237 use pm_kind, only: LKG => LK5
4238 logical(LKG) , intent(in) , contiguous :: array(:)
4239 logical(LKG) , intent(out) , allocatable :: unique(:)
4240 integer(IK) , intent(out) , allocatable :: count(:)
4241 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4242 integer(IK) , intent(in) , optional :: order
4243 procedure(logical(LK)) :: iseq
4244 end subroutine
4245#endif
4246
4247#if LK4_ENABLED
4248 module subroutine setUniArbCusCom_D1_LK4(array, unique, count, iseq, index, order)
4249#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4250 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_LK4
4251#endif
4252 use pm_kind, only: LKG => LK4
4253 logical(LKG) , intent(in) , contiguous :: array(:)
4254 logical(LKG) , intent(out) , allocatable :: unique(:)
4255 integer(IK) , intent(out) , allocatable :: count(:)
4256 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4257 integer(IK) , intent(in) , optional :: order
4258 procedure(logical(LK)) :: iseq
4259 end subroutine
4260#endif
4261
4262#if LK3_ENABLED
4263 module subroutine setUniArbCusCom_D1_LK3(array, unique, count, iseq, index, order)
4264#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4265 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_LK3
4266#endif
4267 use pm_kind, only: LKG => LK3
4268 logical(LKG) , intent(in) , contiguous :: array(:)
4269 logical(LKG) , intent(out) , allocatable :: unique(:)
4270 integer(IK) , intent(out) , allocatable :: count(:)
4271 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4272 integer(IK) , intent(in) , optional :: order
4273 procedure(logical(LK)) :: iseq
4274 end subroutine
4275#endif
4276
4277#if LK2_ENABLED
4278 module subroutine setUniArbCusCom_D1_LK2(array, unique, count, iseq, index, order)
4279#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4280 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_LK2
4281#endif
4282 use pm_kind, only: LKG => LK2
4283 logical(LKG) , intent(in) , contiguous :: array(:)
4284 logical(LKG) , intent(out) , allocatable :: unique(:)
4285 integer(IK) , intent(out) , allocatable :: count(:)
4286 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4287 integer(IK) , intent(in) , optional :: order
4288 procedure(logical(LK)) :: iseq
4289 end subroutine
4290#endif
4291
4292#if LK1_ENABLED
4293 module subroutine setUniArbCusCom_D1_LK1(array, unique, count, iseq, index, order)
4294#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4295 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_LK1
4296#endif
4297 use pm_kind, only: LKG => LK1
4298 logical(LKG) , intent(in) , contiguous :: array(:)
4299 logical(LKG) , intent(out) , allocatable :: unique(:)
4300 integer(IK) , intent(out) , allocatable :: count(:)
4301 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4302 integer(IK) , intent(in) , optional :: order
4303 procedure(logical(LK)) :: iseq
4304 end subroutine
4305#endif
4306
4307 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4308
4309#if CK5_ENABLED
4310 module subroutine setUniArbCusCom_D1_CK5(array, unique, count, iseq, index, order)
4311#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4312 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_CK5
4313#endif
4314 use pm_kind, only: CKG => CK5
4315 complex(CKG) , intent(in) , contiguous :: array(:)
4316 complex(CKG) , intent(out) , allocatable :: unique(:)
4317 integer(IK) , intent(out) , allocatable :: count(:)
4318 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4319 integer(IK) , intent(in) , optional :: order
4320 procedure(logical(LK)) :: iseq
4321 end subroutine
4322#endif
4323
4324#if CK4_ENABLED
4325 module subroutine setUniArbCusCom_D1_CK4(array, unique, count, iseq, index, order)
4326#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4327 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_CK4
4328#endif
4329 use pm_kind, only: CKG => CK4
4330 complex(CKG) , intent(in) , contiguous :: array(:)
4331 complex(CKG) , intent(out) , allocatable :: unique(:)
4332 integer(IK) , intent(out) , allocatable :: count(:)
4333 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4334 integer(IK) , intent(in) , optional :: order
4335 procedure(logical(LK)) :: iseq
4336 end subroutine
4337#endif
4338
4339#if CK3_ENABLED
4340 module subroutine setUniArbCusCom_D1_CK3(array, unique, count, iseq, index, order)
4341#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4342 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_CK3
4343#endif
4344 use pm_kind, only: CKG => CK3
4345 complex(CKG) , intent(in) , contiguous :: array(:)
4346 complex(CKG) , intent(out) , allocatable :: unique(:)
4347 integer(IK) , intent(out) , allocatable :: count(:)
4348 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4349 integer(IK) , intent(in) , optional :: order
4350 procedure(logical(LK)) :: iseq
4351 end subroutine
4352#endif
4353
4354#if CK2_ENABLED
4355 module subroutine setUniArbCusCom_D1_CK2(array, unique, count, iseq, index, order)
4356#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4357 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_CK2
4358#endif
4359 use pm_kind, only: CKG => CK2
4360 complex(CKG) , intent(in) , contiguous :: array(:)
4361 complex(CKG) , intent(out) , allocatable :: unique(:)
4362 integer(IK) , intent(out) , allocatable :: count(:)
4363 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4364 integer(IK) , intent(in) , optional :: order
4365 procedure(logical(LK)) :: iseq
4366 end subroutine
4367#endif
4368
4369#if CK1_ENABLED
4370 module subroutine setUniArbCusCom_D1_CK1(array, unique, count, iseq, index, order)
4371#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4372 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_CK1
4373#endif
4374 use pm_kind, only: CKG => CK1
4375 complex(CKG) , intent(in) , contiguous :: array(:)
4376 complex(CKG) , intent(out) , allocatable :: unique(:)
4377 integer(IK) , intent(out) , allocatable :: count(:)
4378 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4379 integer(IK) , intent(in) , optional :: order
4380 procedure(logical(LK)) :: iseq
4381 end subroutine
4382#endif
4383
4384 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4385
4386#if RK5_ENABLED
4387 module subroutine setUniArbCusCom_D1_RK5(array, unique, count, iseq, index, order)
4388#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4389 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_RK5
4390#endif
4391 use pm_kind, only: RKG => RK5
4392 real(RKG) , intent(in) , contiguous :: array(:)
4393 real(RKG) , intent(out) , allocatable :: unique(:)
4394 integer(IK) , intent(out) , allocatable :: count(:)
4395 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4396 integer(IK) , intent(in) , optional :: order
4397 procedure(logical(LK)) :: iseq
4398 end subroutine
4399#endif
4400
4401#if RK4_ENABLED
4402 module subroutine setUniArbCusCom_D1_RK4(array, unique, count, iseq, index, order)
4403#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4404 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_RK4
4405#endif
4406 use pm_kind, only: RKG => RK4
4407 real(RKG) , intent(in) , contiguous :: array(:)
4408 real(RKG) , intent(out) , allocatable :: unique(:)
4409 integer(IK) , intent(out) , allocatable :: count(:)
4410 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4411 integer(IK) , intent(in) , optional :: order
4412 procedure(logical(LK)) :: iseq
4413 end subroutine
4414#endif
4415
4416#if RK3_ENABLED
4417 module subroutine setUniArbCusCom_D1_RK3(array, unique, count, iseq, index, order)
4418#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4419 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_RK3
4420#endif
4421 use pm_kind, only: RKG => RK3
4422 real(RKG) , intent(in) , contiguous :: array(:)
4423 real(RKG) , intent(out) , allocatable :: unique(:)
4424 integer(IK) , intent(out) , allocatable :: count(:)
4425 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4426 integer(IK) , intent(in) , optional :: order
4427 procedure(logical(LK)) :: iseq
4428 end subroutine
4429#endif
4430
4431#if RK2_ENABLED
4432 module subroutine setUniArbCusCom_D1_RK2(array, unique, count, iseq, index, order)
4433#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4434 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_RK2
4435#endif
4436 use pm_kind, only: RKG => RK2
4437 real(RKG) , intent(in) , contiguous :: array(:)
4438 real(RKG) , intent(out) , allocatable :: unique(:)
4439 integer(IK) , intent(out) , allocatable :: count(:)
4440 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4441 integer(IK) , intent(in) , optional :: order
4442 procedure(logical(LK)) :: iseq
4443 end subroutine
4444#endif
4445
4446#if RK1_ENABLED
4447 module subroutine setUniArbCusCom_D1_RK1(array, unique, count, iseq, index, order)
4448#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4449 !DEC$ ATTRIBUTES DLLEXPORT :: setUniArbCusCom_D1_RK1
4450#endif
4451 use pm_kind, only: RKG => RK1
4452 real(RKG) , intent(in) , contiguous :: array(:)
4453 real(RKG) , intent(out) , allocatable :: unique(:)
4454 integer(IK) , intent(out) , allocatable :: count(:)
4455 type(cvi_type) , intent(out) , allocatable, optional :: index(:)
4456 integer(IK) , intent(in) , optional :: order
4457 procedure(logical(LK)) :: iseq
4458 end subroutine
4459#endif
4460
4461 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4462
4463 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4464 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4465 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4466 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4467 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4468 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4469
4470 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4471
4472#if SK5_ENABLED
4473 PURE module subroutine setUniFixDefCom_D0_SK5(array, unique, lenUnique, count, index, order)
4474#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4475 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D0_SK5
4476#endif
4477 use pm_kind, only: SKG => SK5
4478 character(*,SKG) , intent(in) :: array
4479 character(*,SKG) , intent(out) :: unique
4480 integer(IK) , intent(out) :: lenUnique
4481 integer(IK) , intent(out) , contiguous :: count(:)
4482 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4483 integer(IK) , intent(in) , optional :: order
4484 end subroutine
4485#endif
4486
4487#if SK4_ENABLED
4488 PURE module subroutine setUniFixDefCom_D0_SK4(array, unique, lenUnique, count, index, order)
4489#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4490 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D0_SK4
4491#endif
4492 use pm_kind, only: SKG => SK4
4493 character(*,SKG) , intent(in) :: array
4494 character(*,SKG) , intent(out) :: unique
4495 integer(IK) , intent(out) :: lenUnique
4496 integer(IK) , intent(out) , contiguous :: count(:)
4497 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4498 integer(IK) , intent(in) , optional :: order
4499 end subroutine
4500#endif
4501
4502#if SK3_ENABLED
4503 PURE module subroutine setUniFixDefCom_D0_SK3(array, unique, lenUnique, count, index, order)
4504#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4505 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D0_SK3
4506#endif
4507 use pm_kind, only: SKG => SK3
4508 character(*,SKG) , intent(in) :: array
4509 character(*,SKG) , intent(out) :: unique
4510 integer(IK) , intent(out) :: lenUnique
4511 integer(IK) , intent(out) , contiguous :: count(:)
4512 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4513 integer(IK) , intent(in) , optional :: order
4514 end subroutine
4515#endif
4516
4517#if SK2_ENABLED
4518 PURE module subroutine setUniFixDefCom_D0_SK2(array, unique, lenUnique, count, index, order)
4519#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4520 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D0_SK2
4521#endif
4522 use pm_kind, only: SKG => SK2
4523 character(*,SKG) , intent(in) :: array
4524 character(*,SKG) , intent(out) :: unique
4525 integer(IK) , intent(out) :: lenUnique
4526 integer(IK) , intent(out) , contiguous :: count(:)
4527 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4528 integer(IK) , intent(in) , optional :: order
4529 end subroutine
4530#endif
4531
4532#if SK1_ENABLED
4533 PURE module subroutine setUniFixDefCom_D0_SK1(array, unique, lenUnique, count, index, order)
4534#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4535 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D0_SK1
4536#endif
4537 use pm_kind, only: SKG => SK1
4538 character(*,SKG) , intent(in) :: array
4539 character(*,SKG) , intent(out) :: unique
4540 integer(IK) , intent(out) :: lenUnique
4541 integer(IK) , intent(out) , contiguous :: count(:)
4542 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4543 integer(IK) , intent(in) , optional :: order
4544 end subroutine
4545#endif
4546
4547 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4548
4549#if SK5_ENABLED
4550 PURE module subroutine setUniFixDefCom_D1_SK5(array, unique, lenUnique, count, index, order)
4551#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4552 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_SK5
4553#endif
4554 use pm_kind, only: SKG => SK5
4555 character(*,SKG) , intent(in) , contiguous :: array(:)
4556 character(*,SKG) , intent(out) , contiguous :: unique(:)
4557 integer(IK) , intent(out) :: lenUnique
4558 integer(IK) , intent(out) , contiguous :: count(:)
4559 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4560 integer(IK) , intent(in) , optional :: order
4561 end subroutine
4562#endif
4563
4564#if SK4_ENABLED
4565 PURE module subroutine setUniFixDefCom_D1_SK4(array, unique, lenUnique, count, index, order)
4566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4567 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_SK4
4568#endif
4569 use pm_kind, only: SKG => SK4
4570 character(*,SKG) , intent(in) , contiguous :: array(:)
4571 character(*,SKG) , intent(out) , contiguous :: unique(:)
4572 integer(IK) , intent(out) :: lenUnique
4573 integer(IK) , intent(out) , contiguous :: count(:)
4574 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4575 integer(IK) , intent(in) , optional :: order
4576 end subroutine
4577#endif
4578
4579#if SK3_ENABLED
4580 PURE module subroutine setUniFixDefCom_D1_SK3(array, unique, lenUnique, count, index, order)
4581#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4582 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_SK3
4583#endif
4584 use pm_kind, only: SKG => SK3
4585 character(*,SKG) , intent(in) , contiguous :: array(:)
4586 character(*,SKG) , intent(out) , contiguous :: unique(:)
4587 integer(IK) , intent(out) :: lenUnique
4588 integer(IK) , intent(out) , contiguous :: count(:)
4589 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4590 integer(IK) , intent(in) , optional :: order
4591 end subroutine
4592#endif
4593
4594#if SK2_ENABLED
4595 PURE module subroutine setUniFixDefCom_D1_SK2(array, unique, lenUnique, count, index, order)
4596#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4597 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_SK2
4598#endif
4599 use pm_kind, only: SKG => SK2
4600 character(*,SKG) , intent(in) , contiguous :: array(:)
4601 character(*,SKG) , intent(out) , contiguous :: unique(:)
4602 integer(IK) , intent(out) :: lenUnique
4603 integer(IK) , intent(out) , contiguous :: count(:)
4604 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4605 integer(IK) , intent(in) , optional :: order
4606 end subroutine
4607#endif
4608
4609#if SK1_ENABLED
4610 PURE module subroutine setUniFixDefCom_D1_SK1(array, unique, lenUnique, count, index, order)
4611#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4612 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_SK1
4613#endif
4614 use pm_kind, only: SKG => SK1
4615 character(*,SKG) , intent(in) , contiguous :: array(:)
4616 character(*,SKG) , intent(out) , contiguous :: unique(:)
4617 integer(IK) , intent(out) :: lenUnique
4618 integer(IK) , intent(out) , contiguous :: count(:)
4619 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4620 integer(IK) , intent(in) , optional :: order
4621 end subroutine
4622#endif
4623
4624 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4625
4626#if IK5_ENABLED
4627 PURE module subroutine setUniFixDefCom_D1_IK5(array, unique, lenUnique, count, index, order)
4628#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4629 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_IK5
4630#endif
4631 use pm_kind, only: IKG => IK5
4632 integer(IKG) , intent(in) , contiguous :: array(:)
4633 integer(IKG) , intent(out) , contiguous :: unique(:)
4634 integer(IK) , intent(out) :: lenUnique
4635 integer(IK) , intent(out) , contiguous :: count(:)
4636 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4637 integer(IK) , intent(in) , optional :: order
4638 end subroutine
4639#endif
4640
4641#if IK4_ENABLED
4642 PURE module subroutine setUniFixDefCom_D1_IK4(array, unique, lenUnique, count, index, order)
4643#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4644 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_IK4
4645#endif
4646 use pm_kind, only: IKG => IK4
4647 integer(IKG) , intent(in) , contiguous :: array(:)
4648 integer(IKG) , intent(out) , contiguous :: unique(:)
4649 integer(IK) , intent(out) :: lenUnique
4650 integer(IK) , intent(out) , contiguous :: count(:)
4651 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4652 integer(IK) , intent(in) , optional :: order
4653 end subroutine
4654#endif
4655
4656#if IK3_ENABLED
4657 PURE module subroutine setUniFixDefCom_D1_IK3(array, unique, lenUnique, count, index, order)
4658#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4659 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_IK3
4660#endif
4661 use pm_kind, only: IKG => IK3
4662 integer(IKG) , intent(in) , contiguous :: array(:)
4663 integer(IKG) , intent(out) , contiguous :: unique(:)
4664 integer(IK) , intent(out) :: lenUnique
4665 integer(IK) , intent(out) , contiguous :: count(:)
4666 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4667 integer(IK) , intent(in) , optional :: order
4668 end subroutine
4669
4670#endif
4671
4672#if IK2_ENABLED
4673 PURE module subroutine setUniFixDefCom_D1_IK2(array, unique, lenUnique, count, index, order)
4674#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4675 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_IK2
4676#endif
4677 use pm_kind, only: IKG => IK2
4678 integer(IKG) , intent(in) , contiguous :: array(:)
4679 integer(IKG) , intent(out) , contiguous :: unique(:)
4680 integer(IK) , intent(out) :: lenUnique
4681 integer(IK) , intent(out) , contiguous :: count(:)
4682 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4683 integer(IK) , intent(in) , optional :: order
4684 end subroutine
4685#endif
4686
4687#if IK1_ENABLED
4688 PURE module subroutine setUniFixDefCom_D1_IK1(array, unique, lenUnique, count, index, order)
4689#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4690 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_IK1
4691#endif
4692 use pm_kind, only: IKG => IK1
4693 integer(IKG) , intent(in) , contiguous :: array(:)
4694 integer(IKG) , intent(out) , contiguous :: unique(:)
4695 integer(IK) , intent(out) :: lenUnique
4696 integer(IK) , intent(out) , contiguous :: count(:)
4697 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4698 integer(IK) , intent(in) , optional :: order
4699 end subroutine
4700#endif
4701
4702 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4703
4704#if LK5_ENABLED
4705 PURE module subroutine setUniFixDefCom_D1_LK5(array, unique, lenUnique, count, index, order)
4706#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4707 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_LK5
4708#endif
4709 use pm_kind, only: LKG => LK5
4710 logical(LKG) , intent(in) , contiguous :: array(:)
4711 logical(LKG) , intent(out) , contiguous :: unique(:)
4712 integer(IK) , intent(out) :: lenUnique
4713 integer(IK) , intent(out) , contiguous :: count(:)
4714 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4715 integer(IK) , intent(in) , optional :: order
4716 end subroutine
4717#endif
4718
4719#if LK4_ENABLED
4720 PURE module subroutine setUniFixDefCom_D1_LK4(array, unique, lenUnique, count, index, order)
4721#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4722 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_LK4
4723#endif
4724 use pm_kind, only: LKG => LK4
4725 logical(LKG) , intent(in) , contiguous :: array(:)
4726 logical(LKG) , intent(out) , contiguous :: unique(:)
4727 integer(IK) , intent(out) :: lenUnique
4728 integer(IK) , intent(out) , contiguous :: count(:)
4729 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4730 integer(IK) , intent(in) , optional :: order
4731 end subroutine
4732#endif
4733
4734#if LK3_ENABLED
4735 PURE module subroutine setUniFixDefCom_D1_LK3(array, unique, lenUnique, count, index, order)
4736#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4737 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_LK3
4738#endif
4739 use pm_kind, only: LKG => LK3
4740 logical(LKG) , intent(in) , contiguous :: array(:)
4741 logical(LKG) , intent(out) , contiguous :: unique(:)
4742 integer(IK) , intent(out) :: lenUnique
4743 integer(IK) , intent(out) , contiguous :: count(:)
4744 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4745 integer(IK) , intent(in) , optional :: order
4746 end subroutine
4747#endif
4748
4749#if LK2_ENABLED
4750 PURE module subroutine setUniFixDefCom_D1_LK2(array, unique, lenUnique, count, index, order)
4751#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4752 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_LK2
4753#endif
4754 use pm_kind, only: LKG => LK2
4755 logical(LKG) , intent(in) , contiguous :: array(:)
4756 logical(LKG) , intent(out) , contiguous :: unique(:)
4757 integer(IK) , intent(out) :: lenUnique
4758 integer(IK) , intent(out) , contiguous :: count(:)
4759 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4760 integer(IK) , intent(in) , optional :: order
4761 end subroutine
4762#endif
4763
4764#if LK1_ENABLED
4765 PURE module subroutine setUniFixDefCom_D1_LK1(array, unique, lenUnique, count, index, order)
4766#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4767 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_LK1
4768#endif
4769 use pm_kind, only: LKG => LK1
4770 logical(LKG) , intent(in) , contiguous :: array(:)
4771 logical(LKG) , intent(out) , contiguous :: unique(:)
4772 integer(IK) , intent(out) :: lenUnique
4773 integer(IK) , intent(out) , contiguous :: count(:)
4774 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4775 integer(IK) , intent(in) , optional :: order
4776 end subroutine
4777#endif
4778
4779 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4780
4781#if CK5_ENABLED
4782 PURE module subroutine setUniFixDefCom_D1_CK5(array, unique, lenUnique, count, index, order)
4783#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4784 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_CK5
4785#endif
4786 use pm_kind, only: CKG => CK5
4787 complex(CKG) , intent(in) , contiguous :: array(:)
4788 complex(CKG) , intent(out) , contiguous :: unique(:)
4789 integer(IK) , intent(out) :: lenUnique
4790 integer(IK) , intent(out) , contiguous :: count(:)
4791 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4792 integer(IK) , intent(in) , optional :: order
4793 end subroutine
4794#endif
4795
4796#if CK4_ENABLED
4797 PURE module subroutine setUniFixDefCom_D1_CK4(array, unique, lenUnique, count, index, order)
4798#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4799 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_CK4
4800#endif
4801 use pm_kind, only: CKG => CK4
4802 complex(CKG) , intent(in) , contiguous :: array(:)
4803 complex(CKG) , intent(out) , contiguous :: unique(:)
4804 integer(IK) , intent(out) :: lenUnique
4805 integer(IK) , intent(out) , contiguous :: count(:)
4806 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4807 integer(IK) , intent(in) , optional :: order
4808 end subroutine
4809#endif
4810
4811#if CK3_ENABLED
4812 PURE module subroutine setUniFixDefCom_D1_CK3(array, unique, lenUnique, count, index, order)
4813#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4814 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_CK3
4815#endif
4816 use pm_kind, only: CKG => CK3
4817 complex(CKG) , intent(in) , contiguous :: array(:)
4818 complex(CKG) , intent(out) , contiguous :: unique(:)
4819 integer(IK) , intent(out) :: lenUnique
4820 integer(IK) , intent(out) , contiguous :: count(:)
4821 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4822 integer(IK) , intent(in) , optional :: order
4823 end subroutine
4824#endif
4825
4826#if CK2_ENABLED
4827 PURE module subroutine setUniFixDefCom_D1_CK2(array, unique, lenUnique, count, index, order)
4828#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4829 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_CK2
4830#endif
4831 use pm_kind, only: CKG => CK2
4832 complex(CKG) , intent(in) , contiguous :: array(:)
4833 complex(CKG) , intent(out) , contiguous :: unique(:)
4834 integer(IK) , intent(out) :: lenUnique
4835 integer(IK) , intent(out) , contiguous :: count(:)
4836 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4837 integer(IK) , intent(in) , optional :: order
4838 end subroutine
4839#endif
4840
4841#if CK1_ENABLED
4842 PURE module subroutine setUniFixDefCom_D1_CK1(array, unique, lenUnique, count, index, order)
4843#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4844 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_CK1
4845#endif
4846 use pm_kind, only: CKG => CK1
4847 complex(CKG) , intent(in) , contiguous :: array(:)
4848 complex(CKG) , intent(out) , contiguous :: unique(:)
4849 integer(IK) , intent(out) :: lenUnique
4850 integer(IK) , intent(out) , contiguous :: count(:)
4851 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4852 integer(IK) , intent(in) , optional :: order
4853 end subroutine
4854#endif
4855
4856 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4857
4858#if RK5_ENABLED
4859 PURE module subroutine setUniFixDefCom_D1_RK5(array, unique, lenUnique, count, index, order)
4860#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4861 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_RK5
4862#endif
4863 use pm_kind, only: RKG => RK5
4864 real(RKG) , intent(in) , contiguous :: array(:)
4865 real(RKG) , intent(out) , contiguous :: unique(:)
4866 integer(IK) , intent(out) :: lenUnique
4867 integer(IK) , intent(out) , contiguous :: count(:)
4868 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4869 integer(IK) , intent(in) , optional :: order
4870 end subroutine
4871#endif
4872
4873#if RK4_ENABLED
4874 PURE module subroutine setUniFixDefCom_D1_RK4(array, unique, lenUnique, count, index, order)
4875#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4876 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_RK4
4877#endif
4878 use pm_kind, only: RKG => RK4
4879 real(RKG) , intent(in) , contiguous :: array(:)
4880 real(RKG) , intent(out) , contiguous :: unique(:)
4881 integer(IK) , intent(out) :: lenUnique
4882 integer(IK) , intent(out) , contiguous :: count(:)
4883 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4884 integer(IK) , intent(in) , optional :: order
4885 end subroutine
4886#endif
4887
4888#if RK3_ENABLED
4889 PURE module subroutine setUniFixDefCom_D1_RK3(array, unique, lenUnique, count, index, order)
4890#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4891 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_RK3
4892#endif
4893 use pm_kind, only: RKG => RK3
4894 real(RKG) , intent(in) , contiguous :: array(:)
4895 real(RKG) , intent(out) , contiguous :: unique(:)
4896 integer(IK) , intent(out) :: lenUnique
4897 integer(IK) , intent(out) , contiguous :: count(:)
4898 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4899 integer(IK) , intent(in) , optional :: order
4900 end subroutine
4901#endif
4902
4903#if RK2_ENABLED
4904 PURE module subroutine setUniFixDefCom_D1_RK2(array, unique, lenUnique, count, index, order)
4905#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4906 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_RK2
4907#endif
4908 use pm_kind, only: RKG => RK2
4909 real(RKG) , intent(in) , contiguous :: array(:)
4910 real(RKG) , intent(out) , contiguous :: unique(:)
4911 integer(IK) , intent(out) :: lenUnique
4912 integer(IK) , intent(out) , contiguous :: count(:)
4913 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4914 integer(IK) , intent(in) , optional :: order
4915 end subroutine
4916#endif
4917
4918#if RK1_ENABLED
4919 PURE module subroutine setUniFixDefCom_D1_RK1(array, unique, lenUnique, count, index, order)
4920#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4921 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixDefCom_D1_RK1
4922#endif
4923 use pm_kind, only: RKG => RK1
4924 real(RKG) , intent(in) , contiguous :: array(:)
4925 real(RKG) , intent(out) , contiguous :: unique(:)
4926 integer(IK) , intent(out) :: lenUnique
4927 integer(IK) , intent(out) , contiguous :: count(:)
4928 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4929 integer(IK) , intent(in) , optional :: order
4930 end subroutine
4931#endif
4932
4933 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4934
4935 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4936 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4937 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4938
4939 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4940
4941#if SK5_ENABLED
4942 module subroutine setUniFixCusCom_D0_SK5(array, unique, lenUnique, count, iseq, index, order)
4943#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4944 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixCusCom_D0_SK5
4945#endif
4946 use pm_kind, only: SKG => SK5
4947 character(*,SKG) , intent(in) :: array
4948 character(*,SKG) , intent(out) :: unique
4949 integer(IK) , intent(out) :: lenUnique
4950 integer(IK) , intent(out) , contiguous :: count(:)
4951 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4952 integer(IK) , intent(in) , optional :: order
4953 procedure(logical(LK)) :: iseq
4954 end subroutine
4955#endif
4956
4957#if SK4_ENABLED
4958 module subroutine setUniFixCusCom_D0_SK4(array, unique, lenUnique, count, iseq, index, order)
4959#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4960 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixCusCom_D0_SK4
4961#endif
4962 use pm_kind, only: SKG => SK4
4963 character(*,SKG) , intent(in) :: array
4964 character(*,SKG) , intent(out) :: unique
4965 integer(IK) , intent(out) :: lenUnique
4966 integer(IK) , intent(out) , contiguous :: count(:)
4967 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4968 integer(IK) , intent(in) , optional :: order
4969 procedure(logical(LK)) :: iseq
4970 end subroutine
4971#endif
4972
4973#if SK3_ENABLED
4974 module subroutine setUniFixCusCom_D0_SK3(array, unique, lenUnique, count, iseq, index, order)
4975#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4976 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixCusCom_D0_SK3
4977#endif
4978 use pm_kind, only: SKG => SK3
4979 character(*,SKG) , intent(in) :: array
4980 character(*,SKG) , intent(out) :: unique
4981 integer(IK) , intent(out) :: lenUnique
4982 integer(IK) , intent(out) , contiguous :: count(:)
4983 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
4984 integer(IK) , intent(in) , optional :: order
4985 procedure(logical(LK)) :: iseq
4986 end subroutine
4987#endif
4988
4989#if SK2_ENABLED
4990 module subroutine setUniFixCusCom_D0_SK2(array, unique, lenUnique, count, iseq, index, order)
4991#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4992 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixCusCom_D0_SK2
4993#endif
4994 use pm_kind, only: SKG => SK2
4995 character(*,SKG) , intent(in) :: array
4996 character(*,SKG) , intent(out) :: unique
4997 integer(IK) , intent(out) :: lenUnique
4998 integer(IK) , intent(out) , contiguous :: count(:)
4999 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
5000 integer(IK) , intent(in) , optional :: order
5001 procedure(logical(LK)) :: iseq
5002 end subroutine
5003#endif
5004
5005#if SK1_ENABLED
5006 module subroutine setUniFixCusCom_D0_SK1(array, unique, lenUnique, count, iseq, index, order)
5007#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5008 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixCusCom_D0_SK1
5009#endif
5010 use pm_kind, only: SKG => SK1
5011 character(*,SKG) , intent(in) :: array
5012 character(*,SKG) , intent(out) :: unique
5013 integer(IK) , intent(out) :: lenUnique
5014 integer(IK) , intent(out) , contiguous :: count(:)
5015 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
5016 integer(IK) , intent(in) , optional :: order
5017 procedure(logical(LK)) :: iseq
5018 end subroutine
5019#endif
5020
5021 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5022
5023#if SK5_ENABLED
5024 module subroutine setUniFixCusCom_D1_SK5(array, unique, lenUnique, count, iseq, index, order)
5025#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5026 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixCusCom_D1_SK5
5027#endif
5028 use pm_kind, only: SKG => SK5
5029 character(*,SKG) , intent(in) , contiguous :: array(:)
5030 character(*,SKG) , intent(out) , contiguous :: unique(:)
5031 integer(IK) , intent(out) :: lenUnique
5032 integer(IK) , intent(out) , contiguous :: count(:)
5033 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
5034 integer(IK) , intent(in) , optional :: order
5035 procedure(logical(LK)) :: iseq
5036 end subroutine
5037#endif
5038
5039#if SK4_ENABLED
5040 module subroutine setUniFixCusCom_D1_SK4(array, unique, lenUnique, count, iseq, index, order)
5041#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5042 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixCusCom_D1_SK4
5043#endif
5044 use pm_kind, only: SKG => SK4
5045 character(*,SKG) , intent(in) , contiguous :: array(:)
5046 character(*,SKG) , intent(out) , contiguous :: unique(:)
5047 integer(IK) , intent(out) :: lenUnique
5048 integer(IK) , intent(out) , contiguous :: count(:)
5049 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
5050 integer(IK) , intent(in) , optional :: order
5051 procedure(logical(LK)) :: iseq
5052 end subroutine
5053#endif
5054
5055#if SK3_ENABLED
5056 module subroutine setUniFixCusCom_D1_SK3(array, unique, lenUnique, count, iseq, index, order)
5057#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5058 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixCusCom_D1_SK3
5059#endif
5060 use pm_kind, only: SKG => SK3
5061 character(*,SKG) , intent(in) , contiguous :: array(:)
5062 character(*,SKG) , intent(out) , contiguous :: unique(:)
5063 integer(IK) , intent(out) :: lenUnique
5064 integer(IK) , intent(out) , contiguous :: count(:)
5065 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
5066 integer(IK) , intent(in) , optional :: order
5067 procedure(logical(LK)) :: iseq
5068 end subroutine
5069#endif
5070
5071#if SK2_ENABLED
5072 module subroutine setUniFixCusCom_D1_SK2(array, unique, lenUnique, count, iseq, index, order)
5073#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5074 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixCusCom_D1_SK2
5075#endif
5076 use pm_kind, only: SKG => SK2
5077 character(*,SKG) , intent(in) , contiguous :: array(:)
5078 character(*,SKG) , intent(out) , contiguous :: unique(:)
5079 integer(IK) , intent(out) :: lenUnique
5080 integer(IK) , intent(out) , contiguous :: count(:)
5081 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
5082 integer(IK) , intent(in) , optional :: order
5083 procedure(logical(LK)) :: iseq
5084 end subroutine
5085#endif
5086
5087#if SK1_ENABLED
5088 module subroutine setUniFixCusCom_D1_SK1(array, unique, lenUnique, count, iseq, index, order)
5089#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5090 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixCusCom_D1_SK1
5091#endif
5092 use pm_kind, only: SKG => SK1
5093 character(*,SKG) , intent(in) , contiguous :: array(:)
5094 character(*,SKG) , intent(out) , contiguous :: unique(:)
5095 integer(IK) , intent(out) :: lenUnique
5096 integer(IK) , intent(out) , contiguous :: count(:)
5097 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
5098 integer(IK) , intent(in) , optional :: order
5099 procedure(logical(LK)) :: iseq
5100 end subroutine
5101#endif
5102
5103 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5104
5105#if IK5_ENABLED
5106 module subroutine setUniFixCusCom_D1_IK5(array, unique, lenUnique, count, iseq, index, order)
5107#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5108 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixCusCom_D1_IK5
5109#endif
5110 use pm_kind, only: IKG => IK5
5111 integer(IKG) , intent(in) , contiguous :: array(:)
5112 integer(IKG) , intent(out) , contiguous :: unique(:)
5113 integer(IK) , intent(out) :: lenUnique
5114 integer(IK) , intent(out) , contiguous :: count(:)
5115 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
5116 integer(IK) , intent(in) , optional :: order
5117 procedure(logical(LK)) :: iseq
5118 end subroutine
5119#endif
5120
5121#if IK4_ENABLED
5122 module subroutine setUniFixCusCom_D1_IK4(array, unique, lenUnique, count, iseq, index, order)
5123#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5124 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixCusCom_D1_IK4
5125#endif
5126 use pm_kind, only: IKG => IK4
5127 integer(IKG) , intent(in) , contiguous :: array(:)
5128 integer(IKG) , intent(out) , contiguous :: unique(:)
5129 integer(IK) , intent(out) :: lenUnique
5130 integer(IK) , intent(out) , contiguous :: count(:)
5131 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
5132 integer(IK) , intent(in) , optional :: order
5133 procedure(logical(LK)) :: iseq
5134 end subroutine
5135#endif
5136
5137#if IK3_ENABLED
5138 module subroutine setUniFixCusCom_D1_IK3(array, unique, lenUnique, count, iseq, index, order)
5139#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5140 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixCusCom_D1_IK3
5141#endif
5142 use pm_kind, only: IKG => IK3
5143 integer(IKG) , intent(in) , contiguous :: array(:)
5144 integer(IKG) , intent(out) , contiguous :: unique(:)
5145 integer(IK) , intent(out) :: lenUnique
5146 integer(IK) , intent(out) , contiguous :: count(:)
5147 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
5148 integer(IK) , intent(in) , optional :: order
5149 procedure(logical(LK)) :: iseq
5150 end subroutine
5151
5152#endif
5153
5154#if IK2_ENABLED
5155 module subroutine setUniFixCusCom_D1_IK2(array, unique, lenUnique, count, iseq, index, order)
5156#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5157 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixCusCom_D1_IK2
5158#endif
5159 use pm_kind, only: IKG => IK2
5160 integer(IKG) , intent(in) , contiguous :: array(:)
5161 integer(IKG) , intent(out) , contiguous :: unique(:)
5162 integer(IK) , intent(out) :: lenUnique
5163 integer(IK) , intent(out) , contiguous :: count(:)
5164 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
5165 integer(IK) , intent(in) , optional :: order
5166 procedure(logical(LK)) :: iseq
5167 end subroutine
5168#endif
5169
5170#if IK1_ENABLED
5171 module subroutine setUniFixCusCom_D1_IK1(array, unique, lenUnique, count, iseq, index, order)
5172#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5173 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixCusCom_D1_IK1
5174#endif
5175 use pm_kind, only: IKG => IK1
5176 integer(IKG) , intent(in) , contiguous :: array(:)
5177 integer(IKG) , intent(out) , contiguous :: unique(:)
5178 integer(IK) , intent(out) :: lenUnique
5179 integer(IK) , intent(out) , contiguous :: count(:)
5180 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
5181 integer(IK) , intent(in) , optional :: order
5182 procedure(logical(LK)) :: iseq
5183 end subroutine
5184#endif
5185
5186 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5187
5188#if LK5_ENABLED
5189 module subroutine setUniFixCusCom_D1_LK5(array, unique, lenUnique, count, iseq, index, order)
5190#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5191 !DEC$ ATTRIBUTES DLLEXPORT :: setUniFixCusCom_D1_LK5
5192#endif
5193 use pm_kind, only: LKG => LK5
5194 logical(LKG) , intent(in) , contiguous :: array(:)
5195 logical(LKG) , intent(out) , contiguous :: unique(:)
5196 integer(IK) , intent(out) :: lenUnique
5197 integer(IK) , intent(out) , contiguous :: count(:)
5198 type(cvi_type) , intent(out) , contiguous , optional :: index(:)
5199 integer(IK) , intent(in) , optional :: order
5200 procedure(logical(LK)) :: iseq
5201 end subroutine
5202#endif
5203
5204#if LK4_ENABLED
5205 module subroutine setUniFixCusCom_D1_LK4(array, unique, lenUniqu