ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_arrayCompact.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
18! \bug
19! The following bypasses the bug reported below that creates a conflict between Intel and gfortran.
20#if __INTEL_COMPILER
21#define LEN_STR :
22#else
23#define LEN_STR len(array,IK)
24#endif
25
26
41
42!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
43
45
46 use pm_kind, only: SK, IK
47
48 implicit none
49
50 character(*, SK), parameter :: MODULE_NAME = "@pm_arrayCompact"
51
52!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53
122 interface getCompact
123
124 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
125 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
126 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
127
128 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
129
130#if SK5_ENABLED
131 PURE module function getCompact_D0_SK5(array) result(compact)
132#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
133 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D0_SK5
134#endif
135 use pm_kind, only: SKG => SK5
136 character(*,SKG) , intent(in) :: array
137 character(:,SKG) , allocatable :: compact
138 end function
139#endif
140
141#if SK4_ENABLED
142 PURE module function getCompact_D0_SK4(array) result(compact)
143#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
144 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D0_SK4
145#endif
146 use pm_kind, only: SKG => SK4
147 character(*,SKG) , intent(in) :: array
148 character(:,SKG) , allocatable :: compact
149 end function
150#endif
151
152#if SK3_ENABLED
153 PURE module function getCompact_D0_SK3(array) result(compact)
154#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
155 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D0_SK3
156#endif
157 use pm_kind, only: SKG => SK3
158 character(*,SKG) , intent(in) :: array
159 character(:,SKG) , allocatable :: compact
160 end function
161#endif
162
163#if SK2_ENABLED
164 PURE module function getCompact_D0_SK2(array) result(compact)
165#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
166 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D0_SK2
167#endif
168 use pm_kind, only: SKG => SK2
169 character(*,SKG) , intent(in) :: array
170 character(:,SKG) , allocatable :: compact
171 end function
172#endif
173
174#if SK1_ENABLED
175 PURE module function getCompact_D0_SK1(array) result(compact)
176#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
177 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D0_SK1
178#endif
179 use pm_kind, only: SKG => SK1
180 character(*,SKG) , intent(in) :: array
181 character(:,SKG) , allocatable :: compact
182 end function
183#endif
184
185 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
186
187 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
188 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
189 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
190
191 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
192
193#if SK5_ENABLED
194 PURE module function getCompact_D1_SK5(array) result(compact)
195#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
196 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_SK5
197#endif
198 use pm_kind, only: SKG => SK5
199 character(*,SKG) , intent(in) , contiguous :: array(:)
200 character(LEN_STR,SKG) , allocatable :: compact(:)
201 end function
202#endif
203
204#if SK4_ENABLED
205 PURE module function getCompact_D1_SK4(array) result(compact)
206#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
207 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_SK4
208#endif
209 use pm_kind, only: SKG => SK4
210 character(*,SKG) , intent(in) , contiguous :: array(:)
211 character(LEN_STR,SKG) , allocatable :: compact(:)
212 end function
213#endif
214
215#if SK3_ENABLED
216 PURE module function getCompact_D1_SK3(array) result(compact)
217#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
218 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_SK3
219#endif
220 use pm_kind, only: SKG => SK3
221 character(*,SKG) , intent(in) , contiguous :: array(:)
222 character(LEN_STR,SKG) , allocatable :: compact(:)
223 end function
224#endif
225
226#if SK2_ENABLED
227 PURE module function getCompact_D1_SK2(array) result(compact)
228#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
229 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_SK2
230#endif
231 use pm_kind, only: SKG => SK2
232 character(*,SKG) , intent(in) , contiguous :: array(:)
233 character(LEN_STR,SKG) , allocatable :: compact(:)
234 end function
235#endif
236
237#if SK1_ENABLED
238 PURE module function getCompact_D1_SK1(array) result(compact)
239#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
240 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_SK1
241#endif
242 use pm_kind, only: SKG => SK1
243 character(*,SKG) , intent(in) , contiguous :: array(:)
244 character(LEN_STR,SKG) , allocatable :: compact(:)
245 end function
246#endif
247
248 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
249
250#if IK5_ENABLED
251 PURE module function getCompact_D1_IK5(array) result(compact)
252#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
253 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_IK5
254#endif
255 use pm_kind, only: IKG => IK5
256 integer(IKG) , intent(in) , contiguous :: array(:)
257 integer(IKG) , allocatable :: compact(:)
258 end function
259#endif
260
261#if IK4_ENABLED
262 PURE module function getCompact_D1_IK4(array) result(compact)
263#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
264 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_IK4
265#endif
266 use pm_kind, only: IKG => IK4
267 integer(IKG) , intent(in) , contiguous :: array(:)
268 integer(IKG) , allocatable :: compact(:)
269 end function
270#endif
271
272#if IK3_ENABLED
273 PURE module function getCompact_D1_IK3(array) result(compact)
274#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
275 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_IK3
276#endif
277 use pm_kind, only: IKG => IK3
278 integer(IKG) , intent(in) , contiguous :: array(:)
279 integer(IKG) , allocatable :: compact(:)
280 end function
281#endif
282
283#if IK2_ENABLED
284 PURE module function getCompact_D1_IK2(array) result(compact)
285#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
286 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_IK2
287#endif
288 use pm_kind, only: IKG => IK2
289 integer(IKG) , intent(in) , contiguous :: array(:)
290 integer(IKG) , allocatable :: compact(:)
291 end function
292#endif
293
294#if IK1_ENABLED
295 PURE module function getCompact_D1_IK1(array) result(compact)
296#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
297 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_IK1
298#endif
299 use pm_kind, only: IKG => IK1
300 integer(IKG) , intent(in) , contiguous :: array(:)
301 integer(IKG) , allocatable :: compact(:)
302 end function
303#endif
304
305 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
306
307#if LK5_ENABLED
308 PURE module function getCompact_D1_LK5(array) result(compact)
309#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
310 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_LK5
311#endif
312 use pm_kind, only: LKG => LK5
313 logical(LKG) , intent(in) , contiguous :: array(:)
314 logical(LKG) , allocatable :: compact(:)
315 end function
316#endif
317
318#if LK4_ENABLED
319 PURE module function getCompact_D1_LK4(array) result(compact)
320#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
321 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_LK4
322#endif
323 use pm_kind, only: LKG => LK4
324 logical(LKG) , intent(in) , contiguous :: array(:)
325 logical(LKG) , allocatable :: compact(:)
326 end function
327#endif
328
329#if LK3_ENABLED
330 PURE module function getCompact_D1_LK3(array) result(compact)
331#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
332 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_LK3
333#endif
334 use pm_kind, only: LKG => LK3
335 logical(LKG) , intent(in) , contiguous :: array(:)
336 logical(LKG) , allocatable :: compact(:)
337 end function
338#endif
339
340#if LK2_ENABLED
341 PURE module function getCompact_D1_LK2(array) result(compact)
342#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
343 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_LK2
344#endif
345 use pm_kind, only: LKG => LK2
346 logical(LKG) , intent(in) , contiguous :: array(:)
347 logical(LKG) , allocatable :: compact(:)
348 end function
349#endif
350
351#if LK1_ENABLED
352 PURE module function getCompact_D1_LK1(array) result(compact)
353#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
354 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_LK1
355#endif
356 use pm_kind, only: LKG => LK1
357 logical(LKG) , intent(in) , contiguous :: array(:)
358 logical(LKG) , allocatable :: compact(:)
359 end function
360#endif
361
362 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
363
364#if CK5_ENABLED
365 PURE module function getCompact_D1_CK5(array) result(compact)
366#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
367 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_CK5
368#endif
369 use pm_kind, only: CKG => CK5
370 complex(CKG) , intent(in) , contiguous :: array(:)
371 complex(CKG) , allocatable :: compact(:)
372 end function
373#endif
374
375#if CK4_ENABLED
376 PURE module function getCompact_D1_CK4(array) result(compact)
377#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
378 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_CK4
379#endif
380 use pm_kind, only: CKG => CK4
381 complex(CKG) , intent(in) , contiguous :: array(:)
382 complex(CKG) , allocatable :: compact(:)
383 end function
384#endif
385
386#if CK3_ENABLED
387 PURE module function getCompact_D1_CK3(array) result(compact)
388#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
389 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_CK3
390#endif
391 use pm_kind, only: CKG => CK3
392 complex(CKG) , intent(in) , contiguous :: array(:)
393 complex(CKG) , allocatable :: compact(:)
394 end function
395#endif
396
397#if CK2_ENABLED
398 PURE module function getCompact_D1_CK2(array) result(compact)
399#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
400 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_CK2
401#endif
402 use pm_kind, only: CKG => CK2
403 complex(CKG) , intent(in) , contiguous :: array(:)
404 complex(CKG) , allocatable :: compact(:)
405 end function
406#endif
407
408#if CK1_ENABLED
409 PURE module function getCompact_D1_CK1(array) result(compact)
410#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
411 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_CK1
412#endif
413 use pm_kind, only: CKG => CK1
414 complex(CKG) , intent(in) , contiguous :: array(:)
415 complex(CKG) , allocatable :: compact(:)
416 end function
417#endif
418
419 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
420
421#if RK5_ENABLED
422 PURE module function getCompact_D1_RK5(array) result(compact)
423#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
424 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_RK5
425#endif
426 use pm_kind, only: RKG => RK5
427 real(RKG) , intent(in) , contiguous :: array(:)
428 real(RKG) , allocatable :: compact(:)
429 end function
430#endif
431
432#if RK4_ENABLED
433 PURE module function getCompact_D1_RK4(array) result(compact)
434#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
435 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_RK4
436#endif
437 use pm_kind, only: RKG => RK4
438 real(RKG) , intent(in) , contiguous :: array(:)
439 real(RKG) , allocatable :: compact(:)
440 end function
441#endif
442
443#if RK3_ENABLED
444 PURE module function getCompact_D1_RK3(array) result(compact)
445#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
446 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_RK3
447#endif
448 use pm_kind, only: RKG => RK3
449 real(RKG) , intent(in) , contiguous :: array(:)
450 real(RKG) , allocatable :: compact(:)
451 end function
452#endif
453
454#if RK2_ENABLED
455 PURE module function getCompact_D1_RK2(array) result(compact)
456#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
457 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_RK2
458#endif
459 use pm_kind, only: RKG => RK2
460 real(RKG) , intent(in) , contiguous :: array(:)
461 real(RKG) , allocatable :: compact(:)
462 end function
463#endif
464
465#if RK1_ENABLED
466 PURE module function getCompact_D1_RK1(array) result(compact)
467#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
468 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D1_RK1
469#endif
470 use pm_kind, only: RKG => RK1
471 real(RKG) , intent(in) , contiguous :: array(:)
472 real(RKG) , allocatable :: compact(:)
473 end function
474#endif
475
476 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
477
478 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
479 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
480 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
481
482 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
483
484#if SK5_ENABLED
485 PURE module function getCompact_D2_SK5(array, dim) result(compact)
486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
487 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_SK5
488#endif
489 use pm_kind, only: SKG => SK5
490 character(*,SKG) , intent(in) , contiguous :: array(:,:)
491 integer(IK) , intent(in) :: dim
492 character(LEN_STR,SKG) , allocatable :: compact(:,:)
493 end function
494#endif
495
496#if SK4_ENABLED
497 PURE module function getCompact_D2_SK4(array, dim) result(compact)
498#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
499 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_SK4
500#endif
501 use pm_kind, only: SKG => SK4
502 character(*,SKG) , intent(in) , contiguous :: array(:,:)
503 integer(IK) , intent(in) :: dim
504 character(LEN_STR,SKG) , allocatable :: compact(:,:)
505 end function
506#endif
507
508#if SK3_ENABLED
509 PURE module function getCompact_D2_SK3(array, dim) result(compact)
510#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
511 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_SK3
512#endif
513 use pm_kind, only: SKG => SK3
514 character(*,SKG) , intent(in) , contiguous :: array(:,:)
515 integer(IK) , intent(in) :: dim
516 character(LEN_STR,SKG) , allocatable :: compact(:,:)
517 end function
518#endif
519
520#if SK2_ENABLED
521 PURE module function getCompact_D2_SK2(array, dim) result(compact)
522#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
523 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_SK2
524#endif
525 use pm_kind, only: SKG => SK2
526 character(*,SKG) , intent(in) , contiguous :: array(:,:)
527 integer(IK) , intent(in) :: dim
528 character(LEN_STR,SKG) , allocatable :: compact(:,:)
529 end function
530#endif
531
532#if SK1_ENABLED
533 PURE module function getCompact_D2_SK1(array, dim) result(compact)
534#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
535 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_SK1
536#endif
537 use pm_kind, only: SKG => SK1
538 character(*,SKG) , intent(in) , contiguous :: array(:,:)
539 integer(IK) , intent(in) :: dim
540 character(LEN_STR,SKG) , allocatable :: compact(:,:)
541 end function
542#endif
543
544 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
545
546#if IK5_ENABLED
547 PURE module function getCompact_D2_IK5(array, dim) result(compact)
548#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
549 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_IK5
550#endif
551 use pm_kind, only: IKG => IK5
552 integer(IKG) , intent(in) , contiguous :: array(:,:)
553 integer(IK) , intent(in) :: dim
554 integer(IKG) , allocatable :: compact(:,:)
555 end function
556#endif
557
558#if IK4_ENABLED
559 PURE module function getCompact_D2_IK4(array, dim) result(compact)
560#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
561 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_IK4
562#endif
563 use pm_kind, only: IKG => IK4
564 integer(IKG) , intent(in) , contiguous :: array(:,:)
565 integer(IK) , intent(in) :: dim
566 integer(IKG) , allocatable :: compact(:,:)
567 end function
568#endif
569
570#if IK3_ENABLED
571 PURE module function getCompact_D2_IK3(array, dim) result(compact)
572#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
573 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_IK3
574#endif
575 use pm_kind, only: IKG => IK3
576 integer(IKG) , intent(in) , contiguous :: array(:,:)
577 integer(IK) , intent(in) :: dim
578 integer(IKG) , allocatable :: compact(:,:)
579 end function
580#endif
581
582#if IK2_ENABLED
583 PURE module function getCompact_D2_IK2(array, dim) result(compact)
584#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
585 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_IK2
586#endif
587 use pm_kind, only: IKG => IK2
588 integer(IKG) , intent(in) , contiguous :: array(:,:)
589 integer(IK) , intent(in) :: dim
590 integer(IKG) , allocatable :: compact(:,:)
591 end function
592#endif
593
594#if IK1_ENABLED
595 PURE module function getCompact_D2_IK1(array, dim) result(compact)
596#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
597 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_IK1
598#endif
599 use pm_kind, only: IKG => IK1
600 integer(IKG) , intent(in) , contiguous :: array(:,:)
601 integer(IK) , intent(in) :: dim
602 integer(IKG) , allocatable :: compact(:,:)
603 end function
604#endif
605
606 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
607
608#if LK5_ENABLED
609 PURE module function getCompact_D2_LK5(array, dim) result(compact)
610#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
611 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_LK5
612#endif
613 use pm_kind, only: LKG => LK5
614 logical(LKG) , intent(in) , contiguous :: array(:,:)
615 integer(IK) , intent(in) :: dim
616 logical(LKG) , allocatable :: compact(:,:)
617 end function
618#endif
619
620#if LK4_ENABLED
621 PURE module function getCompact_D2_LK4(array, dim) result(compact)
622#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
623 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_LK4
624#endif
625 use pm_kind, only: LKG => LK4
626 logical(LKG) , intent(in) , contiguous :: array(:,:)
627 integer(IK) , intent(in) :: dim
628 logical(LKG) , allocatable :: compact(:,:)
629 end function
630#endif
631
632#if LK3_ENABLED
633 PURE module function getCompact_D2_LK3(array, dim) result(compact)
634#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
635 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_LK3
636#endif
637 use pm_kind, only: LKG => LK3
638 logical(LKG) , intent(in) , contiguous :: array(:,:)
639 integer(IK) , intent(in) :: dim
640 logical(LKG) , allocatable :: compact(:,:)
641 end function
642#endif
643
644#if LK2_ENABLED
645 PURE module function getCompact_D2_LK2(array, dim) result(compact)
646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
647 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_LK2
648#endif
649 use pm_kind, only: LKG => LK2
650 logical(LKG) , intent(in) , contiguous :: array(:,:)
651 integer(IK) , intent(in) :: dim
652 logical(LKG) , allocatable :: compact(:,:)
653 end function
654#endif
655
656#if LK1_ENABLED
657 PURE module function getCompact_D2_LK1(array, dim) result(compact)
658#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
659 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_LK1
660#endif
661 use pm_kind, only: LKG => LK1
662 logical(LKG) , intent(in) , contiguous :: array(:,:)
663 integer(IK) , intent(in) :: dim
664 logical(LKG) , allocatable :: compact(:,:)
665 end function
666#endif
667
668 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
669
670#if CK5_ENABLED
671 PURE module function getCompact_D2_CK5(array, dim) result(compact)
672#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
673 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_CK5
674#endif
675 use pm_kind, only: CKG => CK5
676 complex(CKG) , intent(in) , contiguous :: array(:,:)
677 integer(IK) , intent(in) :: dim
678 complex(CKG) , allocatable :: compact(:,:)
679 end function
680#endif
681
682#if CK4_ENABLED
683 PURE module function getCompact_D2_CK4(array, dim) result(compact)
684#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
685 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_CK4
686#endif
687 use pm_kind, only: CKG => CK4
688 complex(CKG) , intent(in) , contiguous :: array(:,:)
689 integer(IK) , intent(in) :: dim
690 complex(CKG) , allocatable :: compact(:,:)
691 end function
692#endif
693
694#if CK3_ENABLED
695 PURE module function getCompact_D2_CK3(array, dim) result(compact)
696#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
697 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_CK3
698#endif
699 use pm_kind, only: CKG => CK3
700 complex(CKG) , intent(in) , contiguous :: array(:,:)
701 integer(IK) , intent(in) :: dim
702 complex(CKG) , allocatable :: compact(:,:)
703 end function
704#endif
705
706#if CK2_ENABLED
707 PURE module function getCompact_D2_CK2(array, dim) result(compact)
708#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
709 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_CK2
710#endif
711 use pm_kind, only: CKG => CK2
712 complex(CKG) , intent(in) , contiguous :: array(:,:)
713 integer(IK) , intent(in) :: dim
714 complex(CKG) , allocatable :: compact(:,:)
715 end function
716#endif
717
718#if CK1_ENABLED
719 PURE module function getCompact_D2_CK1(array, dim) result(compact)
720#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
721 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_CK1
722#endif
723 use pm_kind, only: CKG => CK1
724 complex(CKG) , intent(in) , contiguous :: array(:,:)
725 integer(IK) , intent(in) :: dim
726 complex(CKG) , allocatable :: compact(:,:)
727 end function
728#endif
729
730 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
731
732#if RK5_ENABLED
733 PURE module function getCompact_D2_RK5(array, dim) result(compact)
734#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
735 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_RK5
736#endif
737 use pm_kind, only: RKG => RK5
738 real(RKG) , intent(in) , contiguous :: array(:,:)
739 integer(IK) , intent(in) :: dim
740 real(RKG) , allocatable :: compact(:,:)
741 end function
742#endif
743
744#if RK4_ENABLED
745 PURE module function getCompact_D2_RK4(array, dim) result(compact)
746#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
747 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_RK4
748#endif
749 use pm_kind, only: RKG => RK4
750 real(RKG) , intent(in) , contiguous :: array(:,:)
751 integer(IK) , intent(in) :: dim
752 real(RKG) , allocatable :: compact(:,:)
753 end function
754#endif
755
756#if RK3_ENABLED
757 PURE module function getCompact_D2_RK3(array, dim) result(compact)
758#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
759 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_RK3
760#endif
761 use pm_kind, only: RKG => RK3
762 real(RKG) , intent(in) , contiguous :: array(:,:)
763 integer(IK) , intent(in) :: dim
764 real(RKG) , allocatable :: compact(:,:)
765 end function
766#endif
767
768#if RK2_ENABLED
769 PURE module function getCompact_D2_RK2(array, dim) result(compact)
770#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
771 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_RK2
772#endif
773 use pm_kind, only: RKG => RK2
774 real(RKG) , intent(in) , contiguous :: array(:,:)
775 integer(IK) , intent(in) :: dim
776 real(RKG) , allocatable :: compact(:,:)
777 end function
778#endif
779
780#if RK1_ENABLED
781 PURE module function getCompact_D2_RK1(array, dim) result(compact)
782#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
783 !DEC$ ATTRIBUTES DLLEXPORT :: getCompact_D2_RK1
784#endif
785 use pm_kind, only: RKG => RK1
786 real(RKG) , intent(in) , contiguous :: array(:,:)
787 integer(IK) , intent(in) :: dim
788 real(RKG) , allocatable :: compact(:,:)
789 end function
790#endif
791
792 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
793
794 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
795 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
796 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
797
798 end interface getCompact
799
800!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
801
865 interface setCompact
866
867 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
868 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
869 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
870
871 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
872
873#if SK5_ENABLED
874 PURE module subroutine setCompact_D0_SK5(array, weight, csize)
875#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
876 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D0_SK5
877#endif
878 use pm_kind, only: SKG => SK5
879 character(*,SKG) , intent(inout) :: array
880 integer(IK) , intent(out) , contiguous :: weight(:)
881 integer(IK) , intent(out) :: csize
882 end subroutine
883#endif
884
885#if SK4_ENABLED
886 PURE module subroutine setCompact_D0_SK4(array, weight, csize)
887#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
888 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D0_SK4
889#endif
890 use pm_kind, only: SKG => SK4
891 character(*,SKG) , intent(inout) :: array
892 integer(IK) , intent(out) , contiguous :: weight(:)
893 integer(IK) , intent(out) :: csize
894 end subroutine
895#endif
896
897#if SK3_ENABLED
898 PURE module subroutine setCompact_D0_SK3(array, weight, csize)
899#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
900 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D0_SK3
901#endif
902 use pm_kind, only: SKG => SK3
903 character(*,SKG) , intent(inout) :: array
904 integer(IK) , intent(out) , contiguous :: weight(:)
905 integer(IK) , intent(out) :: csize
906 end subroutine
907#endif
908
909#if SK2_ENABLED
910 PURE module subroutine setCompact_D0_SK2(array, weight, csize)
911#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
912 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D0_SK2
913#endif
914 use pm_kind, only: SKG => SK2
915 character(*,SKG) , intent(inout) :: array
916 integer(IK) , intent(out) , contiguous :: weight(:)
917 integer(IK) , intent(out) :: csize
918 end subroutine
919#endif
920
921#if SK1_ENABLED
922 PURE module subroutine setCompact_D0_SK1(array, weight, csize)
923#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
924 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D0_SK1
925#endif
926 use pm_kind, only: SKG => SK1
927 character(*,SKG) , intent(inout) :: array
928 integer(IK) , intent(out) , contiguous :: weight(:)
929 integer(IK) , intent(out) :: csize
930 end subroutine
931#endif
932
933 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
934
935 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
936 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
937 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
938
939 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
940
941#if SK5_ENABLED
942 PURE module subroutine setCompact_D1_SK5(array, weight, csize)
943#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
944 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_SK5
945#endif
946 use pm_kind, only: SKG => SK5
947 character(*,SKG) , intent(inout) , contiguous :: array(:)
948 integer(IK) , intent(out) , contiguous :: weight(:)
949 integer(IK) , intent(out) :: csize
950 end subroutine
951#endif
952
953#if SK4_ENABLED
954 PURE module subroutine setCompact_D1_SK4(array, weight, csize)
955#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
956 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_SK4
957#endif
958 use pm_kind, only: SKG => SK4
959 character(*,SKG) , intent(inout) , contiguous :: array(:)
960 integer(IK) , intent(out) , contiguous :: weight(:)
961 integer(IK) , intent(out) :: csize
962 end subroutine
963#endif
964
965#if SK3_ENABLED
966 PURE module subroutine setCompact_D1_SK3(array, weight, csize)
967#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
968 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_SK3
969#endif
970 use pm_kind, only: SKG => SK3
971 character(*,SKG) , intent(inout) , contiguous :: array(:)
972 integer(IK) , intent(out) , contiguous :: weight(:)
973 integer(IK) , intent(out) :: csize
974 end subroutine
975#endif
976
977#if SK2_ENABLED
978 PURE module subroutine setCompact_D1_SK2(array, weight, csize)
979#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
980 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_SK2
981#endif
982 use pm_kind, only: SKG => SK2
983 character(*,SKG) , intent(inout) , contiguous :: array(:)
984 integer(IK) , intent(out) , contiguous :: weight(:)
985 integer(IK) , intent(out) :: csize
986 end subroutine
987#endif
988
989#if SK1_ENABLED
990 PURE module subroutine setCompact_D1_SK1(array, weight, csize)
991#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
992 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_SK1
993#endif
994 use pm_kind, only: SKG => SK1
995 character(*,SKG) , intent(inout) , contiguous :: array(:)
996 integer(IK) , intent(out) , contiguous :: weight(:)
997 integer(IK) , intent(out) :: csize
998 end subroutine
999#endif
1000
1001 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1002
1003#if IK5_ENABLED
1004 PURE module subroutine setCompact_D1_IK5(array, weight, csize)
1005#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1006 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_IK5
1007#endif
1008 use pm_kind, only: IKG => IK5
1009 integer(IKG) , intent(inout) , contiguous :: array(:)
1010 integer(IK) , intent(out) , contiguous :: weight(:)
1011 integer(IK) , intent(out) :: csize
1012 end subroutine
1013#endif
1014
1015#if IK4_ENABLED
1016 PURE module subroutine setCompact_D1_IK4(array, weight, csize)
1017#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1018 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_IK4
1019#endif
1020 use pm_kind, only: IKG => IK4
1021 integer(IKG) , intent(inout) , contiguous :: array(:)
1022 integer(IK) , intent(out) , contiguous :: weight(:)
1023 integer(IK) , intent(out) :: csize
1024 end subroutine
1025#endif
1026
1027#if IK3_ENABLED
1028 PURE module subroutine setCompact_D1_IK3(array, weight, csize)
1029#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1030 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_IK3
1031#endif
1032 use pm_kind, only: IKG => IK3
1033 integer(IKG) , intent(inout) , contiguous :: array(:)
1034 integer(IK) , intent(out) , contiguous :: weight(:)
1035 integer(IK) , intent(out) :: csize
1036 end subroutine
1037#endif
1038
1039#if IK2_ENABLED
1040 PURE module subroutine setCompact_D1_IK2(array, weight, csize)
1041#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1042 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_IK2
1043#endif
1044 use pm_kind, only: IKG => IK2
1045 integer(IKG) , intent(inout) , contiguous :: array(:)
1046 integer(IK) , intent(out) , contiguous :: weight(:)
1047 integer(IK) , intent(out) :: csize
1048 end subroutine
1049#endif
1050
1051#if IK1_ENABLED
1052 PURE module subroutine setCompact_D1_IK1(array, weight, csize)
1053#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1054 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_IK1
1055#endif
1056 use pm_kind, only: IKG => IK1
1057 integer(IKG) , intent(inout) , contiguous :: array(:)
1058 integer(IK) , intent(out) , contiguous :: weight(:)
1059 integer(IK) , intent(out) :: csize
1060 end subroutine
1061#endif
1062
1063 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1064
1065#if LK5_ENABLED
1066 PURE module subroutine setCompact_D1_LK5(array, weight, csize)
1067#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1068 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_LK5
1069#endif
1070 use pm_kind, only: LKG => LK5
1071 logical(LKG) , intent(inout) , contiguous :: array(:)
1072 integer(IK) , intent(out) , contiguous :: weight(:)
1073 integer(IK) , intent(out) :: csize
1074 end subroutine
1075#endif
1076
1077#if LK4_ENABLED
1078 PURE module subroutine setCompact_D1_LK4(array, weight, csize)
1079#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1080 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_LK4
1081#endif
1082 use pm_kind, only: LKG => LK4
1083 logical(LKG) , intent(inout) , contiguous :: array(:)
1084 integer(IK) , intent(out) , contiguous :: weight(:)
1085 integer(IK) , intent(out) :: csize
1086 end subroutine
1087#endif
1088
1089#if LK3_ENABLED
1090 PURE module subroutine setCompact_D1_LK3(array, weight, csize)
1091#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1092 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_LK3
1093#endif
1094 use pm_kind, only: LKG => LK3
1095 logical(LKG) , intent(inout) , contiguous :: array(:)
1096 integer(IK) , intent(out) , contiguous :: weight(:)
1097 integer(IK) , intent(out) :: csize
1098 end subroutine
1099#endif
1100
1101#if LK2_ENABLED
1102 PURE module subroutine setCompact_D1_LK2(array, weight, csize)
1103#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1104 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_LK2
1105#endif
1106 use pm_kind, only: LKG => LK2
1107 logical(LKG) , intent(inout) , contiguous :: array(:)
1108 integer(IK) , intent(out) , contiguous :: weight(:)
1109 integer(IK) , intent(out) :: csize
1110 end subroutine
1111#endif
1112
1113#if LK1_ENABLED
1114 PURE module subroutine setCompact_D1_LK1(array, weight, csize)
1115#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1116 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_LK1
1117#endif
1118 use pm_kind, only: LKG => LK1
1119 logical(LKG) , intent(inout) , contiguous :: array(:)
1120 integer(IK) , intent(out) , contiguous :: weight(:)
1121 integer(IK) , intent(out) :: csize
1122 end subroutine
1123#endif
1124
1125 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1126
1127#if CK5_ENABLED
1128 PURE module subroutine setCompact_D1_CK5(array, weight, csize)
1129#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1130 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_CK5
1131#endif
1132 use pm_kind, only: CKG => CK5
1133 complex(CKG) , intent(inout) , contiguous :: array(:)
1134 integer(IK) , intent(out) , contiguous :: weight(:)
1135 integer(IK) , intent(out) :: csize
1136 end subroutine
1137#endif
1138
1139#if CK4_ENABLED
1140 PURE module subroutine setCompact_D1_CK4(array, weight, csize)
1141#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1142 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_CK4
1143#endif
1144 use pm_kind, only: CKG => CK4
1145 complex(CKG) , intent(inout) , contiguous :: array(:)
1146 integer(IK) , intent(out) , contiguous :: weight(:)
1147 integer(IK) , intent(out) :: csize
1148 end subroutine
1149#endif
1150
1151#if CK3_ENABLED
1152 PURE module subroutine setCompact_D1_CK3(array, weight, csize)
1153#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1154 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_CK3
1155#endif
1156 use pm_kind, only: CKG => CK3
1157 complex(CKG) , intent(inout) , contiguous :: array(:)
1158 integer(IK) , intent(out) , contiguous :: weight(:)
1159 integer(IK) , intent(out) :: csize
1160 end subroutine
1161#endif
1162
1163#if CK2_ENABLED
1164 PURE module subroutine setCompact_D1_CK2(array, weight, csize)
1165#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1166 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_CK2
1167#endif
1168 use pm_kind, only: CKG => CK2
1169 complex(CKG) , intent(inout) , contiguous :: array(:)
1170 integer(IK) , intent(out) , contiguous :: weight(:)
1171 integer(IK) , intent(out) :: csize
1172 end subroutine
1173#endif
1174
1175#if CK1_ENABLED
1176 PURE module subroutine setCompact_D1_CK1(array, weight, csize)
1177#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1178 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_CK1
1179#endif
1180 use pm_kind, only: CKG => CK1
1181 complex(CKG) , intent(inout) , contiguous :: array(:)
1182 integer(IK) , intent(out) , contiguous :: weight(:)
1183 integer(IK) , intent(out) :: csize
1184 end subroutine
1185#endif
1186
1187 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1188
1189#if RK5_ENABLED
1190 PURE module subroutine setCompact_D1_RK5(array, weight, csize)
1191#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1192 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_RK5
1193#endif
1194 use pm_kind, only: RKG => RK5
1195 real(RKG) , intent(inout) , contiguous :: array(:)
1196 integer(IK) , intent(out) , contiguous :: weight(:)
1197 integer(IK) , intent(out) :: csize
1198 end subroutine
1199#endif
1200
1201#if RK4_ENABLED
1202 PURE module subroutine setCompact_D1_RK4(array, weight, csize)
1203#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1204 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_RK4
1205#endif
1206 use pm_kind, only: RKG => RK4
1207 real(RKG) , intent(inout) , contiguous :: array(:)
1208 integer(IK) , intent(out) , contiguous :: weight(:)
1209 integer(IK) , intent(out) :: csize
1210 end subroutine
1211#endif
1212
1213#if RK3_ENABLED
1214 PURE module subroutine setCompact_D1_RK3(array, weight, csize)
1215#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1216 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_RK3
1217#endif
1218 use pm_kind, only: RKG => RK3
1219 real(RKG) , intent(inout) , contiguous :: array(:)
1220 integer(IK) , intent(out) , contiguous :: weight(:)
1221 integer(IK) , intent(out) :: csize
1222 end subroutine
1223#endif
1224
1225#if RK2_ENABLED
1226 PURE module subroutine setCompact_D1_RK2(array, weight, csize)
1227#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1228 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_RK2
1229#endif
1230 use pm_kind, only: RKG => RK2
1231 real(RKG) , intent(inout) , contiguous :: array(:)
1232 integer(IK) , intent(out) , contiguous :: weight(:)
1233 integer(IK) , intent(out) :: csize
1234 end subroutine
1235#endif
1236
1237#if RK1_ENABLED
1238 PURE module subroutine setCompact_D1_RK1(array, weight, csize)
1239#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1240 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D1_RK1
1241#endif
1242 use pm_kind, only: RKG => RK1
1243 real(RKG) , intent(inout) , contiguous :: array(:)
1244 integer(IK) , intent(out) , contiguous :: weight(:)
1245 integer(IK) , intent(out) :: csize
1246 end subroutine
1247#endif
1248
1249 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1250
1251 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1252 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1253 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1254
1255 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1256
1257#if SK5_ENABLED
1258 PURE module subroutine setCompact_D2_SK5(array, weight, csize, dim)
1259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1260 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_SK5
1261#endif
1262 use pm_kind, only: SKG => SK5
1263 character(*,SKG) , intent(inout) , contiguous :: array(:,:)
1264 integer(IK) , intent(out) , contiguous :: weight(:)
1265 integer(IK) , intent(out) :: csize
1266 integer(IK) , intent(in) :: dim
1267 end subroutine
1268#endif
1269
1270#if SK4_ENABLED
1271 PURE module subroutine setCompact_D2_SK4(array, weight, csize, dim)
1272#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1273 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_SK4
1274#endif
1275 use pm_kind, only: SKG => SK4
1276 character(*,SKG) , intent(inout) , contiguous :: array(:,:)
1277 integer(IK) , intent(out) , contiguous :: weight(:)
1278 integer(IK) , intent(out) :: csize
1279 integer(IK) , intent(in) :: dim
1280 end subroutine
1281#endif
1282
1283#if SK3_ENABLED
1284 PURE module subroutine setCompact_D2_SK3(array, weight, csize, dim)
1285#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1286 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_SK3
1287#endif
1288 use pm_kind, only: SKG => SK3
1289 character(*,SKG) , intent(inout) , contiguous :: array(:,:)
1290 integer(IK) , intent(out) , contiguous :: weight(:)
1291 integer(IK) , intent(out) :: csize
1292 integer(IK) , intent(in) :: dim
1293 end subroutine
1294#endif
1295
1296#if SK2_ENABLED
1297 PURE module subroutine setCompact_D2_SK2(array, weight, csize, dim)
1298#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1299 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_SK2
1300#endif
1301 use pm_kind, only: SKG => SK2
1302 character(*,SKG) , intent(inout) , contiguous :: array(:,:)
1303 integer(IK) , intent(out) , contiguous :: weight(:)
1304 integer(IK) , intent(out) :: csize
1305 integer(IK) , intent(in) :: dim
1306 end subroutine
1307#endif
1308
1309#if SK1_ENABLED
1310 PURE module subroutine setCompact_D2_SK1(array, weight, csize, dim)
1311#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1312 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_SK1
1313#endif
1314 use pm_kind, only: SKG => SK1
1315 character(*,SKG) , intent(inout) , contiguous :: array(:,:)
1316 integer(IK) , intent(out) , contiguous :: weight(:)
1317 integer(IK) , intent(out) :: csize
1318 integer(IK) , intent(in) :: dim
1319 end subroutine
1320#endif
1321
1322 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1323
1324#if IK5_ENABLED
1325 PURE module subroutine setCompact_D2_IK5(array, weight, csize, dim)
1326#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1327 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_IK5
1328#endif
1329 use pm_kind, only: IKG => IK5
1330 integer(IKG) , intent(inout) , contiguous :: array(:,:)
1331 integer(IK) , intent(out) , contiguous :: weight(:)
1332 integer(IK) , intent(out) :: csize
1333 integer(IK) , intent(in) :: dim
1334 end subroutine
1335#endif
1336
1337#if IK4_ENABLED
1338 PURE module subroutine setCompact_D2_IK4(array, weight, csize, dim)
1339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1340 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_IK4
1341#endif
1342 use pm_kind, only: IKG => IK4
1343 integer(IKG) , intent(inout) , contiguous :: array(:,:)
1344 integer(IK) , intent(out) , contiguous :: weight(:)
1345 integer(IK) , intent(out) :: csize
1346 integer(IK) , intent(in) :: dim
1347 end subroutine
1348#endif
1349
1350#if IK3_ENABLED
1351 PURE module subroutine setCompact_D2_IK3(array, weight, csize, dim)
1352#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1353 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_IK3
1354#endif
1355 use pm_kind, only: IKG => IK3
1356 integer(IKG) , intent(inout) , contiguous :: array(:,:)
1357 integer(IK) , intent(out) , contiguous :: weight(:)
1358 integer(IK) , intent(out) :: csize
1359 integer(IK) , intent(in) :: dim
1360 end subroutine
1361#endif
1362
1363#if IK2_ENABLED
1364 PURE module subroutine setCompact_D2_IK2(array, weight, csize, dim)
1365#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1366 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_IK2
1367#endif
1368 use pm_kind, only: IKG => IK2
1369 integer(IKG) , intent(inout) , contiguous :: array(:,:)
1370 integer(IK) , intent(out) , contiguous :: weight(:)
1371 integer(IK) , intent(out) :: csize
1372 integer(IK) , intent(in) :: dim
1373 end subroutine
1374#endif
1375
1376#if IK1_ENABLED
1377 PURE module subroutine setCompact_D2_IK1(array, weight, csize, dim)
1378#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1379 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_IK1
1380#endif
1381 use pm_kind, only: IKG => IK1
1382 integer(IKG) , intent(inout) , contiguous :: array(:,:)
1383 integer(IK) , intent(out) , contiguous :: weight(:)
1384 integer(IK) , intent(out) :: csize
1385 integer(IK) , intent(in) :: dim
1386 end subroutine
1387#endif
1388
1389 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1390
1391#if LK5_ENABLED
1392 PURE module subroutine setCompact_D2_LK5(array, weight, csize, dim)
1393#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1394 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_LK5
1395#endif
1396 use pm_kind, only: LKG => LK5
1397 logical(LKG) , intent(inout) , contiguous :: array(:,:)
1398 integer(IK) , intent(out) , contiguous :: weight(:)
1399 integer(IK) , intent(out) :: csize
1400 integer(IK) , intent(in) :: dim
1401 end subroutine
1402#endif
1403
1404#if LK4_ENABLED
1405 PURE module subroutine setCompact_D2_LK4(array, weight, csize, dim)
1406#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1407 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_LK4
1408#endif
1409 use pm_kind, only: LKG => LK4
1410 logical(LKG) , intent(inout) , contiguous :: array(:,:)
1411 integer(IK) , intent(out) , contiguous :: weight(:)
1412 integer(IK) , intent(out) :: csize
1413 integer(IK) , intent(in) :: dim
1414 end subroutine
1415#endif
1416
1417#if LK3_ENABLED
1418 PURE module subroutine setCompact_D2_LK3(array, weight, csize, dim)
1419#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1420 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_LK3
1421#endif
1422 use pm_kind, only: LKG => LK3
1423 logical(LKG) , intent(inout) , contiguous :: array(:,:)
1424 integer(IK) , intent(out) , contiguous :: weight(:)
1425 integer(IK) , intent(out) :: csize
1426 integer(IK) , intent(in) :: dim
1427 end subroutine
1428#endif
1429
1430#if LK2_ENABLED
1431 PURE module subroutine setCompact_D2_LK2(array, weight, csize, dim)
1432#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1433 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_LK2
1434#endif
1435 use pm_kind, only: LKG => LK2
1436 logical(LKG) , intent(inout) , contiguous :: array(:,:)
1437 integer(IK) , intent(out) , contiguous :: weight(:)
1438 integer(IK) , intent(out) :: csize
1439 integer(IK) , intent(in) :: dim
1440 end subroutine
1441#endif
1442
1443#if LK1_ENABLED
1444 PURE module subroutine setCompact_D2_LK1(array, weight, csize, dim)
1445#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1446 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_LK1
1447#endif
1448 use pm_kind, only: LKG => LK1
1449 logical(LKG) , intent(inout) , contiguous :: array(:,:)
1450 integer(IK) , intent(out) , contiguous :: weight(:)
1451 integer(IK) , intent(out) :: csize
1452 integer(IK) , intent(in) :: dim
1453 end subroutine
1454#endif
1455
1456 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1457
1458#if CK5_ENABLED
1459 PURE module subroutine setCompact_D2_CK5(array, weight, csize, dim)
1460#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1461 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_CK5
1462#endif
1463 use pm_kind, only: CKG => CK5
1464 complex(CKG) , intent(inout) , contiguous :: array(:,:)
1465 integer(IK) , intent(out) , contiguous :: weight(:)
1466 integer(IK) , intent(out) :: csize
1467 integer(IK) , intent(in) :: dim
1468 end subroutine
1469#endif
1470
1471#if CK4_ENABLED
1472 PURE module subroutine setCompact_D2_CK4(array, weight, csize, dim)
1473#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1474 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_CK4
1475#endif
1476 use pm_kind, only: CKG => CK4
1477 complex(CKG) , intent(inout) , contiguous :: array(:,:)
1478 integer(IK) , intent(out) , contiguous :: weight(:)
1479 integer(IK) , intent(out) :: csize
1480 integer(IK) , intent(in) :: dim
1481 end subroutine
1482#endif
1483
1484#if CK3_ENABLED
1485 PURE module subroutine setCompact_D2_CK3(array, weight, csize, dim)
1486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1487 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_CK3
1488#endif
1489 use pm_kind, only: CKG => CK3
1490 complex(CKG) , intent(inout) , contiguous :: array(:,:)
1491 integer(IK) , intent(out) , contiguous :: weight(:)
1492 integer(IK) , intent(out) :: csize
1493 integer(IK) , intent(in) :: dim
1494 end subroutine
1495#endif
1496
1497#if CK2_ENABLED
1498 PURE module subroutine setCompact_D2_CK2(array, weight, csize, dim)
1499#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1500 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_CK2
1501#endif
1502 use pm_kind, only: CKG => CK2
1503 complex(CKG) , intent(inout) , contiguous :: array(:,:)
1504 integer(IK) , intent(out) , contiguous :: weight(:)
1505 integer(IK) , intent(out) :: csize
1506 integer(IK) , intent(in) :: dim
1507 end subroutine
1508#endif
1509
1510#if CK1_ENABLED
1511 PURE module subroutine setCompact_D2_CK1(array, weight, csize, dim)
1512#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1513 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_CK1
1514#endif
1515 use pm_kind, only: CKG => CK1
1516 complex(CKG) , intent(inout) , contiguous :: array(:,:)
1517 integer(IK) , intent(out) , contiguous :: weight(:)
1518 integer(IK) , intent(out) :: csize
1519 integer(IK) , intent(in) :: dim
1520 end subroutine
1521#endif
1522
1523 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1524
1525#if RK5_ENABLED
1526 PURE module subroutine setCompact_D2_RK5(array, weight, csize, dim)
1527#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1528 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_RK5
1529#endif
1530 use pm_kind, only: RKG => RK5
1531 real(RKG) , intent(inout) , contiguous :: array(:,:)
1532 integer(IK) , intent(out) , contiguous :: weight(:)
1533 integer(IK) , intent(out) :: csize
1534 integer(IK) , intent(in) :: dim
1535 end subroutine
1536#endif
1537
1538#if RK4_ENABLED
1539 PURE module subroutine setCompact_D2_RK4(array, weight, csize, dim)
1540#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1541 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_RK4
1542#endif
1543 use pm_kind, only: RKG => RK4
1544 real(RKG) , intent(inout) , contiguous :: array(:,:)
1545 integer(IK) , intent(out) , contiguous :: weight(:)
1546 integer(IK) , intent(out) :: csize
1547 integer(IK) , intent(in) :: dim
1548 end subroutine
1549#endif
1550
1551#if RK3_ENABLED
1552 PURE module subroutine setCompact_D2_RK3(array, weight, csize, dim)
1553#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1554 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_RK3
1555#endif
1556 use pm_kind, only: RKG => RK3
1557 real(RKG) , intent(inout) , contiguous :: array(:,:)
1558 integer(IK) , intent(out) , contiguous :: weight(:)
1559 integer(IK) , intent(out) :: csize
1560 integer(IK) , intent(in) :: dim
1561 end subroutine
1562#endif
1563
1564#if RK2_ENABLED
1565 PURE module subroutine setCompact_D2_RK2(array, weight, csize, dim)
1566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1567 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_RK2
1568#endif
1569 use pm_kind, only: RKG => RK2
1570 real(RKG) , intent(inout) , contiguous :: array(:,:)
1571 integer(IK) , intent(out) , contiguous :: weight(:)
1572 integer(IK) , intent(out) :: csize
1573 integer(IK) , intent(in) :: dim
1574 end subroutine
1575#endif
1576
1577#if RK1_ENABLED
1578 PURE module subroutine setCompact_D2_RK1(array, weight, csize, dim)
1579#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1580 !DEC$ ATTRIBUTES DLLEXPORT :: setCompact_D2_RK1
1581#endif
1582 use pm_kind, only: RKG => RK1
1583 real(RKG) , intent(inout) , contiguous :: array(:,:)
1584 integer(IK) , intent(out) , contiguous :: weight(:)
1585 integer(IK) , intent(out) :: csize
1586 integer(IK) , intent(in) :: dim
1587 end subroutine
1588#endif
1589
1590 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1591
1592 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1593 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1594 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1595
1596!#if SK5_ENABLED
1597! PURE module subroutine setCompactNew_D0_SK5(array, weight, compact)
1598!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1599! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D0_SK5
1600!#endif
1601! use pm_kind, only: SKG => SK5
1602! character(*,SKG) , intent(in) :: array
1603! integer(IK) , intent(in) , allocatable :: weight(:)
1604! character(:,SKG) , intent(out) , allocatable :: compact
1605! end subroutine
1606!#endif
1607!
1608!#if SK4_ENABLED
1609! PURE module subroutine setCompactNew_D0_SK4(array, weight, compact)
1610!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1611! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D0_SK4
1612!#endif
1613! use pm_kind, only: SKG => SK4
1614! character(*,SKG) , intent(in) :: array
1615! integer(IK) , intent(out) , allocatable :: weight(:)
1616! character(:,SKG) , intent(out) , allocatable :: compact
1617! end subroutine
1618!#endif
1619!
1620!#if SK3_ENABLED
1621! PURE module subroutine setCompactNew_D0_SK3(array, weight, compact)
1622!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1623! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D0_SK3
1624!#endif
1625! use pm_kind, only: SKG => SK3
1626! character(*,SKG) , intent(in) :: array
1627! integer(IK) , intent(out) , allocatable :: weight(:)
1628! character(:,SKG) , intent(out) , allocatable :: compact
1629! end subroutine
1630!#endif
1631!
1632!#if SK2_ENABLED
1633! PURE module subroutine setCompactNew_D0_SK2(array, weight, compact)
1634!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1635! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D0_SK2
1636!#endif
1637! use pm_kind, only: SKG => SK2
1638! character(*,SKG) , intent(in) :: array
1639! integer(IK) , intent(out) , allocatable :: weight(:)
1640! character(:,SKG) , intent(out) , allocatable :: compact
1641! end subroutine
1642!#endif
1643!
1644!#if SK1_ENABLED
1645! PURE module subroutine setCompactNew_D0_SK1(array, weight, compact)
1646!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1647! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D0_SK1
1648!#endif
1649! use pm_kind, only: SKG => SK1
1650! character(*,SKG) , intent(in) :: array
1651! integer(IK) , intent(out) , allocatable :: weight(:)
1652! character(:,SKG) , intent(out) , allocatable :: compact
1653! end subroutine
1654!#endif
1655!
1656! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1657!
1658! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1659! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1660! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1661!
1662! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1663!
1664!#if SK5_ENABLED
1665! PURE module subroutine setCompactNew_D1_SK5(array, weight, compact)
1666!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1667! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_SK5
1668!#endif
1669! use pm_kind, only: SKG => SK5
1670! character(*,SKG) , intent(in) , contiguous :: array(:)
1671! integer(IK) , intent(out) , allocatable :: weight(:)
1672! character(len(array),SKG) , intent(out) , allocatable :: compact(:)
1673! end subroutine
1674!#endif
1675!
1676!#if SK4_ENABLED
1677! PURE module subroutine setCompactNew_D1_SK4(array, weight, compact)
1678!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1679! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_SK4
1680!#endif
1681! use pm_kind, only: SKG => SK4
1682! character(*,SKG) , intent(in) , contiguous :: array(:)
1683! integer(IK) , intent(out) , allocatable :: weight(:)
1684! character(len(array),SKG) , intent(out) , allocatable :: compact(:)
1685! end subroutine
1686!#endif
1687!
1688!#if SK3_ENABLED
1689! PURE module subroutine setCompactNew_D1_SK3(array, weight, compact)
1690!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1691! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_SK3
1692!#endif
1693! use pm_kind, only: SKG => SK3
1694! character(*,SKG) , intent(in) , contiguous :: array(:)
1695! integer(IK) , intent(out) , allocatable :: weight(:)
1696! character(len(array),SKG) , intent(out) , allocatable :: compact(:)
1697! end subroutine
1698!#endif
1699!
1700!#if SK2_ENABLED
1701! PURE module subroutine setCompactNew_D1_SK2(array, weight, compact)
1702!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1703! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_SK2
1704!#endif
1705! use pm_kind, only: SKG => SK2
1706! character(*,SKG) , intent(in) , contiguous :: array(:)
1707! integer(IK) , intent(out) , allocatable :: weight(:)
1708! character(len(array),SKG) , intent(out) , allocatable :: compact(:)
1709! end subroutine
1710!#endif
1711!
1712!#if SK1_ENABLED
1713! PURE module subroutine setCompactNew_D1_SK1(array, weight, compact)
1714!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1715! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_SK1
1716!#endif
1717! use pm_kind, only: SKG => SK1
1718! character(*,SKG) , intent(in) , contiguous :: array(:)
1719! integer(IK) , intent(out) , allocatable :: weight(:)
1720! character(len(array),SKG) , intent(out) , allocatable :: compact(:)
1721! end subroutine
1722!#endif
1723!
1724! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1725!
1726!#if IK5_ENABLED
1727! PURE module subroutine setCompactNew_D1_IK5(array, weight, compact)
1728!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1729! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_IK5
1730!#endif
1731! use pm_kind, only: IKG => IK5
1732! integer(IKG) , intent(in) , contiguous :: array(:)
1733! integer(IK) , intent(out) , allocatable :: weight(:)
1734! integer(IKG) , intent(out) , allocatable :: compact(:)
1735! end subroutine
1736!#endif
1737!
1738!#if IK4_ENABLED
1739! PURE module subroutine setCompactNew_D1_IK4(array, weight, compact)
1740!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1741! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_IK4
1742!#endif
1743! use pm_kind, only: IKG => IK4
1744! integer(IKG) , intent(in) , contiguous :: array(:)
1745! integer(IK) , intent(out) , allocatable :: weight(:)
1746! integer(IKG) , intent(out) , allocatable :: compact(:)
1747! end subroutine
1748!#endif
1749!
1750!#if IK3_ENABLED
1751! PURE module subroutine setCompactNew_D1_IK3(array, weight, compact)
1752!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1753! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_IK3
1754!#endif
1755! use pm_kind, only: IKG => IK3
1756! integer(IKG) , intent(in) , contiguous :: array(:)
1757! integer(IK) , intent(out) , allocatable :: weight(:)
1758! integer(IKG) , intent(out) , allocatable :: compact(:)
1759! end subroutine
1760!#endif
1761!
1762!#if IK2_ENABLED
1763! PURE module subroutine setCompactNew_D1_IK2(array, weight, compact)
1764!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1765! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_IK2
1766!#endif
1767! use pm_kind, only: IKG => IK2
1768! integer(IKG) , intent(in) , contiguous :: array(:)
1769! integer(IK) , intent(out) , allocatable :: weight(:)
1770! integer(IKG) , intent(out) , allocatable :: compact(:)
1771! end subroutine
1772!#endif
1773!
1774!#if IK1_ENABLED
1775! PURE module subroutine setCompactNew_D1_IK1(array, weight, compact)
1776!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1777! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_IK1
1778!#endif
1779! use pm_kind, only: IKG => IK1
1780! integer(IKG) , intent(in) , contiguous :: array(:)
1781! integer(IK) , intent(out) , allocatable :: weight(:)
1782! integer(IKG) , intent(out) , allocatable :: compact(:)
1783! end subroutine
1784!#endif
1785!
1786! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1787!
1788!#if LK5_ENABLED
1789! PURE module subroutine setCompactNew_D1_LK5(array, weight, compact)
1790!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1791! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_LK5
1792!#endif
1793! use pm_kind, only: LKG => LK5
1794! logical(LKG) , intent(in) , contiguous :: array(:)
1795! integer(IK) , intent(out) , allocatable :: weight(:)
1796! logical(LKG) , intent(out) , allocatable :: compact(:)
1797! end subroutine
1798!#endif
1799!
1800!#if LK4_ENABLED
1801! PURE module subroutine setCompactNew_D1_LK4(array, weight, compact)
1802!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1803! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_LK4
1804!#endif
1805! use pm_kind, only: LKG => LK4
1806! logical(LKG) , intent(in) , contiguous :: array(:)
1807! integer(IK) , intent(out) , allocatable :: weight(:)
1808! logical(LKG) , intent(out) , allocatable :: compact(:)
1809! end subroutine
1810!#endif
1811!
1812!#if LK3_ENABLED
1813! PURE module subroutine setCompactNew_D1_LK3(array, weight, compact)
1814!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1815! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_LK3
1816!#endif
1817! use pm_kind, only: LKG => LK3
1818! logical(LKG) , intent(in) , contiguous :: array(:)
1819! integer(IK) , intent(out) , allocatable :: weight(:)
1820! logical(LKG) , intent(out) , allocatable :: compact(:)
1821! end subroutine
1822!#endif
1823!
1824!#if LK2_ENABLED
1825! PURE module subroutine setCompactNew_D1_LK2(array, weight, compact)
1826!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1827! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_LK2
1828!#endif
1829! use pm_kind, only: LKG => LK2
1830! logical(LKG) , intent(in) , contiguous :: array(:)
1831! integer(IK) , intent(out) , allocatable :: weight(:)
1832! logical(LKG) , intent(out) , allocatable :: compact(:)
1833! end subroutine
1834!#endif
1835!
1836!#if LK1_ENABLED
1837! PURE module subroutine setCompactNew_D1_LK1(array, weight, compact)
1838!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1839! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_LK1
1840!#endif
1841! use pm_kind, only: LKG => LK1
1842! logical(LKG) , intent(in) , contiguous :: array(:)
1843! integer(IK) , intent(out) , allocatable :: weight(:)
1844! logical(LKG) , intent(out) , allocatable :: compact(:)
1845! end subroutine
1846!#endif
1847!
1848! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1849!
1850!#if CK5_ENABLED
1851! PURE module subroutine setCompactNew_D1_CK5(array, weight, compact)
1852!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1853! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_CK5
1854!#endif
1855! use pm_kind, only: CKG => CK5
1856! complex(CKG) , intent(in) , contiguous :: array(:)
1857! integer(IK) , intent(out) , allocatable :: weight(:)
1858! complex(CKG) , intent(out) , allocatable :: compact(:)
1859! end subroutine
1860!#endif
1861!
1862!#if CK4_ENABLED
1863! PURE module subroutine setCompactNew_D1_CK4(array, weight, compact)
1864!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1865! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_CK4
1866!#endif
1867! use pm_kind, only: CKG => CK4
1868! complex(CKG) , intent(in) , contiguous :: array(:)
1869! integer(IK) , intent(out) , allocatable :: weight(:)
1870! complex(CKG) , intent(out) , allocatable :: compact(:)
1871! end subroutine
1872!#endif
1873!
1874!#if CK3_ENABLED
1875! PURE module subroutine setCompactNew_D1_CK3(array, weight, compact)
1876!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1877! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_CK3
1878!#endif
1879! use pm_kind, only: CKG => CK3
1880! complex(CKG) , intent(in) , contiguous :: array(:)
1881! integer(IK) , intent(out) , allocatable :: weight(:)
1882! complex(CKG) , intent(out) , allocatable :: compact(:)
1883! end subroutine
1884!#endif
1885!
1886!#if CK2_ENABLED
1887! PURE module subroutine setCompactNew_D1_CK2(array, weight, compact)
1888!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1889! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_CK2
1890!#endif
1891! use pm_kind, only: CKG => CK2
1892! complex(CKG) , intent(in) , contiguous :: array(:)
1893! integer(IK) , intent(out) , allocatable :: weight(:)
1894! complex(CKG) , intent(out) , allocatable :: compact(:)
1895! end subroutine
1896!#endif
1897!
1898!#if CK1_ENABLED
1899! PURE module subroutine setCompactNew_D1_CK1(array, weight, compact)
1900!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1901! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_CK1
1902!#endif
1903! use pm_kind, only: CKG => CK1
1904! complex(CKG) , intent(in) , contiguous :: array(:)
1905! integer(IK) , intent(out) , allocatable :: weight(:)
1906! complex(CKG) , intent(out) , allocatable :: compact(:)
1907! end subroutine
1908!#endif
1909!
1910! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1911!
1912!#if RK5_ENABLED
1913! PURE module subroutine setCompactNew_D1_RK5(array, weight, compact)
1914!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1915! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_RK5
1916!#endif
1917! use pm_kind, only: RKG => RK5
1918! real(RKG) , intent(in) , contiguous :: array(:)
1919! integer(IK) , intent(out) , allocatable :: weight(:)
1920! real(RKG) , intent(out) , allocatable :: compact(:)
1921! end subroutine
1922!#endif
1923!
1924!#if RK4_ENABLED
1925! PURE module subroutine setCompactNew_D1_RK4(array, weight, compact)
1926!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1927! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_RK4
1928!#endif
1929! use pm_kind, only: RKG => RK4
1930! real(RKG) , intent(in) , contiguous :: array(:)
1931! integer(IK) , intent(out) , allocatable :: weight(:)
1932! real(RKG) , intent(out) , allocatable :: compact(:)
1933! end subroutine
1934!#endif
1935!
1936!#if RK3_ENABLED
1937! PURE module subroutine setCompactNew_D1_RK3(array, weight, compact)
1938!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1939! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_RK3
1940!#endif
1941! use pm_kind, only: RKG => RK3
1942! real(RKG) , intent(in) , contiguous :: array(:)
1943! integer(IK) , intent(out) , allocatable :: weight(:)
1944! real(RKG) , intent(out) , allocatable :: compact(:)
1945! end subroutine
1946!#endif
1947!
1948!#if RK2_ENABLED
1949! PURE module subroutine setCompactNew_D1_RK2(array, weight, compact)
1950!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1951! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_RK2
1952!#endif
1953! use pm_kind, only: RKG => RK2
1954! real(RKG) , intent(in) , contiguous :: array(:)
1955! integer(IK) , intent(out) , allocatable :: weight(:)
1956! real(RKG) , intent(out) , allocatable :: compact(:)
1957! end subroutine
1958!#endif
1959!
1960!#if RK1_ENABLED
1961! PURE module subroutine setCompactNew_D1_RK1(array, weight, compact)
1962!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1963! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D1_RK1
1964!#endif
1965! use pm_kind, only: RKG => RK1
1966! real(RKG) , intent(in) , contiguous :: array(:)
1967! integer(IK) , intent(out) , allocatable :: weight(:)
1968! real(RKG) , intent(out) , allocatable :: compact(:)
1969! end subroutine
1970!#endif
1971!
1972! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1973!
1974! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1975! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1976! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1977!
1978! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1979!
1980!#if SK5_ENABLED
1981! PURE module subroutine setCompactNew_D2_SK5(array, weight, compact, dim)
1982!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1983! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_SK5
1984!#endif
1985! use pm_kind, only: SKG => SK5
1986! character(*,SKG) , intent(in) , contiguous :: array(:,:)
1987! integer(IK) , intent(out) , allocatable :: weight(:)
1988! integer(IK) , intent(in) :: dim
1989! character(len(array),SKG) , intent(out) , allocatable :: compact(:,:)
1990! end subroutine
1991!#endif
1992!
1993!#if SK4_ENABLED
1994! PURE module subroutine setCompactNew_D2_SK4(array, weight, compact, dim)
1995!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1996! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_SK4
1997!#endif
1998! use pm_kind, only: SKG => SK4
1999! character(*,SKG) , intent(in) , contiguous :: array(:,:)
2000! integer(IK) , intent(out) , allocatable :: weight(:)
2001! integer(IK) , intent(in) :: dim
2002! character(len(array),SKG) , intent(out) , allocatable :: compact(:,:)
2003! end subroutine
2004!#endif
2005!
2006!#if SK3_ENABLED
2007! PURE module subroutine setCompactNew_D2_SK3(array, weight, compact, dim)
2008!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2009! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_SK3
2010!#endif
2011! use pm_kind, only: SKG => SK3
2012! character(*,SKG) , intent(in) , contiguous :: array(:,:)
2013! integer(IK) , intent(out) , allocatable :: weight(:)
2014! integer(IK) , intent(in) :: dim
2015! character(len(array),SKG) , intent(out) , allocatable :: compact(:,:)
2016! end subroutine
2017!#endif
2018!
2019!#if SK2_ENABLED
2020! PURE module subroutine setCompactNew_D2_SK2(array, weight, compact, dim)
2021!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2022! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_SK2
2023!#endif
2024! use pm_kind, only: SKG => SK2
2025! character(*,SKG) , intent(in) , contiguous :: array(:,:)
2026! integer(IK) , intent(out) , allocatable :: weight(:)
2027! integer(IK) , intent(in) :: dim
2028! character(len(array),SKG) , intent(out) , allocatable :: compact(:,:)
2029! end subroutine
2030!#endif
2031!
2032!#if SK1_ENABLED
2033! PURE module subroutine setCompactNew_D2_SK1(array, weight, compact, dim)
2034!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2035! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_SK1
2036!#endif
2037! use pm_kind, only: SKG => SK1
2038! character(*,SKG) , intent(in) , contiguous :: array(:,:)
2039! integer(IK) , intent(out) , allocatable :: weight(:)
2040! integer(IK) , intent(in) :: dim
2041! character(len(array),SKG) , intent(out) , allocatable :: compact(:,:)
2042! end subroutine
2043!#endif
2044!
2045! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2046!
2047!#if IK5_ENABLED
2048! PURE module subroutine setCompactNew_D2_IK5(array, weight, compact, dim)
2049!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2050! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_IK5
2051!#endif
2052! use pm_kind, only: IKG => IK5
2053! integer(IKG) , intent(in) , contiguous :: array(:,:)
2054! integer(IK) , intent(out) , allocatable :: weight(:)
2055! integer(IK) , intent(in) :: dim
2056! integer(IKG) , intent(out) , allocatable :: compact(:,:)
2057! end subroutine
2058!#endif
2059!
2060!#if IK4_ENABLED
2061! PURE module subroutine setCompactNew_D2_IK4(array, weight, compact, dim)
2062!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2063! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_IK4
2064!#endif
2065! use pm_kind, only: IKG => IK4
2066! integer(IKG) , intent(in) , contiguous :: array(:,:)
2067! integer(IK) , intent(out) , allocatable :: weight(:)
2068! integer(IK) , intent(in) :: dim
2069! integer(IKG) , intent(out) , allocatable :: compact(:,:)
2070! end subroutine
2071!#endif
2072!
2073!#if IK3_ENABLED
2074! PURE module subroutine setCompactNew_D2_IK3(array, weight, compact, dim)
2075!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2076! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_IK3
2077!#endif
2078! use pm_kind, only: IKG => IK3
2079! integer(IKG) , intent(in) , contiguous :: array(:,:)
2080! integer(IK) , intent(out) , allocatable :: weight(:)
2081! integer(IK) , intent(in) :: dim
2082! integer(IKG) , intent(out) , allocatable :: compact(:,:)
2083! end subroutine
2084!#endif
2085!
2086!#if IK2_ENABLED
2087! PURE module subroutine setCompactNew_D2_IK2(array, weight, compact, dim)
2088!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2089! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_IK2
2090!#endif
2091! use pm_kind, only: IKG => IK2
2092! integer(IKG) , intent(in) , contiguous :: array(:,:)
2093! integer(IK) , intent(out) , allocatable :: weight(:)
2094! integer(IK) , intent(in) :: dim
2095! integer(IKG) , intent(out) , allocatable :: compact(:,:)
2096! end subroutine
2097!#endif
2098!
2099!#if IK1_ENABLED
2100! PURE module subroutine setCompactNew_D2_IK1(array, weight, compact, dim)
2101!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2102! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_IK1
2103!#endif
2104! use pm_kind, only: IKG => IK1
2105! integer(IKG) , intent(in) , contiguous :: array(:,:)
2106! integer(IK) , intent(out) , allocatable :: weight(:)
2107! integer(IK) , intent(in) :: dim
2108! integer(IKG) , intent(out) , allocatable :: compact(:,:)
2109! end subroutine
2110!#endif
2111!
2112! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2113!
2114!#if LK5_ENABLED
2115! PURE module subroutine setCompactNew_D2_LK5(array, weight, compact, dim)
2116!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2117! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_LK5
2118!#endif
2119! use pm_kind, only: LKG => LK5
2120! logical(LKG) , intent(in) , contiguous :: array(:,:)
2121! integer(IK) , intent(out) , allocatable :: weight(:)
2122! integer(IK) , intent(in) :: dim
2123! logical(LKG) , intent(out) , allocatable :: compact(:,:)
2124! end subroutine
2125!#endif
2126!
2127!#if LK4_ENABLED
2128! PURE module subroutine setCompactNew_D2_LK4(array, weight, compact, dim)
2129!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2130! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_LK4
2131!#endif
2132! use pm_kind, only: LKG => LK4
2133! logical(LKG) , intent(in) , contiguous :: array(:,:)
2134! integer(IK) , intent(out) , allocatable :: weight(:)
2135! integer(IK) , intent(in) :: dim
2136! logical(LKG) , intent(out) , allocatable :: compact(:,:)
2137! end subroutine
2138!#endif
2139!
2140!#if LK3_ENABLED
2141! PURE module subroutine setCompactNew_D2_LK3(array, weight, compact, dim)
2142!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2143! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_LK3
2144!#endif
2145! use pm_kind, only: LKG => LK3
2146! logical(LKG) , intent(in) , contiguous :: array(:,:)
2147! integer(IK) , intent(out) , allocatable :: weight(:)
2148! integer(IK) , intent(in) :: dim
2149! logical(LKG) , intent(out) , allocatable :: compact(:,:)
2150! end subroutine
2151!#endif
2152!
2153!#if LK2_ENABLED
2154! PURE module subroutine setCompactNew_D2_LK2(array, weight, compact, dim)
2155!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2156! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_LK2
2157!#endif
2158! use pm_kind, only: LKG => LK2
2159! logical(LKG) , intent(in) , contiguous :: array(:,:)
2160! integer(IK) , intent(out) , allocatable :: weight(:)
2161! integer(IK) , intent(in) :: dim
2162! logical(LKG) , intent(out) , allocatable :: compact(:,:)
2163! end subroutine
2164!#endif
2165!
2166!#if LK1_ENABLED
2167! PURE module subroutine setCompactNew_D2_LK1(array, weight, compact, dim)
2168!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2169! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_LK1
2170!#endif
2171! use pm_kind, only: LKG => LK1
2172! logical(LKG) , intent(in) , contiguous :: array(:,:)
2173! integer(IK) , intent(out) , allocatable :: weight(:)
2174! integer(IK) , intent(in) :: dim
2175! logical(LKG) , intent(out) , allocatable :: compact(:,:)
2176! end subroutine
2177!#endif
2178!
2179! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2180!
2181!#if CK5_ENABLED
2182! PURE module subroutine setCompactNew_D2_CK5(array, weight, compact, dim)
2183!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2184! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_CK5
2185!#endif
2186! use pm_kind, only: CKG => CK5
2187! complex(CKG) , intent(in) , contiguous :: array(:,:)
2188! integer(IK) , intent(out) , allocatable :: weight(:)
2189! integer(IK) , intent(in) :: dim
2190! complex(CKG) , intent(out) , allocatable :: compact(:,:)
2191! end subroutine
2192!#endif
2193!
2194!#if CK4_ENABLED
2195! PURE module subroutine setCompactNew_D2_CK4(array, weight, compact, dim)
2196!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2197! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_CK4
2198!#endif
2199! use pm_kind, only: CKG => CK4
2200! complex(CKG) , intent(in) , contiguous :: array(:,:)
2201! integer(IK) , intent(out) , allocatable :: weight(:)
2202! integer(IK) , intent(in) :: dim
2203! complex(CKG) , intent(out) , allocatable :: compact(:,:)
2204! end subroutine
2205!#endif
2206!
2207!#if CK3_ENABLED
2208! PURE module subroutine setCompactNew_D2_CK3(array, weight, compact, dim)
2209!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2210! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_CK3
2211!#endif
2212! use pm_kind, only: CKG => CK3
2213! complex(CKG) , intent(in) , contiguous :: array(:,:)
2214! integer(IK) , intent(out) , allocatable :: weight(:)
2215! integer(IK) , intent(in) :: dim
2216! complex(CKG) , intent(out) , allocatable :: compact(:,:)
2217! end subroutine
2218!#endif
2219!
2220!#if CK2_ENABLED
2221! PURE module subroutine setCompactNew_D2_CK2(array, weight, compact, dim)
2222!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2223! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_CK2
2224!#endif
2225! use pm_kind, only: CKG => CK2
2226! complex(CKG) , intent(in) , contiguous :: array(:,:)
2227! integer(IK) , intent(out) , allocatable :: weight(:)
2228! integer(IK) , intent(in) :: dim
2229! complex(CKG) , intent(out) , allocatable :: compact(:,:)
2230! end subroutine
2231!#endif
2232!
2233!#if CK1_ENABLED
2234! PURE module subroutine setCompactNew_D2_CK1(array, weight, compact, dim)
2235!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2236! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_CK1
2237!#endif
2238! use pm_kind, only: CKG => CK1
2239! complex(CKG) , intent(in) , contiguous :: array(:,:)
2240! integer(IK) , intent(out) , allocatable :: weight(:)
2241! integer(IK) , intent(in) :: dim
2242! complex(CKG) , intent(out) , allocatable :: compact(:,:)
2243! end subroutine
2244!#endif
2245!
2246! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2247!
2248!#if RK5_ENABLED
2249! PURE module subroutine setCompactNew_D2_RK5(array, weight, compact, dim)
2250!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2251! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_RK5
2252!#endif
2253! use pm_kind, only: RKG => RK5
2254! real(RKG) , intent(in) , contiguous :: array(:,:)
2255! integer(IK) , intent(out) , allocatable :: weight(:)
2256! integer(IK) , intent(in) :: dim
2257! real(RKG) , intent(out) , allocatable :: compact(:,:)
2258! end subroutine
2259!#endif
2260!
2261!#if RK4_ENABLED
2262! PURE module subroutine setCompactNew_D2_RK4(array, weight, compact, dim)
2263!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2264! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_RK4
2265!#endif
2266! use pm_kind, only: RKG => RK4
2267! real(RKG) , intent(in) , contiguous :: array(:,:)
2268! integer(IK) , intent(out) , allocatable :: weight(:)
2269! integer(IK) , intent(in) :: dim
2270! real(RKG) , intent(out) , allocatable :: compact(:,:)
2271! end subroutine
2272!#endif
2273!
2274!#if RK3_ENABLED
2275! PURE module subroutine setCompactNew_D2_RK3(array, weight, compact, dim)
2276!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2277! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_RK3
2278!#endif
2279! use pm_kind, only: RKG => RK3
2280! real(RKG) , intent(in) , contiguous :: array(:,:)
2281! integer(IK) , intent(out) , allocatable :: weight(:)
2282! integer(IK) , intent(in) :: dim
2283! real(RKG) , intent(out) , allocatable :: compact(:,:)
2284! end subroutine
2285!#endif
2286!
2287!#if RK2_ENABLED
2288! PURE module subroutine setCompactNew_D2_RK2(array, weight, compact, dim)
2289!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2290! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_RK2
2291!#endif
2292! use pm_kind, only: RKG => RK2
2293! real(RKG) , intent(in) , contiguous :: array(:,:)
2294! integer(IK) , intent(out) , allocatable :: weight(:)
2295! integer(IK) , intent(in) :: dim
2296! real(RKG) , intent(out) , allocatable :: compact(:,:)
2297! end subroutine
2298!#endif
2299!
2300!#if RK1_ENABLED
2301! PURE module subroutine setCompactNew_D2_RK1(array, weight, compact, dim)
2302!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2303! !DEC$ ATTRIBUTES DLLEXPORT :: setCompactNew_D2_RK1
2304!#endif
2305! use pm_kind, only: RKG => RK1
2306! real(RKG) , intent(in) , contiguous :: array(:,:)
2307! integer(IK) , intent(out) , allocatable :: weight(:)
2308! integer(IK) , intent(in) :: dim
2309! real(RKG) , intent(out) , allocatable :: compact(:,:)
2310! end subroutine
2311!#endif
2312!
2313! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2314!
2315! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2316! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2317! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2318
2319 end interface setCompact
2320
2321!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2322
2323end module pm_arrayCompact ! LCOV_EXCL_LINE
Generate a compact version of the input array where all sequentially duplicate entries along the spec...
Generate a compacted version of the input array where all sequentially duplicate entries along the sp...
This module contains procedures and generic interfaces for condensing (removing duplicate sequential ...
character(*, SK), parameter MODULE_NAME
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter SK5
Definition: pm_kind.F90:326
integer, parameter LK1
Definition: pm_kind.F90:412
integer, parameter IK3
Definition: pm_kind.F90:368
integer, parameter RK5
Definition: pm_kind.F90:478
integer, parameter RK4
Definition: pm_kind.F90:489
integer, parameter SK1
Definition: pm_kind.F90:346
integer, parameter IK1
Definition: pm_kind.F90:382
integer, parameter LK5
Definition: pm_kind.F90:392
integer, parameter RK2
Definition: pm_kind.F90:511
integer, parameter CK1
Definition: pm_kind.F90:464
integer, parameter RK3
Definition: pm_kind.F90:500
integer, parameter LK2
Definition: pm_kind.F90:407
integer, parameter LK4
Definition: pm_kind.F90:397
integer, parameter CK5
Definition: pm_kind.F90:420
integer, parameter CK4
Definition: pm_kind.F90:431
integer, parameter SK4
Definition: pm_kind.F90:331
integer, parameter LK3
Definition: pm_kind.F90:402
integer, parameter IK2
Definition: pm_kind.F90:375
integer, parameter CK2
Definition: pm_kind.F90:453
integer, parameter SK2
Definition: pm_kind.F90:341
integer, parameter CK3
Definition: pm_kind.F90:442
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
Definition: pm_kind.F90:540
integer, parameter IK4
Definition: pm_kind.F90:361
integer, parameter IK5
Definition: pm_kind.F90:354
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
Definition: pm_kind.F90:539
integer, parameter RK1
Definition: pm_kind.F90:522
integer, parameter SK3
Definition: pm_kind.F90:336