ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_arrayRemap.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
48
49 use pm_kind, only: SK, IK, LK
50 use pm_array, only: reverse_type, reverse
51
52 implicit none
53
54 character(*, SK), parameter :: MODULE_NAME = "@pm_arrayRemap"
55
56!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
57
140 interface getRemapped
141
142 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
143 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
144 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
145
146#if SK5_ENABLED
147 PURE module function getRemappedFor_D0_SK5(array, index) result(arrayNew)
148#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
149 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D0_SK5
150#endif
151 use pm_kind, only: SKG => SK5
152 character(*,SKG) , intent(in) :: array
153 integer(IK) , intent(in) , contiguous :: index(:)
154 character(len(array,IK),SKG) :: arrayNew
155 end function
156#endif
157
158#if SK4_ENABLED
159 PURE module function getRemappedFor_D0_SK4(array, index) result(arrayNew)
160#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
161 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D0_SK4
162#endif
163 use pm_kind, only: SKG => SK4
164 character(*,SKG) , intent(in) :: array
165 integer(IK) , intent(in) , contiguous :: index(:)
166 character(len(array,IK),SKG) :: arrayNew
167 end function
168#endif
169
170#if SK3_ENABLED
171 PURE module function getRemappedFor_D0_SK3(array, index) result(arrayNew)
172#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
173 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D0_SK3
174#endif
175 use pm_kind, only: SKG => SK3
176 character(*,SKG) , intent(in) :: array
177 integer(IK) , intent(in) , contiguous :: index(:)
178 character(len(array,IK),SKG) :: arrayNew
179 end function
180#endif
181
182#if SK2_ENABLED
183 PURE module function getRemappedFor_D0_SK2(array, index) result(arrayNew)
184#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
185 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D0_SK2
186#endif
187 use pm_kind, only: SKG => SK2
188 character(*,SKG) , intent(in) :: array
189 integer(IK) , intent(in) , contiguous :: index(:)
190 character(len(array,IK),SKG) :: arrayNew
191 end function
192#endif
193
194#if SK1_ENABLED
195 PURE module function getRemappedFor_D0_SK1(array, index) result(arrayNew)
196#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
197 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D0_SK1
198#endif
199 use pm_kind, only: SKG => SK1
200 character(*,SKG) , intent(in) :: array
201 integer(IK) , intent(in) , contiguous :: index(:)
202 character(len(array,IK),SKG) :: arrayNew
203 end function
204#endif
205
206 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
207
208#if SK5_ENABLED
209 PURE module function getRemappedFor_D1_SK5(array, index) result(arrayNew)
210#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
211 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_SK5
212#endif
213 use pm_kind, only: SKG => SK5
214 character(*,SKG) , intent(in) , contiguous :: array(:)
215 integer(IK) , intent(in) , contiguous :: index(:)
216 character(len(array,IK),SKG) :: arrayNew(size(array, kind = IK))
217 end function
218#endif
219
220#if SK4_ENABLED
221 PURE module function getRemappedFor_D1_SK4(array, index) result(arrayNew)
222#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
223 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_SK4
224#endif
225 use pm_kind, only: SKG => SK4
226 character(*,SKG) , intent(in) , contiguous :: array(:)
227 integer(IK) , intent(in) , contiguous :: index(:)
228 character(len(array,IK),SKG) :: arrayNew(size(array, kind = IK))
229 end function
230#endif
231
232#if SK3_ENABLED
233 PURE module function getRemappedFor_D1_SK3(array, index) result(arrayNew)
234#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
235 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_SK3
236#endif
237 use pm_kind, only: SKG => SK3
238 character(*,SKG) , intent(in) , contiguous :: array(:)
239 integer(IK) , intent(in) , contiguous :: index(:)
240 character(len(array,IK),SKG) :: arrayNew(size(array, kind = IK))
241 end function
242#endif
243
244#if SK2_ENABLED
245 PURE module function getRemappedFor_D1_SK2(array, index) result(arrayNew)
246#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
247 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_SK2
248#endif
249 use pm_kind, only: SKG => SK2
250 character(*,SKG) , intent(in) , contiguous :: array(:)
251 integer(IK) , intent(in) , contiguous :: index(:)
252 character(len(array,IK),SKG) :: arrayNew(size(array, kind = IK))
253 end function
254#endif
255
256#if SK1_ENABLED
257 PURE module function getRemappedFor_D1_SK1(array, index) result(arrayNew)
258#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
259 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_SK1
260#endif
261 use pm_kind, only: SKG => SK1
262 character(*,SKG) , intent(in) , contiguous :: array(:)
263 integer(IK) , intent(in) , contiguous :: index(:)
264 character(len(array,IK),SKG) :: arrayNew(size(array, kind = IK))
265 end function
266#endif
267
268 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
269
270#if IK5_ENABLED
271 PURE module function getRemappedFor_D1_IK5(array, index) result(arrayNew)
272#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
273 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_IK5
274#endif
275 use pm_kind, only: IKG => IK5
276 integer(IKG) , intent(in) , contiguous :: array(:)
277 integer(IK) , intent(in) , contiguous :: index(:)
278 integer(IKG) :: arrayNew(size(array, kind = IK))
279 end function
280#endif
281
282#if IK4_ENABLED
283 PURE module function getRemappedFor_D1_IK4(array, index) result(arrayNew)
284#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
285 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_IK4
286#endif
287 use pm_kind, only: IKG => IK4
288 integer(IKG) , intent(in) , contiguous :: array(:)
289 integer(IK) , intent(in) , contiguous :: index(:)
290 integer(IKG) :: arrayNew(size(array, kind = IK))
291 end function
292#endif
293
294#if IK3_ENABLED
295 PURE module function getRemappedFor_D1_IK3(array, index) result(arrayNew)
296#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
297 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_IK3
298#endif
299 use pm_kind, only: IKG => IK3
300 integer(IKG) , intent(in) , contiguous :: array(:)
301 integer(IK) , intent(in) , contiguous :: index(:)
302 integer(IKG) :: arrayNew(size(array, kind = IK))
303 end function
304#endif
305
306#if IK2_ENABLED
307 PURE module function getRemappedFor_D1_IK2(array, index) result(arrayNew)
308#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
309 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_IK2
310#endif
311 use pm_kind, only: IKG => IK2
312 integer(IKG) , intent(in) , contiguous :: array(:)
313 integer(IK) , intent(in) , contiguous :: index(:)
314 integer(IKG) :: arrayNew(size(array, kind = IK))
315 end function
316#endif
317
318#if IK1_ENABLED
319 PURE module function getRemappedFor_D1_IK1(array, index) result(arrayNew)
320#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
321 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_IK1
322#endif
323 use pm_kind, only: IKG => IK1
324 integer(IKG) , intent(in) , contiguous :: array(:)
325 integer(IK) , intent(in) , contiguous :: index(:)
326 integer(IKG) :: arrayNew(size(array, kind = IK))
327 end function
328#endif
329
330 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
331
332#if LK5_ENABLED
333 PURE module function getRemappedFor_D1_LK5(array, index) result(arrayNew)
334#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
335 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_LK5
336#endif
337 use pm_kind, only: LKG => LK5
338 logical(LKG) , intent(in) , contiguous :: array(:)
339 integer(IK) , intent(in) , contiguous :: index(:)
340 logical(LKG) :: arrayNew(size(array, kind = IK))
341 end function
342#endif
343
344#if LK4_ENABLED
345 PURE module function getRemappedFor_D1_LK4(array, index) result(arrayNew)
346#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
347 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_LK4
348#endif
349 use pm_kind, only: LKG => LK4
350 logical(LKG) , intent(in) , contiguous :: array(:)
351 integer(IK) , intent(in) , contiguous :: index(:)
352 logical(LKG) :: arrayNew(size(array, kind = IK))
353 end function
354#endif
355
356#if LK3_ENABLED
357 PURE module function getRemappedFor_D1_LK3(array, index) result(arrayNew)
358#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
359 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_LK3
360#endif
361 use pm_kind, only: LKG => LK3
362 logical(LKG) , intent(in) , contiguous :: array(:)
363 integer(IK) , intent(in) , contiguous :: index(:)
364 logical(LKG) :: arrayNew(size(array, kind = IK))
365 end function
366#endif
367
368#if LK2_ENABLED
369 PURE module function getRemappedFor_D1_LK2(array, index) result(arrayNew)
370#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
371 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_LK2
372#endif
373 use pm_kind, only: LKG => LK2
374 logical(LKG) , intent(in) , contiguous :: array(:)
375 integer(IK) , intent(in) , contiguous :: index(:)
376 logical(LKG) :: arrayNew(size(array, kind = IK))
377 end function
378#endif
379
380#if LK1_ENABLED
381 PURE module function getRemappedFor_D1_LK1(array, index) result(arrayNew)
382#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
383 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_LK1
384#endif
385 use pm_kind, only: LKG => LK1
386 logical(LKG) , intent(in) , contiguous :: array(:)
387 integer(IK) , intent(in) , contiguous :: index(:)
388 logical(LKG) :: arrayNew(size(array, kind = IK))
389 end function
390#endif
391
392 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
393
394#if CK5_ENABLED
395 PURE module function getRemappedFor_D1_CK5(array, index) result(arrayNew)
396#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
397 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_CK5
398#endif
399 use pm_kind, only: CKG => CK5
400 complex(CKG) , intent(in) , contiguous :: array(:)
401 integer(IK) , intent(in) , contiguous :: index(:)
402 complex(CKG) :: arrayNew(size(array, kind = IK))
403 end function
404#endif
405
406#if CK4_ENABLED
407 PURE module function getRemappedFor_D1_CK4(array, index) result(arrayNew)
408#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
409 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_CK4
410#endif
411 use pm_kind, only: CKG => CK4
412 complex(CKG) , intent(in) , contiguous :: array(:)
413 integer(IK) , intent(in) , contiguous :: index(:)
414 complex(CKG) :: arrayNew(size(array, kind = IK))
415 end function
416#endif
417
418#if CK3_ENABLED
419 PURE module function getRemappedFor_D1_CK3(array, index) result(arrayNew)
420#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
421 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_CK3
422#endif
423 use pm_kind, only: CKG => CK3
424 complex(CKG) , intent(in) , contiguous :: array(:)
425 integer(IK) , intent(in) , contiguous :: index(:)
426 complex(CKG) :: arrayNew(size(array, kind = IK))
427 end function
428#endif
429
430#if CK2_ENABLED
431 PURE module function getRemappedFor_D1_CK2(array, index) result(arrayNew)
432#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
433 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_CK2
434#endif
435 use pm_kind, only: CKG => CK2
436 complex(CKG) , intent(in) , contiguous :: array(:)
437 integer(IK) , intent(in) , contiguous :: index(:)
438 complex(CKG) :: arrayNew(size(array, kind = IK))
439 end function
440#endif
441
442#if CK1_ENABLED
443 PURE module function getRemappedFor_D1_CK1(array, index) result(arrayNew)
444#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
445 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_CK1
446#endif
447 use pm_kind, only: CKG => CK1
448 complex(CKG) , intent(in) , contiguous :: array(:)
449 integer(IK) , intent(in) , contiguous :: index(:)
450 complex(CKG) :: arrayNew(size(array, kind = IK))
451 end function
452#endif
453
454 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
455
456#if RK5_ENABLED
457 PURE module function getRemappedFor_D1_RK5(array, index) result(arrayNew)
458#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
459 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_RK5
460#endif
461 use pm_kind, only: RKG => RK5
462 real(RKG) , intent(in) , contiguous :: array(:)
463 integer(IK) , intent(in) , contiguous :: index(:)
464 real(RKG) :: arrayNew(size(array, kind = IK))
465 end function
466#endif
467
468#if RK4_ENABLED
469 PURE module function getRemappedFor_D1_RK4(array, index) result(arrayNew)
470#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
471 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_RK4
472#endif
473 use pm_kind, only: RKG => RK4
474 real(RKG) , intent(in) , contiguous :: array(:)
475 integer(IK) , intent(in) , contiguous :: index(:)
476 real(RKG) :: arrayNew(size(array, kind = IK))
477 end function
478#endif
479
480#if RK3_ENABLED
481 PURE module function getRemappedFor_D1_RK3(array, index) result(arrayNew)
482#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
483 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_RK3
484#endif
485 use pm_kind, only: RKG => RK3
486 real(RKG) , intent(in) , contiguous :: array(:)
487 integer(IK) , intent(in) , contiguous :: index(:)
488 real(RKG) :: arrayNew(size(array, kind = IK))
489 end function
490#endif
491
492#if RK2_ENABLED
493 PURE module function getRemappedFor_D1_RK2(array, index) result(arrayNew)
494#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
495 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_RK2
496#endif
497 use pm_kind, only: RKG => RK2
498 real(RKG) , intent(in) , contiguous :: array(:)
499 integer(IK) , intent(in) , contiguous :: index(:)
500 real(RKG) :: arrayNew(size(array, kind = IK))
501 end function
502#endif
503
504#if RK1_ENABLED
505 PURE module function getRemappedFor_D1_RK1(array, index) result(arrayNew)
506#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
507 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedFor_D1_RK1
508#endif
509 use pm_kind, only: RKG => RK1
510 real(RKG) , intent(in) , contiguous :: array(:)
511 integer(IK) , intent(in) , contiguous :: index(:)
512 real(RKG) :: arrayNew(size(array, kind = IK))
513 end function
514#endif
515
516 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
517 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
518 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
519
520#if SK5_ENABLED
521 PURE module function getRemappedRev_D0_SK5(array, index, action) result(arrayNew)
522#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
523 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D0_SK5
524#endif
525 use pm_kind, only: SKG => SK5
526 character(*,SKG) , intent(in) :: array
527 integer(IK) , intent(in) , contiguous :: index(:)
528 type(reverse_type) , intent(in) :: action
529 character(len(array,IK),SKG) :: arrayNew
530 end function
531#endif
532
533#if SK4_ENABLED
534 PURE module function getRemappedRev_D0_SK4(array, index, action) result(arrayNew)
535#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
536 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D0_SK4
537#endif
538 use pm_kind, only: SKG => SK4
539 character(*,SKG) , intent(in) :: array
540 integer(IK) , intent(in) , contiguous :: index(:)
541 type(reverse_type) , intent(in) :: action
542 character(len(array,IK),SKG) :: arrayNew
543 end function
544#endif
545
546#if SK3_ENABLED
547 PURE module function getRemappedRev_D0_SK3(array, index, action) result(arrayNew)
548#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
549 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D0_SK3
550#endif
551 use pm_kind, only: SKG => SK3
552 character(*,SKG) , intent(in) :: array
553 integer(IK) , intent(in) , contiguous :: index(:)
554 type(reverse_type) , intent(in) :: action
555 character(len(array,IK),SKG) :: arrayNew
556 end function
557#endif
558
559#if SK2_ENABLED
560 PURE module function getRemappedRev_D0_SK2(array, index, action) result(arrayNew)
561#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
562 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D0_SK2
563#endif
564 use pm_kind, only: SKG => SK2
565 character(*,SKG) , intent(in) :: array
566 integer(IK) , intent(in) , contiguous :: index(:)
567 type(reverse_type) , intent(in) :: action
568 character(len(array,IK),SKG) :: arrayNew
569 end function
570#endif
571
572#if SK1_ENABLED
573 PURE module function getRemappedRev_D0_SK1(array, index, action) result(arrayNew)
574#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
575 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D0_SK1
576#endif
577 use pm_kind, only: SKG => SK1
578 character(*,SKG) , intent(in) :: array
579 integer(IK) , intent(in) , contiguous :: index(:)
580 type(reverse_type) , intent(in) :: action
581 character(len(array,IK),SKG) :: arrayNew
582 end function
583#endif
584
585 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
586
587#if SK5_ENABLED
588 PURE module function getRemappedRev_D1_SK5(array, index, action) result(arrayNew)
589#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
590 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_SK5
591#endif
592 use pm_kind, only: SKG => SK5
593 character(*,SKG) , intent(in) , contiguous :: array(:)
594 integer(IK) , intent(in) , contiguous :: index(:)
595 type(reverse_type) , intent(in) :: action
596 character(len(array,IK),SKG) :: arrayNew(size(array, kind = IK))
597 end function
598#endif
599
600#if SK4_ENABLED
601 PURE module function getRemappedRev_D1_SK4(array, index, action) result(arrayNew)
602#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
603 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_SK4
604#endif
605 use pm_kind, only: SKG => SK4
606 character(*,SKG) , intent(in) , contiguous :: array(:)
607 integer(IK) , intent(in) , contiguous :: index(:)
608 type(reverse_type) , intent(in) :: action
609 character(len(array,IK),SKG) :: arrayNew(size(array, kind = IK))
610 end function
611#endif
612
613#if SK3_ENABLED
614 PURE module function getRemappedRev_D1_SK3(array, index, action) result(arrayNew)
615#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
616 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_SK3
617#endif
618 use pm_kind, only: SKG => SK3
619 character(*,SKG) , intent(in) , contiguous :: array(:)
620 integer(IK) , intent(in) , contiguous :: index(:)
621 type(reverse_type) , intent(in) :: action
622 character(len(array,IK),SKG) :: arrayNew(size(array, kind = IK))
623 end function
624#endif
625
626#if SK2_ENABLED
627 PURE module function getRemappedRev_D1_SK2(array, index, action) result(arrayNew)
628#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
629 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_SK2
630#endif
631 use pm_kind, only: SKG => SK2
632 character(*,SKG) , intent(in) , contiguous :: array(:)
633 integer(IK) , intent(in) , contiguous :: index(:)
634 type(reverse_type) , intent(in) :: action
635 character(len(array,IK),SKG) :: arrayNew(size(array, kind = IK))
636 end function
637#endif
638
639#if SK1_ENABLED
640 PURE module function getRemappedRev_D1_SK1(array, index, action) result(arrayNew)
641#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
642 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_SK1
643#endif
644 use pm_kind, only: SKG => SK1
645 character(*,SKG) , intent(in) , contiguous :: array(:)
646 integer(IK) , intent(in) , contiguous :: index(:)
647 type(reverse_type) , intent(in) :: action
648 character(len(array,IK),SKG) :: arrayNew(size(array, kind = IK))
649 end function
650#endif
651
652 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
653
654#if IK5_ENABLED
655 PURE module function getRemappedRev_D1_IK5(array, index, action) result(arrayNew)
656#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
657 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_IK5
658#endif
659 use pm_kind, only: IKG => IK5
660 integer(IKG) , intent(in) , contiguous :: array(:)
661 integer(IK) , intent(in) , contiguous :: index(:)
662 type(reverse_type) , intent(in) :: action
663 integer(IKG) :: arrayNew(size(array, kind = IK))
664 end function
665#endif
666
667#if IK4_ENABLED
668 PURE module function getRemappedRev_D1_IK4(array, index, action) result(arrayNew)
669#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
670 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_IK4
671#endif
672 use pm_kind, only: IKG => IK4
673 integer(IKG) , intent(in) , contiguous :: array(:)
674 integer(IK) , intent(in) , contiguous :: index(:)
675 type(reverse_type) , intent(in) :: action
676 integer(IKG) :: arrayNew(size(array, kind = IK))
677 end function
678#endif
679
680#if IK3_ENABLED
681 PURE module function getRemappedRev_D1_IK3(array, index, action) result(arrayNew)
682#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
683 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_IK3
684#endif
685 use pm_kind, only: IKG => IK3
686 integer(IKG) , intent(in) , contiguous :: array(:)
687 integer(IK) , intent(in) , contiguous :: index(:)
688 type(reverse_type) , intent(in) :: action
689 integer(IKG) :: arrayNew(size(array, kind = IK))
690 end function
691#endif
692
693#if IK2_ENABLED
694 PURE module function getRemappedRev_D1_IK2(array, index, action) result(arrayNew)
695#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
696 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_IK2
697#endif
698 use pm_kind, only: IKG => IK2
699 integer(IKG) , intent(in) , contiguous :: array(:)
700 integer(IK) , intent(in) , contiguous :: index(:)
701 type(reverse_type) , intent(in) :: action
702 integer(IKG) :: arrayNew(size(array, kind = IK))
703 end function
704#endif
705
706#if IK1_ENABLED
707 PURE module function getRemappedRev_D1_IK1(array, index, action) result(arrayNew)
708#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
709 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_IK1
710#endif
711 use pm_kind, only: IKG => IK1
712 integer(IKG) , intent(in) , contiguous :: array(:)
713 integer(IK) , intent(in) , contiguous :: index(:)
714 type(reverse_type) , intent(in) :: action
715 integer(IKG) :: arrayNew(size(array, kind = IK))
716 end function
717#endif
718
719 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
720
721#if LK5_ENABLED
722 PURE module function getRemappedRev_D1_LK5(array, index, action) result(arrayNew)
723#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
724 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_LK5
725#endif
726 use pm_kind, only: LKG => LK5
727 logical(LKG) , intent(in) , contiguous :: array(:)
728 integer(IK) , intent(in) , contiguous :: index(:)
729 type(reverse_type) , intent(in) :: action
730 logical(LKG) :: arrayNew(size(array, kind = IK))
731 end function
732#endif
733
734#if LK4_ENABLED
735 PURE module function getRemappedRev_D1_LK4(array, index, action) result(arrayNew)
736#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
737 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_LK4
738#endif
739 use pm_kind, only: LKG => LK4
740 logical(LKG) , intent(in) , contiguous :: array(:)
741 integer(IK) , intent(in) , contiguous :: index(:)
742 type(reverse_type) , intent(in) :: action
743 logical(LKG) :: arrayNew(size(array, kind = IK))
744 end function
745#endif
746
747#if LK3_ENABLED
748 PURE module function getRemappedRev_D1_LK3(array, index, action) result(arrayNew)
749#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
750 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_LK3
751#endif
752 use pm_kind, only: LKG => LK3
753 logical(LKG) , intent(in) , contiguous :: array(:)
754 integer(IK) , intent(in) , contiguous :: index(:)
755 type(reverse_type) , intent(in) :: action
756 logical(LKG) :: arrayNew(size(array, kind = IK))
757 end function
758#endif
759
760#if LK2_ENABLED
761 PURE module function getRemappedRev_D1_LK2(array, index, action) result(arrayNew)
762#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
763 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_LK2
764#endif
765 use pm_kind, only: LKG => LK2
766 logical(LKG) , intent(in) , contiguous :: array(:)
767 integer(IK) , intent(in) , contiguous :: index(:)
768 type(reverse_type) , intent(in) :: action
769 logical(LKG) :: arrayNew(size(array, kind = IK))
770 end function
771#endif
772
773#if LK1_ENABLED
774 PURE module function getRemappedRev_D1_LK1(array, index, action) result(arrayNew)
775#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
776 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_LK1
777#endif
778 use pm_kind, only: LKG => LK1
779 logical(LKG) , intent(in) , contiguous :: array(:)
780 integer(IK) , intent(in) , contiguous :: index(:)
781 type(reverse_type) , intent(in) :: action
782 logical(LKG) :: arrayNew(size(array, kind = IK))
783 end function
784#endif
785
786 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
787
788#if CK5_ENABLED
789 PURE module function getRemappedRev_D1_CK5(array, index, action) result(arrayNew)
790#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
791 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_CK5
792#endif
793 use pm_kind, only: CKG => CK5
794 complex(CKG) , intent(in) , contiguous :: array(:)
795 integer(IK) , intent(in) , contiguous :: index(:)
796 type(reverse_type) , intent(in) :: action
797 complex(CKG) :: arrayNew(size(array, kind = IK))
798 end function
799#endif
800
801#if CK4_ENABLED
802 PURE module function getRemappedRev_D1_CK4(array, index, action) result(arrayNew)
803#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
804 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_CK4
805#endif
806 use pm_kind, only: CKG => CK4
807 complex(CKG) , intent(in) , contiguous :: array(:)
808 integer(IK) , intent(in) , contiguous :: index(:)
809 type(reverse_type) , intent(in) :: action
810 complex(CKG) :: arrayNew(size(array, kind = IK))
811 end function
812#endif
813
814#if CK3_ENABLED
815 PURE module function getRemappedRev_D1_CK3(array, index, action) result(arrayNew)
816#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
817 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_CK3
818#endif
819 use pm_kind, only: CKG => CK3
820 complex(CKG) , intent(in) , contiguous :: array(:)
821 integer(IK) , intent(in) , contiguous :: index(:)
822 type(reverse_type) , intent(in) :: action
823 complex(CKG) :: arrayNew(size(array, kind = IK))
824 end function
825#endif
826
827#if CK2_ENABLED
828 PURE module function getRemappedRev_D1_CK2(array, index, action) result(arrayNew)
829#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
830 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_CK2
831#endif
832 use pm_kind, only: CKG => CK2
833 complex(CKG) , intent(in) , contiguous :: array(:)
834 integer(IK) , intent(in) , contiguous :: index(:)
835 type(reverse_type) , intent(in) :: action
836 complex(CKG) :: arrayNew(size(array, kind = IK))
837 end function
838#endif
839
840#if CK1_ENABLED
841 PURE module function getRemappedRev_D1_CK1(array, index, action) result(arrayNew)
842#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
843 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_CK1
844#endif
845 use pm_kind, only: CKG => CK1
846 complex(CKG) , intent(in) , contiguous :: array(:)
847 integer(IK) , intent(in) , contiguous :: index(:)
848 type(reverse_type) , intent(in) :: action
849 complex(CKG) :: arrayNew(size(array, kind = IK))
850 end function
851#endif
852
853 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
854
855#if RK5_ENABLED
856 PURE module function getRemappedRev_D1_RK5(array, index, action) result(arrayNew)
857#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
858 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_RK5
859#endif
860 use pm_kind, only: RKG => RK5
861 real(RKG) , intent(in) , contiguous :: array(:)
862 integer(IK) , intent(in) , contiguous :: index(:)
863 type(reverse_type) , intent(in) :: action
864 real(RKG) :: arrayNew(size(array, kind = IK))
865 end function
866#endif
867
868#if RK4_ENABLED
869 PURE module function getRemappedRev_D1_RK4(array, index, action) result(arrayNew)
870#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
871 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_RK4
872#endif
873 use pm_kind, only: RKG => RK4
874 real(RKG) , intent(in) , contiguous :: array(:)
875 integer(IK) , intent(in) , contiguous :: index(:)
876 type(reverse_type) , intent(in) :: action
877 real(RKG) :: arrayNew(size(array, kind = IK))
878 end function
879#endif
880
881#if RK3_ENABLED
882 PURE module function getRemappedRev_D1_RK3(array, index, action) result(arrayNew)
883#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
884 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_RK3
885#endif
886 use pm_kind, only: RKG => RK3
887 real(RKG) , intent(in) , contiguous :: array(:)
888 integer(IK) , intent(in) , contiguous :: index(:)
889 type(reverse_type) , intent(in) :: action
890 real(RKG) :: arrayNew(size(array, kind = IK))
891 end function
892#endif
893
894#if RK2_ENABLED
895 PURE module function getRemappedRev_D1_RK2(array, index, action) result(arrayNew)
896#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
897 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_RK2
898#endif
899 use pm_kind, only: RKG => RK2
900 real(RKG) , intent(in) , contiguous :: array(:)
901 integer(IK) , intent(in) , contiguous :: index(:)
902 type(reverse_type) , intent(in) :: action
903 real(RKG) :: arrayNew(size(array, kind = IK))
904 end function
905#endif
906
907#if RK1_ENABLED
908 PURE module function getRemappedRev_D1_RK1(array, index, action) result(arrayNew)
909#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
910 !DEC$ ATTRIBUTES DLLEXPORT :: getRemappedRev_D1_RK1
911#endif
912 use pm_kind, only: RKG => RK1
913 real(RKG) , intent(in) , contiguous :: array(:)
914 integer(IK) , intent(in) , contiguous :: index(:)
915 type(reverse_type) , intent(in) :: action
916 real(RKG) :: arrayNew(size(array, kind = IK))
917 end function
918#endif
919
920 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
921 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
922 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
923
924 end interface
925
926!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
927
1071 interface setRemapped
1072
1073 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1074 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1075 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1076 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1077 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1078 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1079 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1080 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1081 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1082
1083#if SK5_ENABLED
1084 PURE module subroutine setRemappedForOld_D0_SK5(array, index)
1085#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1086 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D0_SK5
1087#endif
1088 use pm_kind, only: SKG => SK5
1089 character(:,SKG) , intent(inout) , allocatable :: array
1090 integer(IK) , intent(in) , contiguous :: index(:)
1091 end subroutine
1092#endif
1093
1094#if SK4_ENABLED
1095 PURE module subroutine setRemappedForOld_D0_SK4(array, index)
1096#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1097 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D0_SK4
1098#endif
1099 use pm_kind, only: SKG => SK4
1100 character(:,SKG) , intent(inout) , allocatable :: array
1101 integer(IK) , intent(in) , contiguous :: index(:)
1102 end subroutine
1103#endif
1104
1105#if SK3_ENABLED
1106 PURE module subroutine setRemappedForOld_D0_SK3(array, index)
1107#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1108 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D0_SK3
1109#endif
1110 use pm_kind, only: SKG => SK3
1111 character(:,SKG) , intent(inout) , allocatable :: array
1112 integer(IK) , intent(in) , contiguous :: index(:)
1113 end subroutine
1114#endif
1115
1116#if SK2_ENABLED
1117 PURE module subroutine setRemappedForOld_D0_SK2(array, index)
1118#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1119 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D0_SK2
1120#endif
1121 use pm_kind, only: SKG => SK2
1122 character(:,SKG) , intent(inout) , allocatable :: array
1123 integer(IK) , intent(in) , contiguous :: index(:)
1124 end subroutine
1125#endif
1126
1127#if SK1_ENABLED
1128 PURE module subroutine setRemappedForOld_D0_SK1(array, index)
1129#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1130 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D0_SK1
1131#endif
1132 use pm_kind, only: SKG => SK1
1133 character(:,SKG) , intent(inout) , allocatable :: array
1134 integer(IK) , intent(in) , contiguous :: index(:)
1135 end subroutine
1136#endif
1137
1138 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1139
1140#if SK5_ENABLED
1141 PURE module subroutine setRemappedForOld_D1_SK5(array, index)
1142#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1143 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_SK5
1144#endif
1145 use pm_kind, only: SKG => SK5
1146 character(*,SKG) , intent(inout) , allocatable :: array(:)
1147 integer(IK) , intent(in) , contiguous :: index(:)
1148 end subroutine
1149#endif
1150
1151#if SK4_ENABLED
1152 PURE module subroutine setRemappedForOld_D1_SK4(array, index)
1153#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1154 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_SK4
1155#endif
1156 use pm_kind, only: SKG => SK4
1157 character(*,SKG) , intent(inout) , allocatable :: array(:)
1158 integer(IK) , intent(in) , contiguous :: index(:)
1159 end subroutine
1160#endif
1161
1162#if SK3_ENABLED
1163 PURE module subroutine setRemappedForOld_D1_SK3(array, index)
1164#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1165 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_SK3
1166#endif
1167 use pm_kind, only: SKG => SK3
1168 character(*,SKG) , intent(inout) , allocatable :: array(:)
1169 integer(IK) , intent(in) , contiguous :: index(:)
1170 end subroutine
1171#endif
1172
1173#if SK2_ENABLED
1174 PURE module subroutine setRemappedForOld_D1_SK2(array, index)
1175#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1176 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_SK2
1177#endif
1178 use pm_kind, only: SKG => SK2
1179 character(*,SKG) , intent(inout) , allocatable :: array(:)
1180 integer(IK) , intent(in) , contiguous :: index(:)
1181 end subroutine
1182#endif
1183
1184#if SK1_ENABLED
1185 PURE module subroutine setRemappedForOld_D1_SK1(array, index)
1186#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1187 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_SK1
1188#endif
1189 use pm_kind, only: SKG => SK1
1190 character(*,SKG) , intent(inout) , allocatable :: array(:)
1191 integer(IK) , intent(in) , contiguous :: index(:)
1192 end subroutine
1193#endif
1194
1195 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1196
1197#if IK5_ENABLED
1198 PURE module subroutine setRemappedForOld_D1_IK5(array, index)
1199#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1200 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_IK5
1201#endif
1202 use pm_kind, only: IKG => IK5
1203 integer(IKG) , intent(inout) , allocatable :: array(:)
1204 integer(IK) , intent(in) , contiguous :: index(:)
1205 end subroutine
1206#endif
1207
1208#if IK4_ENABLED
1209 PURE module subroutine setRemappedForOld_D1_IK4(array, index)
1210#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1211 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_IK4
1212#endif
1213 use pm_kind, only: IKG => IK4
1214 integer(IKG) , intent(inout) , allocatable :: array(:)
1215 integer(IK) , intent(in) , contiguous :: index(:)
1216 end subroutine
1217#endif
1218
1219#if IK3_ENABLED
1220 PURE module subroutine setRemappedForOld_D1_IK3(array, index)
1221#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1222 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_IK3
1223#endif
1224 use pm_kind, only: IKG => IK3
1225 integer(IKG) , intent(inout) , allocatable :: array(:)
1226 integer(IK) , intent(in) , contiguous :: index(:)
1227 end subroutine
1228#endif
1229
1230#if IK2_ENABLED
1231 PURE module subroutine setRemappedForOld_D1_IK2(array, index)
1232#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1233 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_IK2
1234#endif
1235 use pm_kind, only: IKG => IK2
1236 integer(IKG) , intent(inout) , allocatable :: array(:)
1237 integer(IK) , intent(in) , contiguous :: index(:)
1238 end subroutine
1239#endif
1240
1241#if IK1_ENABLED
1242 PURE module subroutine setRemappedForOld_D1_IK1(array, index)
1243#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1244 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_IK1
1245#endif
1246 use pm_kind, only: IKG => IK1
1247 integer(IKG) , intent(inout) , allocatable :: array(:)
1248 integer(IK) , intent(in) , contiguous :: index(:)
1249 end subroutine
1250#endif
1251
1252 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1253
1254#if LK5_ENABLED
1255 PURE module subroutine setRemappedForOld_D1_LK5(array, index)
1256#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1257 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_LK5
1258#endif
1259 use pm_kind, only: LKG => LK5
1260 logical(LKG) , intent(inout) , allocatable :: array(:)
1261 integer(IK) , intent(in) , contiguous :: index(:)
1262 end subroutine
1263#endif
1264
1265#if LK4_ENABLED
1266 PURE module subroutine setRemappedForOld_D1_LK4(array, index)
1267#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1268 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_LK4
1269#endif
1270 use pm_kind, only: LKG => LK4
1271 logical(LKG) , intent(inout) , allocatable :: array(:)
1272 integer(IK) , intent(in) , contiguous :: index(:)
1273 end subroutine
1274#endif
1275
1276#if LK3_ENABLED
1277 PURE module subroutine setRemappedForOld_D1_LK3(array, index)
1278#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1279 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_LK3
1280#endif
1281 use pm_kind, only: LKG => LK3
1282 logical(LKG) , intent(inout) , allocatable :: array(:)
1283 integer(IK) , intent(in) , contiguous :: index(:)
1284 end subroutine
1285#endif
1286
1287#if LK2_ENABLED
1288 PURE module subroutine setRemappedForOld_D1_LK2(array, index)
1289#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1290 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_LK2
1291#endif
1292 use pm_kind, only: LKG => LK2
1293 logical(LKG) , intent(inout) , allocatable :: array(:)
1294 integer(IK) , intent(in) , contiguous :: index(:)
1295 end subroutine
1296#endif
1297
1298#if LK1_ENABLED
1299 PURE module subroutine setRemappedForOld_D1_LK1(array, index)
1300#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1301 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_LK1
1302#endif
1303 use pm_kind, only: LKG => LK1
1304 logical(LKG) , intent(inout) , allocatable :: array(:)
1305 integer(IK) , intent(in) , contiguous :: index(:)
1306 end subroutine
1307#endif
1308
1309 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1310
1311#if CK5_ENABLED
1312 PURE module subroutine setRemappedForOld_D1_CK5(array, index)
1313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1314 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_CK5
1315#endif
1316 use pm_kind, only: CKG => CK5
1317 complex(CKG) , intent(inout) , allocatable :: array(:)
1318 integer(IK) , intent(in) , contiguous :: index(:)
1319 end subroutine
1320#endif
1321
1322#if CK4_ENABLED
1323 PURE module subroutine setRemappedForOld_D1_CK4(array, index)
1324#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1325 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_CK4
1326#endif
1327 use pm_kind, only: CKG => CK4
1328 complex(CKG) , intent(inout) , allocatable :: array(:)
1329 integer(IK) , intent(in) , contiguous :: index(:)
1330 end subroutine
1331#endif
1332
1333#if CK3_ENABLED
1334 PURE module subroutine setRemappedForOld_D1_CK3(array, index)
1335#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1336 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_CK3
1337#endif
1338 use pm_kind, only: CKG => CK3
1339 complex(CKG) , intent(inout) , allocatable :: array(:)
1340 integer(IK) , intent(in) , contiguous :: index(:)
1341 end subroutine
1342#endif
1343
1344#if CK2_ENABLED
1345 PURE module subroutine setRemappedForOld_D1_CK2(array, index)
1346#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1347 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_CK2
1348#endif
1349 use pm_kind, only: CKG => CK2
1350 complex(CKG) , intent(inout) , allocatable :: array(:)
1351 integer(IK) , intent(in) , contiguous :: index(:)
1352 end subroutine
1353#endif
1354
1355#if CK1_ENABLED
1356 PURE module subroutine setRemappedForOld_D1_CK1(array, index)
1357#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1358 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_CK1
1359#endif
1360 use pm_kind, only: CKG => CK1
1361 complex(CKG) , intent(inout) , allocatable :: array(:)
1362 integer(IK) , intent(in) , contiguous :: index(:)
1363 end subroutine
1364#endif
1365
1366 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1367
1368#if RK5_ENABLED
1369 PURE module subroutine setRemappedForOld_D1_RK5(array, index)
1370#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1371 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_RK5
1372#endif
1373 use pm_kind, only: RKG => RK5
1374 real(RKG) , intent(inout) , allocatable :: array(:)
1375 integer(IK) , intent(in) , contiguous :: index(:)
1376 end subroutine
1377#endif
1378
1379#if RK4_ENABLED
1380 PURE module subroutine setRemappedForOld_D1_RK4(array, index)
1381#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1382 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_RK4
1383#endif
1384 use pm_kind, only: RKG => RK4
1385 real(RKG) , intent(inout) , allocatable :: array(:)
1386 integer(IK) , intent(in) , contiguous :: index(:)
1387 end subroutine
1388#endif
1389
1390#if RK3_ENABLED
1391 PURE module subroutine setRemappedForOld_D1_RK3(array, index)
1392#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1393 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_RK3
1394#endif
1395 use pm_kind, only: RKG => RK3
1396 real(RKG) , intent(inout) , allocatable :: array(:)
1397 integer(IK) , intent(in) , contiguous :: index(:)
1398 end subroutine
1399#endif
1400
1401#if RK2_ENABLED
1402 PURE module subroutine setRemappedForOld_D1_RK2(array, index)
1403#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1404 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_RK2
1405#endif
1406 use pm_kind, only: RKG => RK2
1407 real(RKG) , intent(inout) , allocatable :: array(:)
1408 integer(IK) , intent(in) , contiguous :: index(:)
1409 end subroutine
1410#endif
1411
1412#if RK1_ENABLED
1413 PURE module subroutine setRemappedForOld_D1_RK1(array, index)
1414#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1415 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForOld_D1_RK1
1416#endif
1417 use pm_kind, only: RKG => RK1
1418 real(RKG) , intent(inout) , allocatable :: array(:)
1419 integer(IK) , intent(in) , contiguous :: index(:)
1420 end subroutine
1421#endif
1422
1423 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1424 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1425 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1426
1427#if SK5_ENABLED
1428 PURE module subroutine setRemappedRevOld_D0_SK5(array, index, action)
1429#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1430 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D0_SK5
1431#endif
1432 use pm_kind, only: SKG => SK5
1433 character(:,SKG) , intent(inout) , allocatable :: array
1434 integer(IK) , intent(in) , contiguous :: index(:)
1435 type(reverse_type) , intent(in) :: action
1436 end subroutine
1437#endif
1438
1439#if SK4_ENABLED
1440 PURE module subroutine setRemappedRevOld_D0_SK4(array, index, action)
1441#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1442 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D0_SK4
1443#endif
1444 use pm_kind, only: SKG => SK4
1445 character(:,SKG) , intent(inout) , allocatable :: array
1446 integer(IK) , intent(in) , contiguous :: index(:)
1447 type(reverse_type) , intent(in) :: action
1448 end subroutine
1449#endif
1450
1451#if SK3_ENABLED
1452 PURE module subroutine setRemappedRevOld_D0_SK3(array, index, action)
1453#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1454 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D0_SK3
1455#endif
1456 use pm_kind, only: SKG => SK3
1457 character(:,SKG) , intent(inout) , allocatable :: array
1458 integer(IK) , intent(in) , contiguous :: index(:)
1459 type(reverse_type) , intent(in) :: action
1460 end subroutine
1461#endif
1462
1463#if SK2_ENABLED
1464 PURE module subroutine setRemappedRevOld_D0_SK2(array, index, action)
1465#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1466 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D0_SK2
1467#endif
1468 use pm_kind, only: SKG => SK2
1469 character(:,SKG) , intent(inout) , allocatable :: array
1470 integer(IK) , intent(in) , contiguous :: index(:)
1471 type(reverse_type) , intent(in) :: action
1472 end subroutine
1473#endif
1474
1475#if SK1_ENABLED
1476 PURE module subroutine setRemappedRevOld_D0_SK1(array, index, action)
1477#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1478 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D0_SK1
1479#endif
1480 use pm_kind, only: SKG => SK1
1481 character(:,SKG) , intent(inout) , allocatable :: array
1482 integer(IK) , intent(in) , contiguous :: index(:)
1483 type(reverse_type) , intent(in) :: action
1484 end subroutine
1485#endif
1486
1487 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1488
1489#if SK5_ENABLED
1490 PURE module subroutine setRemappedRevOld_D1_SK5(array, index, action)
1491#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1492 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_SK5
1493#endif
1494 use pm_kind, only: SKG => SK5
1495 character(*,SKG) , intent(inout) , allocatable :: array(:)
1496 integer(IK) , intent(in) , contiguous :: index(:)
1497 type(reverse_type) , intent(in) :: action
1498 end subroutine
1499#endif
1500
1501#if SK4_ENABLED
1502 PURE module subroutine setRemappedRevOld_D1_SK4(array, index, action)
1503#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1504 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_SK4
1505#endif
1506 use pm_kind, only: SKG => SK4
1507 character(*,SKG) , intent(inout) , allocatable :: array(:)
1508 integer(IK) , intent(in) , contiguous :: index(:)
1509 type(reverse_type) , intent(in) :: action
1510 end subroutine
1511#endif
1512
1513#if SK3_ENABLED
1514 PURE module subroutine setRemappedRevOld_D1_SK3(array, index, action)
1515#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1516 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_SK3
1517#endif
1518 use pm_kind, only: SKG => SK3
1519 character(*,SKG) , intent(inout) , allocatable :: array(:)
1520 integer(IK) , intent(in) , contiguous :: index(:)
1521 type(reverse_type) , intent(in) :: action
1522 end subroutine
1523#endif
1524
1525#if SK2_ENABLED
1526 PURE module subroutine setRemappedRevOld_D1_SK2(array, index, action)
1527#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1528 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_SK2
1529#endif
1530 use pm_kind, only: SKG => SK2
1531 character(*,SKG) , intent(inout) , allocatable :: array(:)
1532 integer(IK) , intent(in) , contiguous :: index(:)
1533 type(reverse_type) , intent(in) :: action
1534 end subroutine
1535#endif
1536
1537#if SK1_ENABLED
1538 PURE module subroutine setRemappedRevOld_D1_SK1(array, index, action)
1539#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1540 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_SK1
1541#endif
1542 use pm_kind, only: SKG => SK1
1543 character(*,SKG) , intent(inout) , allocatable :: array(:)
1544 integer(IK) , intent(in) , contiguous :: index(:)
1545 type(reverse_type) , intent(in) :: action
1546 end subroutine
1547#endif
1548
1549 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1550
1551#if IK5_ENABLED
1552 PURE module subroutine setRemappedRevOld_D1_IK5(array, index, action)
1553#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1554 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_IK5
1555#endif
1556 use pm_kind, only: IKG => IK5
1557 integer(IKG) , intent(inout) , allocatable :: array(:)
1558 integer(IK) , intent(in) , contiguous :: index(:)
1559 type(reverse_type) , intent(in) :: action
1560 end subroutine
1561#endif
1562
1563#if IK4_ENABLED
1564 PURE module subroutine setRemappedRevOld_D1_IK4(array, index, action)
1565#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1566 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_IK4
1567#endif
1568 use pm_kind, only: IKG => IK4
1569 integer(IKG) , intent(inout) , allocatable :: array(:)
1570 integer(IK) , intent(in) , contiguous :: index(:)
1571 type(reverse_type) , intent(in) :: action
1572 end subroutine
1573#endif
1574
1575#if IK3_ENABLED
1576 PURE module subroutine setRemappedRevOld_D1_IK3(array, index, action)
1577#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1578 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_IK3
1579#endif
1580 use pm_kind, only: IKG => IK3
1581 integer(IKG) , intent(inout) , allocatable :: array(:)
1582 integer(IK) , intent(in) , contiguous :: index(:)
1583 type(reverse_type) , intent(in) :: action
1584 end subroutine
1585#endif
1586
1587#if IK2_ENABLED
1588 PURE module subroutine setRemappedRevOld_D1_IK2(array, index, action)
1589#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1590 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_IK2
1591#endif
1592 use pm_kind, only: IKG => IK2
1593 integer(IKG) , intent(inout) , allocatable :: array(:)
1594 integer(IK) , intent(in) , contiguous :: index(:)
1595 type(reverse_type) , intent(in) :: action
1596 end subroutine
1597#endif
1598
1599#if IK1_ENABLED
1600 PURE module subroutine setRemappedRevOld_D1_IK1(array, index, action)
1601#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1602 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_IK1
1603#endif
1604 use pm_kind, only: IKG => IK1
1605 integer(IKG) , intent(inout) , allocatable :: array(:)
1606 integer(IK) , intent(in) , contiguous :: index(:)
1607 type(reverse_type) , intent(in) :: action
1608 end subroutine
1609#endif
1610
1611 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1612
1613#if LK5_ENABLED
1614 PURE module subroutine setRemappedRevOld_D1_LK5(array, index, action)
1615#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1616 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_LK5
1617#endif
1618 use pm_kind, only: LKG => LK5
1619 logical(LKG) , intent(inout) , allocatable :: array(:)
1620 integer(IK) , intent(in) , contiguous :: index(:)
1621 type(reverse_type) , intent(in) :: action
1622 end subroutine
1623#endif
1624
1625#if LK4_ENABLED
1626 PURE module subroutine setRemappedRevOld_D1_LK4(array, index, action)
1627#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1628 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_LK4
1629#endif
1630 use pm_kind, only: LKG => LK4
1631 logical(LKG) , intent(inout) , allocatable :: array(:)
1632 integer(IK) , intent(in) , contiguous :: index(:)
1633 type(reverse_type) , intent(in) :: action
1634 end subroutine
1635#endif
1636
1637#if LK3_ENABLED
1638 PURE module subroutine setRemappedRevOld_D1_LK3(array, index, action)
1639#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1640 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_LK3
1641#endif
1642 use pm_kind, only: LKG => LK3
1643 logical(LKG) , intent(inout) , allocatable :: array(:)
1644 integer(IK) , intent(in) , contiguous :: index(:)
1645 type(reverse_type) , intent(in) :: action
1646 end subroutine
1647#endif
1648
1649#if LK2_ENABLED
1650 PURE module subroutine setRemappedRevOld_D1_LK2(array, index, action)
1651#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1652 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_LK2
1653#endif
1654 use pm_kind, only: LKG => LK2
1655 logical(LKG) , intent(inout) , allocatable :: array(:)
1656 integer(IK) , intent(in) , contiguous :: index(:)
1657 type(reverse_type) , intent(in) :: action
1658 end subroutine
1659#endif
1660
1661#if LK1_ENABLED
1662 PURE module subroutine setRemappedRevOld_D1_LK1(array, index, action)
1663#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1664 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_LK1
1665#endif
1666 use pm_kind, only: LKG => LK1
1667 logical(LKG) , intent(inout) , allocatable :: array(:)
1668 integer(IK) , intent(in) , contiguous :: index(:)
1669 type(reverse_type) , intent(in) :: action
1670 end subroutine
1671#endif
1672
1673 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1674
1675#if CK5_ENABLED
1676 PURE module subroutine setRemappedRevOld_D1_CK5(array, index, action)
1677#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1678 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_CK5
1679#endif
1680 use pm_kind, only: CKG => CK5
1681 complex(CKG) , intent(inout) , allocatable :: array(:)
1682 integer(IK) , intent(in) , contiguous :: index(:)
1683 type(reverse_type) , intent(in) :: action
1684 end subroutine
1685#endif
1686
1687#if CK4_ENABLED
1688 PURE module subroutine setRemappedRevOld_D1_CK4(array, index, action)
1689#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1690 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_CK4
1691#endif
1692 use pm_kind, only: CKG => CK4
1693 complex(CKG) , intent(inout) , allocatable :: array(:)
1694 integer(IK) , intent(in) , contiguous :: index(:)
1695 type(reverse_type) , intent(in) :: action
1696 end subroutine
1697#endif
1698
1699#if CK3_ENABLED
1700 PURE module subroutine setRemappedRevOld_D1_CK3(array, index, action)
1701#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1702 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_CK3
1703#endif
1704 use pm_kind, only: CKG => CK3
1705 complex(CKG) , intent(inout) , allocatable :: array(:)
1706 integer(IK) , intent(in) , contiguous :: index(:)
1707 type(reverse_type) , intent(in) :: action
1708 end subroutine
1709#endif
1710
1711#if CK2_ENABLED
1712 PURE module subroutine setRemappedRevOld_D1_CK2(array, index, action)
1713#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1714 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_CK2
1715#endif
1716 use pm_kind, only: CKG => CK2
1717 complex(CKG) , intent(inout) , allocatable :: array(:)
1718 integer(IK) , intent(in) , contiguous :: index(:)
1719 type(reverse_type) , intent(in) :: action
1720 end subroutine
1721#endif
1722
1723#if CK1_ENABLED
1724 PURE module subroutine setRemappedRevOld_D1_CK1(array, index, action)
1725#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1726 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_CK1
1727#endif
1728 use pm_kind, only: CKG => CK1
1729 complex(CKG) , intent(inout) , allocatable :: array(:)
1730 integer(IK) , intent(in) , contiguous :: index(:)
1731 type(reverse_type) , intent(in) :: action
1732 end subroutine
1733#endif
1734
1735 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1736
1737#if RK5_ENABLED
1738 PURE module subroutine setRemappedRevOld_D1_RK5(array, index, action)
1739#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1740 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_RK5
1741#endif
1742 use pm_kind, only: RKG => RK5
1743 real(RKG) , intent(inout) , allocatable :: array(:)
1744 integer(IK) , intent(in) , contiguous :: index(:)
1745 type(reverse_type) , intent(in) :: action
1746 end subroutine
1747#endif
1748
1749#if RK4_ENABLED
1750 PURE module subroutine setRemappedRevOld_D1_RK4(array, index, action)
1751#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1752 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_RK4
1753#endif
1754 use pm_kind, only: RKG => RK4
1755 real(RKG) , intent(inout) , allocatable :: array(:)
1756 integer(IK) , intent(in) , contiguous :: index(:)
1757 type(reverse_type) , intent(in) :: action
1758 end subroutine
1759#endif
1760
1761#if RK3_ENABLED
1762 PURE module subroutine setRemappedRevOld_D1_RK3(array, index, action)
1763#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1764 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_RK3
1765#endif
1766 use pm_kind, only: RKG => RK3
1767 real(RKG) , intent(inout) , allocatable :: array(:)
1768 integer(IK) , intent(in) , contiguous :: index(:)
1769 type(reverse_type) , intent(in) :: action
1770 end subroutine
1771#endif
1772
1773#if RK2_ENABLED
1774 PURE module subroutine setRemappedRevOld_D1_RK2(array, index, action)
1775#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1776 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_RK2
1777#endif
1778 use pm_kind, only: RKG => RK2
1779 real(RKG) , intent(inout) , allocatable :: array(:)
1780 integer(IK) , intent(in) , contiguous :: index(:)
1781 type(reverse_type) , intent(in) :: action
1782 end subroutine
1783#endif
1784
1785#if RK1_ENABLED
1786 PURE module subroutine setRemappedRevOld_D1_RK1(array, index, action)
1787#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1788 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevOld_D1_RK1
1789#endif
1790 use pm_kind, only: RKG => RK1
1791 real(RKG) , intent(inout) , allocatable :: array(:)
1792 integer(IK) , intent(in) , contiguous :: index(:)
1793 type(reverse_type) , intent(in) :: action
1794 end subroutine
1795#endif
1796
1797 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1798 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1799 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1800 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1801 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1802 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1803 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1804 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1805 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1806
1807#if SK5_ENABLED
1808 PURE module subroutine setRemappedForNew_D0_SK5(array, index, arrayNew)
1809#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1810 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D0_SK5
1811#endif
1812 use pm_kind, only: SKG => SK5
1813 character(*,SKG) , intent(in) :: array
1814 integer(IK) , intent(in) , contiguous :: index(:)
1815 character(*,SKG) , intent(out) :: arrayNew
1816 end subroutine
1817#endif
1818
1819#if SK4_ENABLED
1820 PURE module subroutine setRemappedForNew_D0_SK4(array, index, arrayNew)
1821#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1822 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D0_SK4
1823#endif
1824 use pm_kind, only: SKG => SK4
1825 character(*,SKG) , intent(in) :: array
1826 integer(IK) , intent(in) , contiguous :: index(:)
1827 character(*,SKG) , intent(out) :: arrayNew
1828 end subroutine
1829#endif
1830
1831#if SK3_ENABLED
1832 PURE module subroutine setRemappedForNew_D0_SK3(array, index, arrayNew)
1833#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1834 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D0_SK3
1835#endif
1836 use pm_kind, only: SKG => SK3
1837 character(*,SKG) , intent(in) :: array
1838 integer(IK) , intent(in) , contiguous :: index(:)
1839 character(*,SKG) , intent(out) :: arrayNew
1840 end subroutine
1841#endif
1842
1843#if SK2_ENABLED
1844 PURE module subroutine setRemappedForNew_D0_SK2(array, index, arrayNew)
1845#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1846 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D0_SK2
1847#endif
1848 use pm_kind, only: SKG => SK2
1849 character(*,SKG) , intent(in) :: array
1850 integer(IK) , intent(in) , contiguous :: index(:)
1851 character(*,SKG) , intent(out) :: arrayNew
1852 end subroutine
1853#endif
1854
1855#if SK1_ENABLED
1856 PURE module subroutine setRemappedForNew_D0_SK1(array, index, arrayNew)
1857#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1858 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D0_SK1
1859#endif
1860 use pm_kind, only: SKG => SK1
1861 character(*,SKG) , intent(in) :: array
1862 integer(IK) , intent(in) , contiguous :: index(:)
1863 character(*,SKG) , intent(out) :: arrayNew
1864 end subroutine
1865#endif
1866
1867 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1868
1869#if SK5_ENABLED
1870 PURE module subroutine setRemappedForNew_D1_SK5(array, index, arrayNew)
1871#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1872 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_SK5
1873#endif
1874 use pm_kind, only: SKG => SK5
1875 character(*,SKG) , intent(in) , contiguous :: array(:)
1876 integer(IK) , intent(in) , contiguous :: index(:)
1877 character(*,SKG) , intent(out) , contiguous :: arrayNew(:)
1878 end subroutine
1879#endif
1880
1881#if SK4_ENABLED
1882 PURE module subroutine setRemappedForNew_D1_SK4(array, index, arrayNew)
1883#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1884 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_SK4
1885#endif
1886 use pm_kind, only: SKG => SK4
1887 character(*,SKG) , intent(in) , contiguous :: array(:)
1888 integer(IK) , intent(in) , contiguous :: index(:)
1889 character(*,SKG) , intent(out) , contiguous :: arrayNew(:)
1890 end subroutine
1891#endif
1892
1893#if SK3_ENABLED
1894 PURE module subroutine setRemappedForNew_D1_SK3(array, index, arrayNew)
1895#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1896 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_SK3
1897#endif
1898 use pm_kind, only: SKG => SK3
1899 character(*,SKG) , intent(in) , contiguous :: array(:)
1900 integer(IK) , intent(in) , contiguous :: index(:)
1901 character(*,SKG) , intent(out) , contiguous :: arrayNew(:)
1902 end subroutine
1903#endif
1904
1905#if SK2_ENABLED
1906 PURE module subroutine setRemappedForNew_D1_SK2(array, index, arrayNew)
1907#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1908 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_SK2
1909#endif
1910 use pm_kind, only: SKG => SK2
1911 character(*,SKG) , intent(in) , contiguous :: array(:)
1912 integer(IK) , intent(in) , contiguous :: index(:)
1913 character(*,SKG) , intent(out) , contiguous :: arrayNew(:)
1914 end subroutine
1915#endif
1916
1917#if SK1_ENABLED
1918 PURE module subroutine setRemappedForNew_D1_SK1(array, index, arrayNew)
1919#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1920 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_SK1
1921#endif
1922 use pm_kind, only: SKG => SK1
1923 character(*,SKG) , intent(in) , contiguous :: array(:)
1924 integer(IK) , intent(in) , contiguous :: index(:)
1925 character(*,SKG) , intent(out) , contiguous :: arrayNew(:)
1926 end subroutine
1927#endif
1928
1929 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1930
1931#if IK5_ENABLED
1932 PURE module subroutine setRemappedForNew_D1_IK5(array, index, arrayNew)
1933#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1934 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_IK5
1935#endif
1936 use pm_kind, only: IKG => IK5
1937 integer(IKG) , intent(in) , contiguous :: array(:)
1938 integer(IK) , intent(in) , contiguous :: index(:)
1939 integer(IKG) , intent(out) , contiguous :: arrayNew(:)
1940 end subroutine
1941#endif
1942
1943#if IK4_ENABLED
1944 PURE module subroutine setRemappedForNew_D1_IK4(array, index, arrayNew)
1945#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1946 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_IK4
1947#endif
1948 use pm_kind, only: IKG => IK4
1949 integer(IKG) , intent(in) , contiguous :: array(:)
1950 integer(IK) , intent(in) , contiguous :: index(:)
1951 integer(IKG) , intent(out) , contiguous :: arrayNew(:)
1952 end subroutine
1953#endif
1954
1955#if IK3_ENABLED
1956 PURE module subroutine setRemappedForNew_D1_IK3(array, index, arrayNew)
1957#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1958 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_IK3
1959#endif
1960 use pm_kind, only: IKG => IK3
1961 integer(IKG) , intent(in) , contiguous :: array(:)
1962 integer(IK) , intent(in) , contiguous :: index(:)
1963 integer(IKG) , intent(out) , contiguous :: arrayNew(:)
1964 end subroutine
1965#endif
1966
1967#if IK2_ENABLED
1968 PURE module subroutine setRemappedForNew_D1_IK2(array, index, arrayNew)
1969#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1970 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_IK2
1971#endif
1972 use pm_kind, only: IKG => IK2
1973 integer(IKG) , intent(in) , contiguous :: array(:)
1974 integer(IK) , intent(in) , contiguous :: index(:)
1975 integer(IKG) , intent(out) , contiguous :: arrayNew(:)
1976 end subroutine
1977#endif
1978
1979#if IK1_ENABLED
1980 PURE module subroutine setRemappedForNew_D1_IK1(array, index, arrayNew)
1981#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1982 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_IK1
1983#endif
1984 use pm_kind, only: IKG => IK1
1985 integer(IKG) , intent(in) , contiguous :: array(:)
1986 integer(IK) , intent(in) , contiguous :: index(:)
1987 integer(IKG) , intent(out) , contiguous :: arrayNew(:)
1988 end subroutine
1989#endif
1990
1991 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1992
1993#if LK5_ENABLED
1994 PURE module subroutine setRemappedForNew_D1_LK5(array, index, arrayNew)
1995#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1996 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_LK5
1997#endif
1998 use pm_kind, only: LKG => LK5
1999 logical(LKG) , intent(in) , contiguous :: array(:)
2000 integer(IK) , intent(in) , contiguous :: index(:)
2001 logical(LKG) , intent(out) , contiguous :: arrayNew(:)
2002 end subroutine
2003#endif
2004
2005#if LK4_ENABLED
2006 PURE module subroutine setRemappedForNew_D1_LK4(array, index, arrayNew)
2007#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2008 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_LK4
2009#endif
2010 use pm_kind, only: LKG => LK4
2011 logical(LKG) , intent(in) , contiguous :: array(:)
2012 integer(IK) , intent(in) , contiguous :: index(:)
2013 logical(LKG) , intent(out) , contiguous :: arrayNew(:)
2014 end subroutine
2015#endif
2016
2017#if LK3_ENABLED
2018 PURE module subroutine setRemappedForNew_D1_LK3(array, index, arrayNew)
2019#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2020 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_LK3
2021#endif
2022 use pm_kind, only: LKG => LK3
2023 logical(LKG) , intent(in) , contiguous :: array(:)
2024 integer(IK) , intent(in) , contiguous :: index(:)
2025 logical(LKG) , intent(out) , contiguous :: arrayNew(:)
2026 end subroutine
2027#endif
2028
2029#if LK2_ENABLED
2030 PURE module subroutine setRemappedForNew_D1_LK2(array, index, arrayNew)
2031#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2032 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_LK2
2033#endif
2034 use pm_kind, only: LKG => LK2
2035 logical(LKG) , intent(in) , contiguous :: array(:)
2036 integer(IK) , intent(in) , contiguous :: index(:)
2037 logical(LKG) , intent(out) , contiguous :: arrayNew(:)
2038 end subroutine
2039#endif
2040
2041#if LK1_ENABLED
2042 PURE module subroutine setRemappedForNew_D1_LK1(array, index, arrayNew)
2043#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2044 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_LK1
2045#endif
2046 use pm_kind, only: LKG => LK1
2047 logical(LKG) , intent(in) , contiguous :: array(:)
2048 integer(IK) , intent(in) , contiguous :: index(:)
2049 logical(LKG) , intent(out) , contiguous :: arrayNew(:)
2050 end subroutine
2051#endif
2052
2053 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2054
2055#if CK5_ENABLED
2056 PURE module subroutine setRemappedForNew_D1_CK5(array, index, arrayNew)
2057#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2058 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_CK5
2059#endif
2060 use pm_kind, only: CKG => CK5
2061 complex(CKG) , intent(in) , contiguous :: array(:)
2062 integer(IK) , intent(in) , contiguous :: index(:)
2063 complex(CKG) , intent(out) , contiguous :: arrayNew(:)
2064 end subroutine
2065#endif
2066
2067#if CK4_ENABLED
2068 PURE module subroutine setRemappedForNew_D1_CK4(array, index, arrayNew)
2069#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2070 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_CK4
2071#endif
2072 use pm_kind, only: CKG => CK4
2073 complex(CKG) , intent(in) , contiguous :: array(:)
2074 integer(IK) , intent(in) , contiguous :: index(:)
2075 complex(CKG) , intent(out) , contiguous :: arrayNew(:)
2076 end subroutine
2077#endif
2078
2079#if CK3_ENABLED
2080 PURE module subroutine setRemappedForNew_D1_CK3(array, index, arrayNew)
2081#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2082 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_CK3
2083#endif
2084 use pm_kind, only: CKG => CK3
2085 complex(CKG) , intent(in) , contiguous :: array(:)
2086 integer(IK) , intent(in) , contiguous :: index(:)
2087 complex(CKG) , intent(out) , contiguous :: arrayNew(:)
2088 end subroutine
2089#endif
2090
2091#if CK2_ENABLED
2092 PURE module subroutine setRemappedForNew_D1_CK2(array, index, arrayNew)
2093#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2094 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_CK2
2095#endif
2096 use pm_kind, only: CKG => CK2
2097 complex(CKG) , intent(in) , contiguous :: array(:)
2098 integer(IK) , intent(in) , contiguous :: index(:)
2099 complex(CKG) , intent(out) , contiguous :: arrayNew(:)
2100 end subroutine
2101#endif
2102
2103#if CK1_ENABLED
2104 PURE module subroutine setRemappedForNew_D1_CK1(array, index, arrayNew)
2105#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2106 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_CK1
2107#endif
2108 use pm_kind, only: CKG => CK1
2109 complex(CKG) , intent(in) , contiguous :: array(:)
2110 integer(IK) , intent(in) , contiguous :: index(:)
2111 complex(CKG) , intent(out) , contiguous :: arrayNew(:)
2112 end subroutine
2113#endif
2114
2115 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2116
2117#if RK5_ENABLED
2118 PURE module subroutine setRemappedForNew_D1_RK5(array, index, arrayNew)
2119#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2120 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_RK5
2121#endif
2122 use pm_kind, only: RKG => RK5
2123 real(RKG) , intent(in) , contiguous :: array(:)
2124 integer(IK) , intent(in) , contiguous :: index(:)
2125 real(RKG) , intent(out) , contiguous :: arrayNew(:)
2126 end subroutine
2127#endif
2128
2129#if RK4_ENABLED
2130 PURE module subroutine setRemappedForNew_D1_RK4(array, index, arrayNew)
2131#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2132 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_RK4
2133#endif
2134 use pm_kind, only: RKG => RK4
2135 real(RKG) , intent(in) , contiguous :: array(:)
2136 integer(IK) , intent(in) , contiguous :: index(:)
2137 real(RKG) , intent(out) , contiguous :: arrayNew(:)
2138 end subroutine
2139#endif
2140
2141#if RK3_ENABLED
2142 PURE module subroutine setRemappedForNew_D1_RK3(array, index, arrayNew)
2143#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2144 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_RK3
2145#endif
2146 use pm_kind, only: RKG => RK3
2147 real(RKG) , intent(in) , contiguous :: array(:)
2148 integer(IK) , intent(in) , contiguous :: index(:)
2149 real(RKG) , intent(out) , contiguous :: arrayNew(:)
2150 end subroutine
2151#endif
2152
2153#if RK2_ENABLED
2154 PURE module subroutine setRemappedForNew_D1_RK2(array, index, arrayNew)
2155#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2156 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_RK2
2157#endif
2158 use pm_kind, only: RKG => RK2
2159 real(RKG) , intent(in) , contiguous :: array(:)
2160 integer(IK) , intent(in) , contiguous :: index(:)
2161 real(RKG) , intent(out) , contiguous :: arrayNew(:)
2162 end subroutine
2163#endif
2164
2165#if RK1_ENABLED
2166 PURE module subroutine setRemappedForNew_D1_RK1(array, index, arrayNew)
2167#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2168 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedForNew_D1_RK1
2169#endif
2170 use pm_kind, only: RKG => RK1
2171 real(RKG) , intent(in) , contiguous :: array(:)
2172 integer(IK) , intent(in) , contiguous :: index(:)
2173 real(RKG) , intent(out) , contiguous :: arrayNew(:)
2174 end subroutine
2175#endif
2176
2177 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2178 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2179 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2180
2181#if SK5_ENABLED
2182 PURE module subroutine setRemappedRevNew_D0_SK5(array, index, action, arrayNew)
2183#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2184 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D0_SK5
2185#endif
2186 use pm_kind, only: SKG => SK5
2187 character(*,SKG) , intent(in) :: array
2188 integer(IK) , intent(in) , contiguous :: index(:)
2189 type(reverse_type) , intent(in) :: action
2190 character(*,SKG) , intent(out) :: arrayNew
2191 end subroutine
2192#endif
2193
2194#if SK4_ENABLED
2195 PURE module subroutine setRemappedRevNew_D0_SK4(array, index, action, arrayNew)
2196#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2197 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D0_SK4
2198#endif
2199 use pm_kind, only: SKG => SK4
2200 character(*,SKG) , intent(in) :: array
2201 integer(IK) , intent(in) , contiguous :: index(:)
2202 type(reverse_type) , intent(in) :: action
2203 character(*,SKG) , intent(out) :: arrayNew
2204 end subroutine
2205#endif
2206
2207#if SK3_ENABLED
2208 PURE module subroutine setRemappedRevNew_D0_SK3(array, index, action, arrayNew)
2209#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2210 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D0_SK3
2211#endif
2212 use pm_kind, only: SKG => SK3
2213 character(*,SKG) , intent(in) :: array
2214 integer(IK) , intent(in) , contiguous :: index(:)
2215 type(reverse_type) , intent(in) :: action
2216 character(*,SKG) , intent(out) :: arrayNew
2217 end subroutine
2218#endif
2219
2220#if SK2_ENABLED
2221 PURE module subroutine setRemappedRevNew_D0_SK2(array, index, action, arrayNew)
2222#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2223 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D0_SK2
2224#endif
2225 use pm_kind, only: SKG => SK2
2226 character(*,SKG) , intent(in) :: array
2227 integer(IK) , intent(in) , contiguous :: index(:)
2228 type(reverse_type) , intent(in) :: action
2229 character(*,SKG) , intent(out) :: arrayNew
2230 end subroutine
2231#endif
2232
2233#if SK1_ENABLED
2234 PURE module subroutine setRemappedRevNew_D0_SK1(array, index, action, arrayNew)
2235#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2236 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D0_SK1
2237#endif
2238 use pm_kind, only: SKG => SK1
2239 character(*,SKG) , intent(in) :: array
2240 integer(IK) , intent(in) , contiguous :: index(:)
2241 type(reverse_type) , intent(in) :: action
2242 character(*,SKG) , intent(out) :: arrayNew
2243 end subroutine
2244#endif
2245
2246 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2247
2248#if SK5_ENABLED
2249 PURE module subroutine setRemappedRevNew_D1_SK5(array, index, action, arrayNew)
2250#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2251 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_SK5
2252#endif
2253 use pm_kind, only: SKG => SK5
2254 character(*,SKG) , intent(in) , contiguous :: array(:)
2255 integer(IK) , intent(in) , contiguous :: index(:)
2256 type(reverse_type) , intent(in) :: action
2257 character(*,SKG) , intent(out) , contiguous :: arrayNew(:)
2258 end subroutine
2259#endif
2260
2261#if SK4_ENABLED
2262 PURE module subroutine setRemappedRevNew_D1_SK4(array, index, action, arrayNew)
2263#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2264 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_SK4
2265#endif
2266 use pm_kind, only: SKG => SK4
2267 character(*,SKG) , intent(in) , contiguous :: array(:)
2268 integer(IK) , intent(in) , contiguous :: index(:)
2269 type(reverse_type) , intent(in) :: action
2270 character(*,SKG) , intent(out) , contiguous :: arrayNew(:)
2271 end subroutine
2272#endif
2273
2274#if SK3_ENABLED
2275 PURE module subroutine setRemappedRevNew_D1_SK3(array, index, action, arrayNew)
2276#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2277 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_SK3
2278#endif
2279 use pm_kind, only: SKG => SK3
2280 character(*,SKG) , intent(in) , contiguous :: array(:)
2281 integer(IK) , intent(in) , contiguous :: index(:)
2282 type(reverse_type) , intent(in) :: action
2283 character(*,SKG) , intent(out) , contiguous :: arrayNew(:)
2284 end subroutine
2285#endif
2286
2287#if SK2_ENABLED
2288 PURE module subroutine setRemappedRevNew_D1_SK2(array, index, action, arrayNew)
2289#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2290 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_SK2
2291#endif
2292 use pm_kind, only: SKG => SK2
2293 character(*,SKG) , intent(in) , contiguous :: array(:)
2294 integer(IK) , intent(in) , contiguous :: index(:)
2295 type(reverse_type) , intent(in) :: action
2296 character(*,SKG) , intent(out) , contiguous :: arrayNew(:)
2297 end subroutine
2298#endif
2299
2300#if SK1_ENABLED
2301 PURE module subroutine setRemappedRevNew_D1_SK1(array, index, action, arrayNew)
2302#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2303 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_SK1
2304#endif
2305 use pm_kind, only: SKG => SK1
2306 character(*,SKG) , intent(in) , contiguous :: array(:)
2307 integer(IK) , intent(in) , contiguous :: index(:)
2308 type(reverse_type) , intent(in) :: action
2309 character(*,SKG) , intent(out) , contiguous :: arrayNew(:)
2310 end subroutine
2311#endif
2312
2313 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2314
2315#if IK5_ENABLED
2316 PURE module subroutine setRemappedRevNew_D1_IK5(array, index, action, arrayNew)
2317#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2318 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_IK5
2319#endif
2320 use pm_kind, only: IKG => IK5
2321 integer(IKG) , intent(in) , contiguous :: array(:)
2322 integer(IK) , intent(in) , contiguous :: index(:)
2323 type(reverse_type) , intent(in) :: action
2324 integer(IKG) , intent(out) , contiguous :: arrayNew(:)
2325 end subroutine
2326#endif
2327
2328#if IK4_ENABLED
2329 PURE module subroutine setRemappedRevNew_D1_IK4(array, index, action, arrayNew)
2330#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2331 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_IK4
2332#endif
2333 use pm_kind, only: IKG => IK4
2334 integer(IKG) , intent(in) , contiguous :: array(:)
2335 integer(IK) , intent(in) , contiguous :: index(:)
2336 type(reverse_type) , intent(in) :: action
2337 integer(IKG) , intent(out) , contiguous :: arrayNew(:)
2338 end subroutine
2339#endif
2340
2341#if IK3_ENABLED
2342 PURE module subroutine setRemappedRevNew_D1_IK3(array, index, action, arrayNew)
2343#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2344 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_IK3
2345#endif
2346 use pm_kind, only: IKG => IK3
2347 integer(IKG) , intent(in) , contiguous :: array(:)
2348 integer(IK) , intent(in) , contiguous :: index(:)
2349 type(reverse_type) , intent(in) :: action
2350 integer(IKG) , intent(out) , contiguous :: arrayNew(:)
2351 end subroutine
2352#endif
2353
2354#if IK2_ENABLED
2355 PURE module subroutine setRemappedRevNew_D1_IK2(array, index, action, arrayNew)
2356#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2357 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_IK2
2358#endif
2359 use pm_kind, only: IKG => IK2
2360 integer(IKG) , intent(in) , contiguous :: array(:)
2361 integer(IK) , intent(in) , contiguous :: index(:)
2362 type(reverse_type) , intent(in) :: action
2363 integer(IKG) , intent(out) , contiguous :: arrayNew(:)
2364 end subroutine
2365#endif
2366
2367#if IK1_ENABLED
2368 PURE module subroutine setRemappedRevNew_D1_IK1(array, index, action, arrayNew)
2369#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2370 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_IK1
2371#endif
2372 use pm_kind, only: IKG => IK1
2373 integer(IKG) , intent(in) , contiguous :: array(:)
2374 integer(IK) , intent(in) , contiguous :: index(:)
2375 type(reverse_type) , intent(in) :: action
2376 integer(IKG) , intent(out) , contiguous :: arrayNew(:)
2377 end subroutine
2378#endif
2379
2380 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2381
2382#if LK5_ENABLED
2383 PURE module subroutine setRemappedRevNew_D1_LK5(array, index, action, arrayNew)
2384#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2385 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_LK5
2386#endif
2387 use pm_kind, only: LKG => LK5
2388 logical(LKG) , intent(in) , contiguous :: array(:)
2389 integer(IK) , intent(in) , contiguous :: index(:)
2390 type(reverse_type) , intent(in) :: action
2391 logical(LKG) , intent(out) , contiguous :: arrayNew(:)
2392 end subroutine
2393#endif
2394
2395#if LK4_ENABLED
2396 PURE module subroutine setRemappedRevNew_D1_LK4(array, index, action, arrayNew)
2397#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2398 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_LK4
2399#endif
2400 use pm_kind, only: LKG => LK4
2401 logical(LKG) , intent(in) , contiguous :: array(:)
2402 integer(IK) , intent(in) , contiguous :: index(:)
2403 type(reverse_type) , intent(in) :: action
2404 logical(LKG) , intent(out) , contiguous :: arrayNew(:)
2405 end subroutine
2406#endif
2407
2408#if LK3_ENABLED
2409 PURE module subroutine setRemappedRevNew_D1_LK3(array, index, action, arrayNew)
2410#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2411 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_LK3
2412#endif
2413 use pm_kind, only: LKG => LK3
2414 logical(LKG) , intent(in) , contiguous :: array(:)
2415 integer(IK) , intent(in) , contiguous :: index(:)
2416 type(reverse_type) , intent(in) :: action
2417 logical(LKG) , intent(out) , contiguous :: arrayNew(:)
2418 end subroutine
2419#endif
2420
2421#if LK2_ENABLED
2422 PURE module subroutine setRemappedRevNew_D1_LK2(array, index, action, arrayNew)
2423#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2424 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_LK2
2425#endif
2426 use pm_kind, only: LKG => LK2
2427 logical(LKG) , intent(in) , contiguous :: array(:)
2428 integer(IK) , intent(in) , contiguous :: index(:)
2429 type(reverse_type) , intent(in) :: action
2430 logical(LKG) , intent(out) , contiguous :: arrayNew(:)
2431 end subroutine
2432#endif
2433
2434#if LK1_ENABLED
2435 PURE module subroutine setRemappedRevNew_D1_LK1(array, index, action, arrayNew)
2436#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2437 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_LK1
2438#endif
2439 use pm_kind, only: LKG => LK1
2440 logical(LKG) , intent(in) , contiguous :: array(:)
2441 integer(IK) , intent(in) , contiguous :: index(:)
2442 type(reverse_type) , intent(in) :: action
2443 logical(LKG) , intent(out) , contiguous :: arrayNew(:)
2444 end subroutine
2445#endif
2446
2447 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2448
2449#if CK5_ENABLED
2450 PURE module subroutine setRemappedRevNew_D1_CK5(array, index, action, arrayNew)
2451#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2452 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_CK5
2453#endif
2454 use pm_kind, only: CKG => CK5
2455 complex(CKG) , intent(in) , contiguous :: array(:)
2456 integer(IK) , intent(in) , contiguous :: index(:)
2457 type(reverse_type) , intent(in) :: action
2458 complex(CKG) , intent(out) , contiguous :: arrayNew(:)
2459 end subroutine
2460#endif
2461
2462#if CK4_ENABLED
2463 PURE module subroutine setRemappedRevNew_D1_CK4(array, index, action, arrayNew)
2464#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2465 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_CK4
2466#endif
2467 use pm_kind, only: CKG => CK4
2468 complex(CKG) , intent(in) , contiguous :: array(:)
2469 integer(IK) , intent(in) , contiguous :: index(:)
2470 type(reverse_type) , intent(in) :: action
2471 complex(CKG) , intent(out) , contiguous :: arrayNew(:)
2472 end subroutine
2473#endif
2474
2475#if CK3_ENABLED
2476 PURE module subroutine setRemappedRevNew_D1_CK3(array, index, action, arrayNew)
2477#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2478 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_CK3
2479#endif
2480 use pm_kind, only: CKG => CK3
2481 complex(CKG) , intent(in) , contiguous :: array(:)
2482 integer(IK) , intent(in) , contiguous :: index(:)
2483 type(reverse_type) , intent(in) :: action
2484 complex(CKG) , intent(out) , contiguous :: arrayNew(:)
2485 end subroutine
2486#endif
2487
2488#if CK2_ENABLED
2489 PURE module subroutine setRemappedRevNew_D1_CK2(array, index, action, arrayNew)
2490#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2491 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_CK2
2492#endif
2493 use pm_kind, only: CKG => CK2
2494 complex(CKG) , intent(in) , contiguous :: array(:)
2495 integer(IK) , intent(in) , contiguous :: index(:)
2496 type(reverse_type) , intent(in) :: action
2497 complex(CKG) , intent(out) , contiguous :: arrayNew(:)
2498 end subroutine
2499#endif
2500
2501#if CK1_ENABLED
2502 PURE module subroutine setRemappedRevNew_D1_CK1(array, index, action, arrayNew)
2503#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2504 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_CK1
2505#endif
2506 use pm_kind, only: CKG => CK1
2507 complex(CKG) , intent(in) , contiguous :: array(:)
2508 integer(IK) , intent(in) , contiguous :: index(:)
2509 type(reverse_type) , intent(in) :: action
2510 complex(CKG) , intent(out) , contiguous :: arrayNew(:)
2511 end subroutine
2512#endif
2513
2514 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2515
2516#if RK5_ENABLED
2517 PURE module subroutine setRemappedRevNew_D1_RK5(array, index, action, arrayNew)
2518#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2519 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_RK5
2520#endif
2521 use pm_kind, only: RKG => RK5
2522 real(RKG) , intent(in) , contiguous :: array(:)
2523 integer(IK) , intent(in) , contiguous :: index(:)
2524 type(reverse_type) , intent(in) :: action
2525 real(RKG) , intent(out) , contiguous :: arrayNew(:)
2526 end subroutine
2527#endif
2528
2529#if RK4_ENABLED
2530 PURE module subroutine setRemappedRevNew_D1_RK4(array, index, action, arrayNew)
2531#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2532 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_RK4
2533#endif
2534 use pm_kind, only: RKG => RK4
2535 real(RKG) , intent(in) , contiguous :: array(:)
2536 integer(IK) , intent(in) , contiguous :: index(:)
2537 type(reverse_type) , intent(in) :: action
2538 real(RKG) , intent(out) , contiguous :: arrayNew(:)
2539 end subroutine
2540#endif
2541
2542#if RK3_ENABLED
2543 PURE module subroutine setRemappedRevNew_D1_RK3(array, index, action, arrayNew)
2544#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2545 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_RK3
2546#endif
2547 use pm_kind, only: RKG => RK3
2548 real(RKG) , intent(in) , contiguous :: array(:)
2549 integer(IK) , intent(in) , contiguous :: index(:)
2550 type(reverse_type) , intent(in) :: action
2551 real(RKG) , intent(out) , contiguous :: arrayNew(:)
2552 end subroutine
2553#endif
2554
2555#if RK2_ENABLED
2556 PURE module subroutine setRemappedRevNew_D1_RK2(array, index, action, arrayNew)
2557#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2558 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_RK2
2559#endif
2560 use pm_kind, only: RKG => RK2
2561 real(RKG) , intent(in) , contiguous :: array(:)
2562 integer(IK) , intent(in) , contiguous :: index(:)
2563 type(reverse_type) , intent(in) :: action
2564 real(RKG) , intent(out) , contiguous :: arrayNew(:)
2565 end subroutine
2566#endif
2567
2568#if RK1_ENABLED
2569 PURE module subroutine setRemappedRevNew_D1_RK1(array, index, action, arrayNew)
2570#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2571 !DEC$ ATTRIBUTES DLLEXPORT :: setRemappedRevNew_D1_RK1
2572#endif
2573 use pm_kind, only: RKG => RK1
2574 real(RKG) , intent(in) , contiguous :: array(:)
2575 integer(IK) , intent(in) , contiguous :: index(:)
2576 type(reverse_type) , intent(in) :: action
2577 real(RKG) , intent(out) , contiguous :: arrayNew(:)
2578 end subroutine
2579#endif
2580
2581 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2582 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2583 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2584 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2585 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2586 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2587 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2588 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2589 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2590
2591 end interface
2592
2593!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2594
2595end module pm_arrayRemap ! LCOV_EXCL_LINE
Generate a copy of the input array whose elements are reordered according to the input index array su...
Reorder the elements of the input array according to the input index array, such that   array = ar...
This module contains procedures and generic interfaces for remapping arrays of various types.
This module contains abstract and concrete derived types that are required for compile-time resolutio...
Definition: pm_array.F90:44
character(*, SK), parameter MODULE_NAME
Definition: pm_array.F90:50
type(reverse_type), parameter reverse
This is a scalar parameter object of type reverse_type that is exclusively used to request reversal o...
Definition: pm_array.F90:248
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter SK5
Definition: pm_kind.F90:326
integer, parameter LK1
Definition: pm_kind.F90:412
integer, parameter IK3
Definition: pm_kind.F90:368
integer, parameter RK5
Definition: pm_kind.F90:478
integer, parameter RK4
Definition: pm_kind.F90:489
integer, parameter SK1
Definition: pm_kind.F90:346
integer, parameter IK1
Definition: pm_kind.F90:382
integer, parameter LK5
Definition: pm_kind.F90:392
integer, parameter RK2
Definition: pm_kind.F90:511
integer, parameter CK1
Definition: pm_kind.F90:464
integer, parameter RK3
Definition: pm_kind.F90:500
integer, parameter LK
The default logical kind in the ParaMonte library: kind(.true.) in Fortran, kind(....
Definition: pm_kind.F90:541
integer, parameter LK2
Definition: pm_kind.F90:407
integer, parameter LK4
Definition: pm_kind.F90:397
integer, parameter CK5
Definition: pm_kind.F90:420
integer, parameter CK4
Definition: pm_kind.F90:431
integer, parameter SK4
Definition: pm_kind.F90:331
integer, parameter LK3
Definition: pm_kind.F90:402
integer, parameter IK2
Definition: pm_kind.F90:375
integer, parameter CK2
Definition: pm_kind.F90:453
integer, parameter SK2
Definition: pm_kind.F90:341
integer, parameter CK3
Definition: pm_kind.F90:442
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
Definition: pm_kind.F90:540
integer, parameter IK4
Definition: pm_kind.F90:361
integer, parameter IK5
Definition: pm_kind.F90:354
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
Definition: pm_kind.F90:539
integer, parameter RK1
Definition: pm_kind.F90:522
integer, parameter SK3
Definition: pm_kind.F90:336
This is a concrete derived type whose instances are exclusively used to request reversal of a given a...
Definition: pm_array.F90:213