Line data Source code
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 :
17 : !> \brief
18 : !> This file contains procedure implementations of [pm_arrayCopy](@ref pm_arrayCopy).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \AmirShahmoradi, April 21, 2017, 1:54 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_arrayCopy) routines ! LCOV_EXCL_LINE
28 :
29 : #if CHECK_ENABLED
30 : use pm_err, only: getFine
31 : use pm_val2str, only: getStr
32 : use pm_err, only: setAsserted
33 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
34 : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
35 : #else
36 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) continue;
37 : #endif
38 :
39 : use pm_err, only: setAsserted
40 : use pm_val2str, only: getStr
41 : implicit none
42 :
43 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44 :
45 : contains
46 :
47 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
48 :
49 : #define setCopyIndexed_ENABLED 1
50 :
51 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
54 :
55 : #define D0_ENABLED 1
56 :
57 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
58 :
59 : #define SK_ENABLED 1
60 :
61 : #if SK5_ENABLED
62 : module procedure setCopyIndexed_D0_SK5
63 : use pm_kind, only: SKC => SK5
64 : #include "pm_arrayCopy@routines.inc.F90"
65 : end procedure
66 : #endif
67 :
68 : #if SK4_ENABLED
69 : module procedure setCopyIndexed_D0_SK4
70 : use pm_kind, only: SKC => SK4
71 : #include "pm_arrayCopy@routines.inc.F90"
72 : end procedure
73 : #endif
74 :
75 : #if SK3_ENABLED
76 : module procedure setCopyIndexed_D0_SK3
77 : use pm_kind, only: SKC => SK3
78 : #include "pm_arrayCopy@routines.inc.F90"
79 : end procedure
80 : #endif
81 :
82 : #if SK2_ENABLED
83 : module procedure setCopyIndexed_D0_SK2
84 : use pm_kind, only: SKC => SK2
85 : #include "pm_arrayCopy@routines.inc.F90"
86 : end procedure
87 : #endif
88 :
89 : #if SK1_ENABLED
90 204 : module procedure setCopyIndexed_D0_SK1
91 : use pm_kind, only: SKC => SK1
92 : #include "pm_arrayCopy@routines.inc.F90"
93 204 : end procedure
94 : #endif
95 :
96 : #undef SK_ENABLED
97 :
98 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
99 :
100 : #undef D0_ENABLED
101 :
102 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
103 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
104 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
105 :
106 : #define D1_ENABLED 1
107 :
108 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
109 :
110 : #define SK_ENABLED 1
111 :
112 : #if SK5_ENABLED
113 : module procedure setCopyIndexed_D1_SK5
114 : use pm_kind, only: SKC => SK5
115 : #include "pm_arrayCopy@routines.inc.F90"
116 : end procedure
117 : #endif
118 :
119 : #if SK4_ENABLED
120 : module procedure setCopyIndexed_D1_SK4
121 : use pm_kind, only: SKC => SK4
122 : #include "pm_arrayCopy@routines.inc.F90"
123 : end procedure
124 : #endif
125 :
126 : #if SK3_ENABLED
127 : module procedure setCopyIndexed_D1_SK3
128 : use pm_kind, only: SKC => SK3
129 : #include "pm_arrayCopy@routines.inc.F90"
130 : end procedure
131 : #endif
132 :
133 : #if SK2_ENABLED
134 : module procedure setCopyIndexed_D1_SK2
135 : use pm_kind, only: SKC => SK2
136 : #include "pm_arrayCopy@routines.inc.F90"
137 : end procedure
138 : #endif
139 :
140 : #if SK1_ENABLED
141 403 : module procedure setCopyIndexed_D1_SK1
142 : use pm_kind, only: SKC => SK1
143 : #include "pm_arrayCopy@routines.inc.F90"
144 403 : end procedure
145 : #endif
146 :
147 : #undef SK_ENABLED
148 :
149 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
150 :
151 : #define IK_ENABLED 1
152 :
153 : #if IK5_ENABLED
154 200 : module procedure setCopyIndexed_D1_IK5
155 : use pm_kind, only: IKC => IK5
156 : #include "pm_arrayCopy@routines.inc.F90"
157 200 : end procedure
158 : #endif
159 :
160 : #if IK4_ENABLED
161 200 : module procedure setCopyIndexed_D1_IK4
162 : use pm_kind, only: IKC => IK4
163 : #include "pm_arrayCopy@routines.inc.F90"
164 200 : end procedure
165 : #endif
166 :
167 : #if IK3_ENABLED
168 202 : module procedure setCopyIndexed_D1_IK3
169 : use pm_kind, only: IKC => IK3
170 : #include "pm_arrayCopy@routines.inc.F90"
171 202 : end procedure
172 : #endif
173 :
174 : #if IK2_ENABLED
175 200 : module procedure setCopyIndexed_D1_IK2
176 : use pm_kind, only: IKC => IK2
177 : #include "pm_arrayCopy@routines.inc.F90"
178 200 : end procedure
179 : #endif
180 :
181 : #if IK1_ENABLED
182 200 : module procedure setCopyIndexed_D1_IK1
183 : use pm_kind, only: IKC => IK1
184 : #include "pm_arrayCopy@routines.inc.F90"
185 200 : end procedure
186 : #endif
187 :
188 : #undef IK_ENABLED
189 :
190 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
191 :
192 : #define LK_ENABLED 1
193 :
194 : #if LK5_ENABLED
195 200 : module procedure setCopyIndexed_D1_LK5
196 : use pm_kind, only: LKC => LK5
197 : #include "pm_arrayCopy@routines.inc.F90"
198 200 : end procedure
199 : #endif
200 :
201 : #if LK4_ENABLED
202 200 : module procedure setCopyIndexed_D1_LK4
203 : use pm_kind, only: LKC => LK4
204 : #include "pm_arrayCopy@routines.inc.F90"
205 200 : end procedure
206 : #endif
207 :
208 : #if LK3_ENABLED
209 201 : module procedure setCopyIndexed_D1_LK3
210 : use pm_kind, only: LKC => LK3
211 : #include "pm_arrayCopy@routines.inc.F90"
212 201 : end procedure
213 : #endif
214 :
215 : #if LK2_ENABLED
216 200 : module procedure setCopyIndexed_D1_LK2
217 : use pm_kind, only: LKC => LK2
218 : #include "pm_arrayCopy@routines.inc.F90"
219 200 : end procedure
220 : #endif
221 :
222 : #if LK1_ENABLED
223 200 : module procedure setCopyIndexed_D1_LK1
224 : use pm_kind, only: LKC => LK1
225 : #include "pm_arrayCopy@routines.inc.F90"
226 200 : end procedure
227 : #endif
228 :
229 : #undef LK_ENABLED
230 :
231 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
232 :
233 : #define CK_ENABLED 1
234 :
235 : #if CK5_ENABLED
236 : module procedure setCopyIndexed_D1_CK5
237 : use pm_kind, only: CKC => CK5
238 : #include "pm_arrayCopy@routines.inc.F90"
239 : end procedure
240 : #endif
241 :
242 : #if CK4_ENABLED
243 200 : module procedure setCopyIndexed_D1_CK4
244 : use pm_kind, only: CKC => CK4
245 : #include "pm_arrayCopy@routines.inc.F90"
246 200 : end procedure
247 : #endif
248 :
249 : #if CK3_ENABLED
250 200 : module procedure setCopyIndexed_D1_CK3
251 : use pm_kind, only: CKC => CK3
252 : #include "pm_arrayCopy@routines.inc.F90"
253 200 : end procedure
254 : #endif
255 :
256 : #if CK2_ENABLED
257 200 : module procedure setCopyIndexed_D1_CK2
258 : use pm_kind, only: CKC => CK2
259 : #include "pm_arrayCopy@routines.inc.F90"
260 200 : end procedure
261 : #endif
262 :
263 : #if CK1_ENABLED
264 200 : module procedure setCopyIndexed_D1_CK1
265 : use pm_kind, only: CKC => CK1
266 : #include "pm_arrayCopy@routines.inc.F90"
267 200 : end procedure
268 : #endif
269 :
270 : #undef CK_ENABLED
271 :
272 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
273 :
274 : #define RK_ENABLED 1
275 :
276 : #if RK5_ENABLED
277 : module procedure setCopyIndexed_D1_RK5
278 : use pm_kind, only: RKC => RK5
279 : #include "pm_arrayCopy@routines.inc.F90"
280 : end procedure
281 : #endif
282 :
283 : #if RK4_ENABLED
284 200 : module procedure setCopyIndexed_D1_RK4
285 : use pm_kind, only: RKC => RK4
286 : #include "pm_arrayCopy@routines.inc.F90"
287 200 : end procedure
288 : #endif
289 :
290 : #if RK3_ENABLED
291 200 : module procedure setCopyIndexed_D1_RK3
292 : use pm_kind, only: RKC => RK3
293 : #include "pm_arrayCopy@routines.inc.F90"
294 200 : end procedure
295 : #endif
296 :
297 : #if RK2_ENABLED
298 200 : module procedure setCopyIndexed_D1_RK2
299 : use pm_kind, only: RKC => RK2
300 : #include "pm_arrayCopy@routines.inc.F90"
301 200 : end procedure
302 : #endif
303 :
304 : #if RK1_ENABLED
305 204 : module procedure setCopyIndexed_D1_RK1
306 : use pm_kind, only: RKC => RK1
307 : #include "pm_arrayCopy@routines.inc.F90"
308 204 : end procedure
309 : #endif
310 :
311 : #undef RK_ENABLED
312 :
313 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
314 :
315 : #undef D1_ENABLED
316 :
317 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
318 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
319 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
320 :
321 : #undef setCopyIndexed_ENABLED
322 :
323 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
324 :
325 : #define setCopyStrided_ENABLED 1
326 :
327 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
328 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
329 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
330 :
331 : #define D0_ENABLED 1
332 :
333 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
334 :
335 : #define SK_ENABLED 1
336 :
337 : #if SK5_ENABLED
338 : module procedure setCopyStrided_D0_SK5
339 : use pm_kind, only: SKC => SK5
340 : #include "pm_arrayCopy@routines.inc.F90"
341 : end procedure
342 : #endif
343 :
344 : #if SK4_ENABLED
345 : module procedure setCopyStrided_D0_SK4
346 : use pm_kind, only: SKC => SK4
347 : #include "pm_arrayCopy@routines.inc.F90"
348 : end procedure
349 : #endif
350 :
351 : #if SK3_ENABLED
352 : module procedure setCopyStrided_D0_SK3
353 : use pm_kind, only: SKC => SK3
354 : #include "pm_arrayCopy@routines.inc.F90"
355 : end procedure
356 : #endif
357 :
358 : #if SK2_ENABLED
359 : module procedure setCopyStrided_D0_SK2
360 : use pm_kind, only: SKC => SK2
361 : #include "pm_arrayCopy@routines.inc.F90"
362 : end procedure
363 : #endif
364 :
365 : #if SK1_ENABLED
366 204 : module procedure setCopyStrided_D0_SK1
367 : use pm_kind, only: SKC => SK1
368 : #include "pm_arrayCopy@routines.inc.F90"
369 204 : end procedure
370 : #endif
371 :
372 : #undef SK_ENABLED
373 :
374 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
375 :
376 : #undef D0_ENABLED
377 :
378 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
379 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
380 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
381 :
382 : #define D1_ENABLED 1
383 :
384 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
385 :
386 : #define SK_ENABLED 1
387 :
388 : #if SK5_ENABLED
389 : module procedure setCopyStrided_D1_SK5
390 : use pm_kind, only: SKC => SK5
391 : #include "pm_arrayCopy@routines.inc.F90"
392 : end procedure
393 : #endif
394 :
395 : #if SK4_ENABLED
396 : module procedure setCopyStrided_D1_SK4
397 : use pm_kind, only: SKC => SK4
398 : #include "pm_arrayCopy@routines.inc.F90"
399 : end procedure
400 : #endif
401 :
402 : #if SK3_ENABLED
403 : module procedure setCopyStrided_D1_SK3
404 : use pm_kind, only: SKC => SK3
405 : #include "pm_arrayCopy@routines.inc.F90"
406 : end procedure
407 : #endif
408 :
409 : #if SK2_ENABLED
410 : module procedure setCopyStrided_D1_SK2
411 : use pm_kind, only: SKC => SK2
412 : #include "pm_arrayCopy@routines.inc.F90"
413 : end procedure
414 : #endif
415 :
416 : #if SK1_ENABLED
417 403 : module procedure setCopyStrided_D1_SK1
418 : use pm_kind, only: SKC => SK1
419 : #include "pm_arrayCopy@routines.inc.F90"
420 403 : end procedure
421 : #endif
422 :
423 : #undef SK_ENABLED
424 :
425 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
426 :
427 : #define IK_ENABLED 1
428 :
429 : #if IK5_ENABLED
430 200 : module procedure setCopyStrided_D1_IK5
431 : use pm_kind, only: IKC => IK5
432 : #include "pm_arrayCopy@routines.inc.F90"
433 200 : end procedure
434 : #endif
435 :
436 : #if IK4_ENABLED
437 200 : module procedure setCopyStrided_D1_IK4
438 : use pm_kind, only: IKC => IK4
439 : #include "pm_arrayCopy@routines.inc.F90"
440 200 : end procedure
441 : #endif
442 :
443 : #if IK3_ENABLED
444 203 : module procedure setCopyStrided_D1_IK3
445 : use pm_kind, only: IKC => IK3
446 : #include "pm_arrayCopy@routines.inc.F90"
447 203 : end procedure
448 : #endif
449 :
450 : #if IK2_ENABLED
451 200 : module procedure setCopyStrided_D1_IK2
452 : use pm_kind, only: IKC => IK2
453 : #include "pm_arrayCopy@routines.inc.F90"
454 200 : end procedure
455 : #endif
456 :
457 : #if IK1_ENABLED
458 200 : module procedure setCopyStrided_D1_IK1
459 : use pm_kind, only: IKC => IK1
460 : #include "pm_arrayCopy@routines.inc.F90"
461 200 : end procedure
462 : #endif
463 :
464 : #undef IK_ENABLED
465 :
466 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
467 :
468 : #define LK_ENABLED 1
469 :
470 : #if LK5_ENABLED
471 200 : module procedure setCopyStrided_D1_LK5
472 : use pm_kind, only: LKC => LK5
473 : #include "pm_arrayCopy@routines.inc.F90"
474 200 : end procedure
475 : #endif
476 :
477 : #if LK4_ENABLED
478 200 : module procedure setCopyStrided_D1_LK4
479 : use pm_kind, only: LKC => LK4
480 : #include "pm_arrayCopy@routines.inc.F90"
481 200 : end procedure
482 : #endif
483 :
484 : #if LK3_ENABLED
485 202 : module procedure setCopyStrided_D1_LK3
486 : use pm_kind, only: LKC => LK3
487 : #include "pm_arrayCopy@routines.inc.F90"
488 202 : end procedure
489 : #endif
490 :
491 : #if LK2_ENABLED
492 200 : module procedure setCopyStrided_D1_LK2
493 : use pm_kind, only: LKC => LK2
494 : #include "pm_arrayCopy@routines.inc.F90"
495 200 : end procedure
496 : #endif
497 :
498 : #if LK1_ENABLED
499 200 : module procedure setCopyStrided_D1_LK1
500 : use pm_kind, only: LKC => LK1
501 : #include "pm_arrayCopy@routines.inc.F90"
502 200 : end procedure
503 : #endif
504 :
505 : #undef LK_ENABLED
506 :
507 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
508 :
509 : #define CK_ENABLED 1
510 :
511 : #if CK5_ENABLED
512 : module procedure setCopyStrided_D1_CK5
513 : use pm_kind, only: CKC => CK5
514 : #include "pm_arrayCopy@routines.inc.F90"
515 : end procedure
516 : #endif
517 :
518 : #if CK4_ENABLED
519 200 : module procedure setCopyStrided_D1_CK4
520 : use pm_kind, only: CKC => CK4
521 : #include "pm_arrayCopy@routines.inc.F90"
522 200 : end procedure
523 : #endif
524 :
525 : #if CK3_ENABLED
526 200 : module procedure setCopyStrided_D1_CK3
527 : use pm_kind, only: CKC => CK3
528 : #include "pm_arrayCopy@routines.inc.F90"
529 200 : end procedure
530 : #endif
531 :
532 : #if CK2_ENABLED
533 200 : module procedure setCopyStrided_D1_CK2
534 : use pm_kind, only: CKC => CK2
535 : #include "pm_arrayCopy@routines.inc.F90"
536 200 : end procedure
537 : #endif
538 :
539 : #if CK1_ENABLED
540 200 : module procedure setCopyStrided_D1_CK1
541 : use pm_kind, only: CKC => CK1
542 : #include "pm_arrayCopy@routines.inc.F90"
543 200 : end procedure
544 : #endif
545 :
546 : #undef CK_ENABLED
547 :
548 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
549 :
550 : #define RK_ENABLED 1
551 :
552 : #if RK5_ENABLED
553 : module procedure setCopyStrided_D1_RK5
554 : use pm_kind, only: RKC => RK5
555 : #include "pm_arrayCopy@routines.inc.F90"
556 : end procedure
557 : #endif
558 :
559 : #if RK4_ENABLED
560 200 : module procedure setCopyStrided_D1_RK4
561 : use pm_kind, only: RKC => RK4
562 : #include "pm_arrayCopy@routines.inc.F90"
563 200 : end procedure
564 : #endif
565 :
566 : #if RK3_ENABLED
567 200 : module procedure setCopyStrided_D1_RK3
568 : use pm_kind, only: RKC => RK3
569 : #include "pm_arrayCopy@routines.inc.F90"
570 200 : end procedure
571 : #endif
572 :
573 : #if RK2_ENABLED
574 200 : module procedure setCopyStrided_D1_RK2
575 : use pm_kind, only: RKC => RK2
576 : #include "pm_arrayCopy@routines.inc.F90"
577 200 : end procedure
578 : #endif
579 :
580 : #if RK1_ENABLED
581 206 : module procedure setCopyStrided_D1_RK1
582 : use pm_kind, only: RKC => RK1
583 : #include "pm_arrayCopy@routines.inc.F90"
584 206 : end procedure
585 : #endif
586 :
587 : #undef RK_ENABLED
588 :
589 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
590 :
591 : #undef D1_ENABLED
592 :
593 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
594 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
595 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
596 :
597 : #undef setCopyStrided_ENABLED
598 :
599 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
600 :
601 : #undef CHECK_ASSERTION
602 :
603 : end submodule routines
|