ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_arrayCenter.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
32
33!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
34
36
37 use pm_kind, only: SK, IK, LK
38
39 implicit none
40
41 character(*,SK), parameter :: MODULE_NAME = "@pm_arrayCenter"
42
43!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44
169 interface getCentered
170
171 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
172 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
173 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
174
175 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
176
177#if SK5_ENABLED
178 PURE module function getCenteredAsis_D0_SK5(array, size, fill) result(arrayCentered)
179#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
180 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D0_SK5
181#endif
182 use pm_kind, only: SKG => SK5
183 character(*,SKG) , intent(in) :: array
184 character(1,SKG) , intent(in) , optional :: fill
185 integer(IK) , intent(in) :: size
186 character(size,SKG) :: arrayCentered
187 end function
188#endif
189
190#if SK4_ENABLED
191 PURE module function getCenteredAsis_D0_SK4(array, size, fill) result(arrayCentered)
192#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
193 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D0_SK4
194#endif
195 use pm_kind, only: SKG => SK4
196 character(*,SKG) , intent(in) :: array
197 character(1,SKG) , intent(in) , optional :: fill
198 integer(IK) , intent(in) :: size
199 character(size,SKG) :: arrayCentered
200 end function
201#endif
202
203#if SK3_ENABLED
204 PURE module function getCenteredAsis_D0_SK3(array, size, fill) result(arrayCentered)
205#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
206 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D0_SK3
207#endif
208 use pm_kind, only: SKG => SK3
209 character(*,SKG) , intent(in) :: array
210 character(1,SKG) , intent(in) , optional :: fill
211 integer(IK) , intent(in) :: size
212 character(size,SKG) :: arrayCentered
213 end function
214#endif
215
216#if SK2_ENABLED
217 PURE module function getCenteredAsis_D0_SK2(array, size, fill) result(arrayCentered)
218#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
219 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D0_SK2
220#endif
221 use pm_kind, only: SKG => SK2
222 character(*,SKG) , intent(in) :: array
223 character(1,SKG) , intent(in) , optional :: fill
224 integer(IK) , intent(in) :: size
225 character(size,SKG) :: arrayCentered
226 end function
227#endif
228
229#if SK1_ENABLED
230 PURE module function getCenteredAsis_D0_SK1(array, size, fill) result(arrayCentered)
231#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
232 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D0_SK1
233#endif
234 use pm_kind, only: SKG => SK1
235 character(*,SKG) , intent(in) :: array
236 character(1,SKG) , intent(in) , optional :: fill
237 integer(IK) , intent(in) :: size
238 character(size,SKG) :: arrayCentered
239 end function
240#endif
241
242 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
243
244#if SK5_ENABLED
245 PURE module function getCenteredAsis_D1_SK5(array, size, fill) result(arrayCentered)
246#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
247 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_SK5
248#endif
249 use pm_kind, only: SKG => SK5
250 character(*,SKG) , intent(in) , contiguous :: array(:)
251 integer(IK) , intent(in) :: size
252 character(len(array,IK),SKG), intent(in) , optional :: fill
253 character(len(array,IK),SKG) :: arrayCentered(size)
254 end function
255#endif
256
257#if SK4_ENABLED
258 PURE module function getCenteredAsis_D1_SK4(array, size, fill) result(arrayCentered)
259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
260 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_SK4
261#endif
262 use pm_kind, only: SKG => SK4
263 character(*,SKG) , intent(in) , contiguous :: array(:)
264 integer(IK) , intent(in) :: size
265 character(len(array,IK),SKG), intent(in) , optional :: fill
266 character(len(array,IK),SKG) :: arrayCentered(size)
267 end function
268#endif
269
270#if SK3_ENABLED
271 PURE module function getCenteredAsis_D1_SK3(array, size, fill) result(arrayCentered)
272#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
273 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_SK3
274#endif
275 use pm_kind, only: SKG => SK3
276 character(*,SKG) , intent(in) , contiguous :: array(:)
277 integer(IK) , intent(in) :: size
278 character(len(array,IK),SKG), intent(in) , optional :: fill
279 character(len(array,IK),SKG) :: arrayCentered(size)
280 end function
281#endif
282
283#if SK2_ENABLED
284 PURE module function getCenteredAsis_D1_SK2(array, size, fill) result(arrayCentered)
285#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
286 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_SK2
287#endif
288 use pm_kind, only: SKG => SK2
289 character(*,SKG) , intent(in) , contiguous :: array(:)
290 integer(IK) , intent(in) :: size
291 character(len(array,IK),SKG), intent(in) , optional :: fill
292 character(len(array,IK),SKG) :: arrayCentered(size)
293 end function
294#endif
295
296#if SK1_ENABLED
297 PURE module function getCenteredAsis_D1_SK1(array, size, fill) result(arrayCentered)
298#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
299 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_SK1
300#endif
301 use pm_kind, only: SKG => SK1
302 character(*,SKG) , intent(in) , contiguous :: array(:)
303 integer(IK) , intent(in) :: size
304 character(len(array,IK),SKG), intent(in) , optional :: fill
305 character(len(array,IK),SKG) :: arrayCentered(size)
306 end function
307#endif
308
309 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
310
311#if IK5_ENABLED
312 PURE module function getCenteredAsis_D1_IK5(array, size, fill) result(arrayCentered)
313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
314 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_IK5
315#endif
316 use pm_kind, only: IKG => IK5
317 integer(IKG) , intent(in) , contiguous :: array(:)
318 integer(IKG) , intent(in) , optional :: fill
319 integer(IK) , intent(in) :: size
320 integer(IKG) :: arrayCentered(size)
321 end function
322#endif
323
324#if IK4_ENABLED
325 PURE module function getCenteredAsis_D1_IK4(array, size, fill) result(arrayCentered)
326#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
327 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_IK4
328#endif
329 use pm_kind, only: IKG => IK4
330 integer(IKG) , intent(in) , contiguous :: array(:)
331 integer(IKG) , intent(in) , optional :: fill
332 integer(IK) , intent(in) :: size
333 integer(IKG) :: arrayCentered(size)
334 end function
335#endif
336
337#if IK3_ENABLED
338 PURE module function getCenteredAsis_D1_IK3(array, size, fill) result(arrayCentered)
339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
340 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_IK3
341#endif
342 use pm_kind, only: IKG => IK3
343 integer(IKG) , intent(in) , contiguous :: array(:)
344 integer(IKG) , intent(in) , optional :: fill
345 integer(IK) , intent(in) :: size
346 integer(IKG) :: arrayCentered(size)
347 end function
348#endif
349
350#if IK2_ENABLED
351 PURE module function getCenteredAsis_D1_IK2(array, size, fill) result(arrayCentered)
352#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
353 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_IK2
354#endif
355 use pm_kind, only: IKG => IK2
356 integer(IKG) , intent(in) , contiguous :: array(:)
357 integer(IKG) , intent(in) , optional :: fill
358 integer(IK) , intent(in) :: size
359 integer(IKG) :: arrayCentered(size)
360 end function
361#endif
362
363#if IK1_ENABLED
364 PURE module function getCenteredAsis_D1_IK1(array, size, fill) result(arrayCentered)
365#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
366 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_IK1
367#endif
368 use pm_kind, only: IKG => IK1
369 integer(IKG) , intent(in) , contiguous :: array(:)
370 integer(IKG) , intent(in) , optional :: fill
371 integer(IK) , intent(in) :: size
372 integer(IKG) :: arrayCentered(size)
373 end function
374#endif
375
376 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
377
378#if LK5_ENABLED
379 PURE module function getCenteredAsis_D1_LK5(array, size, fill) result(arrayCentered)
380#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
381 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_LK5
382#endif
383 use pm_kind, only: LKG => LK5
384 logical(LKG) , intent(in) , contiguous :: array(:)
385 logical(LKG) , intent(in) , optional :: fill
386 integer(IK) , intent(in) :: size
387 logical(LKG) :: arrayCentered(size)
388 end function
389#endif
390
391#if LK4_ENABLED
392 PURE module function getCenteredAsis_D1_LK4(array, size, fill) result(arrayCentered)
393#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
394 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_LK4
395#endif
396 use pm_kind, only: LKG => LK4
397 logical(LKG) , intent(in) , contiguous :: array(:)
398 logical(LKG) , intent(in) , optional :: fill
399 integer(IK) , intent(in) :: size
400 logical(LKG) :: arrayCentered(size)
401 end function
402#endif
403
404#if LK3_ENABLED
405 PURE module function getCenteredAsis_D1_LK3(array, size, fill) result(arrayCentered)
406#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
407 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_LK3
408#endif
409 use pm_kind, only: LKG => LK3
410 logical(LKG) , intent(in) , contiguous :: array(:)
411 logical(LKG) , intent(in) , optional :: fill
412 integer(IK) , intent(in) :: size
413 logical(LKG) :: arrayCentered(size)
414 end function
415#endif
416
417#if LK2_ENABLED
418 PURE module function getCenteredAsis_D1_LK2(array, size, fill) result(arrayCentered)
419#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
420 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_LK2
421#endif
422 use pm_kind, only: LKG => LK2
423 logical(LKG) , intent(in) , contiguous :: array(:)
424 logical(LKG) , intent(in) , optional :: fill
425 integer(IK) , intent(in) :: size
426 logical(LKG) :: arrayCentered(size)
427 end function
428#endif
429
430#if LK1_ENABLED
431 PURE module function getCenteredAsis_D1_LK1(array, size, fill) result(arrayCentered)
432#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
433 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_LK1
434#endif
435 use pm_kind, only: LKG => LK1
436 logical(LKG) , intent(in) , contiguous :: array(:)
437 logical(LKG) , intent(in) , optional :: fill
438 integer(IK) , intent(in) :: size
439 logical(LKG) :: arrayCentered(size)
440 end function
441#endif
442
443 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
444
445#if CK5_ENABLED
446 PURE module function getCenteredAsis_D1_CK5(array, size, fill) result(arrayCentered)
447#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
448 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_CK5
449#endif
450 use pm_kind, only: CKG => CK5
451 complex(CKG) , intent(in) , contiguous :: array(:)
452 complex(CKG) , intent(in) , optional :: fill
453 integer(IK) , intent(in) :: size
454 complex(CKG) :: arrayCentered(size)
455 end function
456#endif
457
458#if CK4_ENABLED
459 PURE module function getCenteredAsis_D1_CK4(array, size, fill) result(arrayCentered)
460#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
461 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_CK4
462#endif
463 use pm_kind, only: CKG => CK4
464 complex(CKG) , intent(in) , contiguous :: array(:)
465 complex(CKG) , intent(in) , optional :: fill
466 integer(IK) , intent(in) :: size
467 complex(CKG) :: arrayCentered(size)
468 end function
469#endif
470
471#if CK3_ENABLED
472 PURE module function getCenteredAsis_D1_CK3(array, size, fill) result(arrayCentered)
473#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
474 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_CK3
475#endif
476 use pm_kind, only: CKG => CK3
477 complex(CKG) , intent(in) , contiguous :: array(:)
478 complex(CKG) , intent(in) , optional :: fill
479 integer(IK) , intent(in) :: size
480 complex(CKG) :: arrayCentered(size)
481 end function
482#endif
483
484#if CK2_ENABLED
485 PURE module function getCenteredAsis_D1_CK2(array, size, fill) result(arrayCentered)
486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
487 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_CK2
488#endif
489 use pm_kind, only: CKG => CK2
490 complex(CKG) , intent(in) , contiguous :: array(:)
491 complex(CKG) , intent(in) , optional :: fill
492 integer(IK) , intent(in) :: size
493 complex(CKG) :: arrayCentered(size)
494 end function
495#endif
496
497#if CK1_ENABLED
498 PURE module function getCenteredAsis_D1_CK1(array, size, fill) result(arrayCentered)
499#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
500 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_CK1
501#endif
502 use pm_kind, only: CKG => CK1
503 complex(CKG) , intent(in) , contiguous :: array(:)
504 complex(CKG) , intent(in) , optional :: fill
505 integer(IK) , intent(in) :: size
506 complex(CKG) :: arrayCentered(size)
507 end function
508#endif
509
510 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
511
512#if RK5_ENABLED
513 PURE module function getCenteredAsis_D1_RK5(array, size, fill) result(arrayCentered)
514#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
515 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_RK5
516#endif
517 use pm_kind, only: RKG => RK5
518 real(RKG) , intent(in) , contiguous :: array(:)
519 real(RKG) , intent(in) , optional :: fill
520 integer(IK) , intent(in) :: size
521 real(RKG) :: arrayCentered(size)
522 end function
523#endif
524
525#if RK4_ENABLED
526 PURE module function getCenteredAsis_D1_RK4(array, size, fill) result(arrayCentered)
527#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
528 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_RK4
529#endif
530 use pm_kind, only: RKG => RK4
531 real(RKG) , intent(in) , contiguous :: array(:)
532 real(RKG) , intent(in) , optional :: fill
533 integer(IK) , intent(in) :: size
534 real(RKG) :: arrayCentered(size)
535 end function
536#endif
537
538#if RK3_ENABLED
539 PURE module function getCenteredAsis_D1_RK3(array, size, fill) result(arrayCentered)
540#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
541 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_RK3
542#endif
543 use pm_kind, only: RKG => RK3
544 real(RKG) , intent(in) , contiguous :: array(:)
545 real(RKG) , intent(in) , optional :: fill
546 integer(IK) , intent(in) :: size
547 real(RKG) :: arrayCentered(size)
548 end function
549#endif
550
551#if RK2_ENABLED
552 PURE module function getCenteredAsis_D1_RK2(array, size, fill) result(arrayCentered)
553#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
554 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_RK2
555#endif
556 use pm_kind, only: RKG => RK2
557 real(RKG) , intent(in) , contiguous :: array(:)
558 real(RKG) , intent(in) , optional :: fill
559 integer(IK) , intent(in) :: size
560 real(RKG) :: arrayCentered(size)
561 end function
562#endif
563
564#if RK1_ENABLED
565 PURE module function getCenteredAsis_D1_RK1(array, size, fill) result(arrayCentered)
566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
567 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredAsis_D1_RK1
568#endif
569 use pm_kind, only: RKG => RK1
570 real(RKG) , intent(in) , contiguous :: array(:)
571 real(RKG) , intent(in) , optional :: fill
572 integer(IK) , intent(in) :: size
573 real(RKG) :: arrayCentered(size)
574 end function
575#endif
576
577 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
578
579 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
580 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
581 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
582
583 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
584
585#if SK5_ENABLED
586 PURE module function getCenteredMarg_D0_SK5(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
587#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
588 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D0_SK5
589#endif
590 use pm_kind, only: SKG => SK5
591 character(*,SKG) , intent(in) :: array
592 character(1,SKG) , intent(in) , optional :: fill, lmfill, rmfill
593 integer(IK) , intent(in) :: size, lmsize, rmsize
594 character(size+lmsize+rmsize,SKG) :: arrayCentered
595 end function
596#endif
597
598#if SK4_ENABLED
599 PURE module function getCenteredMarg_D0_SK4(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
600#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
601 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D0_SK4
602#endif
603 use pm_kind, only: SKG => SK4
604 character(*,SKG) , intent(in) :: array
605 character(1,SKG) , intent(in) , optional :: fill, lmfill, rmfill
606 integer(IK) , intent(in) :: size, lmsize, rmsize
607 character(size+lmsize+rmsize,SKG) :: arrayCentered
608 end function
609#endif
610
611#if SK3_ENABLED
612 PURE module function getCenteredMarg_D0_SK3(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
613#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
614 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D0_SK3
615#endif
616 use pm_kind, only: SKG => SK3
617 character(*,SKG) , intent(in) :: array
618 character(1,SKG) , intent(in) , optional :: fill, lmfill, rmfill
619 integer(IK) , intent(in) :: size, lmsize, rmsize
620 character(size+lmsize+rmsize,SKG) :: arrayCentered
621 end function
622#endif
623
624#if SK2_ENABLED
625 PURE module function getCenteredMarg_D0_SK2(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
626#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
627 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D0_SK2
628#endif
629 use pm_kind, only: SKG => SK2
630 character(*,SKG) , intent(in) :: array
631 character(1,SKG) , intent(in) , optional :: fill, lmfill, rmfill
632 integer(IK) , intent(in) :: size, lmsize, rmsize
633 character(size+lmsize+rmsize,SKG) :: arrayCentered
634 end function
635#endif
636
637#if SK1_ENABLED
638 PURE module function getCenteredMarg_D0_SK1(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
639#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
640 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D0_SK1
641#endif
642 use pm_kind, only: SKG => SK1
643 character(*,SKG) , intent(in) :: array
644 character(1,SKG) , intent(in) , optional :: fill, lmfill, rmfill
645 integer(IK) , intent(in) :: size, lmsize, rmsize
646 character(size+lmsize+rmsize,SKG) :: arrayCentered
647 end function
648#endif
649
650 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
651
652#if SK5_ENABLED
653 PURE module function getCenteredMarg_D1_SK5(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
654#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
655 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_SK5
656#endif
657 use pm_kind, only: SKG => SK5
658 character(*,SKG) , intent(in) , contiguous :: array(:)
659 integer(IK) , intent(in) :: size, lmsize, rmsize
660 character(len(array,IK),SKG), intent(in) , optional :: fill, lmfill, rmfill
661 character(len(array,IK),SKG) :: arrayCentered(size+lmsize+rmsize)
662 end function
663#endif
664
665#if SK4_ENABLED
666 PURE module function getCenteredMarg_D1_SK4(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
667#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
668 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_SK4
669#endif
670 use pm_kind, only: SKG => SK4
671 character(*,SKG) , intent(in) , contiguous :: array(:)
672 integer(IK) , intent(in) :: size, lmsize, rmsize
673 character(len(array,IK),SKG), intent(in) , optional :: fill, lmfill, rmfill
674 character(len(array,IK),SKG) :: arrayCentered(size+lmsize+rmsize)
675 end function
676#endif
677
678#if SK3_ENABLED
679 PURE module function getCenteredMarg_D1_SK3(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
680#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
681 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_SK3
682#endif
683 use pm_kind, only: SKG => SK3
684 character(*,SKG) , intent(in) , contiguous :: array(:)
685 integer(IK) , intent(in) :: size, lmsize, rmsize
686 character(len(array,IK),SKG), intent(in) , optional :: fill, lmfill, rmfill
687 character(len(array,IK),SKG) :: arrayCentered(size+lmsize+rmsize)
688 end function
689#endif
690
691#if SK2_ENABLED
692 PURE module function getCenteredMarg_D1_SK2(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
693#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
694 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_SK2
695#endif
696 use pm_kind, only: SKG => SK2
697 character(*,SKG) , intent(in) , contiguous :: array(:)
698 integer(IK) , intent(in) :: size, lmsize, rmsize
699 character(len(array,IK),SKG), intent(in) , optional :: fill, lmfill, rmfill
700 character(len(array,IK),SKG) :: arrayCentered(size+lmsize+rmsize)
701 end function
702#endif
703
704#if SK1_ENABLED
705 PURE module function getCenteredMarg_D1_SK1(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
706#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
707 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_SK1
708#endif
709 use pm_kind, only: SKG => SK1
710 character(*,SKG) , intent(in) , contiguous :: array(:)
711 integer(IK) , intent(in) :: size, lmsize, rmsize
712 character(len(array,IK),SKG), intent(in) , optional :: fill, lmfill, rmfill
713 character(len(array,IK),SKG) :: arrayCentered(size+lmsize+rmsize)
714 end function
715#endif
716
717 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
718
719#if IK5_ENABLED
720 PURE module function getCenteredMarg_D1_IK5(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
721#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
722 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_IK5
723#endif
724 use pm_kind, only: IKG => IK5
725 integer(IKG) , intent(in) , contiguous :: array(:)
726 integer(IKG) , intent(in) , optional :: fill, lmfill, rmfill
727 integer(IK) , intent(in) :: size, lmsize, rmsize
728 integer(IKG) :: arrayCentered(size+lmsize+rmsize)
729 end function
730#endif
731
732#if IK4_ENABLED
733 PURE module function getCenteredMarg_D1_IK4(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
734#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
735 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_IK4
736#endif
737 use pm_kind, only: IKG => IK4
738 integer(IKG) , intent(in) , contiguous :: array(:)
739 integer(IKG) , intent(in) , optional :: fill, lmfill, rmfill
740 integer(IK) , intent(in) :: size, lmsize, rmsize
741 integer(IKG) :: arrayCentered(size+lmsize+rmsize)
742 end function
743#endif
744
745#if IK3_ENABLED
746 PURE module function getCenteredMarg_D1_IK3(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
747#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
748 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_IK3
749#endif
750 use pm_kind, only: IKG => IK3
751 integer(IKG) , intent(in) , contiguous :: array(:)
752 integer(IKG) , intent(in) , optional :: fill, lmfill, rmfill
753 integer(IK) , intent(in) :: size, lmsize, rmsize
754 integer(IKG) :: arrayCentered(size+lmsize+rmsize)
755 end function
756#endif
757
758#if IK2_ENABLED
759 PURE module function getCenteredMarg_D1_IK2(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
760#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
761 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_IK2
762#endif
763 use pm_kind, only: IKG => IK2
764 integer(IKG) , intent(in) , contiguous :: array(:)
765 integer(IKG) , intent(in) , optional :: fill, lmfill, rmfill
766 integer(IK) , intent(in) :: size, lmsize, rmsize
767 integer(IKG) :: arrayCentered(size+lmsize+rmsize)
768 end function
769#endif
770
771#if IK1_ENABLED
772 PURE module function getCenteredMarg_D1_IK1(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
773#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
774 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_IK1
775#endif
776 use pm_kind, only: IKG => IK1
777 integer(IKG) , intent(in) , contiguous :: array(:)
778 integer(IKG) , intent(in) , optional :: fill, lmfill, rmfill
779 integer(IK) , intent(in) :: size, lmsize, rmsize
780 integer(IKG) :: arrayCentered(size+lmsize+rmsize)
781 end function
782#endif
783
784 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
785
786#if LK5_ENABLED
787 PURE module function getCenteredMarg_D1_LK5(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
788#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
789 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_LK5
790#endif
791 use pm_kind, only: LKG => LK5
792 logical(LKG) , intent(in) , contiguous :: array(:)
793 logical(LKG) , intent(in) , optional :: fill, lmfill, rmfill
794 integer(IK) , intent(in) :: size, lmsize, rmsize
795 logical(LKG) :: arrayCentered(size+lmsize+rmsize)
796 end function
797#endif
798
799#if LK4_ENABLED
800 PURE module function getCenteredMarg_D1_LK4(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
801#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
802 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_LK4
803#endif
804 use pm_kind, only: LKG => LK4
805 logical(LKG) , intent(in) , contiguous :: array(:)
806 logical(LKG) , intent(in) , optional :: fill, lmfill, rmfill
807 integer(IK) , intent(in) :: size, lmsize, rmsize
808 logical(LKG) :: arrayCentered(size+lmsize+rmsize)
809 end function
810#endif
811
812#if LK3_ENABLED
813 PURE module function getCenteredMarg_D1_LK3(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
814#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
815 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_LK3
816#endif
817 use pm_kind, only: LKG => LK3
818 logical(LKG) , intent(in) , contiguous :: array(:)
819 logical(LKG) , intent(in) , optional :: fill, lmfill, rmfill
820 integer(IK) , intent(in) :: size, lmsize, rmsize
821 logical(LKG) :: arrayCentered(size+lmsize+rmsize)
822 end function
823#endif
824
825#if LK2_ENABLED
826 PURE module function getCenteredMarg_D1_LK2(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
827#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
828 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_LK2
829#endif
830 use pm_kind, only: LKG => LK2
831 logical(LKG) , intent(in) , contiguous :: array(:)
832 logical(LKG) , intent(in) , optional :: fill, lmfill, rmfill
833 integer(IK) , intent(in) :: size, lmsize, rmsize
834 logical(LKG) :: arrayCentered(size+lmsize+rmsize)
835 end function
836#endif
837
838#if LK1_ENABLED
839 PURE module function getCenteredMarg_D1_LK1(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
840#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
841 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_LK1
842#endif
843 use pm_kind, only: LKG => LK1
844 logical(LKG) , intent(in) , contiguous :: array(:)
845 logical(LKG) , intent(in) , optional :: fill, lmfill, rmfill
846 integer(IK) , intent(in) :: size, lmsize, rmsize
847 logical(LKG) :: arrayCentered(size+lmsize+rmsize)
848 end function
849#endif
850
851 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
852
853
854#if CK5_ENABLED
855 PURE module function getCenteredMarg_D1_CK5(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
856#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
857 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_CK5
858#endif
859 use pm_kind, only: CKG => CK5
860 complex(CKG) , intent(in) , contiguous :: array(:)
861 complex(CKG) , intent(in) , optional :: fill, lmfill, rmfill
862 integer(IK) , intent(in) :: size, lmsize, rmsize
863 complex(CKG) :: arrayCentered(size+lmsize+rmsize)
864 end function
865#endif
866
867#if CK4_ENABLED
868 PURE module function getCenteredMarg_D1_CK4(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
869#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
870 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_CK4
871#endif
872 use pm_kind, only: CKG => CK4
873 complex(CKG) , intent(in) , contiguous :: array(:)
874 complex(CKG) , intent(in) , optional :: fill, lmfill, rmfill
875 integer(IK) , intent(in) :: size, lmsize, rmsize
876 complex(CKG) :: arrayCentered(size+lmsize+rmsize)
877 end function
878#endif
879
880#if CK3_ENABLED
881 PURE module function getCenteredMarg_D1_CK3(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
882#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
883 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_CK3
884#endif
885 use pm_kind, only: CKG => CK3
886 complex(CKG) , intent(in) , contiguous :: array(:)
887 complex(CKG) , intent(in) , optional :: fill, lmfill, rmfill
888 integer(IK) , intent(in) :: size, lmsize, rmsize
889 complex(CKG) :: arrayCentered(size+lmsize+rmsize)
890 end function
891#endif
892
893#if CK2_ENABLED
894 PURE module function getCenteredMarg_D1_CK2(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
895#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
896 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_CK2
897#endif
898 use pm_kind, only: CKG => CK2
899 complex(CKG) , intent(in) , contiguous :: array(:)
900 complex(CKG) , intent(in) , optional :: fill, lmfill, rmfill
901 integer(IK) , intent(in) :: size, lmsize, rmsize
902 complex(CKG) :: arrayCentered(size+lmsize+rmsize)
903 end function
904#endif
905
906#if CK1_ENABLED
907 PURE module function getCenteredMarg_D1_CK1(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
908#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
909 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_CK1
910#endif
911 use pm_kind, only: CKG => CK1
912 complex(CKG) , intent(in) , contiguous :: array(:)
913 complex(CKG) , intent(in) , optional :: fill, lmfill, rmfill
914 integer(IK) , intent(in) :: size, lmsize, rmsize
915 complex(CKG) :: arrayCentered(size+lmsize+rmsize)
916 end function
917#endif
918
919 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
920
921#if RK5_ENABLED
922 PURE module function getCenteredMarg_D1_RK5(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
923#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
924 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_RK5
925#endif
926 use pm_kind, only: RKG => RK5
927 real(RKG) , intent(in) , contiguous :: array(:)
928 real(RKG) , intent(in) , optional :: fill, lmfill, rmfill
929 integer(IK) , intent(in) :: size, lmsize, rmsize
930 real(RKG) :: arrayCentered(size+lmsize+rmsize)
931 end function
932#endif
933
934#if RK4_ENABLED
935 PURE module function getCenteredMarg_D1_RK4(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
936#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
937 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_RK4
938#endif
939 use pm_kind, only: RKG => RK4
940 real(RKG) , intent(in) , contiguous :: array(:)
941 real(RKG) , intent(in) , optional :: fill, lmfill, rmfill
942 integer(IK) , intent(in) :: size, lmsize, rmsize
943 real(RKG) :: arrayCentered(size+lmsize+rmsize)
944 end function
945#endif
946
947#if RK3_ENABLED
948 PURE module function getCenteredMarg_D1_RK3(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
949#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
950 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_RK3
951#endif
952 use pm_kind, only: RKG => RK3
953 real(RKG) , intent(in) , contiguous :: array(:)
954 real(RKG) , intent(in) , optional :: fill, lmfill, rmfill
955 integer(IK) , intent(in) :: size, lmsize, rmsize
956 real(RKG) :: arrayCentered(size+lmsize+rmsize)
957 end function
958#endif
959
960#if RK2_ENABLED
961 PURE module function getCenteredMarg_D1_RK2(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
962#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
963 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_RK2
964#endif
965 use pm_kind, only: RKG => RK2
966 real(RKG) , intent(in) , contiguous :: array(:)
967 real(RKG) , intent(in) , optional :: fill, lmfill, rmfill
968 integer(IK) , intent(in) :: size, lmsize, rmsize
969 real(RKG) :: arrayCentered(size+lmsize+rmsize)
970 end function
971#endif
972
973#if RK1_ENABLED
974 PURE module function getCenteredMarg_D1_RK1(array, size, lmsize, rmsize, fill, lmfill, rmfill) result(arrayCentered)
975#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
976 !DEC$ ATTRIBUTES DLLEXPORT :: getCenteredMarg_D1_RK1
977#endif
978 use pm_kind, only: RKG => RK1
979 real(RKG) , intent(in) , contiguous :: array(:)
980 real(RKG) , intent(in) , optional :: fill, lmfill, rmfill
981 integer(IK) , intent(in) :: size, lmsize, rmsize
982 real(RKG) :: arrayCentered(size+lmsize+rmsize)
983 end function
984#endif
985
986 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
987
988 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
989 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
990 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
991
992 end interface
993
994!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
995
1119 interface setCentered
1120
1121 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1122 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1123 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1124
1125 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1126
1127#if SK5_ENABLED
1128 PURE module subroutine setCenteredAsis_D0_SK5(arrayCentered, array, fill)
1129#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1130 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D0_SK5
1131#endif
1132 use pm_kind, only: SKG => SK5
1133 character(*,SKG) , intent(out) :: arrayCentered
1134 character(*,SKG) , intent(in) :: array
1135 character(1,SKG) , intent(in) , optional :: fill
1136 end subroutine
1137#endif
1138
1139#if SK4_ENABLED
1140 PURE module subroutine setCenteredAsis_D0_SK4(arrayCentered, array, fill)
1141#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1142 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D0_SK4
1143#endif
1144 use pm_kind, only: SKG => SK4
1145 character(*,SKG) , intent(out) :: arrayCentered
1146 character(*,SKG) , intent(in) :: array
1147 character(1,SKG) , intent(in) , optional :: fill
1148 end subroutine
1149#endif
1150
1151#if SK3_ENABLED
1152 PURE module subroutine setCenteredAsis_D0_SK3(arrayCentered, array, fill)
1153#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1154 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D0_SK3
1155#endif
1156 use pm_kind, only: SKG => SK3
1157 character(*,SKG) , intent(out) :: arrayCentered
1158 character(*,SKG) , intent(in) :: array
1159 character(1,SKG) , intent(in) , optional :: fill
1160 end subroutine
1161#endif
1162
1163#if SK2_ENABLED
1164 PURE module subroutine setCenteredAsis_D0_SK2(arrayCentered, array, fill)
1165#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1166 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D0_SK2
1167#endif
1168 use pm_kind, only: SKG => SK2
1169 character(*,SKG) , intent(out) :: arrayCentered
1170 character(*,SKG) , intent(in) :: array
1171 character(1,SKG) , intent(in) , optional :: fill
1172 end subroutine
1173#endif
1174
1175#if SK1_ENABLED
1176 PURE module subroutine setCenteredAsis_D0_SK1(arrayCentered, array, fill)
1177#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1178 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D0_SK1
1179#endif
1180 use pm_kind, only: SKG => SK1
1181 character(*,SKG) , intent(out) :: arrayCentered
1182 character(*,SKG) , intent(in) :: array
1183 character(1,SKG) , intent(in) , optional :: fill
1184 end subroutine
1185#endif
1186
1187 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1188
1189#if SK5_ENABLED
1190 PURE module subroutine setCenteredAsis_D1_SK5(arrayCentered, array, fill)
1191#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1192 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_SK5
1193#endif
1194 use pm_kind, only: SKG => SK5
1195 character(*,SKG) , intent(out) , contiguous :: arrayCentered(:)
1196 character(*,SKG) , intent(in) , contiguous :: array(:)
1197 character(len(array,IK),SKG) , intent(in) , optional :: fill
1198 character(*,SKG) , intent(out) , contiguous :: array(:)
1199 end subroutine
1200#endif
1201
1202#if SK4_ENABLED
1203 PURE module subroutine setCenteredAsis_D1_SK4(arrayCentered, array, fill)
1204#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1205 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_SK4
1206#endif
1207 use pm_kind, only: SKG => SK4
1208 character(*,SKG) , intent(out) , contiguous :: arrayCentered(:)
1209 character(*,SKG) , intent(in) , contiguous :: array(:)
1210 character(len(array,IK),SKG) , intent(in) , optional :: fill
1211 end subroutine
1212#endif
1213
1214#if SK3_ENABLED
1215 PURE module subroutine setCenteredAsis_D1_SK3(arrayCentered, array, fill)
1216#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1217 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_SK3
1218#endif
1219 use pm_kind, only: SKG => SK3
1220 character(*,SKG) , intent(out) , contiguous :: arrayCentered(:)
1221 character(*,SKG) , intent(in) , contiguous :: array(:)
1222 character(len(array,IK),SKG) , intent(in) , optional :: fill
1223 end subroutine
1224#endif
1225
1226#if SK2_ENABLED
1227 PURE module subroutine setCenteredAsis_D1_SK2(arrayCentered, array, fill)
1228#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1229 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_SK2
1230#endif
1231 use pm_kind, only: SKG => SK2
1232 character(*,SKG) , intent(out) , contiguous :: arrayCentered(:)
1233 character(*,SKG) , intent(in) , contiguous :: array(:)
1234 character(len(array,IK),SKG) , intent(in) , optional :: fill
1235 end subroutine
1236#endif
1237
1238#if SK1_ENABLED
1239 PURE module subroutine setCenteredAsis_D1_SK1(arrayCentered, array, fill)
1240#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1241 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_SK1
1242#endif
1243 use pm_kind, only: SKG => SK1
1244 character(*,SKG) , intent(out) , contiguous :: arrayCentered(:)
1245 character(*,SKG) , intent(in) , contiguous :: array(:)
1246 character(len(array,IK),SKG) , intent(in) , optional :: fill
1247 end subroutine
1248#endif
1249
1250 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1251
1252#if IK5_ENABLED
1253 PURE module subroutine setCenteredAsis_D1_IK5(arrayCentered, array, fill)
1254#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1255 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_IK5
1256#endif
1257 use pm_kind, only: IKG => IK5
1258 integer(IKG) , intent(out) , contiguous :: arrayCentered(:)
1259 integer(IKG) , intent(in) , contiguous :: array(:)
1260 integer(IKG) , intent(in) , optional :: fill
1261 end subroutine
1262#endif
1263
1264#if IK4_ENABLED
1265 PURE module subroutine setCenteredAsis_D1_IK4(arrayCentered, array, fill)
1266#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1267 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_IK4
1268#endif
1269 use pm_kind, only: IKG => IK4
1270 integer(IKG) , intent(out) , contiguous :: arrayCentered(:)
1271 integer(IKG) , intent(in) , contiguous :: array(:)
1272 integer(IKG) , intent(in) , optional :: fill
1273 end subroutine
1274#endif
1275
1276#if IK3_ENABLED
1277 PURE module subroutine setCenteredAsis_D1_IK3(arrayCentered, array, fill)
1278#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1279 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_IK3
1280#endif
1281 use pm_kind, only: IKG => IK3
1282 integer(IKG) , intent(out) , contiguous :: arrayCentered(:)
1283 integer(IKG) , intent(in) , contiguous :: array(:)
1284 integer(IKG) , intent(in) , optional :: fill
1285 end subroutine
1286#endif
1287
1288#if IK2_ENABLED
1289 PURE module subroutine setCenteredAsis_D1_IK2(arrayCentered, array, fill)
1290#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1291 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_IK2
1292#endif
1293 use pm_kind, only: IKG => IK2
1294 integer(IKG) , intent(out) , contiguous :: arrayCentered(:)
1295 integer(IKG) , intent(in) , contiguous :: array(:)
1296 integer(IKG) , intent(in) , optional :: fill
1297 end subroutine
1298#endif
1299
1300#if IK1_ENABLED
1301 PURE module subroutine setCenteredAsis_D1_IK1(arrayCentered, array, fill)
1302#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1303 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_IK1
1304#endif
1305 use pm_kind, only: IKG => IK1
1306 integer(IKG) , intent(out) , contiguous :: arrayCentered(:)
1307 integer(IKG) , intent(in) , contiguous :: array(:)
1308 integer(IKG) , intent(in) , optional :: fill
1309 end subroutine
1310#endif
1311
1312 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1313
1314#if LK5_ENABLED
1315 PURE module subroutine setCenteredAsis_D1_LK5(arrayCentered, array, fill)
1316#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1317 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_LK5
1318#endif
1319 use pm_kind, only: LKG => LK5
1320 logical(LKG) , intent(out) , contiguous :: arrayCentered(:)
1321 logical(LKG) , intent(in) , contiguous :: array(:)
1322 logical(LKG) , intent(in) , optional :: fill
1323 end subroutine
1324#endif
1325
1326#if LK4_ENABLED
1327 PURE module subroutine setCenteredAsis_D1_LK4(arrayCentered, array, fill)
1328#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1329 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_LK4
1330#endif
1331 use pm_kind, only: LKG => LK4
1332 logical(LKG) , intent(out) , contiguous :: arrayCentered(:)
1333 logical(LKG) , intent(in) , contiguous :: array(:)
1334 logical(LKG) , intent(in) , optional :: fill
1335 end subroutine
1336#endif
1337
1338#if LK3_ENABLED
1339 PURE module subroutine setCenteredAsis_D1_LK3(arrayCentered, array, fill)
1340#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1341 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_LK3
1342#endif
1343 use pm_kind, only: LKG => LK3
1344 logical(LKG) , intent(out) , contiguous :: arrayCentered(:)
1345 logical(LKG) , intent(in) , contiguous :: array(:)
1346 logical(LKG) , intent(in) , optional :: fill
1347 end subroutine
1348#endif
1349
1350#if LK2_ENABLED
1351 PURE module subroutine setCenteredAsis_D1_LK2(arrayCentered, array, fill)
1352#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1353 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_LK2
1354#endif
1355 use pm_kind, only: LKG => LK2
1356 logical(LKG) , intent(out) , contiguous :: arrayCentered(:)
1357 logical(LKG) , intent(in) , contiguous :: array(:)
1358 logical(LKG) , intent(in) , optional :: fill
1359 end subroutine
1360#endif
1361
1362#if LK1_ENABLED
1363 PURE module subroutine setCenteredAsis_D1_LK1(arrayCentered, array, fill)
1364#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1365 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_LK1
1366#endif
1367 use pm_kind, only: LKG => LK1
1368 logical(LKG) , intent(out) , contiguous :: arrayCentered(:)
1369 logical(LKG) , intent(in) , contiguous :: array(:)
1370 logical(LKG) , intent(in) , optional :: fill
1371 end subroutine
1372#endif
1373
1374 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1375
1376#if CK5_ENABLED
1377 PURE module subroutine setCenteredAsis_D1_CK5(arrayCentered, array, fill)
1378#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1379 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_CK5
1380#endif
1381 use pm_kind, only: CKG => CK5
1382 complex(CKG) , intent(out) , contiguous :: arrayCentered(:)
1383 complex(CKG) , intent(in) , contiguous :: array(:)
1384 complex(CKG) , intent(in) , optional :: fill
1385 end subroutine
1386#endif
1387
1388#if CK4_ENABLED
1389 PURE module subroutine setCenteredAsis_D1_CK4(arrayCentered, array, fill)
1390#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1391 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_CK4
1392#endif
1393 use pm_kind, only: CKG => CK4
1394 complex(CKG) , intent(out) , contiguous :: arrayCentered(:)
1395 complex(CKG) , intent(in) , contiguous :: array(:)
1396 complex(CKG) , intent(in) , optional :: fill
1397 end subroutine
1398#endif
1399
1400#if CK3_ENABLED
1401 PURE module subroutine setCenteredAsis_D1_CK3(arrayCentered, array, fill)
1402#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1403 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_CK3
1404#endif
1405 use pm_kind, only: CKG => CK3
1406 complex(CKG) , intent(out) , contiguous :: arrayCentered(:)
1407 complex(CKG) , intent(in) , contiguous :: array(:)
1408 complex(CKG) , intent(in) , optional :: fill
1409 end subroutine
1410#endif
1411
1412#if CK2_ENABLED
1413 PURE module subroutine setCenteredAsis_D1_CK2(arrayCentered, array, fill)
1414#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1415 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_CK2
1416#endif
1417 use pm_kind, only: CKG => CK2
1418 complex(CKG) , intent(out) , contiguous :: arrayCentered(:)
1419 complex(CKG) , intent(in) , contiguous :: array(:)
1420 complex(CKG) , intent(in) , optional :: fill
1421 end subroutine
1422#endif
1423
1424#if CK1_ENABLED
1425 PURE module subroutine setCenteredAsis_D1_CK1(arrayCentered, array, fill)
1426#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1427 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_CK1
1428#endif
1429 use pm_kind, only: CKG => CK1
1430 complex(CKG) , intent(out) , contiguous :: arrayCentered(:)
1431 complex(CKG) , intent(in) , contiguous :: array(:)
1432 complex(CKG) , intent(in) , optional :: fill
1433 end subroutine
1434#endif
1435
1436 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1437
1438#if RK5_ENABLED
1439 PURE module subroutine setCenteredAsis_D1_RK5(arrayCentered, array, fill)
1440#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1441 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_RK5
1442#endif
1443 use pm_kind, only: RKG => RK5
1444 real(RKG) , intent(out) , contiguous :: arrayCentered(:)
1445 real(RKG) , intent(in) , contiguous :: array(:)
1446 real(RKG) , intent(in) , optional :: fill
1447 end subroutine
1448#endif
1449
1450#if RK4_ENABLED
1451 PURE module subroutine setCenteredAsis_D1_RK4(arrayCentered, array, fill)
1452#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1453 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_RK4
1454#endif
1455 use pm_kind, only: RKG => RK4
1456 real(RKG) , intent(out) , contiguous :: arrayCentered(:)
1457 real(RKG) , intent(in) , contiguous :: array(:)
1458 real(RKG) , intent(in) , optional :: fill
1459 end subroutine
1460#endif
1461
1462#if RK3_ENABLED
1463 PURE module subroutine setCenteredAsis_D1_RK3(arrayCentered, array, fill)
1464#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1465 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_RK3
1466#endif
1467 use pm_kind, only: RKG => RK3
1468 real(RKG) , intent(out) , contiguous :: arrayCentered(:)
1469 real(RKG) , intent(in) , contiguous :: array(:)
1470 real(RKG) , intent(in) , optional :: fill
1471 end subroutine
1472#endif
1473
1474#if RK2_ENABLED
1475 PURE module subroutine setCenteredAsis_D1_RK2(arrayCentered, array, fill)
1476#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1477 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_RK2
1478#endif
1479 use pm_kind, only: RKG => RK2
1480 real(RKG) , intent(out) , contiguous :: arrayCentered(:)
1481 real(RKG) , intent(in) , contiguous :: array(:)
1482 real(RKG) , intent(in) , optional :: fill
1483 end subroutine
1484#endif
1485
1486#if RK1_ENABLED
1487 PURE module subroutine setCenteredAsis_D1_RK1(arrayCentered, array, fill)
1488#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1489 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredAsis_D1_RK1
1490#endif
1491 use pm_kind, only: RKG => RK1
1492 real(RKG) , intent(out) , contiguous :: arrayCentered(:)
1493 real(RKG) , intent(in) , contiguous :: array(:)
1494 real(RKG) , intent(in) , optional :: fill
1495 end subroutine
1496#endif
1497
1498 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1499
1500 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1501 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1502 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1503
1504 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1505
1506#if SK5_ENABLED
1507 PURE module subroutine setCenteredMarg_D0_SK5(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1508#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1509 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D0_SK5
1510#endif
1511 use pm_kind, only: SKG => SK5
1512 character(*,SKG) , intent(out) :: arrayCentered
1513 character(*,SKG) , intent(in) :: array
1514 character(1,SKG) , intent(in) , optional :: fill, lmfill, rmfill
1515 integer(IK) , intent(in) :: lmsize, rmsize
1516 end subroutine
1517#endif
1518
1519#if SK4_ENABLED
1520 PURE module subroutine setCenteredMarg_D0_SK4(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1521#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1522 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D0_SK4
1523#endif
1524 use pm_kind, only: SKG => SK4
1525 character(*,SKG) , intent(out) :: arrayCentered
1526 character(*,SKG) , intent(in) :: array
1527 character(1,SKG) , intent(in) , optional :: fill, lmfill, rmfill
1528 integer(IK) , intent(in) :: lmsize, rmsize
1529 end subroutine
1530#endif
1531
1532#if SK3_ENABLED
1533 PURE module subroutine setCenteredMarg_D0_SK3(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1534#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1535 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D0_SK3
1536#endif
1537 use pm_kind, only: SKG => SK3
1538 character(*,SKG) , intent(out) :: arrayCentered
1539 character(*,SKG) , intent(in) :: array
1540 character(1,SKG) , intent(in) , optional :: fill, lmfill, rmfill
1541 integer(IK) , intent(in) :: lmsize, rmsize
1542 end subroutine
1543#endif
1544
1545#if SK2_ENABLED
1546 PURE module subroutine setCenteredMarg_D0_SK2(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1547#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1548 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D0_SK2
1549#endif
1550 use pm_kind, only: SKG => SK2
1551 character(*,SKG) , intent(out) :: arrayCentered
1552 character(*,SKG) , intent(in) :: array
1553 character(1,SKG) , intent(in) , optional :: fill, lmfill, rmfill
1554 integer(IK) , intent(in) :: lmsize, rmsize
1555 end subroutine
1556#endif
1557
1558#if SK1_ENABLED
1559 PURE module subroutine setCenteredMarg_D0_SK1(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1560#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1561 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D0_SK1
1562#endif
1563 use pm_kind, only: SKG => SK1
1564 character(*,SKG) , intent(out) :: arrayCentered
1565 character(*,SKG) , intent(in) :: array
1566 character(1,SKG) , intent(in) , optional :: fill, lmfill, rmfill
1567 integer(IK) , intent(in) :: lmsize, rmsize
1568 end subroutine
1569#endif
1570
1571 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1572
1573#if SK5_ENABLED
1574 PURE module subroutine setCenteredMarg_D1_SK5(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1575#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1576 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_SK5
1577#endif
1578 use pm_kind, only: SKG => SK5
1579 character(*,SKG) , intent(out) , contiguous :: arrayCentered(:)
1580 character(*,SKG) , intent(in) , contiguous :: array(:)
1581 character(len(array,IK),SKG) , intent(in) , optional :: fill, lmfill, rmfill
1582 integer(IK) , intent(in) :: lmsize, rmsize
1583 end subroutine
1584#endif
1585
1586#if SK4_ENABLED
1587 PURE module subroutine setCenteredMarg_D1_SK4(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1588#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1589 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_SK4
1590#endif
1591 use pm_kind, only: SKG => SK4
1592 character(*,SKG) , intent(out) , contiguous :: arrayCentered(:)
1593 character(*,SKG) , intent(in) , contiguous :: array(:)
1594 character(len(array,IK),SKG) , intent(in) , optional :: fill, lmfill, rmfill
1595 integer(IK) , intent(in) :: lmsize, rmsize
1596 end subroutine
1597#endif
1598
1599#if SK3_ENABLED
1600 PURE module subroutine setCenteredMarg_D1_SK3(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1601#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1602 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_SK3
1603#endif
1604 use pm_kind, only: SKG => SK3
1605 character(*,SKG) , intent(out) , contiguous :: arrayCentered(:)
1606 character(*,SKG) , intent(in) , contiguous :: array(:)
1607 character(len(array,IK),SKG) , intent(in) , optional :: fill, lmfill, rmfill
1608 integer(IK) , intent(in) :: lmsize, rmsize
1609 end subroutine
1610#endif
1611
1612#if SK2_ENABLED
1613 PURE module subroutine setCenteredMarg_D1_SK2(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1614#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1615 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_SK2
1616#endif
1617 use pm_kind, only: SKG => SK2
1618 character(*,SKG) , intent(out) , contiguous :: arrayCentered(:)
1619 character(*,SKG) , intent(in) , contiguous :: array(:)
1620 character(len(array,IK),SKG) , intent(in) , optional :: fill, lmfill, rmfill
1621 integer(IK) , intent(in) :: lmsize, rmsize
1622 end subroutine
1623#endif
1624
1625#if SK1_ENABLED
1626 PURE module subroutine setCenteredMarg_D1_SK1(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1627#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1628 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_SK1
1629#endif
1630 use pm_kind, only: SKG => SK1
1631 character(*,SKG) , intent(out) , contiguous :: arrayCentered(:)
1632 character(*,SKG) , intent(in) , contiguous :: array(:)
1633 character(len(array,IK),SKG) , intent(in) , optional :: fill, lmfill, rmfill
1634 integer(IK) , intent(in) :: lmsize, rmsize
1635 end subroutine
1636#endif
1637
1638 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1639
1640#if IK5_ENABLED
1641 PURE module subroutine setCenteredMarg_D1_IK5(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1642#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1643 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_IK5
1644#endif
1645 use pm_kind, only: IKG => IK5
1646 integer(IKG) , intent(out) , contiguous :: arrayCentered(:)
1647 integer(IKG) , intent(in) , contiguous :: array(:)
1648 integer(IKG) , intent(in) , optional :: fill, lmfill, rmfill
1649 integer(IK) , intent(in) :: lmsize, rmsize
1650 end subroutine
1651#endif
1652
1653#if IK4_ENABLED
1654 PURE module subroutine setCenteredMarg_D1_IK4(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1655#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1656 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_IK4
1657#endif
1658 use pm_kind, only: IKG => IK4
1659 integer(IKG) , intent(out) , contiguous :: arrayCentered(:)
1660 integer(IKG) , intent(in) , contiguous :: array(:)
1661 integer(IKG) , intent(in) , optional :: fill, lmfill, rmfill
1662 integer(IK) , intent(in) :: lmsize, rmsize
1663 end subroutine
1664#endif
1665
1666#if IK3_ENABLED
1667 PURE module subroutine setCenteredMarg_D1_IK3(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1668#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1669 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_IK3
1670#endif
1671 use pm_kind, only: IKG => IK3
1672 integer(IKG) , intent(out) , contiguous :: arrayCentered(:)
1673 integer(IKG) , intent(in) , contiguous :: array(:)
1674 integer(IKG) , intent(in) , optional :: fill, lmfill, rmfill
1675 integer(IK) , intent(in) :: lmsize, rmsize
1676 end subroutine
1677#endif
1678
1679#if IK2_ENABLED
1680 PURE module subroutine setCenteredMarg_D1_IK2(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1681#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1682 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_IK2
1683#endif
1684 use pm_kind, only: IKG => IK2
1685 integer(IKG) , intent(out) , contiguous :: arrayCentered(:)
1686 integer(IKG) , intent(in) , contiguous :: array(:)
1687 integer(IKG) , intent(in) , optional :: fill, lmfill, rmfill
1688 integer(IK) , intent(in) :: lmsize, rmsize
1689 end subroutine
1690#endif
1691
1692#if IK1_ENABLED
1693 PURE module subroutine setCenteredMarg_D1_IK1(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1694#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1695 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_IK1
1696#endif
1697 use pm_kind, only: IKG => IK1
1698 integer(IKG) , intent(out) , contiguous :: arrayCentered(:)
1699 integer(IKG) , intent(in) , contiguous :: array(:)
1700 integer(IKG) , intent(in) , optional :: fill, lmfill, rmfill
1701 integer(IK) , intent(in) :: lmsize, rmsize
1702 end subroutine
1703#endif
1704
1705 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1706
1707#if LK5_ENABLED
1708 PURE module subroutine setCenteredMarg_D1_LK5(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1709#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1710 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_LK5
1711#endif
1712 use pm_kind, only: LKG => LK5
1713 logical(LKG) , intent(out) , contiguous :: arrayCentered(:)
1714 logical(LKG) , intent(in) , contiguous :: array(:)
1715 logical(LKG) , intent(in) , optional :: fill, lmfill, rmfill
1716 integer(IK) , intent(in) :: lmsize, rmsize
1717 end subroutine
1718#endif
1719
1720#if LK4_ENABLED
1721 PURE module subroutine setCenteredMarg_D1_LK4(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1722#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1723 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_LK4
1724#endif
1725 use pm_kind, only: LKG => LK4
1726 logical(LKG) , intent(out) , contiguous :: arrayCentered(:)
1727 logical(LKG) , intent(in) , contiguous :: array(:)
1728 logical(LKG) , intent(in) , optional :: fill, lmfill, rmfill
1729 integer(IK) , intent(in) :: lmsize, rmsize
1730 end subroutine
1731#endif
1732
1733#if LK3_ENABLED
1734 PURE module subroutine setCenteredMarg_D1_LK3(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1735#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1736 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_LK3
1737#endif
1738 use pm_kind, only: LKG => LK3
1739 logical(LKG) , intent(out) , contiguous :: arrayCentered(:)
1740 logical(LKG) , intent(in) , contiguous :: array(:)
1741 logical(LKG) , intent(in) , optional :: fill, lmfill, rmfill
1742 integer(IK) , intent(in) :: lmsize, rmsize
1743 end subroutine
1744#endif
1745
1746#if LK2_ENABLED
1747 PURE module subroutine setCenteredMarg_D1_LK2(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1748#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1749 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_LK2
1750#endif
1751 use pm_kind, only: LKG => LK2
1752 logical(LKG) , intent(out) , contiguous :: arrayCentered(:)
1753 logical(LKG) , intent(in) , contiguous :: array(:)
1754 logical(LKG) , intent(in) , optional :: fill, lmfill, rmfill
1755 integer(IK) , intent(in) :: lmsize, rmsize
1756 end subroutine
1757#endif
1758
1759#if LK1_ENABLED
1760 PURE module subroutine setCenteredMarg_D1_LK1(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1761#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1762 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_LK1
1763#endif
1764 use pm_kind, only: LKG => LK1
1765 logical(LKG) , intent(out) , contiguous :: arrayCentered(:)
1766 logical(LKG) , intent(in) , contiguous :: array(:)
1767 logical(LKG) , intent(in) , optional :: fill, lmfill, rmfill
1768 integer(IK) , intent(in) :: lmsize, rmsize
1769 end subroutine
1770#endif
1771
1772 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1773
1774#if CK5_ENABLED
1775 PURE module subroutine setCenteredMarg_D1_CK5(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1776#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1777 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_CK5
1778#endif
1779 use pm_kind, only: CKG => CK5
1780 complex(CKG) , intent(out) , contiguous :: arrayCentered(:)
1781 complex(CKG) , intent(in) , contiguous :: array(:)
1782 complex(CKG) , intent(in) , optional :: fill, lmfill, rmfill
1783 integer(IK) , intent(in) :: lmsize, rmsize
1784 end subroutine
1785#endif
1786
1787#if CK4_ENABLED
1788 PURE module subroutine setCenteredMarg_D1_CK4(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1789#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1790 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_CK4
1791#endif
1792 use pm_kind, only: CKG => CK4
1793 complex(CKG) , intent(out) , contiguous :: arrayCentered(:)
1794 complex(CKG) , intent(in) , contiguous :: array(:)
1795 complex(CKG) , intent(in) , optional :: fill, lmfill, rmfill
1796 integer(IK) , intent(in) :: lmsize, rmsize
1797 end subroutine
1798#endif
1799
1800#if CK3_ENABLED
1801 PURE module subroutine setCenteredMarg_D1_CK3(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1802#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1803 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_CK3
1804#endif
1805 use pm_kind, only: CKG => CK3
1806 complex(CKG) , intent(out) , contiguous :: arrayCentered(:)
1807 complex(CKG) , intent(in) , contiguous :: array(:)
1808 complex(CKG) , intent(in) , optional :: fill, lmfill, rmfill
1809 integer(IK) , intent(in) :: lmsize, rmsize
1810 end subroutine
1811#endif
1812
1813#if CK2_ENABLED
1814 PURE module subroutine setCenteredMarg_D1_CK2(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1815#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1816 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_CK2
1817#endif
1818 use pm_kind, only: CKG => CK2
1819 complex(CKG) , intent(out) , contiguous :: arrayCentered(:)
1820 complex(CKG) , intent(in) , contiguous :: array(:)
1821 complex(CKG) , intent(in) , optional :: fill, lmfill, rmfill
1822 integer(IK) , intent(in) :: lmsize, rmsize
1823 end subroutine
1824#endif
1825
1826#if CK1_ENABLED
1827 PURE module subroutine setCenteredMarg_D1_CK1(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1828#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1829 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_CK1
1830#endif
1831 use pm_kind, only: CKG => CK1
1832 complex(CKG) , intent(out) , contiguous :: arrayCentered(:)
1833 complex(CKG) , intent(in) , contiguous :: array(:)
1834 complex(CKG) , intent(in) , optional :: fill, lmfill, rmfill
1835 integer(IK) , intent(in) :: lmsize, rmsize
1836 end subroutine
1837#endif
1838
1839 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1840
1841#if RK5_ENABLED
1842 PURE module subroutine setCenteredMarg_D1_RK5(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1843#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1844 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_RK5
1845#endif
1846 use pm_kind, only: RKG => RK5
1847 real(RKG) , intent(out) , contiguous :: arrayCentered(:)
1848 real(RKG) , intent(in) , contiguous :: array(:)
1849 real(RKG) , intent(in) , optional :: fill, lmfill, rmfill
1850 integer(IK) , intent(in) :: lmsize, rmsize
1851 end subroutine
1852#endif
1853
1854#if RK4_ENABLED
1855 PURE module subroutine setCenteredMarg_D1_RK4(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1856#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1857 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_RK4
1858#endif
1859 use pm_kind, only: RKG => RK4
1860 real(RKG) , intent(out) , contiguous :: arrayCentered(:)
1861 real(RKG) , intent(in) , contiguous :: array(:)
1862 real(RKG) , intent(in) , optional :: fill, lmfill, rmfill
1863 integer(IK) , intent(in) :: lmsize, rmsize
1864 end subroutine
1865#endif
1866
1867#if RK3_ENABLED
1868 PURE module subroutine setCenteredMarg_D1_RK3(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1869#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1870 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_RK3
1871#endif
1872 use pm_kind, only: RKG => RK3
1873 real(RKG) , intent(out) , contiguous :: arrayCentered(:)
1874 real(RKG) , intent(in) , contiguous :: array(:)
1875 real(RKG) , intent(in) , optional :: fill, lmfill, rmfill
1876 integer(IK) , intent(in) :: lmsize, rmsize
1877 end subroutine
1878#endif
1879
1880#if RK2_ENABLED
1881 PURE module subroutine setCenteredMarg_D1_RK2(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1882#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1883 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_RK2
1884#endif
1885 use pm_kind, only: RKG => RK2
1886 real(RKG) , intent(out) , contiguous :: arrayCentered(:)
1887 real(RKG) , intent(in) , contiguous :: array(:)
1888 real(RKG) , intent(in) , optional :: fill, lmfill, rmfill
1889 integer(IK) , intent(in) :: lmsize, rmsize
1890 end subroutine
1891#endif
1892
1893#if RK1_ENABLED
1894 PURE module subroutine setCenteredMarg_D1_RK1(arrayCentered, array, lmsize, rmsize, fill, lmfill, rmfill)
1895#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1896 !DEC$ ATTRIBUTES DLLEXPORT :: setCenteredMarg_D1_RK1
1897#endif
1898 use pm_kind, only: RKG => RK1
1899 real(RKG) , intent(out) , contiguous :: arrayCentered(:)
1900 real(RKG) , intent(in) , contiguous :: array(:)
1901 real(RKG) , intent(in) , optional :: fill, lmfill, rmfill
1902 integer(IK) , intent(in) :: lmsize, rmsize
1903 end subroutine
1904#endif
1905
1906 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1907
1908 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1909 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1910 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1911
1912 end interface
1913
1914!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1915
1916end module pm_arrayCenter ! LCOV_EXCL_LINE
Generate and return a resized and centered copy of the input array within the newly allocated arrayCe...
Center the contents of the input array within the output arrayCentered while filling the newly added ...
This module contains procedures and generic interfaces for resizing an input array and centering the ...
character(*, SK), parameter MODULE_NAME
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter SK5
Definition: pm_kind.F90:326
integer, parameter LK1
Definition: pm_kind.F90:412
integer, parameter IK3
Definition: pm_kind.F90:368
integer, parameter RK5
Definition: pm_kind.F90:478
integer, parameter RK4
Definition: pm_kind.F90:489
integer, parameter SK1
Definition: pm_kind.F90:346
integer, parameter IK1
Definition: pm_kind.F90:382
integer, parameter LK5
Definition: pm_kind.F90:392
integer, parameter RK2
Definition: pm_kind.F90:511
integer, parameter CK1
Definition: pm_kind.F90:464
integer, parameter RK3
Definition: pm_kind.F90:500
integer, parameter 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