270 use,
intrinsic ::
iso_fortran_env ,
only:
character_kinds
271 use,
intrinsic ::
iso_fortran_env ,
only:
integer_kinds
272 use,
intrinsic ::
iso_fortran_env ,
only:
logical_kinds
273 use,
intrinsic ::
iso_fortran_env ,
only:
real_kinds
282 use,
intrinsic ::
iso_c_binding ,
only: IK64_DEF
=> c_int64_t
283 use,
intrinsic ::
iso_c_binding ,
only: IK32_DEF
=> c_int32_t
284 use,
intrinsic ::
iso_c_binding ,
only: IK16_DEF
=> c_int16_t
285 use,
intrinsic ::
iso_c_binding ,
only: IK8_DEF
=> c_int8_t
286 use,
intrinsic ::
iso_c_binding ,
only: RK128_DEF
=> c_long_double
287 use,
intrinsic ::
iso_c_binding ,
only: RK64_DEF
=> c_double
288 use,
intrinsic ::
iso_c_binding ,
only: RK32_DEF
=> c_float
289 use,
intrinsic ::
iso_c_binding ,
only: CK128_DEF
=> c_long_double_complex
290 use,
intrinsic ::
iso_c_binding ,
only: CK64_DEF
=> c_double_complex
291 use,
intrinsic ::
iso_c_binding ,
only: CK32_DEF
=> c_float_complex
292 use,
intrinsic ::
iso_c_binding ,
only:
SK_DEF => c_char
293 use,
intrinsic ::
iso_c_binding ,
only:
IK_DEF => c_int32_t
295 use,
intrinsic ::
iso_c_binding ,
only:
CK_DEF => c_double_complex
296 use,
intrinsic ::
iso_c_binding ,
only:
RK_DEF => c_double
301 use,
intrinsic ::
iso_fortran_env ,
only: IK64_DEF
=> int64
302 use,
intrinsic ::
iso_fortran_env ,
only: IK32_DEF
=> int32
303 use,
intrinsic ::
iso_fortran_env ,
only: IK16_DEF
=> int16
304 use,
intrinsic ::
iso_fortran_env ,
only: IK8_DEF
=> int8
305 use,
intrinsic ::
iso_fortran_env ,
only: RK128_DEF
=> real128
306 use,
intrinsic ::
iso_fortran_env ,
only: RK64_DEF
=> real64
307 use,
intrinsic ::
iso_fortran_env ,
only: RK32_DEF
=> real32
308 use,
intrinsic ::
iso_fortran_env ,
only: CK128_DEF
=> real128
309 use,
intrinsic ::
iso_fortran_env ,
only: CK64_DEF
=> real64
310 use,
intrinsic ::
iso_fortran_env ,
only: CK32_DEF
=> real32
312 integer ,
parameter ::
SK_DEF = kind(
"a")
314 integer ,
parameter ::
CK_DEF = kind(
1.d0)
315 integer ,
parameter ::
RK_DEF = kind(
1.d0)
319 integer ,
parameter ::
LK_DEF = kind(
.true.)
326 integer ,
parameter ::
SK5 = character_kinds(SK5_ENABLED)
328 integer ,
parameter ::
SK5 = -1
331 integer ,
parameter ::
SK4 = character_kinds(SK4_ENABLED)
333 integer ,
parameter ::
SK4 = -1
336 integer ,
parameter ::
SK3 = character_kinds(SK3_ENABLED)
338 integer ,
parameter ::
SK3 = -1
341 integer ,
parameter ::
SK2 = character_kinds(SK2_ENABLED)
343 integer ,
parameter ::
SK2 = -1
346 integer ,
parameter ::
SK1 = character_kinds(SK1_ENABLED)
348 integer ,
parameter ::
SK1 = -1
354 integer ,
parameter ::
IK5 = integer_kinds(IK5_ENABLED)
355 integer ,
parameter ::
IR5 = range(
0_IK5)
357 integer ,
parameter ::
IK5 = -1
358 integer ,
parameter ::
IR5 = -1
361 integer ,
parameter ::
IK4 = integer_kinds(IK4_ENABLED)
362 integer ,
parameter ::
IR4 = range(
0_IK4)
364 integer ,
parameter ::
IK4 = -1
365 integer ,
parameter ::
IR4 = -1
368 integer ,
parameter ::
IK3 = integer_kinds(IK3_ENABLED)
369 integer ,
parameter ::
IR3 = range(
0_IK3)
371 integer ,
parameter ::
IK3 = -1
372 integer ,
parameter ::
IR3 = -1
375 integer ,
parameter ::
IK2 = integer_kinds(IK2_ENABLED)
376 integer ,
parameter ::
IR2 = range(
0_IK2)
378 integer ,
parameter ::
IK2 = -1
379 integer ,
parameter ::
IR2 = -1
382 integer ,
parameter ::
IK1 = integer_kinds(IK1_ENABLED)
383 integer ,
parameter ::
IR1 = range(
0_IK1)
385 integer ,
parameter ::
IK1 = -1
386 integer ,
parameter ::
IR1 = -1
392 integer ,
parameter ::
LK5 = logical_kinds(LK5_ENABLED)
394 integer ,
parameter ::
LK5 = -1
397 integer ,
parameter ::
LK4 = logical_kinds(LK4_ENABLED)
399 integer ,
parameter ::
LK4 = -1
402 integer ,
parameter ::
LK3 = logical_kinds(LK3_ENABLED)
404 integer ,
parameter ::
LK3 = -1
407 integer ,
parameter ::
LK2 = logical_kinds(LK2_ENABLED)
409 integer ,
parameter ::
LK2 = -1
412 integer ,
parameter ::
LK1 = logical_kinds(LK1_ENABLED)
414 integer ,
parameter ::
LK1 = -1
420 integer ,
parameter ::
CK5 = real_kinds(CK5_ENABLED)
421 integer ,
parameter ::
CP5 = precision(
0._CK5)
422 integer ,
parameter ::
CR5 = range(
0._CK5)
425 integer ,
parameter ::
CK5 = -1
426 integer ,
parameter ::
CP5 = 0
427 integer ,
parameter ::
CR5 = 0
431 integer ,
parameter ::
CK4 = real_kinds(CK4_ENABLED)
432 integer ,
parameter ::
CP4 = precision(
0._CK4)
433 integer ,
parameter ::
CR4 = range(
0._CK4)
436 integer ,
parameter ::
CK4 = -1
437 integer ,
parameter ::
CP4 = 0
438 integer ,
parameter ::
CR4 = 0
442 integer ,
parameter ::
CK3 = real_kinds(CK3_ENABLED)
443 integer ,
parameter ::
CP3 = precision(
0._CK3)
444 integer ,
parameter ::
CR3 = range(
0._CK3)
447 integer ,
parameter ::
CK3 = -1
448 integer ,
parameter ::
CP3 = 0
449 integer ,
parameter ::
CR3 = 0
453 integer ,
parameter ::
CK2 = real_kinds(CK2_ENABLED)
454 integer ,
parameter ::
CP2 = precision(
0._CK2)
455 integer ,
parameter ::
CR2 = range(
0._CK2)
458 integer ,
parameter ::
CK2 = -1
459 integer ,
parameter ::
CP2 = 0
460 integer ,
parameter ::
CR2 = 0
464 integer ,
parameter ::
CK1 = real_kinds(CK1_ENABLED)
465 integer ,
parameter ::
CP1 = precision(
0._CK1)
466 integer ,
parameter ::
CR1 = range(
0._CK1)
469 integer ,
parameter ::
CK1 = -1
470 integer ,
parameter ::
CP1 = 0
471 integer ,
parameter ::
CR1 = 0
478 integer ,
parameter ::
RK5 = real_kinds(RK5_ENABLED)
479 integer ,
parameter ::
RP5 = precision(
0._RK5)
480 integer ,
parameter ::
RR5 = range(
0._RK5)
483 integer ,
parameter ::
RK5 = -1
484 integer ,
parameter ::
RP5 = 0
485 integer ,
parameter ::
RR5 = 0
489 integer ,
parameter ::
RK4 = real_kinds(RK4_ENABLED)
490 integer ,
parameter ::
RP4 = precision(
0._RK4)
491 integer ,
parameter ::
RR4 = range(
0._RK4)
494 integer ,
parameter ::
RK4 = -1
495 integer ,
parameter ::
RP4 = 0
496 integer ,
parameter ::
RR4 = 0
500 integer ,
parameter ::
RK3 = real_kinds(RK3_ENABLED)
501 integer ,
parameter ::
RP3 = precision(
0._RK3)
502 integer ,
parameter ::
RR3 = range(
0._RK3)
505 integer ,
parameter ::
RK3 = -1
506 integer ,
parameter ::
RP3 = 0
507 integer ,
parameter ::
RR3 = 0
511 integer ,
parameter ::
RK2 = real_kinds(RK2_ENABLED)
512 integer ,
parameter ::
RP2 = precision(
0._RK2)
513 integer ,
parameter ::
RR2 = range(
0._RK2)
516 integer ,
parameter ::
RK2 = -1
517 integer ,
parameter ::
RP2 = 0
518 integer ,
parameter ::
RR2 = 0
522 integer ,
parameter ::
RK1 = real_kinds(RK1_ENABLED)
523 integer ,
parameter ::
RP1 = precision(
0._RK1)
524 integer ,
parameter ::
RR1 = range(
0._RK1)
527 integer ,
parameter ::
RK1 = -1
528 integer ,
parameter ::
RP1 = 0
529 integer ,
parameter ::
RR1 = 0
545 integer ,
parameter ::
IK64 = IK64_DEF
546 integer ,
parameter ::
IK32 = IK32_DEF
547 integer ,
parameter ::
IK16 = IK16_DEF
548 integer ,
parameter ::
IK8 = IK8_DEF
549 integer ,
parameter ::
CK128 = CK128_DEF
550 integer ,
parameter ::
CK64 = CK64_DEF
551 integer ,
parameter ::
CK32 = CK32_DEF
552 integer ,
parameter ::
RK128 = RK128_DEF
553 integer ,
parameter ::
RK64 = RK64_DEF
554 integer ,
parameter ::
RK32 = RK32_DEF
560 integer ,
parameter ::
SKU = selected_char_kind(
"iso_10646")
561 integer ,
parameter ::
SKD = selected_char_kind(
"default")
562 integer ,
parameter ::
SKA = selected_char_kind(
"ascii")
563 integer ,
parameter ::
IKS = kind(
1)
564 integer ,
parameter ::
IKD = selected_int_kind(
18)
565 integer ,
parameter ::
IKQ = selected_int_kind(
36)
567 integer ,
parameter ::
RKS = kind(
1.)
568 integer ,
parameter ::
RKD = kind(
1.d0)
569 integer ,
parameter ::
RKQ = selected_real_kind(
2*precision(
1._RKD))
588 integer ,
parameter ::
SKALL(
*)
= pack([
SK1,
SK2,
SK3,
SK4,
SK5],
0 < [
SK1,
SK2,
SK3,
SK4,
SK5])
600 integer ,
parameter ::
IKALL(
*)
= pack([
IK1,
IK2,
IK3,
IK4,
IK5],
0 < [
IK1,
IK2,
IK3,
IK4,
IK5])
612 integer ,
parameter ::
LKALL(
*)
= pack([
LK1,
LK2,
LK3,
LK4,
LK5],
0 < [
LK1,
LK2,
LK3,
LK4,
LK5])
624 integer ,
parameter ::
CKALL(
*)
= pack([
CK1,
CK2,
CK3,
CK4,
CK5],
0 < [
CK1,
CK2,
CK3,
CK4,
CK5])
636 integer ,
parameter ::
RKALL(
*)
= pack([
RK1,
RK2,
RK3,
RK4,
RK5],
0 < [
RK1,
RK2,
RK3,
RK4,
RK5])
649 integer ,
parameter ::
IRL = minval([
IR1,
IR2,
IR3,
IR4,
IR5], mask
= 0 < [
IR1,
IR2,
IR3,
IR4,
IR5])
658 integer ,
parameter ::
IRH = maxval([
IR1,
IR2,
IR3,
IR4,
IR5], mask
= 0 < [
IR1,
IR2,
IR3,
IR4,
IR5])
667 integer ,
parameter ::
CPL = minval([
CP1,
CP2,
CP3,
CP4,
CP5], mask
= 0 < [
CP1,
CP2,
CP3,
CP4,
CP5])
676 integer ,
parameter ::
CPH = maxval([
CP1,
CP2,
CP3,
CP4,
CP5], mask
= 0 < [
CP1,
CP2,
CP3,
CP4,
CP5])
685 integer ,
parameter ::
CRL = minval([
CR1,
CR2,
CR3,
CR4,
CR5], mask
= 0 < [
CR1,
CR2,
CR3,
CR4,
CR5])
694 integer ,
parameter ::
CRH = maxval([
CR1,
CR2,
CR3,
CR4,
CR5], mask
= 0 < [
CR1,
CR2,
CR3,
CR4,
CR5])
703 integer ,
parameter ::
RPL = minval([
RP1,
RP2,
RP3,
RP4,
RP5], mask
= 0 < [
RP1,
RP2,
RP3,
RP4,
RP5])
712 integer ,
parameter ::
RPH = maxval([
RP1,
RP2,
RP3,
RP4,
RP5], mask
= 0 < [
RP1,
RP2,
RP3,
RP4,
RP5])
721 integer ,
parameter ::
RRL = minval([
RR1,
RR2,
RR3,
RR4,
RR5], mask
= 0 < [
RR1,
RR2,
RR3,
RR4,
RR5])
730 integer ,
parameter ::
RRH = maxval([
RR1,
RR2,
RR3,
RR4,
RR5], mask
= 0 < [
RR1,
RR2,
RR3,
RR4,
RR5])
749 integer ,
parameter ::
IKL = selected_int_kind(
IRL)
764 integer ,
parameter ::
CKL = selected_real_kind(
CPL)
779 integer ,
parameter ::
RKL = selected_real_kind(
RPL)
794 integer ,
parameter ::
CKLR = selected_real_kind(r
= CRL)
809 integer ,
parameter ::
RKLR = selected_real_kind(r
= RRL)
828 integer ,
parameter ::
IKH = selected_int_kind(
IRH)
843 integer ,
parameter ::
CKH = selected_real_kind(
CPH)
858 integer ,
parameter ::
RKH = selected_real_kind(
RPH)
861 ,
selected_real_kind(
merge(
huge(
1),
CP4,
CP4 < 1), r
= CRH)
&
862 ,
selected_real_kind(
merge(
huge(
1),
CP3,
CP3 < 1), r
= CRH)
&
863 ,
selected_real_kind(
merge(
huge(
1),
CP2,
CP2 < 1), r
= CRH)
&
864 ,
selected_real_kind(
merge(
huge(
1),
CP1,
CP1 < 1), r
= CRH) ]
883 ,
selected_real_kind(
merge(
huge(
1),
RP4,
RP4 < 1), r
= RRH)
&
884 ,
selected_real_kind(
merge(
huge(
1),
RP3,
RP3 < 1), r
= RRH)
&
885 ,
selected_real_kind(
merge(
huge(
1),
RP2,
RP2 < 1), r
= RRH)
&
886 ,
selected_real_kind(
merge(
huge(
1),
RP1,
RP1 < 1), r
= RRH) ]
921 integer ,
parameter ::
IKW = selected_int_kind(
1)
936 integer ,
parameter ::
CKW = selected_real_kind(
1)
951 integer ,
parameter ::
RKW = selected_real_kind(
1)
966 integer ,
parameter ::
CKWR = selected_real_kind(r
= 1)
981 integer ,
parameter ::
RKWR = selected_real_kind(r
= 1)
1002 integer ,
parameter ,
private ::
integer_kinds_range(
*)
= [
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
1))))
&
1003 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
2))))
&
1004 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
3))))
&
1005 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
4))))
&
1006 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
5))))
&
1007 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
6))))
&
1008 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
7))))
&
1009 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
8))))
&
1010 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
9))))
&
1011 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
10))))
&
1012 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
11))))
&
1013 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
12))))
&
1014 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
13))))
&
1015 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
14))))
&
1016 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
15))))
&
1017 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
16))))
&
1018 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
17))))
&
1019 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
18))))
&
1020 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
19))))
&
1021 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
20))))
&
1022 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
21))))
&
1023 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
22))))
&
1024 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
23))))
&
1025 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
24))))
&
1026 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
25))))
&
1027 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
26))))
&
1028 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
27))))
&
1029 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
28))))
&
1030 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
29))))
&
1031 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
30))))
&
1032 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
31))))
&
1033 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
32))))
&
1034 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
33))))
&
1035 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
34))))
&
1036 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
35))))
&
1037 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
36))))
&
1038 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
37))))
&
1039 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
38))))
&
1040 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
39))))
&
1041 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
40))))
&
1042 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
40))))
&
1043 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
41))))
&
1044 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
42))))
&
1045 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
43))))
&
1046 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
44))))
&
1047 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
45))))
&
1048 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
46))))
&
1049 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
47))))
&
1050 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
48))))
&
1051 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
49))))
&
1052 ,
range(
int(
0,
kind = integer_kinds(
min(
size(
integer_kinds),
50))))
&
1070 integer ,
parameter ,
private ::
real_kinds_range(
*)
= [
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
1))))
&
1071 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
2))))
&
1072 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
3))))
&
1073 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
4))))
&
1074 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
5))))
&
1075 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
6))))
&
1076 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
7))))
&
1077 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
8))))
&
1078 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
9))))
&
1079 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
10))))
&
1080 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
11))))
&
1081 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
12))))
&
1082 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
13))))
&
1083 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
14))))
&
1084 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
15))))
&
1085 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
16))))
&
1086 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
17))))
&
1087 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
18))))
&
1088 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
19))))
&
1089 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
20))))
&
1090 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
21))))
&
1091 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
22))))
&
1092 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
23))))
&
1093 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
24))))
&
1094 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
25))))
&
1095 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
26))))
&
1096 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
27))))
&
1097 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
28))))
&
1098 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
29))))
&
1099 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
30))))
&
1100 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
31))))
&
1101 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
32))))
&
1102 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
33))))
&
1103 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
34))))
&
1104 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
35))))
&
1105 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
36))))
&
1106 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
37))))
&
1107 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
38))))
&
1108 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
39))))
&
1109 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
40))))
&
1110 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
40))))
&
1111 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
41))))
&
1112 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
42))))
&
1113 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
43))))
&
1114 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
44))))
&
1115 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
45))))
&
1116 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
46))))
&
1117 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
47))))
&
1118 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
48))))
&
1119 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
49))))
&
1120 ,
range(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
50))))
&
1138 integer ,
parameter ,
private ::
real_kinds_precision(
*)
= [
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
1))))
&
1139 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
2))))
&
1140 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
3))))
&
1141 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
4))))
&
1142 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
5))))
&
1143 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
6))))
&
1144 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
7))))
&
1145 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
8))))
&
1146 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
9))))
&
1147 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
10))))
&
1148 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
11))))
&
1149 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
12))))
&
1150 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
13))))
&
1151 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
14))))
&
1152 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
15))))
&
1153 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
16))))
&
1154 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
17))))
&
1155 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
18))))
&
1156 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
19))))
&
1157 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
20))))
&
1158 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
21))))
&
1159 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
22))))
&
1160 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
23))))
&
1161 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
24))))
&
1162 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
25))))
&
1163 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
26))))
&
1164 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
27))))
&
1165 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
28))))
&
1166 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
29))))
&
1167 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
30))))
&
1168 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
31))))
&
1169 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
32))))
&
1170 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
33))))
&
1171 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
34))))
&
1172 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
35))))
&
1173 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
36))))
&
1174 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
37))))
&
1175 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
38))))
&
1176 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
39))))
&
1177 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
40))))
&
1178 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
40))))
&
1179 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
41))))
&
1180 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
42))))
&
1181 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
43))))
&
1182 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
44))))
&
1183 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
45))))
&
1184 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
46))))
&
1185 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
47))))
&
1186 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
48))))
&
1187 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
49))))
&
1188 ,
precision(
real(
0,
kind = real_kinds(
min(
size(
real_kinds),
50))))
&
1506 integer(
IK) :: storage_size
1756 integer(
IK) :: maxexponent
1758 integer(
IK) :: minexponent
1839 pure elemental module function modeli_typer_IK5(mold)
result(model)
1840#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1841 !DEC$ ATTRIBUTES DLLEXPORT :: modeli_typer_IK5
1843 integer(
IK5),
intent(in) :: mold
1849 pure elemental module function modeli_typer_IK4(mold)
result(model)
1850#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1851 !DEC$ ATTRIBUTES DLLEXPORT :: modeli_typer_IK4
1853 integer(
IK4),
intent(in) :: mold
1859 pure elemental module function modeli_typer_IK3(mold)
result(model)
1860#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1861 !DEC$ ATTRIBUTES DLLEXPORT :: modeli_typer_IK3
1863 integer(
IK3),
intent(in) :: mold
1869 pure elemental module function modeli_typer_IK2(mold)
result(model)
1870#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1871 !DEC$ ATTRIBUTES DLLEXPORT :: modeli_typer_IK2
1873 integer(
IK2),
intent(in) :: mold
1879 pure elemental module function modeli_typer_IK1(mold)
result(model)
1880#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1881 !DEC$ ATTRIBUTES DLLEXPORT :: modeli_typer_IK1
1883 integer(
IK1),
intent(in) :: mold
1963 pure elemental module function modelb_typer_IK5(mold)
result(model)
1964#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1965 !DEC$ ATTRIBUTES DLLEXPORT :: modelb_typer_IK5
1967 integer(
IK5),
intent(in) :: mold
1973 pure elemental module function modelb_typer_IK4(mold)
result(model)
1974#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1975 !DEC$ ATTRIBUTES DLLEXPORT :: modelb_typer_IK4
1977 integer(
IK4),
intent(in) :: mold
1983 pure elemental module function modelb_typer_IK3(mold)
result(model)
1984#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1985 !DEC$ ATTRIBUTES DLLEXPORT :: modelb_typer_IK3
1987 integer(
IK3),
intent(in) :: mold
1993 pure elemental module function modelb_typer_IK2(mold)
result(model)
1994#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1995 !DEC$ ATTRIBUTES DLLEXPORT :: modelb_typer_IK2
1997 integer(
IK2),
intent(in) :: mold
2003 pure elemental module function modelb_typer_IK1(mold)
result(model)
2004#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2005 !DEC$ ATTRIBUTES DLLEXPORT :: modelb_typer_IK1
2007 integer(
IK1),
intent(in) :: mold
2087 pure elemental module function modelr_typer_RK5(mold)
result(model)
2088#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2089 !DEC$ ATTRIBUTES DLLEXPORT :: modelr_typer_RK5
2091 real(
RK5) ,
intent(in) :: mold
2097 pure elemental module function modelr_typer_RK4(mold)
result(model)
2098#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2099 !DEC$ ATTRIBUTES DLLEXPORT :: modelr_typer_RK4
2101 real(
RK4) ,
intent(in) :: mold
2107 pure elemental module function modelr_typer_RK3(mold)
result(model)
2108#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2109 !DEC$ ATTRIBUTES DLLEXPORT :: modelr_typer_RK3
2111 real(
RK3) ,
intent(in) :: mold
2117 pure elemental module function modelr_typer_RK2(mold)
result(model)
2118#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2119 !DEC$ ATTRIBUTES DLLEXPORT :: modelr_typer_RK2
2121 real(
RK2) ,
intent(in) :: mold
2127 pure elemental module function modelr_typer_RK1(mold)
result(model)
2128#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2129 !DEC$ ATTRIBUTES DLLEXPORT :: modelr_typer_RK1
2131 real(
RK1) ,
intent(in) :: mold
2143end module pm_kind ! LCOV_EXCL_LINE
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
integer, parameter CKLR
The scalar integer constant of intrinsic default kind, representing the highest-decimal-exponent-rang...
integer, parameter real_kinds_range_max
The scalar integer constant of intrinsic default kind, representing the highest-decimal-exponent-rang...
integer, parameter CKBR
The scalar integer constant of intrinsic default kind, representing the Best-decimal-exponent-range c...
integer, dimension(*), parameter RKALL
The integer vector containing all defined real kinds within the ParaMonte library.
integer, dimension(*), parameter CKHR_VEC_RAW
integer, parameter IKW
The scalar integer constant of intrinsic default kind, representing the Worst-range integer kind supp...
integer, dimension(*), parameter RKHR_VEC_RAW
integer, dimension(*), parameter real_kinds_range
The vector of integer constants of intrinsic default kind, representing the vector of 50 possible rea...
integer, parameter RK
The default real kind in the ParaMonte library: real64 in Fortran, c_double in C-Fortran Interoperati...
integer, parameter CKWR
The scalar integer constant of intrinsic default kind, representing the Worst-decimal-exponent-range ...
integer, parameter SKA
The ASCII string kind in Fortran mode.
integer, dimension(*), parameter LKALL
The integer vector containing all defined logical kinds within the ParaMonte library.
integer, parameter LK
The default logical kind in the ParaMonte library: kind(.true.) in Fortran, kind(....
integer, parameter CKH
The scalar integer constant of intrinsic default kind, representing the highest-precision complex kin...
integer, parameter RKB
The scalar integer constant of intrinsic default kind, representing the Best-precision real kind supp...
integer, parameter IK64
The integer kind for a 64-bits container.
integer, parameter SKU
The UNICODE string kind in Fortran mode.
integer, dimension(*), parameter IKALL
The integer vector containing all defined integer kinds within the ParaMonte library.
integer, parameter CKB
The scalar integer constant of intrinsic default kind, representing the Best-precision complex kind s...
integer, parameter CKS
The single-precision complex kind in Fortran mode. On most platforms, this is a 32-bit real kind.
integer, dimension(*), parameter real_kinds_precision
The vector of integer constants of intrinsic default kind, representing the vector of 50 possible rea...
integer, parameter CPL
The scalar integer constant of intrinsic default kind, representing the lowest precision among all co...
integer, parameter RK32
The real kind for a 32-bits container.
integer, dimension(*), parameter CKALL
The integer vector containing all defined complex kinds within the ParaMonte library.
integer, parameter RPH
The scalar integer constant of intrinsic default kind, representing the highest precision among all r...
integer, parameter real_kinds_precision_min
The scalar integer constant of intrinsic default kind, representing the lowest-precision of real type...
integer, parameter CK
The default complex kind in the ParaMonte library: real64 in Fortran, c_double_complex in C-Fortran I...
integer, parameter CKHR
The scalar integer constant of intrinsic default kind, representing the highest-decimal-exponent-rang...
integer, parameter CK64
The complex kind for a 64-bits container.
integer, parameter CK128
The complex kind for a 128-bits container.
integer, parameter RRL
The scalar integer constant of intrinsic default kind, representing the lowest decimal exponent range...
integer, parameter CK32
The complex kind for a 32-bits container.
integer, parameter IKS
The single-precision integer kind in Fortran mode. On most platforms, this is a 32-bit integer kind.
integer, parameter RRH
The scalar integer constant of intrinsic default kind, representing the highest decimal exponent rang...
integer, parameter CKW
The scalar integer constant of intrinsic default kind, representing the Worst-precision complex kind ...
integer, parameter IK32
The integer kind for a 32-bits container.
integer, parameter SK_DEF
integer, parameter IK_DEF
integer, dimension(*), parameter CKHR_VEC
integer, dimension(*), parameter RKHR_VEC
integer, parameter IKL
The scalar integer constant of intrinsic default kind, representing the lowest range integer kind typ...
integer, parameter IRH
The scalar integer constant of intrinsic default kind, representing the highest range among all integ...
integer, parameter CRL
The scalar integer constant of intrinsic default kind, representing the lowest decimal exponent range...
integer, parameter RKWR
The scalar integer constant of intrinsic default kind, representing the Worst-decimal-exponent-range ...
integer, parameter IKH
The scalar integer constant of intrinsic default kind, representing the highest range integer kind ty...
integer, parameter RK64
The real kind for a 64-bits container.
integer, parameter RKL
The scalar integer constant of intrinsic default kind, representing the lowest-precision real kind ty...
integer, parameter CKL
The scalar integer constant of intrinsic default kind, representing the lowest-precision complex kind...
integer, parameter LK_DEF
integer, parameter CKQ
The quadru-precision complex kind in Fortran mode. On most platforms, this is a 128-bit real kind.
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
integer, parameter RKW
The scalar integer constant of intrinsic default kind, representing the Worst-precision real kind sup...
real, parameter real_kinds_precision_hop
The scalar real constant of intrinsic default kind, representing the step size between the highest an...
integer, parameter CRH
The scalar integer constant of intrinsic default kind, representing the highest decimal exponent rang...
integer, parameter RKQ
The quadru-precision real kind in Fortran mode. On most platforms, this is an 128-bit real kind.
integer, parameter RK_DEF
integer, parameter real_kinds_precision_max
The scalar integer constant of intrinsic default kind, representing the highest-precision of real typ...
integer, parameter IKQ
The quadru-precision integer kind in Fortran mode. On most platforms, this is a 128-bit integer kind....
integer, parameter CKD
The double precision complex kind in Fortran mode. On most platforms, this is a 64-bit real kind.
integer, parameter RKD
The double precision real kind in Fortran mode. On most platforms, this is an 64-bit real kind.
integer, parameter RKBR
The scalar integer constant of intrinsic default kind, representing the Best-decimal-exponent-range r...
integer, parameter IK8
The integer kind for an 8-bits container.
integer, parameter IK16
The integer kind for a 16-bits container.
integer, dimension(*), parameter real_kinds_prmax_kind
The vector of integer constants of intrinsic default kind, representing the 50 possible real highest-...
integer, parameter IKD
The double precision integer kind in Fortran mode. On most platforms, this is a 64-bit integer kind.
integer, parameter CK_DEF
integer, parameter IRL
The scalar integer constant of intrinsic default kind, representing the lowest range among all intege...
integer, parameter SKD
The DEFAULT string kind in Fortran mode.
integer, parameter RPL
The scalar integer constant of intrinsic default kind, representing the lowest precision among all re...
integer, parameter RK128
The real kind for a 128-bits container.
integer, parameter IKB
The scalar integer constant of intrinsic default kind, representing the Best-range integer kind suppo...
integer, parameter RKLR
The scalar integer constant of intrinsic default kind, representing the highest-decimal-exponent-rang...
integer, parameter RKHR
The scalar integer constant of intrinsic default kind, representing the highest-decimal-exponent-rang...
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
integer, parameter RKH
The scalar integer constant of intrinsic default kind, representing the highest-precision real kind t...
integer, dimension(*), parameter real_kinds_prmax_kind_avail
The vector of integer constants of intrinsic default kind, containing all maximum-range real kind typ...
integer, parameter RKS
The single-precision real kind in Fortran mode. On most platforms, this is an 32-bit real kind.
integer, parameter CPH
The scalar integer constant of intrinsic default kind, representing the highest precision among all c...
integer, dimension(*), parameter integer_kinds_range
The vector of integer constants of intrinsic default kind, representing the vector of 50 possible int...
integer, dimension(*), parameter SKALL
The integer vector containing all defined character kinds within the ParaMonte library.
This is the abstract derived type for creating objects of class model_type that contain the character...
This is the abstract derived type for creating objects of class modelb_type that contain the characte...
This is the abstract derived type for creating objects of class modeli_type that contain the characte...
This is the abstract derived type for creating objects of class modeln_type that contain the characte...
This is the abstract derived type for creating objects of class modelr_type that contain the characte...