ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_arrayRefine.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 && 0
21#define LEN_STR :
22#else
23#define LEN_STR len(array,IK)
24#endif
25
26
57
58!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
59
61
62 use pm_kind, only: SK, IK
63
64 implicit none
65
66 character(*, SK), parameter :: MODULE_NAME = "@pm_arrayRefine"
67
68!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
69
154 interface getRefined
155
156 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
157 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
158 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
159
160 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
161
162#if SK5_ENABLED
163 PURE module function getRefined_WTI_D0_SK5(array, weight, skip) result(arrayRefined)
164#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
165 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D0_SK5
166#endif
167 use pm_kind, only: SKG => SK5
168 character(*,SKG) , intent(in) :: array
169 integer(IK) , intent(in) , contiguous :: weight(:)
170 integer(IK) , intent(in) :: skip
171 character(:,SKG) , allocatable :: arrayRefined
172 end function
173#endif
174
175#if SK4_ENABLED
176 PURE module function getRefined_WTI_D0_SK4(array, weight, skip) result(arrayRefined)
177#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
178 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D0_SK4
179#endif
180 use pm_kind, only: SKG => SK4
181 character(*,SKG) , intent(in) :: array
182 integer(IK) , intent(in) , contiguous :: weight(:)
183 integer(IK) , intent(in) :: skip
184 character(:,SKG) , allocatable :: arrayRefined
185 end function
186#endif
187
188#if SK3_ENABLED
189 PURE module function getRefined_WTI_D0_SK3(array, weight, skip) result(arrayRefined)
190#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
191 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D0_SK3
192#endif
193 use pm_kind, only: SKG => SK3
194 character(*,SKG) , intent(in) :: array
195 integer(IK) , intent(in) , contiguous :: weight(:)
196 integer(IK) , intent(in) :: skip
197 character(:,SKG) , allocatable :: arrayRefined
198 end function
199#endif
200
201#if SK2_ENABLED
202 PURE module function getRefined_WTI_D0_SK2(array, weight, skip) result(arrayRefined)
203#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
204 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D0_SK2
205#endif
206 use pm_kind, only: SKG => SK2
207 character(*,SKG) , intent(in) :: array
208 integer(IK) , intent(in) , contiguous :: weight(:)
209 integer(IK) , intent(in) :: skip
210 character(:,SKG) , allocatable :: arrayRefined
211 end function
212#endif
213
214#if SK1_ENABLED
215 PURE module function getRefined_WTI_D0_SK1(array, weight, skip) result(arrayRefined)
216#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
217 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D0_SK1
218#endif
219 use pm_kind, only: SKG => SK1
220 character(*,SKG) , intent(in) :: array
221 integer(IK) , intent(in) , contiguous :: weight(:)
222 integer(IK) , intent(in) :: skip
223 character(:,SKG) , allocatable :: arrayRefined
224 end function
225#endif
226
227 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
228
229 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
230 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
231 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
232
233 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
234
235#if SK5_ENABLED
236 PURE module function getRefined_WTI_D1_SK5(array, weight, skip) result(arrayRefined)
237#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
238 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_SK5
239#endif
240 use pm_kind, only: SKG => SK5
241 character(*,SKG) , intent(in) , contiguous :: array(:)
242 integer(IK) , intent(in) , contiguous :: weight(:)
243 integer(IK) , intent(in) :: skip
244 character(LEN_STR,SKG) , allocatable :: arrayRefined(:)
245 end function
246#endif
247
248#if SK4_ENABLED
249 PURE module function getRefined_WTI_D1_SK4(array, weight, skip) result(arrayRefined)
250#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
251 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_SK4
252#endif
253 use pm_kind, only: SKG => SK4
254 character(*,SKG) , intent(in) , contiguous :: array(:)
255 integer(IK) , intent(in) , contiguous :: weight(:)
256 integer(IK) , intent(in) :: skip
257 character(LEN_STR,SKG) , allocatable :: arrayRefined(:)
258 end function
259#endif
260
261#if SK3_ENABLED
262 PURE module function getRefined_WTI_D1_SK3(array, weight, skip) result(arrayRefined)
263#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
264 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_SK3
265#endif
266 use pm_kind, only: SKG => SK3
267 character(*,SKG) , intent(in) , contiguous :: array(:)
268 integer(IK) , intent(in) , contiguous :: weight(:)
269 integer(IK) , intent(in) :: skip
270 character(LEN_STR,SKG) , allocatable :: arrayRefined(:)
271 end function
272#endif
273
274#if SK2_ENABLED
275 PURE module function getRefined_WTI_D1_SK2(array, weight, skip) result(arrayRefined)
276#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
277 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_SK2
278#endif
279 use pm_kind, only: SKG => SK2
280 character(*,SKG) , intent(in) , contiguous :: array(:)
281 integer(IK) , intent(in) , contiguous :: weight(:)
282 integer(IK) , intent(in) :: skip
283 character(LEN_STR,SKG) , allocatable :: arrayRefined(:)
284 end function
285#endif
286
287#if SK1_ENABLED
288 PURE module function getRefined_WTI_D1_SK1(array, weight, skip) result(arrayRefined)
289#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
290 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_SK1
291#endif
292 use pm_kind, only: SKG => SK1
293 character(*,SKG) , intent(in) , contiguous :: array(:)
294 integer(IK) , intent(in) , contiguous :: weight(:)
295 integer(IK) , intent(in) :: skip
296 character(LEN_STR,SKG) , allocatable :: arrayRefined(:)
297 end function
298#endif
299
300 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
301
302#if IK5_ENABLED
303 PURE module function getRefined_WTI_D1_IK5(array, weight, skip) result(arrayRefined)
304#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
305 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_IK5
306#endif
307 use pm_kind, only: IKG => IK5
308 integer(IKG) , intent(in) , contiguous :: array(:)
309 integer(IK) , intent(in) , contiguous :: weight(:)
310 integer(IK) , intent(in) :: skip
311 integer(IKG) , allocatable :: arrayRefined(:)
312 end function
313#endif
314
315#if IK4_ENABLED
316 PURE module function getRefined_WTI_D1_IK4(array, weight, skip) result(arrayRefined)
317#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
318 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_IK4
319#endif
320 use pm_kind, only: IKG => IK4
321 integer(IKG) , intent(in) , contiguous :: array(:)
322 integer(IK) , intent(in) , contiguous :: weight(:)
323 integer(IK) , intent(in) :: skip
324 integer(IKG) , allocatable :: arrayRefined(:)
325 end function
326#endif
327
328#if IK3_ENABLED
329 PURE module function getRefined_WTI_D1_IK3(array, weight, skip) result(arrayRefined)
330#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
331 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_IK3
332#endif
333 use pm_kind, only: IKG => IK3
334 integer(IKG) , intent(in) , contiguous :: array(:)
335 integer(IK) , intent(in) , contiguous :: weight(:)
336 integer(IK) , intent(in) :: skip
337 integer(IKG) , allocatable :: arrayRefined(:)
338 end function
339#endif
340
341#if IK2_ENABLED
342 PURE module function getRefined_WTI_D1_IK2(array, weight, skip) result(arrayRefined)
343#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
344 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_IK2
345#endif
346 use pm_kind, only: IKG => IK2
347 integer(IKG) , intent(in) , contiguous :: array(:)
348 integer(IK) , intent(in) , contiguous :: weight(:)
349 integer(IK) , intent(in) :: skip
350 integer(IKG) , allocatable :: arrayRefined(:)
351 end function
352#endif
353
354#if IK1_ENABLED
355 PURE module function getRefined_WTI_D1_IK1(array, weight, skip) result(arrayRefined)
356#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
357 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_IK1
358#endif
359 use pm_kind, only: IKG => IK1
360 integer(IKG) , intent(in) , contiguous :: array(:)
361 integer(IK) , intent(in) , contiguous :: weight(:)
362 integer(IK) , intent(in) :: skip
363 integer(IKG) , allocatable :: arrayRefined(:)
364 end function
365#endif
366
367 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
368
369#if LK5_ENABLED
370 PURE module function getRefined_WTI_D1_LK5(array, weight, skip) result(arrayRefined)
371#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
372 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_LK5
373#endif
374 use pm_kind, only: LKG => LK5
375 logical(LKG) , intent(in) , contiguous :: array(:)
376 integer(IK) , intent(in) , contiguous :: weight(:)
377 integer(IK) , intent(in) :: skip
378 logical(LKG) , allocatable :: arrayRefined(:)
379 end function
380#endif
381
382#if LK4_ENABLED
383 PURE module function getRefined_WTI_D1_LK4(array, weight, skip) result(arrayRefined)
384#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
385 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_LK4
386#endif
387 use pm_kind, only: LKG => LK4
388 logical(LKG) , intent(in) , contiguous :: array(:)
389 integer(IK) , intent(in) , contiguous :: weight(:)
390 integer(IK) , intent(in) :: skip
391 logical(LKG) , allocatable :: arrayRefined(:)
392 end function
393#endif
394
395#if LK3_ENABLED
396 PURE module function getRefined_WTI_D1_LK3(array, weight, skip) result(arrayRefined)
397#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
398 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_LK3
399#endif
400 use pm_kind, only: LKG => LK3
401 logical(LKG) , intent(in) , contiguous :: array(:)
402 integer(IK) , intent(in) , contiguous :: weight(:)
403 integer(IK) , intent(in) :: skip
404 logical(LKG) , allocatable :: arrayRefined(:)
405 end function
406#endif
407
408#if LK2_ENABLED
409 PURE module function getRefined_WTI_D1_LK2(array, weight, skip) result(arrayRefined)
410#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
411 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_LK2
412#endif
413 use pm_kind, only: LKG => LK2
414 logical(LKG) , intent(in) , contiguous :: array(:)
415 integer(IK) , intent(in) , contiguous :: weight(:)
416 integer(IK) , intent(in) :: skip
417 logical(LKG) , allocatable :: arrayRefined(:)
418 end function
419#endif
420
421#if LK1_ENABLED
422 PURE module function getRefined_WTI_D1_LK1(array, weight, skip) result(arrayRefined)
423#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
424 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_LK1
425#endif
426 use pm_kind, only: LKG => LK1
427 logical(LKG) , intent(in) , contiguous :: array(:)
428 integer(IK) , intent(in) , contiguous :: weight(:)
429 integer(IK) , intent(in) :: skip
430 logical(LKG) , allocatable :: arrayRefined(:)
431 end function
432#endif
433
434 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
435
436#if CK5_ENABLED
437 PURE module function getRefined_WTI_D1_CK5(array, weight, skip) result(arrayRefined)
438#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
439 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_CK5
440#endif
441 use pm_kind, only: CKG => CK5
442 complex(CKG) , intent(in) , contiguous :: array(:)
443 integer(IK) , intent(in) , contiguous :: weight(:)
444 integer(IK) , intent(in) :: skip
445 complex(CKG) , allocatable :: arrayRefined(:)
446 end function
447#endif
448
449#if CK4_ENABLED
450 PURE module function getRefined_WTI_D1_CK4(array, weight, skip) result(arrayRefined)
451#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
452 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_CK4
453#endif
454 use pm_kind, only: CKG => CK4
455 complex(CKG) , intent(in) , contiguous :: array(:)
456 integer(IK) , intent(in) , contiguous :: weight(:)
457 integer(IK) , intent(in) :: skip
458 complex(CKG) , allocatable :: arrayRefined(:)
459 end function
460#endif
461
462#if CK3_ENABLED
463 PURE module function getRefined_WTI_D1_CK3(array, weight, skip) result(arrayRefined)
464#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
465 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_CK3
466#endif
467 use pm_kind, only: CKG => CK3
468 complex(CKG) , intent(in) , contiguous :: array(:)
469 integer(IK) , intent(in) , contiguous :: weight(:)
470 integer(IK) , intent(in) :: skip
471 complex(CKG) , allocatable :: arrayRefined(:)
472 end function
473#endif
474
475#if CK2_ENABLED
476 PURE module function getRefined_WTI_D1_CK2(array, weight, skip) result(arrayRefined)
477#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
478 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_CK2
479#endif
480 use pm_kind, only: CKG => CK2
481 complex(CKG) , intent(in) , contiguous :: array(:)
482 integer(IK) , intent(in) , contiguous :: weight(:)
483 integer(IK) , intent(in) :: skip
484 complex(CKG) , allocatable :: arrayRefined(:)
485 end function
486#endif
487
488#if CK1_ENABLED
489 PURE module function getRefined_WTI_D1_CK1(array, weight, skip) result(arrayRefined)
490#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
491 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_CK1
492#endif
493 use pm_kind, only: CKG => CK1
494 complex(CKG) , intent(in) , contiguous :: array(:)
495 integer(IK) , intent(in) , contiguous :: weight(:)
496 integer(IK) , intent(in) :: skip
497 complex(CKG) , allocatable :: arrayRefined(:)
498 end function
499#endif
500
501 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
502
503#if RK5_ENABLED
504 PURE module function getRefined_WTI_D1_RK5(array, weight, skip) result(arrayRefined)
505#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
506 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_RK5
507#endif
508 use pm_kind, only: RKG => RK5
509 real(RKG) , intent(in) , contiguous :: array(:)
510 integer(IK) , intent(in) , contiguous :: weight(:)
511 integer(IK) , intent(in) :: skip
512 real(RKG) , allocatable :: arrayRefined(:)
513 end function
514#endif
515
516#if RK4_ENABLED
517 PURE module function getRefined_WTI_D1_RK4(array, weight, skip) result(arrayRefined)
518#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
519 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_RK4
520#endif
521 use pm_kind, only: RKG => RK4
522 real(RKG) , intent(in) , contiguous :: array(:)
523 integer(IK) , intent(in) , contiguous :: weight(:)
524 integer(IK) , intent(in) :: skip
525 real(RKG) , allocatable :: arrayRefined(:)
526 end function
527#endif
528
529#if RK3_ENABLED
530 PURE module function getRefined_WTI_D1_RK3(array, weight, skip) result(arrayRefined)
531#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
532 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_RK3
533#endif
534 use pm_kind, only: RKG => RK3
535 real(RKG) , intent(in) , contiguous :: array(:)
536 integer(IK) , intent(in) , contiguous :: weight(:)
537 integer(IK) , intent(in) :: skip
538 real(RKG) , allocatable :: arrayRefined(:)
539 end function
540#endif
541
542#if RK2_ENABLED
543 PURE module function getRefined_WTI_D1_RK2(array, weight, skip) result(arrayRefined)
544#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
545 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_RK2
546#endif
547 use pm_kind, only: RKG => RK2
548 real(RKG) , intent(in) , contiguous :: array(:)
549 integer(IK) , intent(in) , contiguous :: weight(:)
550 integer(IK) , intent(in) :: skip
551 real(RKG) , allocatable :: arrayRefined(:)
552 end function
553#endif
554
555#if RK1_ENABLED
556 PURE module function getRefined_WTI_D1_RK1(array, weight, skip) result(arrayRefined)
557#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
558 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D1_RK1
559#endif
560 use pm_kind, only: RKG => RK1
561 real(RKG) , intent(in) , contiguous :: array(:)
562 integer(IK) , intent(in) , contiguous :: weight(:)
563 integer(IK) , intent(in) :: skip
564 real(RKG) , allocatable :: arrayRefined(:)
565 end function
566#endif
567
568 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
569
570 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
571 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
572 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
573
574 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
575
576#if SK5_ENABLED
577 PURE module function getRefined_WTI_D2_SK5(array, dim, weight, skip) result(arrayRefined)
578#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
579 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_SK5
580#endif
581 use pm_kind, only: SKG => SK5
582 character(*,SKG) , intent(in) , contiguous :: array(:,:)
583 integer(IK) , intent(in) , contiguous :: weight(:)
584 integer(IK) , intent(in) :: skip
585 integer(IK) , intent(in) :: dim
586 character(LEN_STR,SKG) , allocatable :: arrayRefined(:,:)
587 end function
588#endif
589
590#if SK4_ENABLED
591 PURE module function getRefined_WTI_D2_SK4(array, dim, weight, skip) result(arrayRefined)
592#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
593 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_SK4
594#endif
595 use pm_kind, only: SKG => SK4
596 character(*,SKG) , intent(in) , contiguous :: array(:,:)
597 integer(IK) , intent(in) , contiguous :: weight(:)
598 integer(IK) , intent(in) :: skip
599 integer(IK) , intent(in) :: dim
600 character(LEN_STR,SKG) , allocatable :: arrayRefined(:,:)
601 end function
602#endif
603
604#if SK3_ENABLED
605 PURE module function getRefined_WTI_D2_SK3(array, dim, weight, skip) result(arrayRefined)
606#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
607 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_SK3
608#endif
609 use pm_kind, only: SKG => SK3
610 character(*,SKG) , intent(in) , contiguous :: array(:,:)
611 integer(IK) , intent(in) , contiguous :: weight(:)
612 integer(IK) , intent(in) :: skip
613 integer(IK) , intent(in) :: dim
614 character(LEN_STR,SKG) , allocatable :: arrayRefined(:,:)
615 end function
616#endif
617
618#if SK2_ENABLED
619 PURE module function getRefined_WTI_D2_SK2(array, dim, weight, skip) result(arrayRefined)
620#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
621 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_SK2
622#endif
623 use pm_kind, only: SKG => SK2
624 character(*,SKG) , intent(in) , contiguous :: array(:,:)
625 integer(IK) , intent(in) , contiguous :: weight(:)
626 integer(IK) , intent(in) :: skip
627 integer(IK) , intent(in) :: dim
628 character(LEN_STR,SKG) , allocatable :: arrayRefined(:,:)
629 end function
630#endif
631
632#if SK1_ENABLED
633 PURE module function getRefined_WTI_D2_SK1(array, dim, weight, skip) result(arrayRefined)
634#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
635 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_SK1
636#endif
637 use pm_kind, only: SKG => SK1
638 character(*,SKG) , intent(in) , contiguous :: array(:,:)
639 integer(IK) , intent(in) , contiguous :: weight(:)
640 integer(IK) , intent(in) :: skip
641 integer(IK) , intent(in) :: dim
642 character(LEN_STR,SKG) , allocatable :: arrayRefined(:,:)
643 end function
644#endif
645
646 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
647
648#if IK5_ENABLED
649 PURE module function getRefined_WTI_D2_IK5(array, dim, weight, skip) result(arrayRefined)
650#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
651 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_IK5
652#endif
653 use pm_kind, only: IKG => IK5
654 integer(IKG) , intent(in) , contiguous :: array(:,:)
655 integer(IK) , intent(in) , contiguous :: weight(:)
656 integer(IK) , intent(in) :: skip
657 integer(IK) , intent(in) :: dim
658 integer(IKG) , allocatable :: arrayRefined(:,:)
659 end function
660#endif
661
662#if IK4_ENABLED
663 PURE module function getRefined_WTI_D2_IK4(array, dim, weight, skip) result(arrayRefined)
664#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
665 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_IK4
666#endif
667 use pm_kind, only: IKG => IK4
668 integer(IKG) , intent(in) , contiguous :: array(:,:)
669 integer(IK) , intent(in) , contiguous :: weight(:)
670 integer(IK) , intent(in) :: skip
671 integer(IK) , intent(in) :: dim
672 integer(IKG) , allocatable :: arrayRefined(:,:)
673 end function
674#endif
675
676#if IK3_ENABLED
677 PURE module function getRefined_WTI_D2_IK3(array, dim, weight, skip) result(arrayRefined)
678#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
679 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_IK3
680#endif
681 use pm_kind, only: IKG => IK3
682 integer(IKG) , intent(in) , contiguous :: array(:,:)
683 integer(IK) , intent(in) , contiguous :: weight(:)
684 integer(IK) , intent(in) :: skip
685 integer(IK) , intent(in) :: dim
686 integer(IKG) , allocatable :: arrayRefined(:,:)
687 end function
688#endif
689
690#if IK2_ENABLED
691 PURE module function getRefined_WTI_D2_IK2(array, dim, weight, skip) result(arrayRefined)
692#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
693 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_IK2
694#endif
695 use pm_kind, only: IKG => IK2
696 integer(IKG) , intent(in) , contiguous :: array(:,:)
697 integer(IK) , intent(in) , contiguous :: weight(:)
698 integer(IK) , intent(in) :: skip
699 integer(IK) , intent(in) :: dim
700 integer(IKG) , allocatable :: arrayRefined(:,:)
701 end function
702#endif
703
704#if IK1_ENABLED
705 PURE module function getRefined_WTI_D2_IK1(array, dim, weight, skip) result(arrayRefined)
706#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
707 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_IK1
708#endif
709 use pm_kind, only: IKG => IK1
710 integer(IKG) , intent(in) , contiguous :: array(:,:)
711 integer(IK) , intent(in) , contiguous :: weight(:)
712 integer(IK) , intent(in) :: skip
713 integer(IK) , intent(in) :: dim
714 integer(IKG) , allocatable :: arrayRefined(:,:)
715 end function
716#endif
717
718 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
719
720#if LK5_ENABLED
721 PURE module function getRefined_WTI_D2_LK5(array, dim, weight, skip) result(arrayRefined)
722#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
723 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_LK5
724#endif
725 use pm_kind, only: LKG => LK5
726 logical(LKG) , intent(in) , contiguous :: array(:,:)
727 integer(IK) , intent(in) , contiguous :: weight(:)
728 integer(IK) , intent(in) :: skip
729 integer(IK) , intent(in) :: dim
730 logical(LKG) , allocatable :: arrayRefined(:,:)
731 end function
732#endif
733
734#if LK4_ENABLED
735 PURE module function getRefined_WTI_D2_LK4(array, dim, weight, skip) result(arrayRefined)
736#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
737 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_LK4
738#endif
739 use pm_kind, only: LKG => LK4
740 logical(LKG) , intent(in) , contiguous :: array(:,:)
741 integer(IK) , intent(in) , contiguous :: weight(:)
742 integer(IK) , intent(in) :: skip
743 integer(IK) , intent(in) :: dim
744 logical(LKG) , allocatable :: arrayRefined(:,:)
745 end function
746#endif
747
748#if LK3_ENABLED
749 PURE module function getRefined_WTI_D2_LK3(array, dim, weight, skip) result(arrayRefined)
750#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
751 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_LK3
752#endif
753 use pm_kind, only: LKG => LK3
754 logical(LKG) , intent(in) , contiguous :: array(:,:)
755 integer(IK) , intent(in) , contiguous :: weight(:)
756 integer(IK) , intent(in) :: skip
757 integer(IK) , intent(in) :: dim
758 logical(LKG) , allocatable :: arrayRefined(:,:)
759 end function
760#endif
761
762#if LK2_ENABLED
763 PURE module function getRefined_WTI_D2_LK2(array, dim, weight, skip) result(arrayRefined)
764#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
765 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_LK2
766#endif
767 use pm_kind, only: LKG => LK2
768 logical(LKG) , intent(in) , contiguous :: array(:,:)
769 integer(IK) , intent(in) , contiguous :: weight(:)
770 integer(IK) , intent(in) :: skip
771 integer(IK) , intent(in) :: dim
772 logical(LKG) , allocatable :: arrayRefined(:,:)
773 end function
774#endif
775
776#if LK1_ENABLED
777 PURE module function getRefined_WTI_D2_LK1(array, dim, weight, skip) result(arrayRefined)
778#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
779 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_LK1
780#endif
781 use pm_kind, only: LKG => LK1
782 logical(LKG) , intent(in) , contiguous :: array(:,:)
783 integer(IK) , intent(in) , contiguous :: weight(:)
784 integer(IK) , intent(in) :: skip
785 integer(IK) , intent(in) :: dim
786 logical(LKG) , allocatable :: arrayRefined(:,:)
787 end function
788#endif
789
790 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
791
792#if CK5_ENABLED
793 PURE module function getRefined_WTI_D2_CK5(array, dim, weight, skip) result(arrayRefined)
794#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
795 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_CK5
796#endif
797 use pm_kind, only: CKG => CK5
798 complex(CKG) , intent(in) , contiguous :: array(:,:)
799 integer(IK) , intent(in) , contiguous :: weight(:)
800 integer(IK) , intent(in) :: skip
801 integer(IK) , intent(in) :: dim
802 complex(CKG) , allocatable :: arrayRefined(:,:)
803 end function
804#endif
805
806#if CK4_ENABLED
807 PURE module function getRefined_WTI_D2_CK4(array, dim, weight, skip) result(arrayRefined)
808#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
809 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_CK4
810#endif
811 use pm_kind, only: CKG => CK4
812 complex(CKG) , intent(in) , contiguous :: array(:,:)
813 integer(IK) , intent(in) , contiguous :: weight(:)
814 integer(IK) , intent(in) :: skip
815 integer(IK) , intent(in) :: dim
816 complex(CKG) , allocatable :: arrayRefined(:,:)
817 end function
818#endif
819
820#if CK3_ENABLED
821 PURE module function getRefined_WTI_D2_CK3(array, dim, weight, skip) result(arrayRefined)
822#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
823 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_CK3
824#endif
825 use pm_kind, only: CKG => CK3
826 complex(CKG) , intent(in) , contiguous :: array(:,:)
827 integer(IK) , intent(in) , contiguous :: weight(:)
828 integer(IK) , intent(in) :: skip
829 integer(IK) , intent(in) :: dim
830 complex(CKG) , allocatable :: arrayRefined(:,:)
831 end function
832#endif
833
834#if CK2_ENABLED
835 PURE module function getRefined_WTI_D2_CK2(array, dim, weight, skip) result(arrayRefined)
836#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
837 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_CK2
838#endif
839 use pm_kind, only: CKG => CK2
840 complex(CKG) , intent(in) , contiguous :: array(:,:)
841 integer(IK) , intent(in) , contiguous :: weight(:)
842 integer(IK) , intent(in) :: skip
843 integer(IK) , intent(in) :: dim
844 complex(CKG) , allocatable :: arrayRefined(:,:)
845 end function
846#endif
847
848#if CK1_ENABLED
849 PURE module function getRefined_WTI_D2_CK1(array, dim, weight, skip) result(arrayRefined)
850#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
851 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_CK1
852#endif
853 use pm_kind, only: CKG => CK1
854 complex(CKG) , intent(in) , contiguous :: array(:,:)
855 integer(IK) , intent(in) , contiguous :: weight(:)
856 integer(IK) , intent(in) :: skip
857 integer(IK) , intent(in) :: dim
858 complex(CKG) , allocatable :: arrayRefined(:,:)
859 end function
860#endif
861
862 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
863
864#if RK5_ENABLED
865 PURE module function getRefined_WTI_D2_RK5(array, dim, weight, skip) result(arrayRefined)
866#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
867 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_RK5
868#endif
869 use pm_kind, only: RKG => RK5
870 real(RKG) , intent(in) , contiguous :: array(:,:)
871 integer(IK) , intent(in) , contiguous :: weight(:)
872 integer(IK) , intent(in) :: skip
873 integer(IK) , intent(in) :: dim
874 real(RKG) , allocatable :: arrayRefined(:,:)
875 end function
876#endif
877
878#if RK4_ENABLED
879 PURE module function getRefined_WTI_D2_RK4(array, dim, weight, skip) result(arrayRefined)
880#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
881 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_RK4
882#endif
883 use pm_kind, only: RKG => RK4
884 real(RKG) , intent(in) , contiguous :: array(:,:)
885 integer(IK) , intent(in) , contiguous :: weight(:)
886 integer(IK) , intent(in) :: skip
887 integer(IK) , intent(in) :: dim
888 real(RKG) , allocatable :: arrayRefined(:,:)
889 end function
890#endif
891
892#if RK3_ENABLED
893 PURE module function getRefined_WTI_D2_RK3(array, dim, weight, skip) result(arrayRefined)
894#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
895 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_RK3
896#endif
897 use pm_kind, only: RKG => RK3
898 real(RKG) , intent(in) , contiguous :: array(:,:)
899 integer(IK) , intent(in) , contiguous :: weight(:)
900 integer(IK) , intent(in) :: skip
901 integer(IK) , intent(in) :: dim
902 real(RKG) , allocatable :: arrayRefined(:,:)
903 end function
904#endif
905
906#if RK2_ENABLED
907 PURE module function getRefined_WTI_D2_RK2(array, dim, weight, skip) result(arrayRefined)
908#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
909 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_RK2
910#endif
911 use pm_kind, only: RKG => RK2
912 real(RKG) , intent(in) , contiguous :: array(:,:)
913 integer(IK) , intent(in) , contiguous :: weight(:)
914 integer(IK) , intent(in) :: skip
915 integer(IK) , intent(in) :: dim
916 real(RKG) , allocatable :: arrayRefined(:,:)
917 end function
918#endif
919
920#if RK1_ENABLED
921 PURE module function getRefined_WTI_D2_RK1(array, dim, weight, skip) result(arrayRefined)
922#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
923 !DEC$ ATTRIBUTES DLLEXPORT :: getRefined_WTI_D2_RK1
924#endif
925 use pm_kind, only: RKG => RK1
926 real(RKG) , intent(in) , contiguous :: array(:,:)
927 integer(IK) , intent(in) , contiguous :: weight(:)
928 integer(IK) , intent(in) :: skip
929 integer(IK) , intent(in) :: dim
930 real(RKG) , allocatable :: arrayRefined(:,:)
931 end function
932#endif
933
934 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
935
936 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
937 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
938 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
939
940 end interface getRefined
941
942!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
943
1017
1018 interface setRefined
1019
1020 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1021 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1022 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1023
1024 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1025
1026#if SK5_ENABLED
1027 PURE module subroutine setRefined_WTI_D0_SK5(array, weight, skip, rsize)
1028#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1029 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D0_SK5
1030#endif
1031 use pm_kind, only: SKG => SK5
1032 character(*,SKG) , intent(inout) :: array
1033 integer(IK) , intent(inout) , contiguous :: weight(:)
1034 integer(IK) , intent(in) :: skip
1035 integer(IK) , intent(out) :: rsize
1036 end subroutine
1037#endif
1038
1039#if SK4_ENABLED
1040 PURE module subroutine setRefined_WTI_D0_SK4(array, weight, skip, rsize)
1041#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1042 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D0_SK4
1043#endif
1044 use pm_kind, only: SKG => SK4
1045 character(*,SKG) , intent(inout) :: array
1046 integer(IK) , intent(inout) , contiguous :: weight(:)
1047 integer(IK) , intent(in) :: skip
1048 integer(IK) , intent(out) :: rsize
1049 end subroutine
1050#endif
1051
1052#if SK3_ENABLED
1053 PURE module subroutine setRefined_WTI_D0_SK3(array, weight, skip, rsize)
1054#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1055 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D0_SK3
1056#endif
1057 use pm_kind, only: SKG => SK3
1058 character(*,SKG) , intent(inout) :: array
1059 integer(IK) , intent(inout) , contiguous :: weight(:)
1060 integer(IK) , intent(in) :: skip
1061 integer(IK) , intent(out) :: rsize
1062 end subroutine
1063#endif
1064
1065#if SK2_ENABLED
1066 PURE module subroutine setRefined_WTI_D0_SK2(array, weight, skip, rsize)
1067#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1068 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D0_SK2
1069#endif
1070 use pm_kind, only: SKG => SK2
1071 character(*,SKG) , intent(inout) :: array
1072 integer(IK) , intent(inout) , contiguous :: weight(:)
1073 integer(IK) , intent(in) :: skip
1074 integer(IK) , intent(out) :: rsize
1075 end subroutine
1076#endif
1077
1078#if SK1_ENABLED
1079 PURE module subroutine setRefined_WTI_D0_SK1(array, weight, skip, rsize)
1080#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1081 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D0_SK1
1082#endif
1083 use pm_kind, only: SKG => SK1
1084 character(*,SKG) , intent(inout) :: array
1085 integer(IK) , intent(inout) , contiguous :: weight(:)
1086 integer(IK) , intent(in) :: skip
1087 integer(IK) , intent(out) :: rsize
1088 end subroutine
1089#endif
1090
1091 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1092
1093 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1094 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1095 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1096
1097 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1098
1099#if SK5_ENABLED
1100 PURE module subroutine setRefined_WTI_D1_SK5(array, weight, skip, rsize)
1101#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1102 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_SK5
1103#endif
1104 use pm_kind, only: SKG => SK5
1105 character(*,SKG) , intent(inout) , contiguous :: array(:)
1106 integer(IK) , intent(inout) , contiguous :: weight(:)
1107 integer(IK) , intent(in) :: skip
1108 integer(IK) , intent(out) :: rsize
1109 end subroutine
1110#endif
1111
1112#if SK4_ENABLED
1113 PURE module subroutine setRefined_WTI_D1_SK4(array, weight, skip, rsize)
1114#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1115 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_SK4
1116#endif
1117 use pm_kind, only: SKG => SK4
1118 character(*,SKG) , intent(inout) , contiguous :: array(:)
1119 integer(IK) , intent(inout) , contiguous :: weight(:)
1120 integer(IK) , intent(in) :: skip
1121 integer(IK) , intent(out) :: rsize
1122 end subroutine
1123#endif
1124
1125#if SK3_ENABLED
1126 PURE module subroutine setRefined_WTI_D1_SK3(array, weight, skip, rsize)
1127#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1128 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_SK3
1129#endif
1130 use pm_kind, only: SKG => SK3
1131 character(*,SKG) , intent(inout) , contiguous :: array(:)
1132 integer(IK) , intent(inout) , contiguous :: weight(:)
1133 integer(IK) , intent(in) :: skip
1134 integer(IK) , intent(out) :: rsize
1135 end subroutine
1136#endif
1137
1138#if SK2_ENABLED
1139 PURE module subroutine setRefined_WTI_D1_SK2(array, weight, skip, rsize)
1140#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1141 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_SK2
1142#endif
1143 use pm_kind, only: SKG => SK2
1144 character(*,SKG) , intent(inout) , contiguous :: array(:)
1145 integer(IK) , intent(inout) , contiguous :: weight(:)
1146 integer(IK) , intent(in) :: skip
1147 integer(IK) , intent(out) :: rsize
1148 end subroutine
1149#endif
1150
1151#if SK1_ENABLED
1152 PURE module subroutine setRefined_WTI_D1_SK1(array, weight, skip, rsize)
1153#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1154 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_SK1
1155#endif
1156 use pm_kind, only: SKG => SK1
1157 character(*,SKG) , intent(inout) , contiguous :: array(:)
1158 integer(IK) , intent(inout) , contiguous :: weight(:)
1159 integer(IK) , intent(in) :: skip
1160 integer(IK) , intent(out) :: rsize
1161 end subroutine
1162#endif
1163
1164 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1165
1166#if IK5_ENABLED
1167 PURE module subroutine setRefined_WTI_D1_IK5(array, weight, skip, rsize)
1168#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1169 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_IK5
1170#endif
1171 use pm_kind, only: IKG => IK5
1172 integer(IKG) , intent(inout) , contiguous :: array(:)
1173 integer(IK) , intent(inout) , contiguous :: weight(:)
1174 integer(IK) , intent(in) :: skip
1175 integer(IK) , intent(out) :: rsize
1176 end subroutine
1177#endif
1178
1179#if IK4_ENABLED
1180 PURE module subroutine setRefined_WTI_D1_IK4(array, weight, skip, rsize)
1181#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1182 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_IK4
1183#endif
1184 use pm_kind, only: IKG => IK4
1185 integer(IKG) , intent(inout) , contiguous :: array(:)
1186 integer(IK) , intent(inout) , contiguous :: weight(:)
1187 integer(IK) , intent(in) :: skip
1188 integer(IK) , intent(out) :: rsize
1189 end subroutine
1190#endif
1191
1192#if IK3_ENABLED
1193 PURE module subroutine setRefined_WTI_D1_IK3(array, weight, skip, rsize)
1194#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1195 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_IK3
1196#endif
1197 use pm_kind, only: IKG => IK3
1198 integer(IKG) , intent(inout) , contiguous :: array(:)
1199 integer(IK) , intent(inout) , contiguous :: weight(:)
1200 integer(IK) , intent(in) :: skip
1201 integer(IK) , intent(out) :: rsize
1202 end subroutine
1203#endif
1204
1205#if IK2_ENABLED
1206 PURE module subroutine setRefined_WTI_D1_IK2(array, weight, skip, rsize)
1207#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1208 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_IK2
1209#endif
1210 use pm_kind, only: IKG => IK2
1211 integer(IKG) , intent(inout) , contiguous :: array(:)
1212 integer(IK) , intent(inout) , contiguous :: weight(:)
1213 integer(IK) , intent(in) :: skip
1214 integer(IK) , intent(out) :: rsize
1215 end subroutine
1216#endif
1217
1218#if IK1_ENABLED
1219 PURE module subroutine setRefined_WTI_D1_IK1(array, weight, skip, rsize)
1220#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1221 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_IK1
1222#endif
1223 use pm_kind, only: IKG => IK1
1224 integer(IKG) , intent(inout) , contiguous :: array(:)
1225 integer(IK) , intent(inout) , contiguous :: weight(:)
1226 integer(IK) , intent(in) :: skip
1227 integer(IK) , intent(out) :: rsize
1228 end subroutine
1229#endif
1230
1231 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1232
1233#if LK5_ENABLED
1234 PURE module subroutine setRefined_WTI_D1_LK5(array, weight, skip, rsize)
1235#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1236 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_LK5
1237#endif
1238 use pm_kind, only: LKG => LK5
1239 logical(LKG) , intent(inout) , contiguous :: array(:)
1240 integer(IK) , intent(inout) , contiguous :: weight(:)
1241 integer(IK) , intent(in) :: skip
1242 integer(IK) , intent(out) :: rsize
1243 end subroutine
1244#endif
1245
1246#if LK4_ENABLED
1247 PURE module subroutine setRefined_WTI_D1_LK4(array, weight, skip, rsize)
1248#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1249 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_LK4
1250#endif
1251 use pm_kind, only: LKG => LK4
1252 logical(LKG) , intent(inout) , contiguous :: array(:)
1253 integer(IK) , intent(inout) , contiguous :: weight(:)
1254 integer(IK) , intent(in) :: skip
1255 integer(IK) , intent(out) :: rsize
1256 end subroutine
1257#endif
1258
1259#if LK3_ENABLED
1260 PURE module subroutine setRefined_WTI_D1_LK3(array, weight, skip, rsize)
1261#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1262 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_LK3
1263#endif
1264 use pm_kind, only: LKG => LK3
1265 logical(LKG) , intent(inout) , contiguous :: array(:)
1266 integer(IK) , intent(inout) , contiguous :: weight(:)
1267 integer(IK) , intent(in) :: skip
1268 integer(IK) , intent(out) :: rsize
1269 end subroutine
1270#endif
1271
1272#if LK2_ENABLED
1273 PURE module subroutine setRefined_WTI_D1_LK2(array, weight, skip, rsize)
1274#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1275 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_LK2
1276#endif
1277 use pm_kind, only: LKG => LK2
1278 logical(LKG) , intent(inout) , contiguous :: array(:)
1279 integer(IK) , intent(inout) , contiguous :: weight(:)
1280 integer(IK) , intent(in) :: skip
1281 integer(IK) , intent(out) :: rsize
1282 end subroutine
1283#endif
1284
1285#if LK1_ENABLED
1286 PURE module subroutine setRefined_WTI_D1_LK1(array, weight, skip, rsize)
1287#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1288 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_LK1
1289#endif
1290 use pm_kind, only: LKG => LK1
1291 logical(LKG) , intent(inout) , contiguous :: array(:)
1292 integer(IK) , intent(inout) , contiguous :: weight(:)
1293 integer(IK) , intent(in) :: skip
1294 integer(IK) , intent(out) :: rsize
1295 end subroutine
1296#endif
1297
1298 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1299
1300#if CK5_ENABLED
1301 PURE module subroutine setRefined_WTI_D1_CK5(array, weight, skip, rsize)
1302#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1303 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_CK5
1304#endif
1305 use pm_kind, only: CKG => CK5
1306 complex(CKG) , intent(inout) , contiguous :: array(:)
1307 integer(IK) , intent(inout) , contiguous :: weight(:)
1308 integer(IK) , intent(in) :: skip
1309 integer(IK) , intent(out) :: rsize
1310 end subroutine
1311#endif
1312
1313#if CK4_ENABLED
1314 PURE module subroutine setRefined_WTI_D1_CK4(array, weight, skip, rsize)
1315#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1316 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_CK4
1317#endif
1318 use pm_kind, only: CKG => CK4
1319 complex(CKG) , intent(inout) , contiguous :: array(:)
1320 integer(IK) , intent(inout) , contiguous :: weight(:)
1321 integer(IK) , intent(in) :: skip
1322 integer(IK) , intent(out) :: rsize
1323 end subroutine
1324#endif
1325
1326#if CK3_ENABLED
1327 PURE module subroutine setRefined_WTI_D1_CK3(array, weight, skip, rsize)
1328#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1329 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_CK3
1330#endif
1331 use pm_kind, only: CKG => CK3
1332 complex(CKG) , intent(inout) , contiguous :: array(:)
1333 integer(IK) , intent(inout) , contiguous :: weight(:)
1334 integer(IK) , intent(in) :: skip
1335 integer(IK) , intent(out) :: rsize
1336 end subroutine
1337#endif
1338
1339#if CK2_ENABLED
1340 PURE module subroutine setRefined_WTI_D1_CK2(array, weight, skip, rsize)
1341#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1342 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_CK2
1343#endif
1344 use pm_kind, only: CKG => CK2
1345 complex(CKG) , intent(inout) , contiguous :: array(:)
1346 integer(IK) , intent(inout) , contiguous :: weight(:)
1347 integer(IK) , intent(in) :: skip
1348 integer(IK) , intent(out) :: rsize
1349 end subroutine
1350#endif
1351
1352#if CK1_ENABLED
1353 PURE module subroutine setRefined_WTI_D1_CK1(array, weight, skip, rsize)
1354#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1355 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_CK1
1356#endif
1357 use pm_kind, only: CKG => CK1
1358 complex(CKG) , intent(inout) , contiguous :: array(:)
1359 integer(IK) , intent(inout) , contiguous :: weight(:)
1360 integer(IK) , intent(in) :: skip
1361 integer(IK) , intent(out) :: rsize
1362 end subroutine
1363#endif
1364
1365 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1366
1367#if RK5_ENABLED
1368 PURE module subroutine setRefined_WTI_D1_RK5(array, weight, skip, rsize)
1369#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1370 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_RK5
1371#endif
1372 use pm_kind, only: RKG => RK5
1373 real(RKG) , intent(inout) , contiguous :: array(:)
1374 integer(IK) , intent(inout) , contiguous :: weight(:)
1375 integer(IK) , intent(in) :: skip
1376 integer(IK) , intent(out) :: rsize
1377 end subroutine
1378#endif
1379
1380#if RK4_ENABLED
1381 PURE module subroutine setRefined_WTI_D1_RK4(array, weight, skip, rsize)
1382#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1383 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_RK4
1384#endif
1385 use pm_kind, only: RKG => RK4
1386 real(RKG) , intent(inout) , contiguous :: array(:)
1387 integer(IK) , intent(inout) , contiguous :: weight(:)
1388 integer(IK) , intent(in) :: skip
1389 integer(IK) , intent(out) :: rsize
1390 end subroutine
1391#endif
1392
1393#if RK3_ENABLED
1394 PURE module subroutine setRefined_WTI_D1_RK3(array, weight, skip, rsize)
1395#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1396 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_RK3
1397#endif
1398 use pm_kind, only: RKG => RK3
1399 real(RKG) , intent(inout) , contiguous :: array(:)
1400 integer(IK) , intent(inout) , contiguous :: weight(:)
1401 integer(IK) , intent(in) :: skip
1402 integer(IK) , intent(out) :: rsize
1403 end subroutine
1404#endif
1405
1406#if RK2_ENABLED
1407 PURE module subroutine setRefined_WTI_D1_RK2(array, weight, skip, rsize)
1408#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1409 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_RK2
1410#endif
1411 use pm_kind, only: RKG => RK2
1412 real(RKG) , intent(inout) , contiguous :: array(:)
1413 integer(IK) , intent(inout) , contiguous :: weight(:)
1414 integer(IK) , intent(in) :: skip
1415 integer(IK) , intent(out) :: rsize
1416 end subroutine
1417#endif
1418
1419#if RK1_ENABLED
1420 PURE module subroutine setRefined_WTI_D1_RK1(array, weight, skip, rsize)
1421#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1422 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D1_RK1
1423#endif
1424 use pm_kind, only: RKG => RK1
1425 real(RKG) , intent(inout) , contiguous :: array(:)
1426 integer(IK) , intent(inout) , contiguous :: weight(:)
1427 integer(IK) , intent(in) :: skip
1428 integer(IK) , intent(out) :: rsize
1429 end subroutine
1430#endif
1431
1432 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1433
1434 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1435 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1436 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1437
1438 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1439
1440#if SK5_ENABLED
1441 PURE module subroutine setRefined_WTI_D2_SK5(array, dim, weight, skip, rsize)
1442#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1443 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_SK5
1444#endif
1445 use pm_kind, only: SKG => SK5
1446 character(*,SKG) , intent(inout) , contiguous :: array(:,:)
1447 integer(IK) , intent(inout) , contiguous :: weight(:)
1448 integer(IK) , intent(in) :: skip
1449 integer(IK) , intent(out) :: rsize
1450 integer(IK) , intent(in) :: dim
1451 end subroutine
1452#endif
1453
1454#if SK4_ENABLED
1455 PURE module subroutine setRefined_WTI_D2_SK4(array, dim, weight, skip, rsize)
1456#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1457 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_SK4
1458#endif
1459 use pm_kind, only: SKG => SK4
1460 character(*,SKG) , intent(inout) , contiguous :: array(:,:)
1461 integer(IK) , intent(inout) , contiguous :: weight(:)
1462 integer(IK) , intent(in) :: skip
1463 integer(IK) , intent(out) :: rsize
1464 integer(IK) , intent(in) :: dim
1465 end subroutine
1466#endif
1467
1468#if SK3_ENABLED
1469 PURE module subroutine setRefined_WTI_D2_SK3(array, dim, weight, skip, rsize)
1470#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1471 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_SK3
1472#endif
1473 use pm_kind, only: SKG => SK3
1474 character(*,SKG) , intent(inout) , contiguous :: array(:,:)
1475 integer(IK) , intent(inout) , contiguous :: weight(:)
1476 integer(IK) , intent(in) :: skip
1477 integer(IK) , intent(out) :: rsize
1478 integer(IK) , intent(in) :: dim
1479 end subroutine
1480#endif
1481
1482#if SK2_ENABLED
1483 PURE module subroutine setRefined_WTI_D2_SK2(array, dim, weight, skip, rsize)
1484#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1485 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_SK2
1486#endif
1487 use pm_kind, only: SKG => SK2
1488 character(*,SKG) , intent(inout) , contiguous :: array(:,:)
1489 integer(IK) , intent(inout) , contiguous :: weight(:)
1490 integer(IK) , intent(in) :: skip
1491 integer(IK) , intent(out) :: rsize
1492 integer(IK) , intent(in) :: dim
1493 end subroutine
1494#endif
1495
1496#if SK1_ENABLED
1497 PURE module subroutine setRefined_WTI_D2_SK1(array, dim, weight, skip, rsize)
1498#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1499 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_SK1
1500#endif
1501 use pm_kind, only: SKG => SK1
1502 character(*,SKG) , intent(inout) , contiguous :: array(:,:)
1503 integer(IK) , intent(inout) , contiguous :: weight(:)
1504 integer(IK) , intent(in) :: skip
1505 integer(IK) , intent(out) :: rsize
1506 integer(IK) , intent(in) :: dim
1507 end subroutine
1508#endif
1509
1510 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1511
1512#if IK5_ENABLED
1513 PURE module subroutine setRefined_WTI_D2_IK5(array, dim, weight, skip, rsize)
1514#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1515 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_IK5
1516#endif
1517 use pm_kind, only: IKG => IK5
1518 integer(IKG) , intent(inout) , contiguous :: array(:,:)
1519 integer(IK) , intent(inout) , contiguous :: weight(:)
1520 integer(IK) , intent(in) :: skip
1521 integer(IK) , intent(out) :: rsize
1522 integer(IK) , intent(in) :: dim
1523 end subroutine
1524#endif
1525
1526#if IK4_ENABLED
1527 PURE module subroutine setRefined_WTI_D2_IK4(array, dim, weight, skip, rsize)
1528#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1529 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_IK4
1530#endif
1531 use pm_kind, only: IKG => IK4
1532 integer(IKG) , intent(inout) , contiguous :: array(:,:)
1533 integer(IK) , intent(inout) , contiguous :: weight(:)
1534 integer(IK) , intent(in) :: skip
1535 integer(IK) , intent(out) :: rsize
1536 integer(IK) , intent(in) :: dim
1537 end subroutine
1538#endif
1539
1540#if IK3_ENABLED
1541 PURE module subroutine setRefined_WTI_D2_IK3(array, dim, weight, skip, rsize)
1542#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1543 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_IK3
1544#endif
1545 use pm_kind, only: IKG => IK3
1546 integer(IKG) , intent(inout) , contiguous :: array(:,:)
1547 integer(IK) , intent(inout) , contiguous :: weight(:)
1548 integer(IK) , intent(in) :: skip
1549 integer(IK) , intent(out) :: rsize
1550 integer(IK) , intent(in) :: dim
1551 end subroutine
1552#endif
1553
1554#if IK2_ENABLED
1555 PURE module subroutine setRefined_WTI_D2_IK2(array, dim, weight, skip, rsize)
1556#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1557 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_IK2
1558#endif
1559 use pm_kind, only: IKG => IK2
1560 integer(IKG) , intent(inout) , contiguous :: array(:,:)
1561 integer(IK) , intent(inout) , contiguous :: weight(:)
1562 integer(IK) , intent(in) :: skip
1563 integer(IK) , intent(out) :: rsize
1564 integer(IK) , intent(in) :: dim
1565 end subroutine
1566#endif
1567
1568#if IK1_ENABLED
1569 PURE module subroutine setRefined_WTI_D2_IK1(array, dim, weight, skip, rsize)
1570#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1571 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_IK1
1572#endif
1573 use pm_kind, only: IKG => IK1
1574 integer(IKG) , intent(inout) , contiguous :: array(:,:)
1575 integer(IK) , intent(inout) , contiguous :: weight(:)
1576 integer(IK) , intent(in) :: skip
1577 integer(IK) , intent(out) :: rsize
1578 integer(IK) , intent(in) :: dim
1579 end subroutine
1580#endif
1581
1582 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1583
1584#if LK5_ENABLED
1585 PURE module subroutine setRefined_WTI_D2_LK5(array, dim, weight, skip, rsize)
1586#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1587 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_LK5
1588#endif
1589 use pm_kind, only: LKG => LK5
1590 logical(LKG) , intent(inout) , contiguous :: array(:,:)
1591 integer(IK) , intent(inout) , contiguous :: weight(:)
1592 integer(IK) , intent(in) :: skip
1593 integer(IK) , intent(out) :: rsize
1594 integer(IK) , intent(in) :: dim
1595 end subroutine
1596#endif
1597
1598#if LK4_ENABLED
1599 PURE module subroutine setRefined_WTI_D2_LK4(array, dim, weight, skip, rsize)
1600#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1601 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_LK4
1602#endif
1603 use pm_kind, only: LKG => LK4
1604 logical(LKG) , intent(inout) , contiguous :: array(:,:)
1605 integer(IK) , intent(inout) , contiguous :: weight(:)
1606 integer(IK) , intent(in) :: skip
1607 integer(IK) , intent(out) :: rsize
1608 integer(IK) , intent(in) :: dim
1609 end subroutine
1610#endif
1611
1612#if LK3_ENABLED
1613 PURE module subroutine setRefined_WTI_D2_LK3(array, dim, weight, skip, rsize)
1614#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1615 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_LK3
1616#endif
1617 use pm_kind, only: LKG => LK3
1618 logical(LKG) , intent(inout) , contiguous :: array(:,:)
1619 integer(IK) , intent(inout) , contiguous :: weight(:)
1620 integer(IK) , intent(in) :: skip
1621 integer(IK) , intent(out) :: rsize
1622 integer(IK) , intent(in) :: dim
1623 end subroutine
1624#endif
1625
1626#if LK2_ENABLED
1627 PURE module subroutine setRefined_WTI_D2_LK2(array, dim, weight, skip, rsize)
1628#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1629 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_LK2
1630#endif
1631 use pm_kind, only: LKG => LK2
1632 logical(LKG) , intent(inout) , contiguous :: array(:,:)
1633 integer(IK) , intent(inout) , contiguous :: weight(:)
1634 integer(IK) , intent(in) :: skip
1635 integer(IK) , intent(out) :: rsize
1636 integer(IK) , intent(in) :: dim
1637 end subroutine
1638#endif
1639
1640#if LK1_ENABLED
1641 PURE module subroutine setRefined_WTI_D2_LK1(array, dim, weight, skip, rsize)
1642#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1643 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_LK1
1644#endif
1645 use pm_kind, only: LKG => LK1
1646 logical(LKG) , intent(inout) , contiguous :: array(:,:)
1647 integer(IK) , intent(inout) , contiguous :: weight(:)
1648 integer(IK) , intent(in) :: skip
1649 integer(IK) , intent(out) :: rsize
1650 integer(IK) , intent(in) :: dim
1651 end subroutine
1652#endif
1653
1654 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1655
1656#if CK5_ENABLED
1657 PURE module subroutine setRefined_WTI_D2_CK5(array, dim, weight, skip, rsize)
1658#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1659 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_CK5
1660#endif
1661 use pm_kind, only: CKG => CK5
1662 complex(CKG) , intent(inout) , contiguous :: array(:,:)
1663 integer(IK) , intent(inout) , contiguous :: weight(:)
1664 integer(IK) , intent(in) :: skip
1665 integer(IK) , intent(out) :: rsize
1666 integer(IK) , intent(in) :: dim
1667 end subroutine
1668#endif
1669
1670#if CK4_ENABLED
1671 PURE module subroutine setRefined_WTI_D2_CK4(array, dim, weight, skip, rsize)
1672#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1673 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_CK4
1674#endif
1675 use pm_kind, only: CKG => CK4
1676 complex(CKG) , intent(inout) , contiguous :: array(:,:)
1677 integer(IK) , intent(inout) , contiguous :: weight(:)
1678 integer(IK) , intent(in) :: skip
1679 integer(IK) , intent(out) :: rsize
1680 integer(IK) , intent(in) :: dim
1681 end subroutine
1682#endif
1683
1684#if CK3_ENABLED
1685 PURE module subroutine setRefined_WTI_D2_CK3(array, dim, weight, skip, rsize)
1686#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1687 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_CK3
1688#endif
1689 use pm_kind, only: CKG => CK3
1690 complex(CKG) , intent(inout) , contiguous :: array(:,:)
1691 integer(IK) , intent(inout) , contiguous :: weight(:)
1692 integer(IK) , intent(in) :: skip
1693 integer(IK) , intent(out) :: rsize
1694 integer(IK) , intent(in) :: dim
1695 end subroutine
1696#endif
1697
1698#if CK2_ENABLED
1699 PURE module subroutine setRefined_WTI_D2_CK2(array, dim, weight, skip, rsize)
1700#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1701 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_CK2
1702#endif
1703 use pm_kind, only: CKG => CK2
1704 complex(CKG) , intent(inout) , contiguous :: array(:,:)
1705 integer(IK) , intent(inout) , contiguous :: weight(:)
1706 integer(IK) , intent(in) :: skip
1707 integer(IK) , intent(out) :: rsize
1708 integer(IK) , intent(in) :: dim
1709 end subroutine
1710#endif
1711
1712#if CK1_ENABLED
1713 PURE module subroutine setRefined_WTI_D2_CK1(array, dim, weight, skip, rsize)
1714#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1715 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_CK1
1716#endif
1717 use pm_kind, only: CKG => CK1
1718 complex(CKG) , intent(inout) , contiguous :: array(:,:)
1719 integer(IK) , intent(inout) , contiguous :: weight(:)
1720 integer(IK) , intent(in) :: skip
1721 integer(IK) , intent(out) :: rsize
1722 integer(IK) , intent(in) :: dim
1723 end subroutine
1724#endif
1725
1726 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1727
1728#if RK5_ENABLED
1729 PURE module subroutine setRefined_WTI_D2_RK5(array, dim, weight, skip, rsize)
1730#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1731 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_RK5
1732#endif
1733 use pm_kind, only: RKG => RK5
1734 real(RKG) , intent(inout) , contiguous :: array(:,:)
1735 integer(IK) , intent(inout) , contiguous :: weight(:)
1736 integer(IK) , intent(in) :: skip
1737 integer(IK) , intent(out) :: rsize
1738 integer(IK) , intent(in) :: dim
1739 end subroutine
1740#endif
1741
1742#if RK4_ENABLED
1743 PURE module subroutine setRefined_WTI_D2_RK4(array, dim, weight, skip, rsize)
1744#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1745 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_RK4
1746#endif
1747 use pm_kind, only: RKG => RK4
1748 real(RKG) , intent(inout) , contiguous :: array(:,:)
1749 integer(IK) , intent(inout) , contiguous :: weight(:)
1750 integer(IK) , intent(in) :: skip
1751 integer(IK) , intent(out) :: rsize
1752 integer(IK) , intent(in) :: dim
1753 end subroutine
1754#endif
1755
1756#if RK3_ENABLED
1757 PURE module subroutine setRefined_WTI_D2_RK3(array, dim, weight, skip, rsize)
1758#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1759 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_RK3
1760#endif
1761 use pm_kind, only: RKG => RK3
1762 real(RKG) , intent(inout) , contiguous :: array(:,:)
1763 integer(IK) , intent(inout) , contiguous :: weight(:)
1764 integer(IK) , intent(in) :: skip
1765 integer(IK) , intent(out) :: rsize
1766 integer(IK) , intent(in) :: dim
1767 end subroutine
1768#endif
1769
1770#if RK2_ENABLED
1771 PURE module subroutine setRefined_WTI_D2_RK2(array, dim, weight, skip, rsize)
1772#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1773 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_RK2
1774#endif
1775 use pm_kind, only: RKG => RK2
1776 real(RKG) , intent(inout) , contiguous :: array(:,:)
1777 integer(IK) , intent(inout) , contiguous :: weight(:)
1778 integer(IK) , intent(in) :: skip
1779 integer(IK) , intent(out) :: rsize
1780 integer(IK) , intent(in) :: dim
1781 end subroutine
1782#endif
1783
1784#if RK1_ENABLED
1785 PURE module subroutine setRefined_WTI_D2_RK1(array, dim, weight, skip, rsize)
1786#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1787 !DEC$ ATTRIBUTES DLLEXPORT :: setRefined_WTI_D2_RK1
1788#endif
1789 use pm_kind, only: RKG => RK1
1790 real(RKG) , intent(inout) , contiguous :: array(:,:)
1791 integer(IK) , intent(inout) , contiguous :: weight(:)
1792 integer(IK) , intent(in) :: skip
1793 integer(IK) , intent(out) :: rsize
1794 integer(IK) , intent(in) :: dim
1795 end subroutine
1796#endif
1797
1798 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1799
1800 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1801 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1802 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1803
1804 end interface setRefined
1805
1806!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1807
1808end module pm_arrayRefine ! LCOV_EXCL_LINE
Generate a refined version of the input array by the specified weight and skip.
Generate a refined version of the input array where the sequentially unweighted entries along the spe...
This module contains procedures and generic interfaces for refining (thinning) (weighted) arrays of a...
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