ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_arrayChange.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
49
50!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51
53
54 use pm_kind, only: SK, IK, LK
56
57 implicit none
58
59 character(*,SK), parameter :: MODULE_NAME = "@pm_arrayChange"
60
61!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
62
138 interface getChange
139
140 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
141 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
142 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
143
144 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
145
146#if SK5_ENABLED
147 module function getChangeUnifRNGD_SK5(count, start, stop, step, unique) result(change)
148#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
149 !DEC$ ATTRIBUTES DLLEXPORT :: getChangeUnifRNGD_SK5
150#endif
151 use pm_kind, only: SKG => SK5
152 logical(LK) , intent(in) , optional :: unique
153 integer(IK) , intent(in) :: step
154 integer(IK) , intent(in) :: count
155 character(1,SKG) , intent(in) :: start, stop
156 character(count,SKG) :: change
157 end function
158#endif
159
160#if SK4_ENABLED
161 module function getChangeUnifRNGD_SK4(count, start, stop, step, unique) result(change)
162#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
163 !DEC$ ATTRIBUTES DLLEXPORT :: getChangeUnifRNGD_SK4
164#endif
165 use pm_kind, only: SKG => SK4
166 logical(LK) , intent(in) , optional :: unique
167 integer(IK) , intent(in) :: step
168 integer(IK) , intent(in) :: count
169 character(1,SKG) , intent(in) :: start, stop
170 character(count,SKG) :: change
171 end function
172#endif
173
174#if SK3_ENABLED
175 module function getChangeUnifRNGD_SK3(count, start, stop, step, unique) result(change)
176#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
177 !DEC$ ATTRIBUTES DLLEXPORT :: getChangeUnifRNGD_SK3
178#endif
179 use pm_kind, only: SKG => SK3
180 logical(LK) , intent(in) , optional :: unique
181 integer(IK) , intent(in) :: step
182 integer(IK) , intent(in) :: count
183 character(1,SKG) , intent(in) :: start, stop
184 character(count,SKG) :: change
185 end function
186#endif
187
188#if SK2_ENABLED
189 module function getChangeUnifRNGD_SK2(count, start, stop, step, unique) result(change)
190#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
191 !DEC$ ATTRIBUTES DLLEXPORT :: getChangeUnifRNGD_SK2
192#endif
193 use pm_kind, only: SKG => SK2
194 logical(LK) , intent(in) , optional :: unique
195 integer(IK) , intent(in) :: step
196 integer(IK) , intent(in) :: count
197 character(1,SKG) , intent(in) :: start, stop
198 character(count,SKG) :: change
199 end function
200#endif
201
202#if SK1_ENABLED
203 module function getChangeUnifRNGD_SK1(count, start, stop, step, unique) result(change)
204#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
205 !DEC$ ATTRIBUTES DLLEXPORT :: getChangeUnifRNGD_SK1
206#endif
207 use pm_kind, only: SKG => SK1
208 logical(LK) , intent(in) , optional :: unique
209 integer(IK) , intent(in) :: step
210 integer(IK) , intent(in) :: count
211 character(1,SKG) , intent(in) :: start, stop
212 character(count,SKG) :: change
213 end function
214#endif
215
216 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
217
218#if IK5_ENABLED
219 module function getChangeUnifRNGD_IK5(count, start, stop, step, unique) result(change)
220#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
221 !DEC$ ATTRIBUTES DLLEXPORT :: getChangeUnifRNGD_IK5
222#endif
223 use pm_kind, only: IKG => IK5
224 logical(LK) , intent(in) , optional :: unique
225 integer(IK) , intent(in) :: count
226 integer(IKG) , intent(in) :: start, stop, step
227 integer(IKG) :: change(count)
228 end function
229#endif
230
231#if IK4_ENABLED
232 module function getChangeUnifRNGD_IK4(count, start, stop, step, unique) result(change)
233#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
234 !DEC$ ATTRIBUTES DLLEXPORT :: getChangeUnifRNGD_IK4
235#endif
236 use pm_kind, only: IKG => IK4
237 logical(LK) , intent(in) , optional :: unique
238 integer(IK) , intent(in) :: count
239 integer(IKG) , intent(in) :: start, stop, step
240 integer(IKG) :: change(count)
241 end function
242#endif
243
244#if IK3_ENABLED
245 module function getChangeUnifRNGD_IK3(count, start, stop, step, unique) result(change)
246#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
247 !DEC$ ATTRIBUTES DLLEXPORT :: getChangeUnifRNGD_IK3
248#endif
249 use pm_kind, only: IKG => IK3
250 logical(LK) , intent(in) , optional :: unique
251 integer(IK) , intent(in) :: count
252 integer(IKG) , intent(in) :: start, stop, step
253 integer(IKG) :: change(count)
254 end function
255#endif
256
257#if IK2_ENABLED
258 module function getChangeUnifRNGD_IK2(count, start, stop, step, unique) result(change)
259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
260 !DEC$ ATTRIBUTES DLLEXPORT :: getChangeUnifRNGD_IK2
261#endif
262 use pm_kind, only: IKG => IK2
263 logical(LK) , intent(in) , optional :: unique
264 integer(IK) , intent(in) :: count
265 integer(IKG) , intent(in) :: start, stop, step
266 integer(IKG) :: change(count)
267 end function
268#endif
269
270#if IK1_ENABLED
271 module function getChangeUnifRNGD_IK1(count, start, stop, step, unique) result(change)
272#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
273 !DEC$ ATTRIBUTES DLLEXPORT :: getChangeUnifRNGD_IK1
274#endif
275 use pm_kind, only: IKG => IK1
276 logical(LK) , intent(in) , optional :: unique
277 integer(IK) , intent(in) :: count
278 integer(IKG) , intent(in) :: start, stop, step
279 integer(IKG) :: change(count)
280 end function
281#endif
282
283 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
284
285#if RK5_ENABLED
286 module function getChangeUnifRNGD_RK5(count, start, stop, step, unique) result(change)
287#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
288 !DEC$ ATTRIBUTES DLLEXPORT :: getChangeUnifRNGD_RK5
289#endif
290 use pm_kind, only: RKG => RK5
291 logical(LK) , intent(in) , optional :: unique
292 integer(IK) , intent(in) :: count
293 real(RKG) , intent(in) :: start, stop, step
294 real(RKG) :: change(count)
295 end function
296#endif
297
298#if RK4_ENABLED
299 module function getChangeUnifRNGD_RK4(count, start, stop, step, unique) result(change)
300#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
301 !DEC$ ATTRIBUTES DLLEXPORT :: getChangeUnifRNGD_RK4
302#endif
303 use pm_kind, only: RKG => RK4
304 logical(LK) , intent(in) , optional :: unique
305 integer(IK) , intent(in) :: count
306 real(RKG) , intent(in) :: start, stop, step
307 real(RKG) :: change(count)
308 end function
309#endif
310
311#if RK3_ENABLED
312 module function getChangeUnifRNGD_RK3(count, start, stop, step, unique) result(change)
313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
314 !DEC$ ATTRIBUTES DLLEXPORT :: getChangeUnifRNGD_RK3
315#endif
316 use pm_kind, only: RKG => RK3
317 logical(LK) , intent(in) , optional :: unique
318 integer(IK) , intent(in) :: count
319 real(RKG) , intent(in) :: start, stop, step
320 real(RKG) :: change(count)
321 end function
322#endif
323
324#if RK2_ENABLED
325 module function getChangeUnifRNGD_RK2(count, start, stop, step, unique) result(change)
326#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
327 !DEC$ ATTRIBUTES DLLEXPORT :: getChangeUnifRNGD_RK2
328#endif
329 use pm_kind, only: RKG => RK2
330 logical(LK) , intent(in) , optional :: unique
331 integer(IK) , intent(in) :: count
332 real(RKG) , intent(in) :: start, stop, step
333 real(RKG) :: change(count)
334 end function
335#endif
336
337#if RK1_ENABLED
338 module function getChangeUnifRNGD_RK1(count, start, stop, step, unique) result(change)
339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
340 !DEC$ ATTRIBUTES DLLEXPORT :: getChangeUnifRNGD_RK1
341#endif
342 use pm_kind, only: RKG => RK1
343 logical(LK) , intent(in) , optional :: unique
344 integer(IK) , intent(in) :: count
345 real(RKG) , intent(in) :: start, stop, step
346 real(RKG) :: change(count)
347 end function
348#endif
349
350 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
351
352 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
353 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
354 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
355
356 end interface
357
358!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
359
448 interface setChange
449
450 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
451 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
452 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
453
454 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
455
456#if SK5_ENABLED
457 module subroutine setChangeUnifRNGF_SK5(rng, change, start, stop, step, unique)
458#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
459 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGF_SK5
460#endif
461 use pm_kind, only: SKG => SK5
462 logical(LK) , intent(in) , optional :: unique
463 integer(IK) , intent(in) :: step
464 type(rngf_type) , intent(in) :: rng
465 character(1,SKG) , intent(in) :: start, stop
466 character(*,SKG) , intent(out) :: change
467 end subroutine
468#endif
469
470#if SK4_ENABLED
471 module subroutine setChangeUnifRNGF_SK4(rng, change, start, stop, step, unique)
472#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
473 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGF_SK4
474#endif
475 use pm_kind, only: SKG => SK4
476 logical(LK) , intent(in) , optional :: unique
477 integer(IK) , intent(in) :: step
478 type(rngf_type) , intent(in) :: rng
479 character(1,SKG) , intent(in) :: start, stop
480 character(*,SKG) , intent(out) :: change
481 end subroutine
482#endif
483
484#if SK3_ENABLED
485 module subroutine setChangeUnifRNGF_SK3(rng, change, start, stop, step, unique)
486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
487 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGF_SK3
488#endif
489 use pm_kind, only: SKG => SK3
490 logical(LK) , intent(in) , optional :: unique
491 integer(IK) , intent(in) :: step
492 type(rngf_type) , intent(in) :: rng
493 character(1,SKG) , intent(in) :: start, stop
494 character(*,SKG) , intent(out) :: change
495 end subroutine
496#endif
497
498#if SK2_ENABLED
499 module subroutine setChangeUnifRNGF_SK2(rng, change, start, stop, step, unique)
500#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
501 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGF_SK2
502#endif
503 use pm_kind, only: SKG => SK2
504 logical(LK) , intent(in) , optional :: unique
505 integer(IK) , intent(in) :: step
506 type(rngf_type) , intent(in) :: rng
507 character(1,SKG) , intent(in) :: start, stop
508 character(*,SKG) , intent(out) :: change
509 end subroutine
510#endif
511
512#if SK1_ENABLED
513 module subroutine setChangeUnifRNGF_SK1(rng, change, start, stop, step, unique)
514#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
515 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGF_SK1
516#endif
517 use pm_kind, only: SKG => SK1
518 logical(LK) , intent(in) , optional :: unique
519 integer(IK) , intent(in) :: step
520 type(rngf_type) , intent(in) :: rng
521 character(1,SKG) , intent(in) :: start, stop
522 character(*,SKG) , intent(out) :: change
523 end subroutine
524#endif
525
526 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
527
528#if IK5_ENABLED
529 module subroutine setChangeUnifRNGF_IK5(rng, change, start, stop, step, unique)
530#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
531 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGF_IK5
532#endif
533 use pm_kind, only: IKG => IK5
534 logical(LK) , intent(in) , optional :: unique
535 type(rngf_type) , intent(in) :: rng
536 integer(IKG) , intent(in) :: start, stop, step
537 integer(IKG) , intent(out) , contiguous :: change(:)
538 end subroutine
539#endif
540
541#if IK4_ENABLED
542 module subroutine setChangeUnifRNGF_IK4(rng, change, start, stop, step, unique)
543#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
544 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGF_IK4
545#endif
546 use pm_kind, only: IKG => IK4
547 logical(LK) , intent(in) , optional :: unique
548 type(rngf_type) , intent(in) :: rng
549 integer(IKG) , intent(in) :: start, stop, step
550 integer(IKG) , intent(out) , contiguous :: change(:)
551 end subroutine
552#endif
553
554#if IK3_ENABLED
555 module subroutine setChangeUnifRNGF_IK3(rng, change, start, stop, step, unique)
556#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
557 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGF_IK3
558#endif
559 use pm_kind, only: IKG => IK3
560 logical(LK) , intent(in) , optional :: unique
561 type(rngf_type) , intent(in) :: rng
562 integer(IKG) , intent(in) :: start, stop, step
563 integer(IKG) , intent(out) , contiguous :: change(:)
564 end subroutine
565#endif
566
567#if IK2_ENABLED
568 module subroutine setChangeUnifRNGF_IK2(rng, change, start, stop, step, unique)
569#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
570 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGF_IK2
571#endif
572 use pm_kind, only: IKG => IK2
573 logical(LK) , intent(in) , optional :: unique
574 type(rngf_type) , intent(in) :: rng
575 integer(IKG) , intent(in) :: start, stop, step
576 integer(IKG) , intent(out) , contiguous :: change(:)
577 end subroutine
578#endif
579
580#if IK1_ENABLED
581 module subroutine setChangeUnifRNGF_IK1(rng, change, start, stop, step, unique)
582#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
583 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGF_IK1
584#endif
585 use pm_kind, only: IKG => IK1
586 logical(LK) , intent(in) , optional :: unique
587 type(rngf_type) , intent(in) :: rng
588 integer(IKG) , intent(in) :: start, stop, step
589 integer(IKG) , intent(out) , contiguous :: change(:)
590 end subroutine
591#endif
592
593 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
594
595#if RK5_ENABLED
596 module subroutine setChangeUnifRNGF_RK5(rng, change, start, stop, step, unique)
597#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
598 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGF_RK5
599#endif
600 use pm_kind, only: RKG => RK5
601 logical(LK) , intent(in) , optional :: unique
602 type(rngf_type) , intent(in) :: rng
603 real(RKG) , intent(in) :: start, stop, step
604 real(RKG) , intent(out) , contiguous :: change(:)
605 end subroutine
606#endif
607
608#if RK4_ENABLED
609 module subroutine setChangeUnifRNGF_RK4(rng, change, start, stop, step, unique)
610#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
611 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGF_RK4
612#endif
613 use pm_kind, only: RKG => RK4
614 logical(LK) , intent(in) , optional :: unique
615 type(rngf_type) , intent(in) :: rng
616 real(RKG) , intent(in) :: start, stop, step
617 real(RKG) , intent(out) , contiguous :: change(:)
618 end subroutine
619#endif
620
621#if RK3_ENABLED
622 module subroutine setChangeUnifRNGF_RK3(rng, change, start, stop, step, unique)
623#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
624 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGF_RK3
625#endif
626 use pm_kind, only: RKG => RK3
627 logical(LK) , intent(in) , optional :: unique
628 type(rngf_type) , intent(in) :: rng
629 real(RKG) , intent(in) :: start, stop, step
630 real(RKG) , intent(out) , contiguous :: change(:)
631 end subroutine
632#endif
633
634#if RK2_ENABLED
635 module subroutine setChangeUnifRNGF_RK2(rng, change, start, stop, step, unique)
636#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
637 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGF_RK2
638#endif
639 use pm_kind, only: RKG => RK2
640 logical(LK) , intent(in) , optional :: unique
641 type(rngf_type) , intent(in) :: rng
642 real(RKG) , intent(in) :: start, stop, step
643 real(RKG) , intent(out) , contiguous :: change(:)
644 end subroutine
645#endif
646
647#if RK1_ENABLED
648 module subroutine setChangeUnifRNGF_RK1(rng, change, start, stop, step, unique)
649#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
650 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGF_RK1
651#endif
652 use pm_kind, only: RKG => RK1
653 logical(LK) , intent(in) , optional :: unique
654 type(rngf_type) , intent(in) :: rng
655 real(RKG) , intent(in) :: start, stop, step
656 real(RKG) , intent(out) , contiguous :: change(:)
657 end subroutine
658#endif
659
660 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
661
662 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
663 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
664 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
665
666 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
667
668#if SK5_ENABLED
669 PURE module subroutine setChangeUnifRNGX_SK5(rng, change, start, stop, step, unique)
670#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
671 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGX_SK5
672#endif
673 use pm_kind, only: SKG => SK5
674 logical(LK) , intent(in) , optional :: unique
675 integer(IK) , intent(in) :: step
676 type(xoshiro256ssw_type) , intent(inout) :: rng
677 character(1,SKG) , intent(in) :: start, stop
678 character(*,SKG) , intent(out) :: change
679 end subroutine
680#endif
681
682#if SK4_ENABLED
683 PURE module subroutine setChangeUnifRNGX_SK4(rng, change, start, stop, step, unique)
684#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
685 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGX_SK4
686#endif
687 use pm_kind, only: SKG => SK4
688 logical(LK) , intent(in) , optional :: unique
689 integer(IK) , intent(in) :: step
690 type(xoshiro256ssw_type) , intent(inout) :: rng
691 character(1,SKG) , intent(in) :: start, stop
692 character(*,SKG) , intent(out) :: change
693 end subroutine
694#endif
695
696#if SK3_ENABLED
697 PURE module subroutine setChangeUnifRNGX_SK3(rng, change, start, stop, step, unique)
698#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
699 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGX_SK3
700#endif
701 use pm_kind, only: SKG => SK3
702 logical(LK) , intent(in) , optional :: unique
703 integer(IK) , intent(in) :: step
704 type(xoshiro256ssw_type) , intent(inout) :: rng
705 character(1,SKG) , intent(in) :: start, stop
706 character(*,SKG) , intent(out) :: change
707 end subroutine
708#endif
709
710#if SK2_ENABLED
711 PURE module subroutine setChangeUnifRNGX_SK2(rng, change, start, stop, step, unique)
712#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
713 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGX_SK2
714#endif
715 use pm_kind, only: SKG => SK2
716 logical(LK) , intent(in) , optional :: unique
717 integer(IK) , intent(in) :: step
718 type(xoshiro256ssw_type) , intent(inout) :: rng
719 character(1,SKG) , intent(in) :: start, stop
720 character(*,SKG) , intent(out) :: change
721 end subroutine
722#endif
723
724#if SK1_ENABLED
725 PURE module subroutine setChangeUnifRNGX_SK1(rng, change, start, stop, step, unique)
726#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
727 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGX_SK1
728#endif
729 use pm_kind, only: SKG => SK1
730 logical(LK) , intent(in) , optional :: unique
731 integer(IK) , intent(in) :: step
732 type(xoshiro256ssw_type) , intent(inout) :: rng
733 character(1,SKG) , intent(in) :: start, stop
734 character(*,SKG) , intent(out) :: change
735 end subroutine
736#endif
737
738 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
739
740#if IK5_ENABLED
741 PURE module subroutine setChangeUnifRNGX_IK5(rng, change, start, stop, step, unique)
742#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
743 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGX_IK5
744#endif
745 use pm_kind, only: IKG => IK5
746 logical(LK) , intent(in) , optional :: unique
747 type(xoshiro256ssw_type) , intent(inout) :: rng
748 integer(IKG) , intent(in) :: start, stop, step
749 integer(IKG) , intent(out) , contiguous :: change(:)
750 end subroutine
751#endif
752
753#if IK4_ENABLED
754 PURE module subroutine setChangeUnifRNGX_IK4(rng, change, start, stop, step, unique)
755#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
756 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGX_IK4
757#endif
758 use pm_kind, only: IKG => IK4
759 logical(LK) , intent(in) , optional :: unique
760 type(xoshiro256ssw_type) , intent(inout) :: rng
761 integer(IKG) , intent(in) :: start, stop, step
762 integer(IKG) , intent(out) , contiguous :: change(:)
763 end subroutine
764#endif
765
766#if IK3_ENABLED
767 PURE module subroutine setChangeUnifRNGX_IK3(rng, change, start, stop, step, unique)
768#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
769 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGX_IK3
770#endif
771 use pm_kind, only: IKG => IK3
772 logical(LK) , intent(in) , optional :: unique
773 type(xoshiro256ssw_type) , intent(inout) :: rng
774 integer(IKG) , intent(in) :: start, stop, step
775 integer(IKG) , intent(out) , contiguous :: change(:)
776 end subroutine
777#endif
778
779#if IK2_ENABLED
780 PURE module subroutine setChangeUnifRNGX_IK2(rng, change, start, stop, step, unique)
781#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
782 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGX_IK2
783#endif
784 use pm_kind, only: IKG => IK2
785 logical(LK) , intent(in) , optional :: unique
786 type(xoshiro256ssw_type) , intent(inout) :: rng
787 integer(IKG) , intent(in) :: start, stop, step
788 integer(IKG) , intent(out) , contiguous :: change(:)
789 end subroutine
790#endif
791
792#if IK1_ENABLED
793 PURE module subroutine setChangeUnifRNGX_IK1(rng, change, start, stop, step, unique)
794#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
795 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGX_IK1
796#endif
797 use pm_kind, only: IKG => IK1
798 logical(LK) , intent(in) , optional :: unique
799 type(xoshiro256ssw_type) , intent(inout) :: rng
800 integer(IKG) , intent(in) :: start, stop, step
801 integer(IKG) , intent(out) , contiguous :: change(:)
802 end subroutine
803#endif
804
805 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
806
807#if RK5_ENABLED
808 PURE module subroutine setChangeUnifRNGX_RK5(rng, change, start, stop, step, unique)
809#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
810 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGX_RK5
811#endif
812 use pm_kind, only: RKG => RK5
813 logical(LK) , intent(in) , optional :: unique
814 type(xoshiro256ssw_type) , intent(inout) :: rng
815 real(RKG) , intent(in) :: start, stop, step
816 real(RKG) , intent(out) , contiguous :: change(:)
817 end subroutine
818#endif
819
820#if RK4_ENABLED
821 PURE module subroutine setChangeUnifRNGX_RK4(rng, change, start, stop, step, unique)
822#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
823 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGX_RK4
824#endif
825 use pm_kind, only: RKG => RK4
826 logical(LK) , intent(in) , optional :: unique
827 type(xoshiro256ssw_type) , intent(inout) :: rng
828 real(RKG) , intent(in) :: start, stop, step
829 real(RKG) , intent(out) , contiguous :: change(:)
830 end subroutine
831#endif
832
833#if RK3_ENABLED
834 PURE module subroutine setChangeUnifRNGX_RK3(rng, change, start, stop, step, unique)
835#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
836 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGX_RK3
837#endif
838 use pm_kind, only: RKG => RK3
839 logical(LK) , intent(in) , optional :: unique
840 type(xoshiro256ssw_type) , intent(inout) :: rng
841 real(RKG) , intent(in) :: start, stop, step
842 real(RKG) , intent(out) , contiguous :: change(:)
843 end subroutine
844#endif
845
846#if RK2_ENABLED
847 PURE module subroutine setChangeUnifRNGX_RK2(rng, change, start, stop, step, unique)
848#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
849 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGX_RK2
850#endif
851 use pm_kind, only: RKG => RK2
852 logical(LK) , intent(in) , optional :: unique
853 type(xoshiro256ssw_type) , intent(inout) :: rng
854 real(RKG) , intent(in) :: start, stop, step
855 real(RKG) , intent(out) , contiguous :: change(:)
856 end subroutine
857#endif
858
859#if RK1_ENABLED
860 PURE module subroutine setChangeUnifRNGX_RK1(rng, change, start, stop, step, unique)
861#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
862 !DEC$ ATTRIBUTES DLLEXPORT :: setChangeUnifRNGX_RK1
863#endif
864 use pm_kind, only: RKG => RK1
865 logical(LK) , intent(in) , optional :: unique
866 type(xoshiro256ssw_type) , intent(inout) :: rng
867 real(RKG) , intent(in) :: start, stop, step
868 real(RKG) , intent(out) , contiguous :: change(:)
869 end subroutine
870#endif
871
872 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
873
874 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
875 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
876 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
877
878 end interface
879
880!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
881
882end module pm_arrayChange ! LCOV_EXCL_LINE
Generate and return a randomly-uniform selected sequence of elements from a scalar character or integ...
Return a randomly-uniform uniquely-selected sequence of elements from a scalar character or integer r...
This module contains procedures and generic interfaces for selecting uniformly-distributed random cho...
character(*, SK), parameter MODULE_NAME
This module contains classes and procedures for computing various statistical quantities related to t...
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 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 RK2
Definition: pm_kind.F90:511
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 SK4
Definition: pm_kind.F90:331
integer, parameter IK2
Definition: pm_kind.F90:375
integer, parameter SK2
Definition: pm_kind.F90:341
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
Definition: pm_kind.F90:540
integer, parameter IK4
Definition: pm_kind.F90:361
integer, parameter IK5
Definition: pm_kind.F90:354
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
Definition: pm_kind.F90:539
integer, parameter RK1
Definition: pm_kind.F90:522
integer, parameter SK3
Definition: pm_kind.F90:336
This is a concrete derived type whose instances can be used to define/request the default uniform ran...
This is the derived type for declaring and generating objects of type xoshiro256ssw_type containing a...