ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_arrayRange.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
33
34!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
35
37
38 use pm_kind, only: SK, IK
39
40 implicit none
41
42 character(*, SK), parameter :: MODULE_NAME = "@pm_arrayRange"
43
44!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
45
135 interface getRange
136
137 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
138 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
139 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
140
141 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
142
143#if SK5_ENABLED
144 PURE module function getRangeUnit_D0_SK5(start, stop) result(range)
145#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
146 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D0_SK5
147#endif
148 use pm_kind, only: SKG => SK5
149 character(1,SKG) , intent(in) :: start, stop
150 character(abs(ichar(stop) - ichar(start)) + 1,SKG) :: range
151 end function
152#endif
153
154#if SK4_ENABLED
155 PURE module function getRangeUnit_D0_SK4(start, stop) result(range)
156#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
157 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D0_SK4
158#endif
159 use pm_kind, only: SKG => SK4
160 character(1,SKG) , intent(in) :: start, stop
161 character(abs(ichar(stop) - ichar(start)) + 1,SKG) :: range
162 end function
163#endif
164
165#if SK3_ENABLED
166 PURE module function getRangeUnit_D0_SK3(start, stop) result(range)
167#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
168 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D0_SK3
169#endif
170 use pm_kind, only: SKG => SK3
171 character(1,SKG) , intent(in) :: start, stop
172 character(abs(ichar(stop) - ichar(start)) + 1,SKG) :: range
173 end function
174#endif
175
176#if SK2_ENABLED
177 PURE module function getRangeUnit_D0_SK2(start, stop) result(range)
178#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
179 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D0_SK2
180#endif
181 use pm_kind, only: SKG => SK2
182 character(1,SKG) , intent(in) :: start, stop
183 character(abs(ichar(stop) - ichar(start)) + 1,SKG) :: range
184 end function
185#endif
186
187#if SK1_ENABLED
188 PURE module function getRangeUnit_D0_SK1(start, stop) result(range)
189#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
190 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D0_SK1
191#endif
192 use pm_kind, only: SKG => SK1
193 character(1,SKG) , intent(in) :: start, stop
194 character(abs(ichar(stop) - ichar(start)) + 1,SKG) :: range
195 end function
196#endif
197
198 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
199
200#if IK5_ENABLED
201 PURE module function getRangeUnit_D1_IK5(start, stop) result(range)
202#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
203 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D1_IK5
204#endif
205 use pm_kind, only: IKG => IK5
206 integer(IKG) , intent(in) :: start, stop
207 integer(IKG) :: range(abs(stop - start) + 1_IKG)
208 end function
209#endif
210
211#if IK4_ENABLED
212 PURE module function getRangeUnit_D1_IK4(start, stop) result(range)
213#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
214 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D1_IK4
215#endif
216 use pm_kind, only: IKG => IK4
217 integer(IKG) , intent(in) :: start, stop
218 integer(IKG) :: range(abs(stop - start) + 1_IKG)
219 end function
220#endif
221
222#if IK3_ENABLED
223 PURE module function getRangeUnit_D1_IK3(start, stop) result(range)
224#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
225 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D1_IK3
226#endif
227 use pm_kind, only: IKG => IK3
228 integer(IKG) , intent(in) :: start, stop
229 integer(IKG) :: range(abs(stop - start) + 1_IKG)
230 end function
231#endif
232
233#if IK2_ENABLED
234 PURE module function getRangeUnit_D1_IK2(start, stop) result(range)
235#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
236 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D1_IK2
237#endif
238 use pm_kind, only: IKG => IK2
239 integer(IKG) , intent(in) :: start, stop
240 integer(IKG) :: range(abs(stop - start) + 1_IKG)
241 end function
242#endif
243
244#if IK1_ENABLED
245 PURE module function getRangeUnit_D1_IK1(start, stop) result(range)
246#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
247 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D1_IK1
248#endif
249 use pm_kind, only: IKG => IK1
250 integer(IKG) , intent(in) :: start, stop
251 integer(IKG) :: range(abs(stop - start) + 1_IKG)
252 end function
253#endif
254
255 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
256
257#if RK5_ENABLED
258 PURE module function getRangeUnit_D1_RK5(start, stop) result(range)
259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
260 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D1_RK5
261#endif
262 use pm_kind, only: RKG => RK5
263 real(RKG) , value :: start, stop
264 real(RKG) , allocatable :: range(:)
265 end function
266#endif
267
268#if RK4_ENABLED
269 PURE module function getRangeUnit_D1_RK4(start, stop) result(range)
270#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
271 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D1_RK4
272#endif
273 use pm_kind, only: RKG => RK4
274 real(RKG) , value :: start, stop
275 real(RKG) , allocatable :: range(:)
276 end function
277#endif
278
279#if RK3_ENABLED
280 PURE module function getRangeUnit_D1_RK3(start, stop) result(range)
281#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
282 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D1_RK3
283#endif
284 use pm_kind, only: RKG => RK3
285 real(RKG) , value :: start, stop
286 real(RKG) , allocatable :: range(:)
287 end function
288#endif
289
290#if RK2_ENABLED
291 PURE module function getRangeUnit_D1_RK2(start, stop) result(range)
292#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
293 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D1_RK2
294#endif
295 use pm_kind, only: RKG => RK2
296 real(RKG) , value :: start, stop
297 real(RKG) , allocatable :: range(:)
298 end function
299#endif
300
301#if RK1_ENABLED
302 PURE module function getRangeUnit_D1_RK1(start, stop) result(range)
303#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
304 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D1_RK1
305#endif
306 use pm_kind, only: RKG => RK1
307 real(RKG) , value :: start, stop
308 real(RKG) , allocatable :: range(:)
309 end function
310#endif
311
312 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
313
314 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
315 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
316 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
317
318 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
319
320#if SK5_ENABLED
321 PURE module function getRangeStep_D0_SK5(start, stop, step) result(range)
322#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
323 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D0_SK5
324#endif
325 use pm_kind, only: SKG => SK5
326 integer(IK) , intent(in) :: step
327 character(1,SKG) , intent(in) :: start, stop
328 character(max(0, 1 + floor(real(ichar(stop) - ichar(start)) / step)),SKG) :: range
329 end function
330#endif
331
332#if SK4_ENABLED
333 PURE module function getRangeStep_D0_SK4(start, stop, step) result(range)
334#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
335 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D0_SK4
336#endif
337 use pm_kind, only: SKG => SK4
338 integer(IK) , intent(in) :: step
339 character(1,SKG) , intent(in) :: start, stop
340 character(max(0, 1 + floor(real(ichar(stop) - ichar(start)) / step)),SKG) :: range
341 end function
342#endif
343
344#if SK3_ENABLED
345 PURE module function getRangeStep_D0_SK3(start, stop, step) result(range)
346#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
347 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D0_SK3
348#endif
349 use pm_kind, only: SKG => SK3
350 integer(IK) , intent(in) :: step
351 character(1,SKG) , intent(in) :: start, stop
352 character(max(0, 1 + floor(real(ichar(stop) - ichar(start)) / step)),SKG) :: range
353 end function
354#endif
355
356#if SK2_ENABLED
357 PURE module function getRangeStep_D0_SK2(start, stop, step) result(range)
358#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
359 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D0_SK2
360#endif
361 use pm_kind, only: SKG => SK2
362 integer(IK) , intent(in) :: step
363 character(1,SKG) , intent(in) :: start, stop
364 character(max(0, 1 + floor(real(ichar(stop) - ichar(start)) / step)),SKG) :: range
365 end function
366#endif
367
368#if SK1_ENABLED
369 PURE module function getRangeStep_D0_SK1(start, stop, step) result(range)
370#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
371 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D0_SK1
372#endif
373 use pm_kind, only: SKG => SK1
374 integer(IK) , intent(in) :: step
375 character(1,SKG) , intent(in) :: start, stop
376 character(max(0, 1 + floor(real(ichar(stop) - ichar(start)) / step)),SKG) :: range
377 end function
378#endif
379
380 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
381
382#if IK5_ENABLED
383 PURE module function getRangeStep_D1_IK5(start, stop, step) result(range)
384#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
385 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D1_IK5
386#endif
387 use pm_kind, only: IKG => IK5
388 integer(IKG) , intent(in) :: start, stop, step
389 integer(IKG) :: range(max(0_IKG, 1_IKG + floor(real(stop - start) / real(step), kind = IKG)))
390 ! (merge(1_IKG + (stop - start) / step, 0_IKG, (stop - start >= 0_IKG .and. step > 0_IKG) .or. (stop - start <= 0_IKG .and. step < 0_IKG)))
391 end function
392#endif
393
394#if IK4_ENABLED
395 PURE module function getRangeStep_D1_IK4(start, stop, step) result(range)
396#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
397 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D1_IK4
398#endif
399 use pm_kind, only: IKG => IK4
400 integer(IKG) , intent(in) :: start, stop, step
401 integer(IKG) :: range(max(0_IKG, 1_IKG + floor(real(stop - start) / real(step), kind = IKG)))
402 end function
403#endif
404
405#if IK3_ENABLED
406 PURE module function getRangeStep_D1_IK3(start, stop, step) result(range)
407#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
408 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D1_IK3
409#endif
410 use pm_kind, only: IKG => IK3
411 integer(IKG) , intent(in) :: start, stop, step
412 integer(IKG) :: range(max(0_IKG, 1_IKG + floor(real(stop - start) / real(step), kind = IKG)))
413 end function
414#endif
415
416#if IK2_ENABLED
417 PURE module function getRangeStep_D1_IK2(start, stop, step) result(range)
418#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
419 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D1_IK2
420#endif
421 use pm_kind, only: IKG => IK2
422 integer(IKG) , intent(in) :: start, stop, step
423 integer(IKG) :: range(max(0_IKG, 1_IKG + floor(real(stop - start) / real(step), kind = IKG)))
424 end function
425#endif
426
427#if IK1_ENABLED
428 PURE module function getRangeStep_D1_IK1(start, stop, step) result(range)
429#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
430 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D1_IK1
431#endif
432 use pm_kind, only: IKG => IK1
433 integer(IKG) , intent(in) :: start, stop, step
434 integer(IKG) :: range(max(0_IKG, 1_IKG + floor(real(stop - start) / real(step), kind = IKG)))
435 end function
436#endif
437
438 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
439
440#if RK5_ENABLED
441 PURE module function getRangeStep_D1_RK5(start, stop, step) result(range)
442#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
443 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D1_RK5
444#endif
445 use pm_kind, only: RKG => RK5
446 real(RKG) , intent(in) :: start, stop, step
447 real(RKG) :: range(max(0_IK, 1_IK + floor((stop - start) / step, kind = IK)))
448 end function
449#endif
450
451#if RK4_ENABLED
452 PURE module function getRangeStep_D1_RK4(start, stop, step) result(range)
453#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
454 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D1_RK4
455#endif
456 use pm_kind, only: RKG => RK4
457 real(RKG) , intent(in) :: start, stop, step
458 real(RKG) :: range(max(0_IK, 1_IK + floor((stop - start) / step, kind = IK)))
459 end function
460#endif
461
462#if RK3_ENABLED
463 PURE module function getRangeStep_D1_RK3(start, stop, step) result(range)
464#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
465 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D1_RK3
466#endif
467 use pm_kind, only: RKG => RK3
468 real(RKG) , intent(in) :: start, stop, step
469 real(RKG) :: range(max(0_IK, 1_IK + floor((stop - start) / step, kind = IK)))
470 end function
471#endif
472
473#if RK2_ENABLED
474 PURE module function getRangeStep_D1_RK2(start, stop, step) result(range)
475#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
476 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D1_RK2
477#endif
478 use pm_kind, only: RKG => RK2
479 real(RKG) , intent(in) :: start, stop, step
480 real(RKG) :: range(max(0_IK, 1_IK + floor((stop - start) / step, kind = IK)))
481 end function
482#endif
483
484#if RK1_ENABLED
485 PURE module function getRangeStep_D1_RK1(start, stop, step) result(range)
486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
487 !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D1_RK1
488#endif
489 use pm_kind, only: RKG => RK1
490 real(RKG) , intent(in) :: start, stop, step
491 real(RKG) :: range(max(0_IK, 1_IK + floor((stop - start) / step, kind = IK)))
492 end function
493#endif
494
495 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
496
497 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
498 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
499 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
500
501! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
502!
503!#if IK5_ENABLED
504! PURE module function getRangeUnit_D2_IK5(start, stop) result(range)
505!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
506! !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D2_IK5
507!#endif
508! use pm_kind, only: IKG => IK5
509! integer(IKG) , intent(in) :: start(2), stop(2)
510! integer(IKG) :: range(2, max(0_IK, stop(1) - start(1) + 1_IK), max(0_IK, stop(2) - start(2) + 1_IK))
511! end function
512!#endif
513!
514!#if IK4_ENABLED
515! PURE module function getRangeUnit_D2_IK4(start, stop) result(range)
516!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
517! !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D2_IK4
518!#endif
519! use pm_kind, only: IKG => IK4
520! integer(IKG) , intent(in) :: start(2), stop(2)
521! integer(IKG) :: range(2, max(0_IK, stop(1) - start(1) + 1_IK), max(0_IK, stop(2) - start(2) + 1_IK))
522! end function
523!#endif
524!
525!#if IK3_ENABLED
526! PURE module function getRangeUnit_D2_IK3(start, stop) result(range)
527!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
528! !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D2_IK3
529!#endif
530! use pm_kind, only: IKG => IK3
531! integer(IKG) , intent(in) :: start(2), stop(2)
532! integer(IKG) :: range(2, max(0_IK, stop(1) - start(1) + 1_IK), max(0_IK, stop(2) - start(2) + 1_IK))
533! end function
534!#endif
535!
536!#if IK2_ENABLED
537! PURE module function getRangeUnit_D2_IK2(start, stop) result(range)
538!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
539! !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D2_IK2
540!#endif
541! use pm_kind, only: IKG => IK2
542! integer(IKG) , intent(in) :: start(2), stop(2)
543! integer(IKG) :: range(2, max(0_IK, stop(1) - start(1) + 1_IK), max(0_IK, stop(2) - start(2) + 1_IK))
544! end function
545!#endif
546!
547!#if IK1_ENABLED
548! PURE module function getRangeUnit_D2_IK1(start, stop) result(range)
549!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
550! !DEC$ ATTRIBUTES DLLEXPORT :: getRangeUnit_D2_IK1
551!#endif
552! use pm_kind, only: IKG => IK1
553! integer(IKG) , intent(in) :: start(2), stop(2)
554! integer(IKG) :: range(2, max(0_IK, stop(1) - start(1) + 1_IK), max(0_IK, stop(2) - start(2) + 1_IK))
555! end function
556!#endif
557!
558! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
559!
560!#if IK5_ENABLED
561! PURE module function getRangeStep_D2_IK5(start, stop, step) result(range)
562!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
563! !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D2_IK5
564!#endif
565! use pm_kind, only: IKG => IK5
566! integer(IKG) , intent(in) :: start(2), stop(2), step(2)
567! integer(IKG) :: range(2, max(0_IKG, 1_IKG + floor(real(stop(1) - start(1)) / real(step(1)), kind = IKG)), max(0_IKG, 1_IKG + floor(real(stop(2) - start(2)) / real(step(2)), kind = IKG)))
568! ! (merge(1_IKG + (stop(1) - start(1)) / step, 0_IKG, (stop(1) - start(1) >= 0_IKG .and. step > 0_IKG) .or. (stop(1) - start(1) <= 0_IKG .and. step < 0_IKG)))
569! end function
570!#endif
571!
572!#if IK4_ENABLED
573! PURE module function getRangeStep_D2_IK4(start, stop, step) result(range)
574!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
575! !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D2_IK4
576!#endif
577! use pm_kind, only: IKG => IK4
578! integer(IKG) , intent(in) :: start(2), stop(2), step(2)
579! integer(IKG) :: range(2, max(0_IKG, 1_IKG + floor(real(stop(1) - start(1)) / real(step(1)), kind = IKG)), max(0_IKG, 1_IKG + floor(real(stop(2) - start(2)) / real(step(2)), kind = IKG)))
580! end function
581!#endif
582!
583!#if IK3_ENABLED
584! PURE module function getRangeStep_D2_IK3(start, stop, step) result(range)
585!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
586! !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D2_IK3
587!#endif
588! use pm_kind, only: IKG => IK3
589! integer(IKG) , intent(in) :: start(2), stop(2), step(2)
590! integer(IKG) :: range(2, max(0_IKG, 1_IKG + floor(real(stop(1) - start(1)) / real(step(1)), kind = IKG)), max(0_IKG, 1_IKG + floor(real(stop(2) - start(2)) / real(step(2)), kind = IKG)))
591! end function
592!#endif
593!
594!#if IK2_ENABLED
595! PURE module function getRangeStep_D2_IK2(start, stop, step) result(range)
596!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
597! !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D2_IK2
598!#endif
599! use pm_kind, only: IKG => IK2
600! integer(IKG) , intent(in) :: start(2), stop(2), step(2)
601! integer(IKG) :: range(2, max(0_IKG, 1_IKG + floor(real(stop(1) - start(1)) / real(step(1)), kind = IKG)), max(0_IKG, 1_IKG + floor(real(stop(2) - start(2)) / real(step(2)), kind = IKG)))
602! end function
603!#endif
604!
605!#if IK1_ENABLED
606! PURE module function getRangeStep_D2_IK1(start, stop, step) result(range)
607!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
608! !DEC$ ATTRIBUTES DLLEXPORT :: getRangeStep_D2_IK1
609!#endif
610! use pm_kind, only: IKG => IK1
611! integer(IKG) , intent(in) :: start(2), stop(2), step(2)
612! integer(IKG) :: range(2, max(0_IKG, 1_IKG + floor(real(stop(1) - start(1)) / real(step(1)), kind = IKG)), max(0_IKG, 1_IKG + floor(real(stop(2) - start(2)) / real(step(2)), kind = IKG)))
613! end function
614!#endif
615!
616! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
617!
618! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
619! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
620! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
621
622 end interface
623
624!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
625
695 interface setRange
696
697 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
698 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
699 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
700
701 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
702
703#if SK5_ENABLED
704 PURE module subroutine setRangeUnit_D0_SK5(range, start)
705#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
706 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeUnit_D0_SK5
707#endif
708 use pm_kind, only: SKG => SK5
709 character(*,SKG) , intent(out) :: range
710 character(1,SKG) , intent(in) :: start
711 end subroutine
712#endif
713
714#if SK4_ENABLED
715 PURE module subroutine setRangeUnit_D0_SK4(range, start)
716#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
717 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeUnit_D0_SK4
718#endif
719 use pm_kind, only: SKG => SK4
720 character(*,SKG) , intent(out) :: range
721 character(1,SKG) , intent(in) :: start
722 end subroutine
723#endif
724
725#if SK3_ENABLED
726 PURE module subroutine setRangeUnit_D0_SK3(range, start)
727#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
728 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeUnit_D0_SK3
729#endif
730 use pm_kind, only: SKG => SK3
731 character(*,SKG) , intent(out) :: range
732 character(1,SKG) , intent(in) :: start
733 end subroutine
734#endif
735
736#if SK2_ENABLED
737 PURE module subroutine setRangeUnit_D0_SK2(range, start)
738#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
739 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeUnit_D0_SK2
740#endif
741 use pm_kind, only: SKG => SK2
742 character(*,SKG) , intent(out) :: range
743 character(1,SKG) , intent(in) :: start
744 end subroutine
745#endif
746
747#if SK1_ENABLED
748 PURE module subroutine setRangeUnit_D0_SK1(range, start)
749#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
750 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeUnit_D0_SK1
751#endif
752 use pm_kind, only: SKG => SK1
753 character(*,SKG) , intent(out) :: range
754 character(1,SKG) , intent(in) :: start
755 end subroutine
756#endif
757
758 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
759
760#if IK5_ENABLED
761 PURE module subroutine setRangeUnit_D1_IK5(range, start)
762#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
763 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeUnit_D1_IK5
764#endif
765 use pm_kind, only: IKG => IK5
766 integer(IKG) , intent(out) , contiguous :: range(:)
767 integer(IKG) , intent(in) :: start
768 end subroutine
769#endif
770
771#if IK4_ENABLED
772 PURE module subroutine setRangeUnit_D1_IK4(range, start)
773#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
774 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeUnit_D1_IK4
775#endif
776 use pm_kind, only: IKG => IK4
777 integer(IKG) , intent(out) , contiguous :: range(:)
778 integer(IKG) , intent(in) :: start
779 end subroutine
780#endif
781
782#if IK3_ENABLED
783 PURE module subroutine setRangeUnit_D1_IK3(range, start)
784#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
785 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeUnit_D1_IK3
786#endif
787 use pm_kind, only: IKG => IK3
788 integer(IKG) , intent(out) , contiguous :: range(:)
789 integer(IKG) , intent(in) :: start
790 end subroutine
791#endif
792
793#if IK2_ENABLED
794 PURE module subroutine setRangeUnit_D1_IK2(range, start)
795#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
796 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeUnit_D1_IK2
797#endif
798 use pm_kind, only: IKG => IK2
799 integer(IKG) , intent(out) , contiguous :: range(:)
800 integer(IKG) , intent(in) :: start
801 end subroutine
802#endif
803
804#if IK1_ENABLED
805 PURE module subroutine setRangeUnit_D1_IK1(range, start)
806#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
807 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeUnit_D1_IK1
808#endif
809 use pm_kind, only: IKG => IK1
810 integer(IKG) , intent(out) , contiguous :: range(:)
811 integer(IKG) , intent(in) :: start
812 end subroutine
813#endif
814
815 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
816
817#if RK5_ENABLED
818 PURE module subroutine setRangeUnit_D1_RK5(range, start)
819#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
820 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeUnit_D1_RK5
821#endif
822 use pm_kind, only: RKG => RK5
823 real(RKG) , intent(out) , contiguous :: range(:)
824 real(RKG) , intent(in) :: start
825 end subroutine
826#endif
827
828#if RK4_ENABLED
829 PURE module subroutine setRangeUnit_D1_RK4(range, start)
830#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
831 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeUnit_D1_RK4
832#endif
833 use pm_kind, only: RKG => RK4
834 real(RKG) , intent(out) , contiguous :: range(:)
835 real(RKG) , intent(in) :: start
836 end subroutine
837#endif
838
839#if RK3_ENABLED
840 PURE module subroutine setRangeUnit_D1_RK3(range, start)
841#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
842 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeUnit_D1_RK3
843#endif
844 use pm_kind, only: RKG => RK3
845 real(RKG) , intent(out) , contiguous :: range(:)
846 real(RKG) , intent(in) :: start
847 end subroutine
848#endif
849
850#if RK2_ENABLED
851 PURE module subroutine setRangeUnit_D1_RK2(range, start)
852#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
853 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeUnit_D1_RK2
854#endif
855 use pm_kind, only: RKG => RK2
856 real(RKG) , intent(out) , contiguous :: range(:)
857 real(RKG) , intent(in) :: start
858 end subroutine
859#endif
860
861#if RK1_ENABLED
862 PURE module subroutine setRangeUnit_D1_RK1(range, start)
863#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
864 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeUnit_D1_RK1
865#endif
866 use pm_kind, only: RKG => RK1
867 real(RKG) , intent(out) , contiguous :: range(:)
868 real(RKG) , intent(in) :: start
869 end subroutine
870#endif
871
872 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
873
874 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
875 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
876 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
877
878 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
879
880#if SK5_ENABLED
881 PURE module subroutine setRangeStep_D0_SK5(range, start, step)
882#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
883 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeStep_D0_SK5
884#endif
885 use pm_kind, only: SKG => SK5
886 character(*,SKG) , intent(out) :: range
887 character(1,SKG) , intent(in) :: start
888 integer(IK) , intent(in) :: step
889 end subroutine
890#endif
891
892#if SK4_ENABLED
893 PURE module subroutine setRangeStep_D0_SK4(range, start, step)
894#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
895 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeStep_D0_SK4
896#endif
897 use pm_kind, only: SKG => SK4
898 character(*,SKG) , intent(out) :: range
899 character(1,SKG) , intent(in) :: start
900 integer(IK) , intent(in) :: step
901 end subroutine
902#endif
903
904#if SK3_ENABLED
905 PURE module subroutine setRangeStep_D0_SK3(range, start, step)
906#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
907 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeStep_D0_SK3
908#endif
909 use pm_kind, only: SKG => SK3
910 character(*,SKG) , intent(out) :: range
911 character(1,SKG) , intent(in) :: start
912 integer(IK) , intent(in) :: step
913 end subroutine
914#endif
915
916#if SK2_ENABLED
917 PURE module subroutine setRangeStep_D0_SK2(range, start, step)
918#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
919 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeStep_D0_SK2
920#endif
921 use pm_kind, only: SKG => SK2
922 character(*,SKG) , intent(out) :: range
923 character(1,SKG) , intent(in) :: start
924 integer(IK) , intent(in) :: step
925 end subroutine
926#endif
927
928#if SK1_ENABLED
929 PURE module subroutine setRangeStep_D0_SK1(range, start, step)
930#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
931 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeStep_D0_SK1
932#endif
933 use pm_kind, only: SKG => SK1
934 character(*,SKG) , intent(out) :: range
935 character(1,SKG) , intent(in) :: start
936 integer(IK) , intent(in) :: step
937 end subroutine
938#endif
939
940 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
941
942#if IK5_ENABLED
943 PURE module subroutine setRangeStep_D1_IK5(range, start, step)
944#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
945 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeStep_D1_IK5
946#endif
947 use pm_kind, only: IKG => IK5
948 integer(IKG) , intent(out) , contiguous :: range(:)
949 integer(IKG) , intent(in) :: start, step
950 end subroutine
951#endif
952
953#if IK4_ENABLED
954 PURE module subroutine setRangeStep_D1_IK4(range, start, step)
955#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
956 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeStep_D1_IK4
957#endif
958 use pm_kind, only: IKG => IK4
959 integer(IKG) , intent(out) , contiguous :: range(:)
960 integer(IKG) , intent(in) :: start, step
961 end subroutine
962#endif
963
964#if IK3_ENABLED
965 PURE module subroutine setRangeStep_D1_IK3(range, start, step)
966#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
967 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeStep_D1_IK3
968#endif
969 use pm_kind, only: IKG => IK3
970 integer(IKG) , intent(out) , contiguous :: range(:)
971 integer(IKG) , intent(in) :: start, step
972 end subroutine
973#endif
974
975#if IK2_ENABLED
976 PURE module subroutine setRangeStep_D1_IK2(range, start, step)
977#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
978 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeStep_D1_IK2
979#endif
980 use pm_kind, only: IKG => IK2
981 integer(IKG) , intent(out) , contiguous :: range(:)
982 integer(IKG) , intent(in) :: start, step
983 end subroutine
984#endif
985
986#if IK1_ENABLED
987 PURE module subroutine setRangeStep_D1_IK1(range, start, step)
988#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
989 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeStep_D1_IK1
990#endif
991 use pm_kind, only: IKG => IK1
992 integer(IKG) , intent(out) , contiguous :: range(:)
993 integer(IKG) , intent(in) :: start, step
994 end subroutine
995#endif
996
997 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
998
999#if RK5_ENABLED
1000 PURE module subroutine setRangeStep_D1_RK5(range, start, step)
1001#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1002 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeStep_D1_RK5
1003#endif
1004 use pm_kind, only: RKG => RK5
1005 real(RKG) , intent(out) , contiguous :: range(:)
1006 real(RKG) , intent(in) :: start, step
1007 end subroutine
1008#endif
1009
1010#if RK4_ENABLED
1011 PURE module subroutine setRangeStep_D1_RK4(range, start, step)
1012#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1013 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeStep_D1_RK4
1014#endif
1015 use pm_kind, only: RKG => RK4
1016 real(RKG) , intent(out) , contiguous :: range(:)
1017 real(RKG) , intent(in) :: start, step
1018 end subroutine
1019#endif
1020
1021#if RK3_ENABLED
1022 PURE module subroutine setRangeStep_D1_RK3(range, start, step)
1023#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1024 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeStep_D1_RK3
1025#endif
1026 use pm_kind, only: RKG => RK3
1027 real(RKG) , intent(out) , contiguous :: range(:)
1028 real(RKG) , intent(in) :: start, step
1029 end subroutine
1030#endif
1031
1032#if RK2_ENABLED
1033 PURE module subroutine setRangeStep_D1_RK2(range, start, step)
1034#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1035 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeStep_D1_RK2
1036#endif
1037 use pm_kind, only: RKG => RK2
1038 real(RKG) , intent(out) , contiguous :: range(:)
1039 real(RKG) , intent(in) :: start, step
1040 end subroutine
1041#endif
1042
1043#if RK1_ENABLED
1044 PURE module subroutine setRangeStep_D1_RK1(range, start, step)
1045#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1046 !DEC$ ATTRIBUTES DLLEXPORT :: setRangeStep_D1_RK1
1047#endif
1048 use pm_kind, only: RKG => RK1
1049 real(RKG) , intent(out) , contiguous :: range(:)
1050 real(RKG) , intent(in) :: start, step
1051 end subroutine
1052#endif
1053
1054 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1055
1056 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1057 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1058 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1059
1060 end interface
1061
1062!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1063
1064end module pm_arrayRange ! LCOV_EXCL_LINE
Generate minimally-spaced character, integer, real sequences or sequences at fixed intervals of size ...
Return evenly spaced integer or character sequence starting at start with jump sizes of step.
This module contains procedures and generic interfaces for generating ranges of discrete character,...
character(*, SK), parameter MODULE_NAME
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter SK5
Definition: pm_kind.F90:326
integer, parameter 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 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