ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_arrayCopy.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
39
40!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
41
43
44 use pm_kind, only: IK, LK, RK, SK
45
46 implicit none
47
48 character(*,SK), parameter :: MODULE_NAME = "@pm_arrayCopy"
49
50!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51
121
122 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
123 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
124 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
125
126 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
127
128#if SK5_ENABLED
129 PURE module subroutine setCopyIndexed_D0_SK5(From, To, indexF, indexT)
130#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
131 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D0_SK5
132#endif
133 use pm_kind, only: SKG => SK5
134 character(*,SKG) , intent(in) :: From
135 character(*,SKG) , intent(inout) :: To
136 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
137 end subroutine
138#endif
139
140#if SK4_ENABLED
141 PURE module subroutine setCopyIndexed_D0_SK4(From, To, indexF, indexT)
142#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
143 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D0_SK4
144#endif
145 use pm_kind, only: SKG => SK4
146 character(*,SKG) , intent(in) :: From
147 character(*,SKG) , intent(inout) :: To
148 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
149 end subroutine
150#endif
151
152#if SK3_ENABLED
153 PURE module subroutine setCopyIndexed_D0_SK3(From, To, indexF, indexT)
154#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
155 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D0_SK3
156#endif
157 use pm_kind, only: SKG => SK3
158 character(*,SKG) , intent(in) :: From
159 character(*,SKG) , intent(inout) :: To
160 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
161 end subroutine
162#endif
163
164#if SK2_ENABLED
165 PURE module subroutine setCopyIndexed_D0_SK2(From, To, indexF, indexT)
166#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
167 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D0_SK2
168#endif
169 use pm_kind, only: SKG => SK2
170 character(*,SKG) , intent(in) :: From
171 character(*,SKG) , intent(inout) :: To
172 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
173 end subroutine
174#endif
175
176#if SK1_ENABLED
177 PURE module subroutine setCopyIndexed_D0_SK1(From, To, indexF, indexT)
178#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
179 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D0_SK1
180#endif
181 use pm_kind, only: SKG => SK1
182 character(*,SKG) , intent(in) :: From
183 character(*,SKG) , intent(inout) :: To
184 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
185 end subroutine
186#endif
187
188 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
189
190#if SK5_ENABLED
191 PURE module subroutine setCopyIndexed_D1_SK5(From, To, indexF, indexT)
192#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
193 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_SK5
194#endif
195 use pm_kind, only: SKG => SK5
196 character(*,SKG) , intent(in) , contiguous :: From(:)
197 character(*,SKG) , intent(inout) , contiguous :: To(:)
198 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
199 end subroutine
200#endif
201
202#if SK4_ENABLED
203 PURE module subroutine setCopyIndexed_D1_SK4(From, To, indexF, indexT)
204#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
205 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_SK4
206#endif
207 use pm_kind, only: SKG => SK4
208 character(*,SKG) , intent(in) , contiguous :: From(:)
209 character(*,SKG) , intent(inout) , contiguous :: To(:)
210 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
211 end subroutine
212#endif
213
214#if SK3_ENABLED
215 PURE module subroutine setCopyIndexed_D1_SK3(From, To, indexF, indexT)
216#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
217 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_SK3
218#endif
219 use pm_kind, only: SKG => SK3
220 character(*,SKG) , intent(in) , contiguous :: From(:)
221 character(*,SKG) , intent(inout) , contiguous :: To(:)
222 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
223 end subroutine
224#endif
225
226#if SK2_ENABLED
227 PURE module subroutine setCopyIndexed_D1_SK2(From, To, indexF, indexT)
228#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
229 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_SK2
230#endif
231 use pm_kind, only: SKG => SK2
232 character(*,SKG) , intent(in) , contiguous :: From(:)
233 character(*,SKG) , intent(inout) , contiguous :: To(:)
234 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
235 end subroutine
236#endif
237
238#if SK1_ENABLED
239 PURE module subroutine setCopyIndexed_D1_SK1(From, To, indexF, indexT)
240#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
241 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_SK1
242#endif
243 use pm_kind, only: SKG => SK1
244 character(*,SKG) , intent(in) , contiguous :: From(:)
245 character(*,SKG) , intent(inout) , contiguous :: To(:)
246 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
247 end subroutine
248#endif
249
250 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
251
252#if IK5_ENABLED
253 PURE module subroutine setCopyIndexed_D1_IK5(From, To, indexF, indexT)
254#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
255 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_IK5
256#endif
257 use pm_kind, only: IKG => IK5
258 integer(IKG) , intent(in) , contiguous :: From(:)
259 integer(IKG) , intent(inout) , contiguous :: To(:)
260 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
261 end subroutine
262#endif
263
264#if IK4_ENABLED
265 PURE module subroutine setCopyIndexed_D1_IK4(From, To, indexF, indexT)
266#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
267 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_IK4
268#endif
269 use pm_kind, only: IKG => IK4
270 integer(IKG) , intent(in) , contiguous :: From(:)
271 integer(IKG) , intent(inout) , contiguous :: To(:)
272 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
273 end subroutine
274#endif
275
276#if IK3_ENABLED
277 PURE module subroutine setCopyIndexed_D1_IK3(From, To, indexF, indexT)
278#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
279 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_IK3
280#endif
281 use pm_kind, only: IKG => IK3
282 integer(IKG) , intent(in) , contiguous :: From(:)
283 integer(IKG) , intent(inout) , contiguous :: To(:)
284 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
285 end subroutine
286#endif
287
288#if IK2_ENABLED
289 PURE module subroutine setCopyIndexed_D1_IK2(From, To, indexF, indexT)
290#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
291 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_IK2
292#endif
293 use pm_kind, only: IKG => IK2
294 integer(IKG) , intent(in) , contiguous :: From(:)
295 integer(IKG) , intent(inout) , contiguous :: To(:)
296 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
297 end subroutine
298#endif
299
300#if IK1_ENABLED
301 PURE module subroutine setCopyIndexed_D1_IK1(From, To, indexF, indexT)
302#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
303 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_IK1
304#endif
305 use pm_kind, only: IKG => IK1
306 integer(IKG) , intent(in) , contiguous :: From(:)
307 integer(IKG) , intent(inout) , contiguous :: To(:)
308 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
309 end subroutine
310#endif
311
312 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
313
314#if LK5_ENABLED
315 PURE module subroutine setCopyIndexed_D1_LK5(From, To, indexF, indexT)
316#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
317 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_LK5
318#endif
319 use pm_kind, only: LKG => LK5
320 logical(LKG) , intent(in) , contiguous :: From(:)
321 logical(LKG) , intent(inout) , contiguous :: To(:)
322 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
323 end subroutine
324#endif
325
326#if LK4_ENABLED
327 PURE module subroutine setCopyIndexed_D1_LK4(From, To, indexF, indexT)
328#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
329 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_LK4
330#endif
331 use pm_kind, only: LKG => LK4
332 logical(LKG) , intent(in) , contiguous :: From(:)
333 logical(LKG) , intent(inout) , contiguous :: To(:)
334 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
335 end subroutine
336#endif
337
338#if LK3_ENABLED
339 PURE module subroutine setCopyIndexed_D1_LK3(From, To, indexF, indexT)
340#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
341 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_LK3
342#endif
343 use pm_kind, only: LKG => LK3
344 logical(LKG) , intent(in) , contiguous :: From(:)
345 logical(LKG) , intent(inout) , contiguous :: To(:)
346 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
347 end subroutine
348#endif
349
350#if LK2_ENABLED
351 PURE module subroutine setCopyIndexed_D1_LK2(From, To, indexF, indexT)
352#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
353 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_LK2
354#endif
355 use pm_kind, only: LKG => LK2
356 logical(LKG) , intent(in) , contiguous :: From(:)
357 logical(LKG) , intent(inout) , contiguous :: To(:)
358 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
359 end subroutine
360#endif
361
362#if LK1_ENABLED
363 PURE module subroutine setCopyIndexed_D1_LK1(From, To, indexF, indexT)
364#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
365 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_LK1
366#endif
367 use pm_kind, only: LKG => LK1
368 logical(LKG) , intent(in) , contiguous :: From(:)
369 logical(LKG) , intent(inout) , contiguous :: To(:)
370 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
371 end subroutine
372#endif
373
374 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
375
376#if CK5_ENABLED
377 PURE module subroutine setCopyIndexed_D1_CK5(From, To, indexF, indexT)
378#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
379 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_CK5
380#endif
381 use pm_kind, only: CKG => CK5
382 complex(CKG) , intent(in) , contiguous :: From(:)
383 complex(CKG) , intent(inout) , contiguous :: To(:)
384 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
385 end subroutine
386#endif
387
388#if CK4_ENABLED
389 PURE module subroutine setCopyIndexed_D1_CK4(From, To, indexF, indexT)
390#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
391 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_CK4
392#endif
393 use pm_kind, only: CKG => CK4
394 complex(CKG) , intent(in) , contiguous :: From(:)
395 complex(CKG) , intent(inout) , contiguous :: To(:)
396 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
397 end subroutine
398#endif
399
400#if CK3_ENABLED
401 PURE module subroutine setCopyIndexed_D1_CK3(From, To, indexF, indexT)
402#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
403 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_CK3
404#endif
405 use pm_kind, only: CKG => CK3
406 complex(CKG) , intent(in) , contiguous :: From(:)
407 complex(CKG) , intent(inout) , contiguous :: To(:)
408 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
409 end subroutine
410#endif
411
412#if CK2_ENABLED
413 PURE module subroutine setCopyIndexed_D1_CK2(From, To, indexF, indexT)
414#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
415 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_CK2
416#endif
417 use pm_kind, only: CKG => CK2
418 complex(CKG) , intent(in) , contiguous :: From(:)
419 complex(CKG) , intent(inout) , contiguous :: To(:)
420 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
421 end subroutine
422#endif
423
424#if CK1_ENABLED
425 PURE module subroutine setCopyIndexed_D1_CK1(From, To, indexF, indexT)
426#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
427 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_CK1
428#endif
429 use pm_kind, only: CKG => CK1
430 complex(CKG) , intent(in) , contiguous :: From(:)
431 complex(CKG) , intent(inout) , contiguous :: To(:)
432 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
433 end subroutine
434#endif
435
436 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
437
438#if RK5_ENABLED
439 PURE module subroutine setCopyIndexed_D1_RK5(From, To, indexF, indexT)
440#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
441 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_RK5
442#endif
443 use pm_kind, only: RKG => RK5
444 real(RKG) , intent(in) , contiguous :: From(:)
445 real(RKG) , intent(inout) , contiguous :: To(:)
446 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
447 end subroutine
448#endif
449
450#if RK4_ENABLED
451 PURE module subroutine setCopyIndexed_D1_RK4(From, To, indexF, indexT)
452#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
453 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_RK4
454#endif
455 use pm_kind, only: RKG => RK4
456 real(RKG) , intent(in) , contiguous :: From(:)
457 real(RKG) , intent(inout) , contiguous :: To(:)
458 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
459 end subroutine
460#endif
461
462#if RK3_ENABLED
463 PURE module subroutine setCopyIndexed_D1_RK3(From, To, indexF, indexT)
464#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
465 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_RK3
466#endif
467 use pm_kind, only: RKG => RK3
468 real(RKG) , intent(in) , contiguous :: From(:)
469 real(RKG) , intent(inout) , contiguous :: To(:)
470 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
471 end subroutine
472#endif
473
474#if RK2_ENABLED
475 PURE module subroutine setCopyIndexed_D1_RK2(From, To, indexF, indexT)
476#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
477 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_RK2
478#endif
479 use pm_kind, only: RKG => RK2
480 real(RKG) , intent(in) , contiguous :: From(:)
481 real(RKG) , intent(inout) , contiguous :: To(:)
482 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
483 end subroutine
484#endif
485
486#if RK1_ENABLED
487 PURE module subroutine setCopyIndexed_D1_RK1(From, To, indexF, indexT)
488#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
489 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyIndexed_D1_RK1
490#endif
491 use pm_kind, only: RKG => RK1
492 real(RKG) , intent(in) , contiguous :: From(:)
493 real(RKG) , intent(inout) , contiguous :: To(:)
494 integer(IK) , intent(in) , contiguous :: indexF(:), indexT(:)
495 end subroutine
496#endif
497
498 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
499
500 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
501 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
502 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
503
504 end interface
505
506!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
507
593
594 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
595 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
596 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
597
598 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
599
600#if SK5_ENABLED
601 PURE module subroutine setCopyStrided_D0_SK5(From, To, incf, inct)
602#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
603 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D0_SK5
604#endif
605 use pm_kind, only: SKG => SK5
606 character(*,SKG) , intent(in) :: From
607 character(*,SKG) , intent(inout) :: To
608 integer(IK) , intent(in) :: incf, inct
609 end subroutine
610#endif
611
612#if SK4_ENABLED
613 PURE module subroutine setCopyStrided_D0_SK4(From, To, incf, inct)
614#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
615 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D0_SK4
616#endif
617 use pm_kind, only: SKG => SK4
618 character(*,SKG) , intent(in) :: From
619 character(*,SKG) , intent(inout) :: To
620 integer(IK) , intent(in) :: incf, inct
621 end subroutine
622#endif
623
624#if SK3_ENABLED
625 PURE module subroutine setCopyStrided_D0_SK3(From, To, incf, inct)
626#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
627 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D0_SK3
628#endif
629 use pm_kind, only: SKG => SK3
630 character(*,SKG) , intent(in) :: From
631 character(*,SKG) , intent(inout) :: To
632 integer(IK) , intent(in) :: incf, inct
633 end subroutine
634#endif
635
636#if SK2_ENABLED
637 PURE module subroutine setCopyStrided_D0_SK2(From, To, incf, inct)
638#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
639 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D0_SK2
640#endif
641 use pm_kind, only: SKG => SK2
642 character(*,SKG) , intent(in) :: From
643 character(*,SKG) , intent(inout) :: To
644 integer(IK) , intent(in) :: incf, inct
645 end subroutine
646#endif
647
648#if SK1_ENABLED
649 PURE module subroutine setCopyStrided_D0_SK1(From, To, incf, inct)
650#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
651 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D0_SK1
652#endif
653 use pm_kind, only: SKG => SK1
654 character(*,SKG) , intent(in) :: From
655 character(*,SKG) , intent(inout) :: To
656 integer(IK) , intent(in) :: incf, inct
657 end subroutine
658#endif
659
660 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
661
662#if SK5_ENABLED
663 PURE module subroutine setCopyStrided_D1_SK5(From, To, incf, inct)
664#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
665 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_SK5
666#endif
667 use pm_kind, only: SKG => SK5
668 character(*,SKG) , intent(in) , contiguous :: From(:)
669 character(*,SKG) , intent(inout) , contiguous :: To(:)
670 integer(IK) , intent(in) :: incf, inct
671 end subroutine
672#endif
673
674#if SK4_ENABLED
675 PURE module subroutine setCopyStrided_D1_SK4(From, To, incf, inct)
676#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
677 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_SK4
678#endif
679 use pm_kind, only: SKG => SK4
680 character(*,SKG) , intent(in) , contiguous :: From(:)
681 character(*,SKG) , intent(inout) , contiguous :: To(:)
682 integer(IK) , intent(in) :: incf, inct
683 end subroutine
684#endif
685
686#if SK3_ENABLED
687 PURE module subroutine setCopyStrided_D1_SK3(From, To, incf, inct)
688#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
689 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_SK3
690#endif
691 use pm_kind, only: SKG => SK3
692 character(*,SKG) , intent(in) , contiguous :: From(:)
693 character(*,SKG) , intent(inout) , contiguous :: To(:)
694 integer(IK) , intent(in) :: incf, inct
695 end subroutine
696#endif
697
698#if SK2_ENABLED
699 PURE module subroutine setCopyStrided_D1_SK2(From, To, incf, inct)
700#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
701 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_SK2
702#endif
703 use pm_kind, only: SKG => SK2
704 character(*,SKG) , intent(in) , contiguous :: From(:)
705 character(*,SKG) , intent(inout) , contiguous :: To(:)
706 integer(IK) , intent(in) :: incf, inct
707 end subroutine
708#endif
709
710#if SK1_ENABLED
711 PURE module subroutine setCopyStrided_D1_SK1(From, To, incf, inct)
712#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
713 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_SK1
714#endif
715 use pm_kind, only: SKG => SK1
716 character(*,SKG) , intent(in) , contiguous :: From(:)
717 character(*,SKG) , intent(inout) , contiguous :: To(:)
718 integer(IK) , intent(in) :: incf, inct
719 end subroutine
720#endif
721
722 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
723
724#if IK5_ENABLED
725 PURE module subroutine setCopyStrided_D1_IK5(From, To, incf, inct)
726#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
727 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_IK5
728#endif
729 use pm_kind, only: IKG => IK5
730 integer(IKG) , intent(in) , contiguous :: From(:)
731 integer(IKG) , intent(inout) , contiguous :: To(:)
732 integer(IK) , intent(in) :: incf, inct
733 end subroutine
734#endif
735
736#if IK4_ENABLED
737 PURE module subroutine setCopyStrided_D1_IK4(From, To, incf, inct)
738#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
739 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_IK4
740#endif
741 use pm_kind, only: IKG => IK4
742 integer(IKG) , intent(in) , contiguous :: From(:)
743 integer(IKG) , intent(inout) , contiguous :: To(:)
744 integer(IK) , intent(in) :: incf, inct
745 end subroutine
746#endif
747
748#if IK3_ENABLED
749 PURE module subroutine setCopyStrided_D1_IK3(From, To, incf, inct)
750#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
751 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_IK3
752#endif
753 use pm_kind, only: IKG => IK3
754 integer(IKG) , intent(in) , contiguous :: From(:)
755 integer(IKG) , intent(inout) , contiguous :: To(:)
756 integer(IK) , intent(in) :: incf, inct
757 end subroutine
758#endif
759
760#if IK2_ENABLED
761 PURE module subroutine setCopyStrided_D1_IK2(From, To, incf, inct)
762#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
763 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_IK2
764#endif
765 use pm_kind, only: IKG => IK2
766 integer(IKG) , intent(in) , contiguous :: From(:)
767 integer(IKG) , intent(inout) , contiguous :: To(:)
768 integer(IK) , intent(in) :: incf, inct
769 end subroutine
770#endif
771
772#if IK1_ENABLED
773 PURE module subroutine setCopyStrided_D1_IK1(From, To, incf, inct)
774#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
775 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_IK1
776#endif
777 use pm_kind, only: IKG => IK1
778 integer(IKG) , intent(in) , contiguous :: From(:)
779 integer(IKG) , intent(inout) , contiguous :: To(:)
780 integer(IK) , intent(in) :: incf, inct
781 end subroutine
782#endif
783
784 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
785
786#if LK5_ENABLED
787 PURE module subroutine setCopyStrided_D1_LK5(From, To, incf, inct)
788#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
789 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_LK5
790#endif
791 use pm_kind, only: LKG => LK5
792 logical(LKG) , intent(in) , contiguous :: From(:)
793 logical(LKG) , intent(inout) , contiguous :: To(:)
794 integer(IK) , intent(in) :: incf, inct
795 end subroutine
796#endif
797
798#if LK4_ENABLED
799 PURE module subroutine setCopyStrided_D1_LK4(From, To, incf, inct)
800#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
801 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_LK4
802#endif
803 use pm_kind, only: LKG => LK4
804 logical(LKG) , intent(in) , contiguous :: From(:)
805 logical(LKG) , intent(inout) , contiguous :: To(:)
806 integer(IK) , intent(in) :: incf, inct
807 end subroutine
808#endif
809
810#if LK3_ENABLED
811 PURE module subroutine setCopyStrided_D1_LK3(From, To, incf, inct)
812#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
813 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_LK3
814#endif
815 use pm_kind, only: LKG => LK3
816 logical(LKG) , intent(in) , contiguous :: From(:)
817 logical(LKG) , intent(inout) , contiguous :: To(:)
818 integer(IK) , intent(in) :: incf, inct
819 end subroutine
820#endif
821
822#if LK2_ENABLED
823 PURE module subroutine setCopyStrided_D1_LK2(From, To, incf, inct)
824#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
825 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_LK2
826#endif
827 use pm_kind, only: LKG => LK2
828 logical(LKG) , intent(in) , contiguous :: From(:)
829 logical(LKG) , intent(inout) , contiguous :: To(:)
830 integer(IK) , intent(in) :: incf, inct
831 end subroutine
832#endif
833
834#if LK1_ENABLED
835 PURE module subroutine setCopyStrided_D1_LK1(From, To, incf, inct)
836#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
837 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_LK1
838#endif
839 use pm_kind, only: LKG => LK1
840 logical(LKG) , intent(in) , contiguous :: From(:)
841 logical(LKG) , intent(inout) , contiguous :: To(:)
842 integer(IK) , intent(in) :: incf, inct
843 end subroutine
844#endif
845
846 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
847
848#if CK5_ENABLED
849 PURE module subroutine setCopyStrided_D1_CK5(From, To, incf, inct)
850#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
851 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_CK5
852#endif
853 use pm_kind, only: CKG => CK5
854 complex(CKG) , intent(in) , contiguous :: From(:)
855 complex(CKG) , intent(inout) , contiguous :: To(:)
856 integer(IK) , intent(in) :: incf, inct
857 end subroutine
858#endif
859
860#if CK4_ENABLED
861 PURE module subroutine setCopyStrided_D1_CK4(From, To, incf, inct)
862#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
863 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_CK4
864#endif
865 use pm_kind, only: CKG => CK4
866 complex(CKG) , intent(in) , contiguous :: From(:)
867 complex(CKG) , intent(inout) , contiguous :: To(:)
868 integer(IK) , intent(in) :: incf, inct
869 end subroutine
870#endif
871
872#if CK3_ENABLED
873 PURE module subroutine setCopyStrided_D1_CK3(From, To, incf, inct)
874#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
875 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_CK3
876#endif
877 use pm_kind, only: CKG => CK3
878 complex(CKG) , intent(in) , contiguous :: From(:)
879 complex(CKG) , intent(inout) , contiguous :: To(:)
880 integer(IK) , intent(in) :: incf, inct
881 end subroutine
882#endif
883
884#if CK2_ENABLED
885 PURE module subroutine setCopyStrided_D1_CK2(From, To, incf, inct)
886#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
887 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_CK2
888#endif
889 use pm_kind, only: CKG => CK2
890 complex(CKG) , intent(in) , contiguous :: From(:)
891 complex(CKG) , intent(inout) , contiguous :: To(:)
892 integer(IK) , intent(in) :: incf, inct
893 end subroutine
894#endif
895
896#if CK1_ENABLED
897 PURE module subroutine setCopyStrided_D1_CK1(From, To, incf, inct)
898#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
899 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_CK1
900#endif
901 use pm_kind, only: CKG => CK1
902 complex(CKG) , intent(in) , contiguous :: From(:)
903 complex(CKG) , intent(inout) , contiguous :: To(:)
904 integer(IK) , intent(in) :: incf, inct
905 end subroutine
906#endif
907
908 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
909
910#if RK5_ENABLED
911 PURE module subroutine setCopyStrided_D1_RK5(From, To, incf, inct)
912#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
913 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_RK5
914#endif
915 use pm_kind, only: RKG => RK5
916 real(RKG) , intent(in) , contiguous :: From(:)
917 real(RKG) , intent(inout) , contiguous :: To(:)
918 integer(IK) , intent(in) :: incf, inct
919 end subroutine
920#endif
921
922#if RK4_ENABLED
923 PURE module subroutine setCopyStrided_D1_RK4(From, To, incf, inct)
924#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
925 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_RK4
926#endif
927 use pm_kind, only: RKG => RK4
928 real(RKG) , intent(in) , contiguous :: From(:)
929 real(RKG) , intent(inout) , contiguous :: To(:)
930 integer(IK) , intent(in) :: incf, inct
931 end subroutine
932#endif
933
934#if RK3_ENABLED
935 PURE module subroutine setCopyStrided_D1_RK3(From, To, incf, inct)
936#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
937 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_RK3
938#endif
939 use pm_kind, only: RKG => RK3
940 real(RKG) , intent(in) , contiguous :: From(:)
941 real(RKG) , intent(inout) , contiguous :: To(:)
942 integer(IK) , intent(in) :: incf, inct
943 end subroutine
944#endif
945
946#if RK2_ENABLED
947 PURE module subroutine setCopyStrided_D1_RK2(From, To, incf, inct)
948#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
949 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_RK2
950#endif
951 use pm_kind, only: RKG => RK2
952 real(RKG) , intent(in) , contiguous :: From(:)
953 real(RKG) , intent(inout) , contiguous :: To(:)
954 integer(IK) , intent(in) :: incf, inct
955 end subroutine
956#endif
957
958#if RK1_ENABLED
959 PURE module subroutine setCopyStrided_D1_RK1(From, To, incf, inct)
960#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
961 !DEC$ ATTRIBUTES DLLEXPORT :: setCopyStrided_D1_RK1
962#endif
963 use pm_kind, only: RKG => RK1
964 real(RKG) , intent(in) , contiguous :: From(:)
965 real(RKG) , intent(inout) , contiguous :: To(:)
966 integer(IK) , intent(in) :: incf, inct
967 end subroutine
968#endif
969
970 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
971
972 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
973 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
974 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
975
976 end interface
977
978!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
979
980end module pm_arrayCopy
Copy an input scalar string or vector of arbitrary intrinsic type, kind, and size to another scalar s...
Copy the strided elements of an input scalar string or vector of arbitrary intrinsic type,...
This module contains procedures and generic interfaces for copying strided or indexed elements of one...
character(*, SK), parameter MODULE_NAME
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter SK5
Definition: pm_kind.F90:326
integer, parameter LK1
Definition: pm_kind.F90:412
integer, parameter IK3
Definition: pm_kind.F90:368
integer, parameter RK5
Definition: pm_kind.F90:478
integer, parameter RK4
Definition: pm_kind.F90:489
integer, parameter SK1
Definition: pm_kind.F90:346
integer, parameter IK1
Definition: pm_kind.F90:382
integer, parameter LK5
Definition: pm_kind.F90:392
integer, parameter RK2
Definition: pm_kind.F90:511
integer, parameter RK
The default real kind in the ParaMonte library: real64 in Fortran, c_double in C-Fortran Interoperati...
Definition: pm_kind.F90:543
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