ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_mathCumSum.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
45
46!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
47
49
52 use pm_array, only: forward, forward_type
53 use pm_array, only: reverse, reverse_type
54 use pm_array, only: nothing, nothing_type
55 use pm_kind, only: SK, IK, LK
56 implicit none
57
58 character(*, SK), parameter :: MODULE_NAME = "@pm_mathCumSum"
59
60!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
61
129 interface getCumSum
130
131 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
132
133#if IK5_ENABLED
134 PURE module function getCumSum_IK5(array, direction, action) result(cumsum)
135#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
136 !DEC$ ATTRIBUTES DLLEXPORT :: getCumSum_IK5
137#endif
138 use pm_kind, only: IKG => IK5
139 integer(IKG) , intent(in), contiguous :: array(:)
140 class(direction_type) , intent(in), optional :: direction
141 class(action_type) , intent(in), optional :: action
142 integer(IKG) :: cumsum(size(array, kind = IK))
143 end function
144#endif
145
146#if IK4_ENABLED
147 PURE module function getCumSum_IK4(array, direction, action) result(cumsum)
148#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
149 !DEC$ ATTRIBUTES DLLEXPORT :: getCumSum_IK4
150#endif
151 use pm_kind, only: IKG => IK4
152 integer(IKG) , intent(in), contiguous :: array(:)
153 class(direction_type) , intent(in), optional :: direction
154 class(action_type) , intent(in), optional :: action
155 integer(IKG) :: cumsum(size(array, kind = IK))
156 end function
157#endif
158
159#if IK3_ENABLED
160 PURE module function getCumSum_IK3(array, direction, action) result(cumsum)
161#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
162 !DEC$ ATTRIBUTES DLLEXPORT :: getCumSum_IK3
163#endif
164 use pm_kind, only: IKG => IK3
165 integer(IKG) , intent(in), contiguous :: array(:)
166 class(direction_type) , intent(in), optional :: direction
167 class(action_type) , intent(in), optional :: action
168 integer(IKG) :: cumsum(size(array, kind = IK))
169 end function
170#endif
171
172#if IK2_ENABLED
173 PURE module function getCumSum_IK2(array, direction, action) result(cumsum)
174#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
175 !DEC$ ATTRIBUTES DLLEXPORT :: getCumSum_IK2
176#endif
177 use pm_kind, only: IKG => IK2
178 integer(IKG) , intent(in), contiguous :: array(:)
179 class(direction_type) , intent(in), optional :: direction
180 class(action_type) , intent(in), optional :: action
181 integer(IKG) :: cumsum(size(array, kind = IK))
182 end function
183#endif
184
185#if IK1_ENABLED
186 PURE module function getCumSum_IK1(array, direction, action) result(cumsum)
187#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
188 !DEC$ ATTRIBUTES DLLEXPORT :: getCumSum_IK1
189#endif
190 use pm_kind, only: IKG => IK1
191 integer(IKG) , intent(in), contiguous :: array(:)
192 class(direction_type) , intent(in), optional :: direction
193 class(action_type) , intent(in), optional :: action
194 integer(IKG) :: cumsum(size(array, kind = IK))
195 end function
196#endif
197
198 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
199
200#if CK5_ENABLED
201 PURE module function getCumSum_CK5(array, direction, action) result(cumsum)
202#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
203 !DEC$ ATTRIBUTES DLLEXPORT :: getCumSum_CK5
204#endif
205 use pm_kind, only: CKG => CK5
206 complex(CKG) , intent(in), contiguous :: array(:)
207 class(direction_type) , intent(in), optional :: direction
208 class(action_type) , intent(in), optional :: action
209 complex(CKG) :: cumsum(size(array, kind = IK))
210 end function
211#endif
212
213#if CK4_ENABLED
214 PURE module function getCumSum_CK4(array, direction, action) result(cumsum)
215#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
216 !DEC$ ATTRIBUTES DLLEXPORT :: getCumSum_CK4
217#endif
218 use pm_kind, only: CKG => CK4
219 complex(CKG) , intent(in), contiguous :: array(:)
220 class(direction_type) , intent(in), optional :: direction
221 class(action_type) , intent(in), optional :: action
222 complex(CKG) :: cumsum(size(array, kind = IK))
223 end function
224#endif
225
226#if CK3_ENABLED
227 PURE module function getCumSum_CK3(array, direction, action) result(cumsum)
228#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
229 !DEC$ ATTRIBUTES DLLEXPORT :: getCumSum_CK3
230#endif
231 use pm_kind, only: CKG => CK3
232 complex(CKG) , intent(in), contiguous :: array(:)
233 class(direction_type) , intent(in), optional :: direction
234 class(action_type) , intent(in), optional :: action
235 complex(CKG) :: cumsum(size(array, kind = IK))
236 end function
237#endif
238
239#if CK2_ENABLED
240 PURE module function getCumSum_CK2(array, direction, action) result(cumsum)
241#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
242 !DEC$ ATTRIBUTES DLLEXPORT :: getCumSum_CK2
243#endif
244 use pm_kind, only: CKG => CK2
245 complex(CKG) , intent(in), contiguous :: array(:)
246 class(direction_type) , intent(in), optional :: direction
247 class(action_type) , intent(in), optional :: action
248 complex(CKG) :: cumsum(size(array, kind = IK))
249 end function
250#endif
251
252#if CK1_ENABLED
253 PURE module function getCumSum_CK1(array, direction, action) result(cumsum)
254#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
255 !DEC$ ATTRIBUTES DLLEXPORT :: getCumSum_CK1
256#endif
257 use pm_kind, only: CKG => CK1
258 complex(CKG) , intent(in), contiguous :: array(:)
259 class(direction_type) , intent(in), optional :: direction
260 class(action_type) , intent(in), optional :: action
261 complex(CKG) :: cumsum(size(array, kind = IK))
262 end function
263#endif
264
265 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
266
267#if RK5_ENABLED
268 PURE module function getCumSum_RK5(array, direction, action) result(cumsum)
269#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
270 !DEC$ ATTRIBUTES DLLEXPORT :: getCumSum_RK5
271#endif
272 use pm_kind, only: RKG => RK5
273 real(RKG) , intent(in), contiguous :: array(:)
274 class(direction_type) , intent(in), optional :: direction
275 class(action_type) , intent(in), optional :: action
276 real(RKG) :: cumsum(size(array, kind = IK))
277 end function
278#endif
279
280#if RK4_ENABLED
281 PURE module function getCumSum_RK4(array, direction, action) result(cumsum)
282#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
283 !DEC$ ATTRIBUTES DLLEXPORT :: getCumSum_RK4
284#endif
285 use pm_kind, only: RKG => RK4
286 real(RKG) , intent(in), contiguous :: array(:)
287 class(direction_type) , intent(in), optional :: direction
288 class(action_type) , intent(in), optional :: action
289 real(RKG) :: cumsum(size(array, kind = IK))
290 end function
291#endif
292
293#if RK3_ENABLED
294 PURE module function getCumSum_RK3(array, direction, action) result(cumsum)
295#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
296 !DEC$ ATTRIBUTES DLLEXPORT :: getCumSum_RK3
297#endif
298 use pm_kind, only: RKG => RK3
299 real(RKG) , intent(in), contiguous :: array(:)
300 class(direction_type) , intent(in), optional :: direction
301 class(action_type) , intent(in), optional :: action
302 real(RKG) :: cumsum(size(array, kind = IK))
303 end function
304#endif
305
306#if RK2_ENABLED
307 PURE module function getCumSum_RK2(array, direction, action) result(cumsum)
308#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
309 !DEC$ ATTRIBUTES DLLEXPORT :: getCumSum_RK2
310#endif
311 use pm_kind, only: RKG => RK2
312 real(RKG) , intent(in), contiguous :: array(:)
313 class(direction_type) , intent(in), optional :: direction
314 class(action_type) , intent(in), optional :: action
315 real(RKG) :: cumsum(size(array, kind = IK))
316 end function
317#endif
318
319#if RK1_ENABLED
320 PURE module function getCumSum_RK1(array, direction, action) result(cumsum)
321#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
322 !DEC$ ATTRIBUTES DLLEXPORT :: getCumSum_RK1
323#endif
324 use pm_kind, only: RKG => RK1
325 real(RKG) , intent(in), contiguous :: array(:)
326 class(direction_type) , intent(in), optional :: direction
327 class(action_type) , intent(in), optional :: action
328 real(RKG) :: cumsum(size(array, kind = IK))
329 end function
330#endif
331
332 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
333
334 end interface getCumSum
335
336!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
337
422
423 ! old, new, default
424
425 interface setCumSum
426
427 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
428 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
429 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
430
431 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
432
433#if IK5_ENABLED
434 PURE recursive module subroutine setCumSumOldDefDef_IK5(array)
435#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
436 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldDefDef_IK5
437#endif
438 use pm_kind, only: IKG => IK5
439 integer(IKG) , intent(inout) , contiguous :: array(:)
440 end subroutine
441#endif
442
443#if IK4_ENABLED
444 PURE recursive module subroutine setCumSumOldDefDef_IK4(array)
445#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
446 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldDefDef_IK4
447#endif
448 use pm_kind, only: IKG => IK4
449 integer(IKG) , intent(inout) , contiguous :: array(:)
450 end subroutine
451#endif
452
453#if IK3_ENABLED
454 PURE recursive module subroutine setCumSumOldDefDef_IK3(array)
455#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
456 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldDefDef_IK3
457#endif
458 use pm_kind, only: IKG => IK3
459 integer(IKG) , intent(inout) , contiguous :: array(:)
460 end subroutine
461#endif
462
463#if IK2_ENABLED
464 PURE recursive module subroutine setCumSumOldDefDef_IK2(array)
465#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
466 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldDefDef_IK2
467#endif
468 use pm_kind, only: IKG => IK2
469 integer(IKG) , intent(inout) , contiguous :: array(:)
470 end subroutine
471#endif
472
473#if IK1_ENABLED
474 PURE recursive module subroutine setCumSumOldDefDef_IK1(array)
475#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
476 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldDefDef_IK1
477#endif
478 use pm_kind, only: IKG => IK1
479 integer(IKG) , intent(inout) , contiguous :: array(:)
480 end subroutine
481#endif
482
483 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
484
485#if CK5_ENABLED
486 PURE recursive module subroutine setCumSumOldDefDef_CK5(array)
487#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
488 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldDefDef_CK5
489#endif
490 use pm_kind, only: CKG => CK5
491 complex(CKG) , intent(inout) , contiguous :: array(:)
492 end subroutine
493#endif
494
495#if CK4_ENABLED
496 PURE recursive module subroutine setCumSumOldDefDef_CK4(array)
497#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
498 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldDefDef_CK4
499#endif
500 use pm_kind, only: CKG => CK4
501 complex(CKG) , intent(inout) , contiguous :: array(:)
502 end subroutine
503#endif
504
505#if CK3_ENABLED
506 PURE recursive module subroutine setCumSumOldDefDef_CK3(array)
507#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
508 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldDefDef_CK3
509#endif
510 use pm_kind, only: CKG => CK3
511 complex(CKG) , intent(inout) , contiguous :: array(:)
512 end subroutine
513#endif
514
515#if CK2_ENABLED
516 PURE recursive module subroutine setCumSumOldDefDef_CK2(array)
517#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
518 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldDefDef_CK2
519#endif
520 use pm_kind, only: CKG => CK2
521 complex(CKG) , intent(inout) , contiguous :: array(:)
522 end subroutine
523#endif
524
525#if CK1_ENABLED
526 PURE recursive module subroutine setCumSumOldDefDef_CK1(array)
527#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
528 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldDefDef_CK1
529#endif
530 use pm_kind, only: CKG => CK1
531 complex(CKG) , intent(inout) , contiguous :: array(:)
532 end subroutine
533#endif
534
535 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
536
537#if RK5_ENABLED
538 PURE recursive module subroutine setCumSumOldDefDef_RK5(array)
539#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
540 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldDefDef_RK5
541#endif
542 use pm_kind, only: RKG => RK5
543 real(RKG) , intent(inout) , contiguous :: array(:)
544 end subroutine
545#endif
546
547#if RK4_ENABLED
548 PURE recursive module subroutine setCumSumOldDefDef_RK4(array)
549#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
550 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldDefDef_RK4
551#endif
552 use pm_kind, only: RKG => RK4
553 real(RKG) , intent(inout) , contiguous :: array(:)
554 end subroutine
555#endif
556
557#if RK3_ENABLED
558 PURE recursive module subroutine setCumSumOldDefDef_RK3(array)
559#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
560 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldDefDef_RK3
561#endif
562 use pm_kind, only: RKG => RK3
563 real(RKG) , intent(inout) , contiguous :: array(:)
564 end subroutine
565#endif
566
567#if RK2_ENABLED
568 PURE recursive module subroutine setCumSumOldDefDef_RK2(array)
569#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
570 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldDefDef_RK2
571#endif
572 use pm_kind, only: RKG => RK2
573 real(RKG) , intent(inout) , contiguous :: array(:)
574 end subroutine
575#endif
576
577#if RK1_ENABLED
578 PURE recursive module subroutine setCumSumOldDefDef_RK1(array)
579#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
580 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldDefDef_RK1
581#endif
582 use pm_kind, only: RKG => RK1
583 real(RKG) , intent(inout) , contiguous :: array(:)
584 end subroutine
585#endif
586
587 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
588
589 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
590 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
591 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
592
593 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
594
595#if IK5_ENABLED
596 PURE recursive module subroutine setCumSumNewDefDef_IK5(cumsum, array)
597#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
598 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewDefDef_IK5
599#endif
600 use pm_kind, only: IKG => IK5
601 integer(IKG) , intent(in) , contiguous :: array(:)
602 integer(IKG) , intent(out) , contiguous :: cumsum(:)
603 end subroutine
604#endif
605
606#if IK4_ENABLED
607 PURE recursive module subroutine setCumSumNewDefDef_IK4(cumsum, array)
608#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
609 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewDefDef_IK4
610#endif
611 use pm_kind, only: IKG => IK4
612 integer(IKG) , intent(in) , contiguous :: array(:)
613 integer(IKG) , intent(out) , contiguous :: cumsum(:)
614 end subroutine
615#endif
616
617#if IK3_ENABLED
618 PURE recursive module subroutine setCumSumNewDefDef_IK3(cumsum, array)
619#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
620 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewDefDef_IK3
621#endif
622 use pm_kind, only: IKG => IK3
623 integer(IKG) , intent(in) , contiguous :: array(:)
624 integer(IKG) , intent(out) , contiguous :: cumsum(:)
625 end subroutine
626#endif
627
628#if IK2_ENABLED
629 PURE recursive module subroutine setCumSumNewDefDef_IK2(cumsum, array)
630#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
631 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewDefDef_IK2
632#endif
633 use pm_kind, only: IKG => IK2
634 integer(IKG) , intent(in) , contiguous :: array(:)
635 integer(IKG) , intent(out) , contiguous :: cumsum(:)
636 end subroutine
637#endif
638
639#if IK1_ENABLED
640 PURE recursive module subroutine setCumSumNewDefDef_IK1(cumsum, array)
641#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
642 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewDefDef_IK1
643#endif
644 use pm_kind, only: IKG => IK1
645 integer(IKG) , intent(in) , contiguous :: array(:)
646 integer(IKG) , intent(out) , contiguous :: cumsum(:)
647 end subroutine
648#endif
649
650 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
651
652#if CK5_ENABLED
653 PURE recursive module subroutine setCumSumNewDefDef_CK5(cumsum, array)
654#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
655 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewDefDef_CK5
656#endif
657 use pm_kind, only: CKG => CK5
658 complex(CKG) , intent(in) , contiguous :: array(:)
659 complex(CKG) , intent(out) , contiguous :: cumsum(:)
660 end subroutine
661#endif
662
663#if CK4_ENABLED
664 PURE recursive module subroutine setCumSumNewDefDef_CK4(cumsum, array)
665#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
666 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewDefDef_CK4
667#endif
668 use pm_kind, only: CKG => CK4
669 complex(CKG) , intent(in) , contiguous :: array(:)
670 complex(CKG) , intent(out) , contiguous :: cumsum(:)
671 end subroutine
672#endif
673
674#if CK3_ENABLED
675 PURE recursive module subroutine setCumSumNewDefDef_CK3(cumsum, array)
676#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
677 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewDefDef_CK3
678#endif
679 use pm_kind, only: CKG => CK3
680 complex(CKG) , intent(in) , contiguous :: array(:)
681 complex(CKG) , intent(out) , contiguous :: cumsum(:)
682 end subroutine
683#endif
684
685#if CK2_ENABLED
686 PURE recursive module subroutine setCumSumNewDefDef_CK2(cumsum, array)
687#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
688 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewDefDef_CK2
689#endif
690 use pm_kind, only: CKG => CK2
691 complex(CKG) , intent(in) , contiguous :: array(:)
692 complex(CKG) , intent(out) , contiguous :: cumsum(:)
693 end subroutine
694#endif
695
696#if CK1_ENABLED
697 PURE recursive module subroutine setCumSumNewDefDef_CK1(cumsum, array)
698#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
699 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewDefDef_CK1
700#endif
701 use pm_kind, only: CKG => CK1
702 complex(CKG) , intent(in) , contiguous :: array(:)
703 complex(CKG) , intent(out) , contiguous :: cumsum(:)
704 end subroutine
705#endif
706
707 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
708
709#if RK5_ENABLED
710 PURE recursive module subroutine setCumSumNewDefDef_RK5(cumsum, array)
711#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
712 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewDefDef_RK5
713#endif
714 use pm_kind, only: RKG => RK5
715 real(RKG) , intent(in) , contiguous :: array(:)
716 real(RKG) , intent(out) , contiguous :: cumsum(:)
717 end subroutine
718#endif
719
720#if RK4_ENABLED
721 PURE recursive module subroutine setCumSumNewDefDef_RK4(cumsum, array)
722#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
723 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewDefDef_RK4
724#endif
725 use pm_kind, only: RKG => RK4
726 real(RKG) , intent(in) , contiguous :: array(:)
727 real(RKG) , intent(out) , contiguous :: cumsum(:)
728 end subroutine
729#endif
730
731#if RK3_ENABLED
732 PURE recursive module subroutine setCumSumNewDefDef_RK3(cumsum, array)
733#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
734 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewDefDef_RK3
735#endif
736 use pm_kind, only: RKG => RK3
737 real(RKG) , intent(in) , contiguous :: array(:)
738 real(RKG) , intent(out) , contiguous :: cumsum(:)
739 end subroutine
740#endif
741
742#if RK2_ENABLED
743 PURE recursive module subroutine setCumSumNewDefDef_RK2(cumsum, array)
744#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
745 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewDefDef_RK2
746#endif
747 use pm_kind, only: RKG => RK2
748 real(RKG) , intent(in) , contiguous :: array(:)
749 real(RKG) , intent(out) , contiguous :: cumsum(:)
750 end subroutine
751#endif
752
753#if RK1_ENABLED
754 PURE recursive module subroutine setCumSumNewDefDef_RK1(cumsum, array)
755#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
756 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewDefDef_RK1
757#endif
758 use pm_kind, only: RKG => RK1
759 real(RKG) , intent(in) , contiguous :: array(:)
760 real(RKG) , intent(out) , contiguous :: cumsum(:)
761 end subroutine
762#endif
763
764 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
765
766 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
767 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
768 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
769
770 end interface setCumSum
771
772 ! old, forward
773
774 interface setCumSum
775
776 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
777 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
778 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
779
780 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
781
782#if IK5_ENABLED
783 PURE recursive module subroutine setCumSumOldForNon_IK5(array, direction, action)
784#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
785 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForNon_IK5
786#endif
787 use pm_kind, only: IKG => IK5
788 integer(IKG) , intent(inout) , contiguous :: array(:)
789 type(forward_type) , intent(in) :: direction
790 type(nothing_type) , intent(in) :: action
791 end subroutine
792#endif
793
794#if IK4_ENABLED
795 PURE recursive module subroutine setCumSumOldForNon_IK4(array, direction, action)
796#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
797 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForNon_IK4
798#endif
799 use pm_kind, only: IKG => IK4
800 integer(IKG) , intent(inout) , contiguous :: array(:)
801 type(forward_type) , intent(in) :: direction
802 type(nothing_type) , intent(in) :: action
803 end subroutine
804#endif
805
806#if IK3_ENABLED
807 PURE recursive module subroutine setCumSumOldForNon_IK3(array, direction, action)
808#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
809 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForNon_IK3
810#endif
811 use pm_kind, only: IKG => IK3
812 integer(IKG) , intent(inout) , contiguous :: array(:)
813 type(forward_type) , intent(in) :: direction
814 type(nothing_type) , intent(in) :: action
815 end subroutine
816#endif
817
818#if IK2_ENABLED
819 PURE recursive module subroutine setCumSumOldForNon_IK2(array, direction, action)
820#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
821 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForNon_IK2
822#endif
823 use pm_kind, only: IKG => IK2
824 integer(IKG) , intent(inout) , contiguous :: array(:)
825 type(forward_type) , intent(in) :: direction
826 type(nothing_type) , intent(in) :: action
827 end subroutine
828#endif
829
830#if IK1_ENABLED
831 PURE recursive module subroutine setCumSumOldForNon_IK1(array, direction, action)
832#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
833 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForNon_IK1
834#endif
835 use pm_kind, only: IKG => IK1
836 integer(IKG) , intent(inout) , contiguous :: array(:)
837 type(forward_type) , intent(in) :: direction
838 type(nothing_type) , intent(in) :: action
839 end subroutine
840#endif
841
842 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
843
844#if CK5_ENABLED
845 PURE recursive module subroutine setCumSumOldForNon_CK5(array, direction, action)
846#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
847 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForNon_CK5
848#endif
849 use pm_kind, only: CKG => CK5
850 complex(CKG) , intent(inout) , contiguous :: array(:)
851 type(forward_type) , intent(in) :: direction
852 type(nothing_type) , intent(in) :: action
853 end subroutine
854#endif
855
856#if CK4_ENABLED
857 PURE recursive module subroutine setCumSumOldForNon_CK4(array, direction, action)
858#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
859 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForNon_CK4
860#endif
861 use pm_kind, only: CKG => CK4
862 complex(CKG) , intent(inout) , contiguous :: array(:)
863 type(forward_type) , intent(in) :: direction
864 type(nothing_type) , intent(in) :: action
865 end subroutine
866#endif
867
868#if CK3_ENABLED
869 PURE recursive module subroutine setCumSumOldForNon_CK3(array, direction, action)
870#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
871 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForNon_CK3
872#endif
873 use pm_kind, only: CKG => CK3
874 complex(CKG) , intent(inout) , contiguous :: array(:)
875 type(forward_type) , intent(in) :: direction
876 type(nothing_type) , intent(in) :: action
877 end subroutine
878#endif
879
880#if CK2_ENABLED
881 PURE recursive module subroutine setCumSumOldForNon_CK2(array, direction, action)
882#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
883 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForNon_CK2
884#endif
885 use pm_kind, only: CKG => CK2
886 complex(CKG) , intent(inout) , contiguous :: array(:)
887 type(forward_type) , intent(in) :: direction
888 type(nothing_type) , intent(in) :: action
889 end subroutine
890#endif
891
892#if CK1_ENABLED
893 PURE recursive module subroutine setCumSumOldForNon_CK1(array, direction, action)
894#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
895 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForNon_CK1
896#endif
897 use pm_kind, only: CKG => CK1
898 complex(CKG) , intent(inout) , contiguous :: array(:)
899 type(forward_type) , intent(in) :: direction
900 type(nothing_type) , intent(in) :: action
901 end subroutine
902#endif
903
904 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
905
906#if RK5_ENABLED
907 PURE recursive module subroutine setCumSumOldForNon_RK5(array, direction, action)
908#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
909 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForNon_RK5
910#endif
911 use pm_kind, only: RKG => RK5
912 real(RKG) , intent(inout) , contiguous :: array(:)
913 type(forward_type) , intent(in) :: direction
914 type(nothing_type) , intent(in) :: action
915 end subroutine
916#endif
917
918#if RK4_ENABLED
919 PURE recursive module subroutine setCumSumOldForNon_RK4(array, direction, action)
920#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
921 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForNon_RK4
922#endif
923 use pm_kind, only: RKG => RK4
924 real(RKG) , intent(inout) , contiguous :: array(:)
925 type(forward_type) , intent(in) :: direction
926 type(nothing_type) , intent(in) :: action
927 end subroutine
928#endif
929
930#if RK3_ENABLED
931 PURE recursive module subroutine setCumSumOldForNon_RK3(array, direction, action)
932#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
933 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForNon_RK3
934#endif
935 use pm_kind, only: RKG => RK3
936 real(RKG) , intent(inout) , contiguous :: array(:)
937 type(forward_type) , intent(in) :: direction
938 type(nothing_type) , intent(in) :: action
939 end subroutine
940#endif
941
942#if RK2_ENABLED
943 PURE recursive module subroutine setCumSumOldForNon_RK2(array, direction, action)
944#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
945 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForNon_RK2
946#endif
947 use pm_kind, only: RKG => RK2
948 real(RKG) , intent(inout) , contiguous :: array(:)
949 type(forward_type) , intent(in) :: direction
950 type(nothing_type) , intent(in) :: action
951 end subroutine
952#endif
953
954#if RK1_ENABLED
955 PURE recursive module subroutine setCumSumOldForNon_RK1(array, direction, action)
956#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
957 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForNon_RK1
958#endif
959 use pm_kind, only: RKG => RK1
960 real(RKG) , intent(inout) , contiguous :: array(:)
961 type(forward_type) , intent(in) :: direction
962 type(nothing_type) , intent(in) :: action
963 end subroutine
964#endif
965
966 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
967
968 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
969 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
970 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
971
972 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
973
974#if IK5_ENABLED
975 PURE recursive module subroutine setCumSumOldForRev_IK5(array, direction, action)
976#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
977 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForRev_IK5
978#endif
979 use pm_kind, only: IKG => IK5
980 integer(IKG) , intent(inout) , contiguous :: array(:)
981 type(forward_type) , intent(in) :: direction
982 type(reverse_type) , intent(in) :: action
983 end subroutine
984#endif
985
986#if IK4_ENABLED
987 PURE recursive module subroutine setCumSumOldForRev_IK4(array, direction, action)
988#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
989 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForRev_IK4
990#endif
991 use pm_kind, only: IKG => IK4
992 integer(IKG) , intent(inout) , contiguous :: array(:)
993 type(forward_type) , intent(in) :: direction
994 type(reverse_type) , intent(in) :: action
995 end subroutine
996#endif
997
998#if IK3_ENABLED
999 PURE recursive module subroutine setCumSumOldForRev_IK3(array, direction, action)
1000#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1001 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForRev_IK3
1002#endif
1003 use pm_kind, only: IKG => IK3
1004 integer(IKG) , intent(inout) , contiguous :: array(:)
1005 type(forward_type) , intent(in) :: direction
1006 type(reverse_type) , intent(in) :: action
1007 end subroutine
1008#endif
1009
1010#if IK2_ENABLED
1011 PURE recursive module subroutine setCumSumOldForRev_IK2(array, direction, action)
1012#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1013 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForRev_IK2
1014#endif
1015 use pm_kind, only: IKG => IK2
1016 integer(IKG) , intent(inout) , contiguous :: array(:)
1017 type(forward_type) , intent(in) :: direction
1018 type(reverse_type) , intent(in) :: action
1019 end subroutine
1020#endif
1021
1022#if IK1_ENABLED
1023 PURE recursive module subroutine setCumSumOldForRev_IK1(array, direction, action)
1024#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1025 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForRev_IK1
1026#endif
1027 use pm_kind, only: IKG => IK1
1028 integer(IKG) , intent(inout) , contiguous :: array(:)
1029 type(forward_type) , intent(in) :: direction
1030 type(reverse_type) , intent(in) :: action
1031 end subroutine
1032#endif
1033
1034 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1035
1036#if CK5_ENABLED
1037 PURE recursive module subroutine setCumSumOldForRev_CK5(array, direction, action)
1038#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1039 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForRev_CK5
1040#endif
1041 use pm_kind, only: CKG => CK5
1042 complex(CKG) , intent(inout) , contiguous :: array(:)
1043 type(forward_type) , intent(in) :: direction
1044 type(reverse_type) , intent(in) :: action
1045 end subroutine
1046#endif
1047
1048#if CK4_ENABLED
1049 PURE recursive module subroutine setCumSumOldForRev_CK4(array, direction, action)
1050#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1051 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForRev_CK4
1052#endif
1053 use pm_kind, only: CKG => CK4
1054 complex(CKG) , intent(inout) , contiguous :: array(:)
1055 type(forward_type) , intent(in) :: direction
1056 type(reverse_type) , intent(in) :: action
1057 end subroutine
1058#endif
1059
1060#if CK3_ENABLED
1061 PURE recursive module subroutine setCumSumOldForRev_CK3(array, direction, action)
1062#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1063 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForRev_CK3
1064#endif
1065 use pm_kind, only: CKG => CK3
1066 complex(CKG) , intent(inout) , contiguous :: array(:)
1067 type(forward_type) , intent(in) :: direction
1068 type(reverse_type) , intent(in) :: action
1069 end subroutine
1070#endif
1071
1072#if CK2_ENABLED
1073 PURE recursive module subroutine setCumSumOldForRev_CK2(array, direction, action)
1074#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1075 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForRev_CK2
1076#endif
1077 use pm_kind, only: CKG => CK2
1078 complex(CKG) , intent(inout) , contiguous :: array(:)
1079 type(forward_type) , intent(in) :: direction
1080 type(reverse_type) , intent(in) :: action
1081 end subroutine
1082#endif
1083
1084#if CK1_ENABLED
1085 PURE recursive module subroutine setCumSumOldForRev_CK1(array, direction, action)
1086#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1087 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForRev_CK1
1088#endif
1089 use pm_kind, only: CKG => CK1
1090 complex(CKG) , intent(inout) , contiguous :: array(:)
1091 type(forward_type) , intent(in) :: direction
1092 type(reverse_type) , intent(in) :: action
1093 end subroutine
1094#endif
1095
1096 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1097
1098#if RK5_ENABLED
1099 PURE recursive module subroutine setCumSumOldForRev_RK5(array, direction, action)
1100#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1101 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForRev_RK5
1102#endif
1103 use pm_kind, only: RKG => RK5
1104 real(RKG) , intent(inout) , contiguous :: array(:)
1105 type(forward_type) , intent(in) :: direction
1106 type(reverse_type) , intent(in) :: action
1107 end subroutine
1108#endif
1109
1110#if RK4_ENABLED
1111 PURE recursive module subroutine setCumSumOldForRev_RK4(array, direction, action)
1112#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1113 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForRev_RK4
1114#endif
1115 use pm_kind, only: RKG => RK4
1116 real(RKG) , intent(inout) , contiguous :: array(:)
1117 type(forward_type) , intent(in) :: direction
1118 type(reverse_type) , intent(in) :: action
1119 end subroutine
1120#endif
1121
1122#if RK3_ENABLED
1123 PURE recursive module subroutine setCumSumOldForRev_RK3(array, direction, action)
1124#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1125 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForRev_RK3
1126#endif
1127 use pm_kind, only: RKG => RK3
1128 real(RKG) , intent(inout) , contiguous :: array(:)
1129 type(forward_type) , intent(in) :: direction
1130 type(reverse_type) , intent(in) :: action
1131 end subroutine
1132#endif
1133
1134#if RK2_ENABLED
1135 PURE recursive module subroutine setCumSumOldForRev_RK2(array, direction, action)
1136#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1137 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForRev_RK2
1138#endif
1139 use pm_kind, only: RKG => RK2
1140 real(RKG) , intent(inout) , contiguous :: array(:)
1141 type(forward_type) , intent(in) :: direction
1142 type(reverse_type) , intent(in) :: action
1143 end subroutine
1144#endif
1145
1146#if RK1_ENABLED
1147 PURE recursive module subroutine setCumSumOldForRev_RK1(array, direction, action)
1148#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1149 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldForRev_RK1
1150#endif
1151 use pm_kind, only: RKG => RK1
1152 real(RKG) , intent(inout) , contiguous :: array(:)
1153 type(forward_type) , intent(in) :: direction
1154 type(reverse_type) , intent(in) :: action
1155 end subroutine
1156#endif
1157
1158 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1159
1160 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1161 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1162 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1163
1164 end interface setCumSum
1165
1166 ! old, backward
1167
1168 interface setCumSum
1169
1170 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1171 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1172 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1173
1174 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1175
1176#if IK5_ENABLED
1177 PURE recursive module subroutine setCumSumOldBacNon_IK5(array, direction, action)
1178#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1179 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacNon_IK5
1180#endif
1181 use pm_kind, only: IKG => IK5
1182 integer(IKG) , intent(inout) , contiguous :: array(:)
1183 type(backward_type) , intent(in) :: direction
1184 type(nothing_type) , intent(in) :: action
1185 end subroutine
1186#endif
1187
1188#if IK4_ENABLED
1189 PURE recursive module subroutine setCumSumOldBacNon_IK4(array, direction, action)
1190#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1191 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacNon_IK4
1192#endif
1193 use pm_kind, only: IKG => IK4
1194 integer(IKG) , intent(inout) , contiguous :: array(:)
1195 type(backward_type) , intent(in) :: direction
1196 type(nothing_type) , intent(in) :: action
1197 end subroutine
1198#endif
1199
1200#if IK3_ENABLED
1201 PURE recursive module subroutine setCumSumOldBacNon_IK3(array, direction, action)
1202#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1203 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacNon_IK3
1204#endif
1205 use pm_kind, only: IKG => IK3
1206 integer(IKG) , intent(inout) , contiguous :: array(:)
1207 type(backward_type) , intent(in) :: direction
1208 type(nothing_type) , intent(in) :: action
1209 end subroutine
1210#endif
1211
1212#if IK2_ENABLED
1213 PURE recursive module subroutine setCumSumOldBacNon_IK2(array, direction, action)
1214#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1215 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacNon_IK2
1216#endif
1217 use pm_kind, only: IKG => IK2
1218 integer(IKG) , intent(inout) , contiguous :: array(:)
1219 type(backward_type) , intent(in) :: direction
1220 type(nothing_type) , intent(in) :: action
1221 end subroutine
1222#endif
1223
1224#if IK1_ENABLED
1225 PURE recursive module subroutine setCumSumOldBacNon_IK1(array, direction, action)
1226#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1227 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacNon_IK1
1228#endif
1229 use pm_kind, only: IKG => IK1
1230 integer(IKG) , intent(inout) , contiguous :: array(:)
1231 type(backward_type) , intent(in) :: direction
1232 type(nothing_type) , intent(in) :: action
1233 end subroutine
1234#endif
1235
1236 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1237
1238#if CK5_ENABLED
1239 PURE recursive module subroutine setCumSumOldBacNon_CK5(array, direction, action)
1240#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1241 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacNon_CK5
1242#endif
1243 use pm_kind, only: CKG => CK5
1244 complex(CKG) , intent(inout) , contiguous :: array(:)
1245 type(backward_type) , intent(in) :: direction
1246 type(nothing_type) , intent(in) :: action
1247 end subroutine
1248#endif
1249
1250#if CK4_ENABLED
1251 PURE recursive module subroutine setCumSumOldBacNon_CK4(array, direction, action)
1252#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1253 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacNon_CK4
1254#endif
1255 use pm_kind, only: CKG => CK4
1256 complex(CKG) , intent(inout) , contiguous :: array(:)
1257 type(backward_type) , intent(in) :: direction
1258 type(nothing_type) , intent(in) :: action
1259 end subroutine
1260#endif
1261
1262#if CK3_ENABLED
1263 PURE recursive module subroutine setCumSumOldBacNon_CK3(array, direction, action)
1264#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1265 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacNon_CK3
1266#endif
1267 use pm_kind, only: CKG => CK3
1268 complex(CKG) , intent(inout) , contiguous :: array(:)
1269 type(backward_type) , intent(in) :: direction
1270 type(nothing_type) , intent(in) :: action
1271 end subroutine
1272#endif
1273
1274#if CK2_ENABLED
1275 PURE recursive module subroutine setCumSumOldBacNon_CK2(array, direction, action)
1276#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1277 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacNon_CK2
1278#endif
1279 use pm_kind, only: CKG => CK2
1280 complex(CKG) , intent(inout) , contiguous :: array(:)
1281 type(backward_type) , intent(in) :: direction
1282 type(nothing_type) , intent(in) :: action
1283 end subroutine
1284#endif
1285
1286#if CK1_ENABLED
1287 PURE recursive module subroutine setCumSumOldBacNon_CK1(array, direction, action)
1288#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1289 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacNon_CK1
1290#endif
1291 use pm_kind, only: CKG => CK1
1292 complex(CKG) , intent(inout) , contiguous :: array(:)
1293 type(backward_type) , intent(in) :: direction
1294 type(nothing_type) , intent(in) :: action
1295 end subroutine
1296#endif
1297
1298 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1299
1300#if RK5_ENABLED
1301 PURE recursive module subroutine setCumSumOldBacNon_RK5(array, direction, action)
1302#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1303 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacNon_RK5
1304#endif
1305 use pm_kind, only: RKG => RK5
1306 real(RKG) , intent(inout) , contiguous :: array(:)
1307 type(backward_type) , intent(in) :: direction
1308 type(nothing_type) , intent(in) :: action
1309 end subroutine
1310#endif
1311
1312#if RK4_ENABLED
1313 PURE recursive module subroutine setCumSumOldBacNon_RK4(array, direction, action)
1314#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1315 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacNon_RK4
1316#endif
1317 use pm_kind, only: RKG => RK4
1318 real(RKG) , intent(inout) , contiguous :: array(:)
1319 type(backward_type) , intent(in) :: direction
1320 type(nothing_type) , intent(in) :: action
1321 end subroutine
1322#endif
1323
1324#if RK3_ENABLED
1325 PURE recursive module subroutine setCumSumOldBacNon_RK3(array, direction, action)
1326#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1327 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacNon_RK3
1328#endif
1329 use pm_kind, only: RKG => RK3
1330 real(RKG) , intent(inout) , contiguous :: array(:)
1331 type(backward_type) , intent(in) :: direction
1332 type(nothing_type) , intent(in) :: action
1333 end subroutine
1334#endif
1335
1336#if RK2_ENABLED
1337 PURE recursive module subroutine setCumSumOldBacNon_RK2(array, direction, action)
1338#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1339 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacNon_RK2
1340#endif
1341 use pm_kind, only: RKG => RK2
1342 real(RKG) , intent(inout) , contiguous :: array(:)
1343 type(backward_type) , intent(in) :: direction
1344 type(nothing_type) , intent(in) :: action
1345 end subroutine
1346#endif
1347
1348#if RK1_ENABLED
1349 PURE recursive module subroutine setCumSumOldBacNon_RK1(array, direction, action)
1350#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1351 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacNon_RK1
1352#endif
1353 use pm_kind, only: RKG => RK1
1354 real(RKG) , intent(inout) , contiguous :: array(:)
1355 type(backward_type) , intent(in) :: direction
1356 type(nothing_type) , intent(in) :: action
1357 end subroutine
1358#endif
1359
1360 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1361
1362 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1363 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1364 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1365
1366 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1367
1368#if IK5_ENABLED
1369 PURE recursive module subroutine setCumSumOldBacRev_IK5(array, direction, action)
1370#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1371 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacRev_IK5
1372#endif
1373 use pm_kind, only: IKG => IK5
1374 integer(IKG) , intent(inout) , contiguous :: array(:)
1375 type(backward_type) , intent(in) :: direction
1376 type(reverse_type) , intent(in) :: action
1377 end subroutine
1378#endif
1379
1380#if IK4_ENABLED
1381 PURE recursive module subroutine setCumSumOldBacRev_IK4(array, direction, action)
1382#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1383 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacRev_IK4
1384#endif
1385 use pm_kind, only: IKG => IK4
1386 integer(IKG) , intent(inout) , contiguous :: array(:)
1387 type(backward_type) , intent(in) :: direction
1388 type(reverse_type) , intent(in) :: action
1389 end subroutine
1390#endif
1391
1392#if IK3_ENABLED
1393 PURE recursive module subroutine setCumSumOldBacRev_IK3(array, direction, action)
1394#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1395 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacRev_IK3
1396#endif
1397 use pm_kind, only: IKG => IK3
1398 integer(IKG) , intent(inout) , contiguous :: array(:)
1399 type(backward_type) , intent(in) :: direction
1400 type(reverse_type) , intent(in) :: action
1401 end subroutine
1402#endif
1403
1404#if IK2_ENABLED
1405 PURE recursive module subroutine setCumSumOldBacRev_IK2(array, direction, action)
1406#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1407 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacRev_IK2
1408#endif
1409 use pm_kind, only: IKG => IK2
1410 integer(IKG) , intent(inout) , contiguous :: array(:)
1411 type(backward_type) , intent(in) :: direction
1412 type(reverse_type) , intent(in) :: action
1413 end subroutine
1414#endif
1415
1416#if IK1_ENABLED
1417 PURE recursive module subroutine setCumSumOldBacRev_IK1(array, direction, action)
1418#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1419 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacRev_IK1
1420#endif
1421 use pm_kind, only: IKG => IK1
1422 integer(IKG) , intent(inout) , contiguous :: array(:)
1423 type(backward_type) , intent(in) :: direction
1424 type(reverse_type) , intent(in) :: action
1425 end subroutine
1426#endif
1427
1428 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1429
1430#if CK5_ENABLED
1431 PURE recursive module subroutine setCumSumOldBacRev_CK5(array, direction, action)
1432#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1433 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacRev_CK5
1434#endif
1435 use pm_kind, only: CKG => CK5
1436 complex(CKG) , intent(inout) , contiguous :: array(:)
1437 type(backward_type) , intent(in) :: direction
1438 type(reverse_type) , intent(in) :: action
1439 end subroutine
1440#endif
1441
1442#if CK4_ENABLED
1443 PURE recursive module subroutine setCumSumOldBacRev_CK4(array, direction, action)
1444#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1445 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacRev_CK4
1446#endif
1447 use pm_kind, only: CKG => CK4
1448 complex(CKG) , intent(inout) , contiguous :: array(:)
1449 type(backward_type) , intent(in) :: direction
1450 type(reverse_type) , intent(in) :: action
1451 end subroutine
1452#endif
1453
1454#if CK3_ENABLED
1455 PURE recursive module subroutine setCumSumOldBacRev_CK3(array, direction, action)
1456#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1457 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacRev_CK3
1458#endif
1459 use pm_kind, only: CKG => CK3
1460 complex(CKG) , intent(inout) , contiguous :: array(:)
1461 type(backward_type) , intent(in) :: direction
1462 type(reverse_type) , intent(in) :: action
1463 end subroutine
1464#endif
1465
1466#if CK2_ENABLED
1467 PURE recursive module subroutine setCumSumOldBacRev_CK2(array, direction, action)
1468#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1469 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacRev_CK2
1470#endif
1471 use pm_kind, only: CKG => CK2
1472 complex(CKG) , intent(inout) , contiguous :: array(:)
1473 type(backward_type) , intent(in) :: direction
1474 type(reverse_type) , intent(in) :: action
1475 end subroutine
1476#endif
1477
1478#if CK1_ENABLED
1479 PURE recursive module subroutine setCumSumOldBacRev_CK1(array, direction, action)
1480#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1481 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacRev_CK1
1482#endif
1483 use pm_kind, only: CKG => CK1
1484 complex(CKG) , intent(inout) , contiguous :: array(:)
1485 type(backward_type) , intent(in) :: direction
1486 type(reverse_type) , intent(in) :: action
1487 end subroutine
1488#endif
1489
1490 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1491
1492#if RK5_ENABLED
1493 PURE recursive module subroutine setCumSumOldBacRev_RK5(array, direction, action)
1494#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1495 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacRev_RK5
1496#endif
1497 use pm_kind, only: RKG => RK5
1498 real(RKG) , intent(inout) , contiguous :: array(:)
1499 type(backward_type) , intent(in) :: direction
1500 type(reverse_type) , intent(in) :: action
1501 end subroutine
1502#endif
1503
1504#if RK4_ENABLED
1505 PURE recursive module subroutine setCumSumOldBacRev_RK4(array, direction, action)
1506#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1507 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacRev_RK4
1508#endif
1509 use pm_kind, only: RKG => RK4
1510 real(RKG) , intent(inout) , contiguous :: array(:)
1511 type(backward_type) , intent(in) :: direction
1512 type(reverse_type) , intent(in) :: action
1513 end subroutine
1514#endif
1515
1516#if RK3_ENABLED
1517 PURE recursive module subroutine setCumSumOldBacRev_RK3(array, direction, action)
1518#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1519 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacRev_RK3
1520#endif
1521 use pm_kind, only: RKG => RK3
1522 real(RKG) , intent(inout) , contiguous :: array(:)
1523 type(backward_type) , intent(in) :: direction
1524 type(reverse_type) , intent(in) :: action
1525 end subroutine
1526#endif
1527
1528#if RK2_ENABLED
1529 PURE recursive module subroutine setCumSumOldBacRev_RK2(array, direction, action)
1530#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1531 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacRev_RK2
1532#endif
1533 use pm_kind, only: RKG => RK2
1534 real(RKG) , intent(inout) , contiguous :: array(:)
1535 type(backward_type) , intent(in) :: direction
1536 type(reverse_type) , intent(in) :: action
1537 end subroutine
1538#endif
1539
1540#if RK1_ENABLED
1541 PURE recursive module subroutine setCumSumOldBacRev_RK1(array, direction, action)
1542#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1543 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumOldBacRev_RK1
1544#endif
1545 use pm_kind, only: RKG => RK1
1546 real(RKG) , intent(inout) , contiguous :: array(:)
1547 type(backward_type) , intent(in) :: direction
1548 type(reverse_type) , intent(in) :: action
1549 end subroutine
1550#endif
1551
1552 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1553
1554 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1555 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1556 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1557
1558 end interface setCumSum
1559
1560 ! new, forward
1561
1562 interface setCumSum
1563
1564 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1565 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1566 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1567
1568 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1569
1570#if IK5_ENABLED
1571 PURE recursive module subroutine setCumSumNewForNon_IK5(cumsum, array, direction, action)
1572#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1573 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForNon_IK5
1574#endif
1575 use pm_kind, only: IKG => IK5
1576 integer(IKG) , intent(in) , contiguous :: array(:)
1577 integer(IKG) , intent(out) , contiguous :: cumsum(:)
1578 type(forward_type) , intent(in) :: direction
1579 type(nothing_type) , intent(in) :: action
1580 end subroutine
1581#endif
1582
1583#if IK4_ENABLED
1584 PURE recursive module subroutine setCumSumNewForNon_IK4(cumsum, array, direction, action)
1585#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1586 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForNon_IK4
1587#endif
1588 use pm_kind, only: IKG => IK4
1589 integer(IKG) , intent(in) , contiguous :: array(:)
1590 integer(IKG) , intent(out) , contiguous :: cumsum(:)
1591 type(forward_type) , intent(in) :: direction
1592 type(nothing_type) , intent(in) :: action
1593 end subroutine
1594#endif
1595
1596#if IK3_ENABLED
1597 PURE recursive module subroutine setCumSumNewForNon_IK3(cumsum, array, direction, action)
1598#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1599 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForNon_IK3
1600#endif
1601 use pm_kind, only: IKG => IK3
1602 integer(IKG) , intent(in) , contiguous :: array(:)
1603 integer(IKG) , intent(out) , contiguous :: cumsum(:)
1604 type(forward_type) , intent(in) :: direction
1605 type(nothing_type) , intent(in) :: action
1606 end subroutine
1607#endif
1608
1609#if IK2_ENABLED
1610 PURE recursive module subroutine setCumSumNewForNon_IK2(cumsum, array, direction, action)
1611#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1612 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForNon_IK2
1613#endif
1614 use pm_kind, only: IKG => IK2
1615 integer(IKG) , intent(in) , contiguous :: array(:)
1616 integer(IKG) , intent(out) , contiguous :: cumsum(:)
1617 type(forward_type) , intent(in) :: direction
1618 type(nothing_type) , intent(in) :: action
1619 end subroutine
1620#endif
1621
1622#if IK1_ENABLED
1623 PURE recursive module subroutine setCumSumNewForNon_IK1(cumsum, array, direction, action)
1624#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1625 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForNon_IK1
1626#endif
1627 use pm_kind, only: IKG => IK1
1628 integer(IKG) , intent(in) , contiguous :: array(:)
1629 integer(IKG) , intent(out) , contiguous :: cumsum(:)
1630 type(forward_type) , intent(in) :: direction
1631 type(nothing_type) , intent(in) :: action
1632 end subroutine
1633#endif
1634
1635 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1636
1637#if CK5_ENABLED
1638 PURE recursive module subroutine setCumSumNewForNon_CK5(cumsum, array, direction, action)
1639#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1640 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForNon_CK5
1641#endif
1642 use pm_kind, only: CKG => CK5
1643 complex(CKG) , intent(in) , contiguous :: array(:)
1644 complex(CKG) , intent(out) , contiguous :: cumsum(:)
1645 type(forward_type) , intent(in) :: direction
1646 type(nothing_type) , intent(in) :: action
1647 end subroutine
1648#endif
1649
1650#if CK4_ENABLED
1651 PURE recursive module subroutine setCumSumNewForNon_CK4(cumsum, array, direction, action)
1652#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1653 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForNon_CK4
1654#endif
1655 use pm_kind, only: CKG => CK4
1656 complex(CKG) , intent(in) , contiguous :: array(:)
1657 complex(CKG) , intent(out) , contiguous :: cumsum(:)
1658 type(forward_type) , intent(in) :: direction
1659 type(nothing_type) , intent(in) :: action
1660 end subroutine
1661#endif
1662
1663#if CK3_ENABLED
1664 PURE recursive module subroutine setCumSumNewForNon_CK3(cumsum, array, direction, action)
1665#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1666 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForNon_CK3
1667#endif
1668 use pm_kind, only: CKG => CK3
1669 complex(CKG) , intent(in) , contiguous :: array(:)
1670 complex(CKG) , intent(out) , contiguous :: cumsum(:)
1671 type(forward_type) , intent(in) :: direction
1672 type(nothing_type) , intent(in) :: action
1673 end subroutine
1674#endif
1675
1676#if CK2_ENABLED
1677 PURE recursive module subroutine setCumSumNewForNon_CK2(cumsum, array, direction, action)
1678#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1679 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForNon_CK2
1680#endif
1681 use pm_kind, only: CKG => CK2
1682 complex(CKG) , intent(in) , contiguous :: array(:)
1683 complex(CKG) , intent(out) , contiguous :: cumsum(:)
1684 type(forward_type) , intent(in) :: direction
1685 type(nothing_type) , intent(in) :: action
1686 end subroutine
1687#endif
1688
1689#if CK1_ENABLED
1690 PURE recursive module subroutine setCumSumNewForNon_CK1(cumsum, array, direction, action)
1691#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1692 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForNon_CK1
1693#endif
1694 use pm_kind, only: CKG => CK1
1695 complex(CKG) , intent(in) , contiguous :: array(:)
1696 complex(CKG) , intent(out) , contiguous :: cumsum(:)
1697 type(forward_type) , intent(in) :: direction
1698 type(nothing_type) , intent(in) :: action
1699 end subroutine
1700#endif
1701
1702 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1703
1704#if RK5_ENABLED
1705 PURE recursive module subroutine setCumSumNewForNon_RK5(cumsum, array, direction, action)
1706#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1707 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForNon_RK5
1708#endif
1709 use pm_kind, only: RKG => RK5
1710 real(RKG) , intent(in) , contiguous :: array(:)
1711 real(RKG) , intent(out) , contiguous :: cumsum(:)
1712 type(forward_type) , intent(in) :: direction
1713 type(nothing_type) , intent(in) :: action
1714 end subroutine
1715#endif
1716
1717#if RK4_ENABLED
1718 PURE recursive module subroutine setCumSumNewForNon_RK4(cumsum, array, direction, action)
1719#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1720 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForNon_RK4
1721#endif
1722 use pm_kind, only: RKG => RK4
1723 real(RKG) , intent(in) , contiguous :: array(:)
1724 real(RKG) , intent(out) , contiguous :: cumsum(:)
1725 type(forward_type) , intent(in) :: direction
1726 type(nothing_type) , intent(in) :: action
1727 end subroutine
1728#endif
1729
1730#if RK3_ENABLED
1731 PURE recursive module subroutine setCumSumNewForNon_RK3(cumsum, array, direction, action)
1732#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1733 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForNon_RK3
1734#endif
1735 use pm_kind, only: RKG => RK3
1736 real(RKG) , intent(in) , contiguous :: array(:)
1737 real(RKG) , intent(out) , contiguous :: cumsum(:)
1738 type(forward_type) , intent(in) :: direction
1739 type(nothing_type) , intent(in) :: action
1740 end subroutine
1741#endif
1742
1743#if RK2_ENABLED
1744 PURE recursive module subroutine setCumSumNewForNon_RK2(cumsum, array, direction, action)
1745#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1746 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForNon_RK2
1747#endif
1748 use pm_kind, only: RKG => RK2
1749 real(RKG) , intent(in) , contiguous :: array(:)
1750 real(RKG) , intent(out) , contiguous :: cumsum(:)
1751 type(forward_type) , intent(in) :: direction
1752 type(nothing_type) , intent(in) :: action
1753 end subroutine
1754#endif
1755
1756#if RK1_ENABLED
1757 PURE recursive module subroutine setCumSumNewForNon_RK1(cumsum, array, direction, action)
1758#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1759 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForNon_RK1
1760#endif
1761 use pm_kind, only: RKG => RK1
1762 real(RKG) , intent(in) , contiguous :: array(:)
1763 real(RKG) , intent(out) , contiguous :: cumsum(:)
1764 type(forward_type) , intent(in) :: direction
1765 type(nothing_type) , intent(in) :: action
1766 end subroutine
1767#endif
1768
1769 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1770
1771 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1772 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1773 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1774
1775 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1776
1777#if IK5_ENABLED
1778 PURE recursive module subroutine setCumSumNewForRev_IK5(cumsum, array, direction, action)
1779#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1780 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForRev_IK5
1781#endif
1782 use pm_kind, only: IKG => IK5
1783 integer(IKG) , intent(in) , contiguous :: array(:)
1784 integer(IKG) , intent(out) , contiguous :: cumsum(:)
1785 type(forward_type) , intent(in) :: direction
1786 type(reverse_type) , intent(in) :: action
1787 end subroutine
1788#endif
1789
1790#if IK4_ENABLED
1791 PURE recursive module subroutine setCumSumNewForRev_IK4(cumsum, array, direction, action)
1792#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1793 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForRev_IK4
1794#endif
1795 use pm_kind, only: IKG => IK4
1796 integer(IKG) , intent(in) , contiguous :: array(:)
1797 integer(IKG) , intent(out) , contiguous :: cumsum(:)
1798 type(forward_type) , intent(in) :: direction
1799 type(reverse_type) , intent(in) :: action
1800 end subroutine
1801#endif
1802
1803#if IK3_ENABLED
1804 PURE recursive module subroutine setCumSumNewForRev_IK3(cumsum, array, direction, action)
1805#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1806 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForRev_IK3
1807#endif
1808 use pm_kind, only: IKG => IK3
1809 integer(IKG) , intent(in) , contiguous :: array(:)
1810 integer(IKG) , intent(out) , contiguous :: cumsum(:)
1811 type(forward_type) , intent(in) :: direction
1812 type(reverse_type) , intent(in) :: action
1813 end subroutine
1814#endif
1815
1816#if IK2_ENABLED
1817 PURE recursive module subroutine setCumSumNewForRev_IK2(cumsum, array, direction, action)
1818#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1819 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForRev_IK2
1820#endif
1821 use pm_kind, only: IKG => IK2
1822 integer(IKG) , intent(in) , contiguous :: array(:)
1823 integer(IKG) , intent(out) , contiguous :: cumsum(:)
1824 type(forward_type) , intent(in) :: direction
1825 type(reverse_type) , intent(in) :: action
1826 end subroutine
1827#endif
1828
1829#if IK1_ENABLED
1830 PURE recursive module subroutine setCumSumNewForRev_IK1(cumsum, array, direction, action)
1831#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1832 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForRev_IK1
1833#endif
1834 use pm_kind, only: IKG => IK1
1835 integer(IKG) , intent(in) , contiguous :: array(:)
1836 integer(IKG) , intent(out) , contiguous :: cumsum(:)
1837 type(forward_type) , intent(in) :: direction
1838 type(reverse_type) , intent(in) :: action
1839 end subroutine
1840#endif
1841
1842 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1843
1844#if CK5_ENABLED
1845 PURE recursive module subroutine setCumSumNewForRev_CK5(cumsum, array, direction, action)
1846#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1847 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForRev_CK5
1848#endif
1849 use pm_kind, only: CKG => CK5
1850 complex(CKG) , intent(in) , contiguous :: array(:)
1851 complex(CKG) , intent(out) , contiguous :: cumsum(:)
1852 type(forward_type) , intent(in) :: direction
1853 type(reverse_type) , intent(in) :: action
1854 end subroutine
1855#endif
1856
1857#if CK4_ENABLED
1858 PURE recursive module subroutine setCumSumNewForRev_CK4(cumsum, array, direction, action)
1859#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1860 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForRev_CK4
1861#endif
1862 use pm_kind, only: CKG => CK4
1863 complex(CKG) , intent(in) , contiguous :: array(:)
1864 complex(CKG) , intent(out) , contiguous :: cumsum(:)
1865 type(forward_type) , intent(in) :: direction
1866 type(reverse_type) , intent(in) :: action
1867 end subroutine
1868#endif
1869
1870#if CK3_ENABLED
1871 PURE recursive module subroutine setCumSumNewForRev_CK3(cumsum, array, direction, action)
1872#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1873 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForRev_CK3
1874#endif
1875 use pm_kind, only: CKG => CK3
1876 complex(CKG) , intent(in) , contiguous :: array(:)
1877 complex(CKG) , intent(out) , contiguous :: cumsum(:)
1878 type(forward_type) , intent(in) :: direction
1879 type(reverse_type) , intent(in) :: action
1880 end subroutine
1881#endif
1882
1883#if CK2_ENABLED
1884 PURE recursive module subroutine setCumSumNewForRev_CK2(cumsum, array, direction, action)
1885#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1886 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForRev_CK2
1887#endif
1888 use pm_kind, only: CKG => CK2
1889 complex(CKG) , intent(in) , contiguous :: array(:)
1890 complex(CKG) , intent(out) , contiguous :: cumsum(:)
1891 type(forward_type) , intent(in) :: direction
1892 type(reverse_type) , intent(in) :: action
1893 end subroutine
1894#endif
1895
1896#if CK1_ENABLED
1897 PURE recursive module subroutine setCumSumNewForRev_CK1(cumsum, array, direction, action)
1898#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1899 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForRev_CK1
1900#endif
1901 use pm_kind, only: CKG => CK1
1902 complex(CKG) , intent(in) , contiguous :: array(:)
1903 complex(CKG) , intent(out) , contiguous :: cumsum(:)
1904 type(forward_type) , intent(in) :: direction
1905 type(reverse_type) , intent(in) :: action
1906 end subroutine
1907#endif
1908
1909 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1910
1911#if RK5_ENABLED
1912 PURE recursive module subroutine setCumSumNewForRev_RK5(cumsum, array, direction, action)
1913#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1914 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForRev_RK5
1915#endif
1916 use pm_kind, only: RKG => RK5
1917 real(RKG) , intent(in) , contiguous :: array(:)
1918 real(RKG) , intent(out) , contiguous :: cumsum(:)
1919 type(forward_type) , intent(in) :: direction
1920 type(reverse_type) , intent(in) :: action
1921 end subroutine
1922#endif
1923
1924#if RK4_ENABLED
1925 PURE recursive module subroutine setCumSumNewForRev_RK4(cumsum, array, direction, action)
1926#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1927 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForRev_RK4
1928#endif
1929 use pm_kind, only: RKG => RK4
1930 real(RKG) , intent(in) , contiguous :: array(:)
1931 real(RKG) , intent(out) , contiguous :: cumsum(:)
1932 type(forward_type) , intent(in) :: direction
1933 type(reverse_type) , intent(in) :: action
1934 end subroutine
1935#endif
1936
1937#if RK3_ENABLED
1938 PURE recursive module subroutine setCumSumNewForRev_RK3(cumsum, array, direction, action)
1939#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1940 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForRev_RK3
1941#endif
1942 use pm_kind, only: RKG => RK3
1943 real(RKG) , intent(in) , contiguous :: array(:)
1944 real(RKG) , intent(out) , contiguous :: cumsum(:)
1945 type(forward_type) , intent(in) :: direction
1946 type(reverse_type) , intent(in) :: action
1947 end subroutine
1948#endif
1949
1950#if RK2_ENABLED
1951 PURE recursive module subroutine setCumSumNewForRev_RK2(cumsum, array, direction, action)
1952#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1953 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForRev_RK2
1954#endif
1955 use pm_kind, only: RKG => RK2
1956 real(RKG) , intent(in) , contiguous :: array(:)
1957 real(RKG) , intent(out) , contiguous :: cumsum(:)
1958 type(forward_type) , intent(in) :: direction
1959 type(reverse_type) , intent(in) :: action
1960 end subroutine
1961#endif
1962
1963#if RK1_ENABLED
1964 PURE recursive module subroutine setCumSumNewForRev_RK1(cumsum, array, direction, action)
1965#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1966 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewForRev_RK1
1967#endif
1968 use pm_kind, only: RKG => RK1
1969 real(RKG) , intent(in) , contiguous :: array(:)
1970 real(RKG) , intent(out) , contiguous :: cumsum(:)
1971 type(forward_type) , intent(in) :: direction
1972 type(reverse_type) , intent(in) :: action
1973 end subroutine
1974#endif
1975
1976 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1977
1978 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1979 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1980 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1981
1982 end interface setCumSum
1983
1984 ! new, backward
1985
1986 interface setCumSum
1987
1988 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1989 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1990 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1991
1992 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1993
1994#if IK5_ENABLED
1995 PURE recursive module subroutine setCumSumNewBacNon_IK5(cumsum, array, direction, action)
1996#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1997 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacNon_IK5
1998#endif
1999 use pm_kind, only: IKG => IK5
2000 integer(IKG) , intent(in) , contiguous :: array(:)
2001 integer(IKG) , intent(out) , contiguous :: cumsum(:)
2002 type(backward_type) , intent(in) :: direction
2003 type(nothing_type) , intent(in) :: action
2004 end subroutine
2005#endif
2006
2007#if IK4_ENABLED
2008 PURE recursive module subroutine setCumSumNewBacNon_IK4(cumsum, array, direction, action)
2009#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2010 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacNon_IK4
2011#endif
2012 use pm_kind, only: IKG => IK4
2013 integer(IKG) , intent(in) , contiguous :: array(:)
2014 integer(IKG) , intent(out) , contiguous :: cumsum(:)
2015 type(backward_type) , intent(in) :: direction
2016 type(nothing_type) , intent(in) :: action
2017 end subroutine
2018#endif
2019
2020#if IK3_ENABLED
2021 PURE recursive module subroutine setCumSumNewBacNon_IK3(cumsum, array, direction, action)
2022#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2023 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacNon_IK3
2024#endif
2025 use pm_kind, only: IKG => IK3
2026 integer(IKG) , intent(in) , contiguous :: array(:)
2027 integer(IKG) , intent(out) , contiguous :: cumsum(:)
2028 type(backward_type) , intent(in) :: direction
2029 type(nothing_type) , intent(in) :: action
2030 end subroutine
2031#endif
2032
2033#if IK2_ENABLED
2034 PURE recursive module subroutine setCumSumNewBacNon_IK2(cumsum, array, direction, action)
2035#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2036 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacNon_IK2
2037#endif
2038 use pm_kind, only: IKG => IK2
2039 integer(IKG) , intent(in) , contiguous :: array(:)
2040 integer(IKG) , intent(out) , contiguous :: cumsum(:)
2041 type(backward_type) , intent(in) :: direction
2042 type(nothing_type) , intent(in) :: action
2043 end subroutine
2044#endif
2045
2046#if IK1_ENABLED
2047 PURE recursive module subroutine setCumSumNewBacNon_IK1(cumsum, array, direction, action)
2048#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2049 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacNon_IK1
2050#endif
2051 use pm_kind, only: IKG => IK1
2052 integer(IKG) , intent(in) , contiguous :: array(:)
2053 integer(IKG) , intent(out) , contiguous :: cumsum(:)
2054 type(backward_type) , intent(in) :: direction
2055 type(nothing_type) , intent(in) :: action
2056 end subroutine
2057#endif
2058
2059 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2060
2061#if CK5_ENABLED
2062 PURE recursive module subroutine setCumSumNewBacNon_CK5(cumsum, array, direction, action)
2063#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2064 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacNon_CK5
2065#endif
2066 use pm_kind, only: CKG => CK5
2067 complex(CKG) , intent(in) , contiguous :: array(:)
2068 complex(CKG) , intent(out) , contiguous :: cumsum(:)
2069 type(backward_type) , intent(in) :: direction
2070 type(nothing_type) , intent(in) :: action
2071 end subroutine
2072#endif
2073
2074#if CK4_ENABLED
2075 PURE recursive module subroutine setCumSumNewBacNon_CK4(cumsum, array, direction, action)
2076#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2077 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacNon_CK4
2078#endif
2079 use pm_kind, only: CKG => CK4
2080 complex(CKG) , intent(in) , contiguous :: array(:)
2081 complex(CKG) , intent(out) , contiguous :: cumsum(:)
2082 type(backward_type) , intent(in) :: direction
2083 type(nothing_type) , intent(in) :: action
2084 end subroutine
2085#endif
2086
2087#if CK3_ENABLED
2088 PURE recursive module subroutine setCumSumNewBacNon_CK3(cumsum, array, direction, action)
2089#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2090 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacNon_CK3
2091#endif
2092 use pm_kind, only: CKG => CK3
2093 complex(CKG) , intent(in) , contiguous :: array(:)
2094 complex(CKG) , intent(out) , contiguous :: cumsum(:)
2095 type(backward_type) , intent(in) :: direction
2096 type(nothing_type) , intent(in) :: action
2097 end subroutine
2098#endif
2099
2100#if CK2_ENABLED
2101 PURE recursive module subroutine setCumSumNewBacNon_CK2(cumsum, array, direction, action)
2102#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2103 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacNon_CK2
2104#endif
2105 use pm_kind, only: CKG => CK2
2106 complex(CKG) , intent(in) , contiguous :: array(:)
2107 complex(CKG) , intent(out) , contiguous :: cumsum(:)
2108 type(backward_type) , intent(in) :: direction
2109 type(nothing_type) , intent(in) :: action
2110 end subroutine
2111#endif
2112
2113#if CK1_ENABLED
2114 PURE recursive module subroutine setCumSumNewBacNon_CK1(cumsum, array, direction, action)
2115#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2116 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacNon_CK1
2117#endif
2118 use pm_kind, only: CKG => CK1
2119 complex(CKG) , intent(in) , contiguous :: array(:)
2120 complex(CKG) , intent(out) , contiguous :: cumsum(:)
2121 type(backward_type) , intent(in) :: direction
2122 type(nothing_type) , intent(in) :: action
2123 end subroutine
2124#endif
2125
2126 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2127
2128#if RK5_ENABLED
2129 PURE recursive module subroutine setCumSumNewBacNon_RK5(cumsum, array, direction, action)
2130#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2131 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacNon_RK5
2132#endif
2133 use pm_kind, only: RKG => RK5
2134 real(RKG) , intent(in) , contiguous :: array(:)
2135 real(RKG) , intent(out) , contiguous :: cumsum(:)
2136 type(backward_type) , intent(in) :: direction
2137 type(nothing_type) , intent(in) :: action
2138 end subroutine
2139#endif
2140
2141#if RK4_ENABLED
2142 PURE recursive module subroutine setCumSumNewBacNon_RK4(cumsum, array, direction, action)
2143#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2144 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacNon_RK4
2145#endif
2146 use pm_kind, only: RKG => RK4
2147 real(RKG) , intent(in) , contiguous :: array(:)
2148 real(RKG) , intent(out) , contiguous :: cumsum(:)
2149 type(backward_type) , intent(in) :: direction
2150 type(nothing_type) , intent(in) :: action
2151 end subroutine
2152#endif
2153
2154#if RK3_ENABLED
2155 PURE recursive module subroutine setCumSumNewBacNon_RK3(cumsum, array, direction, action)
2156#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2157 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacNon_RK3
2158#endif
2159 use pm_kind, only: RKG => RK3
2160 real(RKG) , intent(in) , contiguous :: array(:)
2161 real(RKG) , intent(out) , contiguous :: cumsum(:)
2162 type(backward_type) , intent(in) :: direction
2163 type(nothing_type) , intent(in) :: action
2164 end subroutine
2165#endif
2166
2167#if RK2_ENABLED
2168 PURE recursive module subroutine setCumSumNewBacNon_RK2(cumsum, array, direction, action)
2169#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2170 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacNon_RK2
2171#endif
2172 use pm_kind, only: RKG => RK2
2173 real(RKG) , intent(in) , contiguous :: array(:)
2174 real(RKG) , intent(out) , contiguous :: cumsum(:)
2175 type(backward_type) , intent(in) :: direction
2176 type(nothing_type) , intent(in) :: action
2177 end subroutine
2178#endif
2179
2180#if RK1_ENABLED
2181 PURE recursive module subroutine setCumSumNewBacNon_RK1(cumsum, array, direction, action)
2182#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2183 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacNon_RK1
2184#endif
2185 use pm_kind, only: RKG => RK1
2186 real(RKG) , intent(in) , contiguous :: array(:)
2187 real(RKG) , intent(out) , contiguous :: cumsum(:)
2188 type(backward_type) , intent(in) :: direction
2189 type(nothing_type) , intent(in) :: action
2190 end subroutine
2191#endif
2192
2193 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2194
2195 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2196 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2197 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2198
2199 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2200
2201#if IK5_ENABLED
2202 PURE recursive module subroutine setCumSumNewBacRev_IK5(cumsum, array, direction, action)
2203#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2204 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacRev_IK5
2205#endif
2206 use pm_kind, only: IKG => IK5
2207 integer(IKG) , intent(in) , contiguous :: array(:)
2208 integer(IKG) , intent(out) , contiguous :: cumsum(:)
2209 type(backward_type) , intent(in) :: direction
2210 type(reverse_type) , intent(in) :: action
2211 end subroutine
2212#endif
2213
2214#if IK4_ENABLED
2215 PURE recursive module subroutine setCumSumNewBacRev_IK4(cumsum, array, direction, action)
2216#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2217 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacRev_IK4
2218#endif
2219 use pm_kind, only: IKG => IK4
2220 integer(IKG) , intent(in) , contiguous :: array(:)
2221 integer(IKG) , intent(out) , contiguous :: cumsum(:)
2222 type(backward_type) , intent(in) :: direction
2223 type(reverse_type) , intent(in) :: action
2224 end subroutine
2225#endif
2226
2227#if IK3_ENABLED
2228 PURE recursive module subroutine setCumSumNewBacRev_IK3(cumsum, array, direction, action)
2229#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2230 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacRev_IK3
2231#endif
2232 use pm_kind, only: IKG => IK3
2233 integer(IKG) , intent(in) , contiguous :: array(:)
2234 integer(IKG) , intent(out) , contiguous :: cumsum(:)
2235 type(backward_type) , intent(in) :: direction
2236 type(reverse_type) , intent(in) :: action
2237 end subroutine
2238#endif
2239
2240#if IK2_ENABLED
2241 PURE recursive module subroutine setCumSumNewBacRev_IK2(cumsum, array, direction, action)
2242#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2243 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacRev_IK2
2244#endif
2245 use pm_kind, only: IKG => IK2
2246 integer(IKG) , intent(in) , contiguous :: array(:)
2247 integer(IKG) , intent(out) , contiguous :: cumsum(:)
2248 type(backward_type) , intent(in) :: direction
2249 type(reverse_type) , intent(in) :: action
2250 end subroutine
2251#endif
2252
2253#if IK1_ENABLED
2254 PURE recursive module subroutine setCumSumNewBacRev_IK1(cumsum, array, direction, action)
2255#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2256 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacRev_IK1
2257#endif
2258 use pm_kind, only: IKG => IK1
2259 integer(IKG) , intent(in) , contiguous :: array(:)
2260 integer(IKG) , intent(out) , contiguous :: cumsum(:)
2261 type(backward_type) , intent(in) :: direction
2262 type(reverse_type) , intent(in) :: action
2263 end subroutine
2264#endif
2265
2266 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2267
2268#if CK5_ENABLED
2269 PURE recursive module subroutine setCumSumNewBacRev_CK5(cumsum, array, direction, action)
2270#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2271 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacRev_CK5
2272#endif
2273 use pm_kind, only: CKG => CK5
2274 complex(CKG) , intent(in) , contiguous :: array(:)
2275 complex(CKG) , intent(out) , contiguous :: cumsum(:)
2276 type(backward_type) , intent(in) :: direction
2277 type(reverse_type) , intent(in) :: action
2278 end subroutine
2279#endif
2280
2281#if CK4_ENABLED
2282 PURE recursive module subroutine setCumSumNewBacRev_CK4(cumsum, array, direction, action)
2283#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2284 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacRev_CK4
2285#endif
2286 use pm_kind, only: CKG => CK4
2287 complex(CKG) , intent(in) , contiguous :: array(:)
2288 complex(CKG) , intent(out) , contiguous :: cumsum(:)
2289 type(backward_type) , intent(in) :: direction
2290 type(reverse_type) , intent(in) :: action
2291 end subroutine
2292#endif
2293
2294#if CK3_ENABLED
2295 PURE recursive module subroutine setCumSumNewBacRev_CK3(cumsum, array, direction, action)
2296#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2297 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacRev_CK3
2298#endif
2299 use pm_kind, only: CKG => CK3
2300 complex(CKG) , intent(in) , contiguous :: array(:)
2301 complex(CKG) , intent(out) , contiguous :: cumsum(:)
2302 type(backward_type) , intent(in) :: direction
2303 type(reverse_type) , intent(in) :: action
2304 end subroutine
2305#endif
2306
2307#if CK2_ENABLED
2308 PURE recursive module subroutine setCumSumNewBacRev_CK2(cumsum, array, direction, action)
2309#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2310 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacRev_CK2
2311#endif
2312 use pm_kind, only: CKG => CK2
2313 complex(CKG) , intent(in) , contiguous :: array(:)
2314 complex(CKG) , intent(out) , contiguous :: cumsum(:)
2315 type(backward_type) , intent(in) :: direction
2316 type(reverse_type) , intent(in) :: action
2317 end subroutine
2318#endif
2319
2320#if CK1_ENABLED
2321 PURE recursive module subroutine setCumSumNewBacRev_CK1(cumsum, array, direction, action)
2322#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2323 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacRev_CK1
2324#endif
2325 use pm_kind, only: CKG => CK1
2326 complex(CKG) , intent(in) , contiguous :: array(:)
2327 complex(CKG) , intent(out) , contiguous :: cumsum(:)
2328 type(backward_type) , intent(in) :: direction
2329 type(reverse_type) , intent(in) :: action
2330 end subroutine
2331#endif
2332
2333 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2334
2335#if RK5_ENABLED
2336 PURE recursive module subroutine setCumSumNewBacRev_RK5(cumsum, array, direction, action)
2337#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2338 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacRev_RK5
2339#endif
2340 use pm_kind, only: RKG => RK5
2341 real(RKG) , intent(in) , contiguous :: array(:)
2342 real(RKG) , intent(out) , contiguous :: cumsum(:)
2343 type(backward_type) , intent(in) :: direction
2344 type(reverse_type) , intent(in) :: action
2345 end subroutine
2346#endif
2347
2348#if RK4_ENABLED
2349 PURE recursive module subroutine setCumSumNewBacRev_RK4(cumsum, array, direction, action)
2350#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2351 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacRev_RK4
2352#endif
2353 use pm_kind, only: RKG => RK4
2354 real(RKG) , intent(in) , contiguous :: array(:)
2355 real(RKG) , intent(out) , contiguous :: cumsum(:)
2356 type(backward_type) , intent(in) :: direction
2357 type(reverse_type) , intent(in) :: action
2358 end subroutine
2359#endif
2360
2361#if RK3_ENABLED
2362 PURE recursive module subroutine setCumSumNewBacRev_RK3(cumsum, array, direction, action)
2363#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2364 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacRev_RK3
2365#endif
2366 use pm_kind, only: RKG => RK3
2367 real(RKG) , intent(in) , contiguous :: array(:)
2368 real(RKG) , intent(out) , contiguous :: cumsum(:)
2369 type(backward_type) , intent(in) :: direction
2370 type(reverse_type) , intent(in) :: action
2371 end subroutine
2372#endif
2373
2374#if RK2_ENABLED
2375 PURE recursive module subroutine setCumSumNewBacRev_RK2(cumsum, array, direction, action)
2376#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2377 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacRev_RK2
2378#endif
2379 use pm_kind, only: RKG => RK2
2380 real(RKG) , intent(in) , contiguous :: array(:)
2381 real(RKG) , intent(out) , contiguous :: cumsum(:)
2382 type(backward_type) , intent(in) :: direction
2383 type(reverse_type) , intent(in) :: action
2384 end subroutine
2385#endif
2386
2387#if RK1_ENABLED
2388 PURE recursive module subroutine setCumSumNewBacRev_RK1(cumsum, array, direction, action)
2389#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2390 !DEC$ ATTRIBUTES DLLEXPORT :: setCumSumNewBacRev_RK1
2391#endif
2392 use pm_kind, only: RKG => RK1
2393 real(RKG) , intent(in) , contiguous :: array(:)
2394 real(RKG) , intent(out) , contiguous :: cumsum(:)
2395 type(backward_type) , intent(in) :: direction
2396 type(reverse_type) , intent(in) :: action
2397 end subroutine
2398#endif
2399
2400 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2401
2402 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2403 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2404 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2405
2406 end interface setCumSum
2407
2408!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2409
2410end module pm_mathCumSum ! LCOV_EXCL_LINE
Generate and return the cumulative sum of the input array, optionally in the backward direction and,...
Return the cumulative sum of the input array, optionally in the backward direction and optionally,...
This module contains abstract and concrete derived types that are required for compile-time resolutio...
Definition: pm_array.F90:44
type(forward_type), parameter forward
This is a scalar parameter object of type forward_type that is exclusively used to request reversal o...
Definition: pm_array.F90:449
character(*, SK), parameter MODULE_NAME
Definition: pm_array.F90:50
type(reverse_type), parameter reverse
This is a scalar parameter object of type reverse_type that is exclusively used to request reversal o...
Definition: pm_array.F90:248
type(nothing_type), parameter nothing
This is a scalar parameter object of type nothing_type that is exclusively used to request no action ...
Definition: pm_array.F90:167
type(backward_type), parameter backward
This is a scalar parameter object of type backward_type that is exclusively used to request reversal ...
Definition: pm_array.F90:530
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
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 IK1
Definition: pm_kind.F90:382
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 CK5
Definition: pm_kind.F90:420
integer, parameter CK4
Definition: pm_kind.F90:431
integer, parameter IK2
Definition: pm_kind.F90:375
integer, parameter CK2
Definition: pm_kind.F90:453
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
This module contains the procedures and interfaces for computing the cumulative sum of an array.
This is an abstract derived type for constructing concrete derived types to distinguish various proce...
Definition: pm_array.F90:88
This is a concrete derived type whose instances are exclusively used to request reversal of a given a...
Definition: pm_array.F90:495
This is an abstract derived type for constructing concrete derived types to distinguish various proce...
Definition: pm_array.F90:370
This is a concrete derived type whose instances are exclusively used to request reversal of a given a...
Definition: pm_array.F90:414
This is a concrete derived type whose instances are exclusively used to request no action on a given ...
Definition: pm_array.F90:132
This is a concrete derived type whose instances are exclusively used to request reversal of a given a...
Definition: pm_array.F90:213