18 subroutine putlineint1( array, lbounds, ubounds, unit, indent, sd )
73 integer,
intent(in):: array(:)
74 integer,
intent(in),
optional:: lbounds(1)
75 integer,
intent(in),
optional:: ubounds(1)
76 integer,
intent(in),
optional:: unit
77 character(*),
intent(in),
optional:: indent
78 logical,
intent(in),
optional:: sd
81 character(STRING):: indent_str
83 integer:: alldim_size, lbound_nums(1), ubound_nums(1)
84 character(STRING):: size_str, sd_str
85 integer:: max_value, min_value
86 integer,
allocatable:: array_packed(:)
87 real:: avg_value, variance_value, sd_value
94 if (
present(unit) )
then 102 if (
present(indent) )
then 103 if (len(indent) /= 0)
then 104 indent_len = len(indent)
105 indent_str(1:indent_len) = indent
114 if (
present(lbounds) .and.
present(ubounds) )
then 115 lbound_nums = lbounds
116 ubound_nums = ubounds
118 lbound_nums(1) = lbound( array, 1 )
119 ubound_nums(1) = ubound( array, 1 )
124 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 125 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
127 size_str = trim(size_str) //
')' 133 max_value = maxval(array)
139 min_value = minval(array)
145 alldim_size =
size(array)
146 avg_value = sum(array) /
real(alldim_size)
156 if ( alldim_size > 1 )
then 157 if (
allocated(array_packed))
then 158 deallocate(array_packed)
160 allocate( array_packed(alldim_size) )
165 do i = 1, alldim_size
166 variance_value = variance_value + &
167 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
169 variance_value = variance_value /
real(alldim_size)
170 sd_value = sqrt( variance_value )
171 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
180 & indent_str(1:indent_len) // &
181 &
'#<INT-ARRAY:: @size=%c, @max=%d, @min=%d, @avg=%r%c>', &
182 & i = (/max_value, min_value/), r = (/avg_value/), &
185 & c1 = trim(size_str), c2 = trim(sd_str) )
190 subroutine putlineint2( array, lbounds, ubounds, unit, indent, sd )
198 integer,
intent(in):: array(:,:)
199 integer,
intent(in),
optional:: lbounds(2)
200 integer,
intent(in),
optional:: ubounds(2)
201 integer,
intent(in),
optional:: unit
202 character(*),
intent(in),
optional:: indent
203 logical,
intent(in),
optional:: sd
206 character(STRING):: indent_str
208 integer:: alldim_size, lbound_nums(2), ubound_nums(2)
209 character(STRING):: size_str, sd_str
210 integer:: max_value, min_value
211 integer,
allocatable:: array_packed(:)
212 real:: avg_value, variance_value, sd_value
219 if (
present(unit) )
then 227 if (
present(indent) )
then 228 if (len(indent) /= 0)
then 229 indent_len = len(indent)
230 indent_str(1:indent_len) = indent
239 if (
present(lbounds) .and.
present(ubounds) )
then 240 lbound_nums = lbounds
241 ubound_nums = ubounds
243 lbound_nums(1) = lbound( array, 1 )
244 ubound_nums(1) = ubound( array, 1 )
246 lbound_nums(2) = lbound( array, 2 )
247 ubound_nums(2) = ubound( array, 2 )
252 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 253 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
254 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
255 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
257 size_str = trim(size_str) //
')' 263 max_value = maxval(array)
269 min_value = minval(array)
275 alldim_size =
size(array)
276 avg_value = sum(array) /
real(alldim_size)
286 if ( alldim_size > 1 )
then 287 if (
allocated(array_packed))
then 288 deallocate(array_packed)
290 allocate( array_packed(alldim_size) )
292 array_packed = pack(array, .true.)
295 do i = 1, alldim_size
296 variance_value = variance_value + &
297 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
299 variance_value = variance_value /
real(alldim_size)
300 sd_value = sqrt( variance_value )
301 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
310 & indent_str(1:indent_len) // &
311 &
'#<INT-ARRAY:: @size=%c, @max=%d, @min=%d, @avg=%r%c>', &
312 & i = (/max_value, min_value/), r = (/avg_value/), &
315 & c1 = trim(size_str), c2 = trim(sd_str) )
320 subroutine putlineint3( array, lbounds, ubounds, unit, indent, sd )
328 integer,
intent(in):: array(:,:,:)
329 integer,
intent(in),
optional:: lbounds(3)
330 integer,
intent(in),
optional:: ubounds(3)
331 integer,
intent(in),
optional:: unit
332 character(*),
intent(in),
optional:: indent
333 logical,
intent(in),
optional:: sd
336 character(STRING):: indent_str
338 integer:: alldim_size, lbound_nums(3), ubound_nums(3)
339 character(STRING):: size_str, sd_str
340 integer:: max_value, min_value
341 integer,
allocatable:: array_packed(:)
342 real:: avg_value, variance_value, sd_value
349 if (
present(unit) )
then 357 if (
present(indent) )
then 358 if (len(indent) /= 0)
then 359 indent_len = len(indent)
360 indent_str(1:indent_len) = indent
369 if (
present(lbounds) .and.
present(ubounds) )
then 370 lbound_nums = lbounds
371 ubound_nums = ubounds
373 lbound_nums(1) = lbound( array, 1 )
374 ubound_nums(1) = ubound( array, 1 )
376 lbound_nums(2) = lbound( array, 2 )
377 ubound_nums(2) = ubound( array, 2 )
379 lbound_nums(3) = lbound( array, 3 )
380 ubound_nums(3) = ubound( array, 3 )
385 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 386 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
387 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
388 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
390 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
391 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
393 size_str = trim(size_str) //
')' 399 max_value = maxval(array)
405 min_value = minval(array)
411 alldim_size =
size(array)
412 avg_value = sum(array) /
real(alldim_size)
422 if ( alldim_size > 1 )
then 423 if (
allocated(array_packed))
then 424 deallocate(array_packed)
426 allocate( array_packed(alldim_size) )
428 array_packed = pack(array, .true.)
431 do i = 1, alldim_size
432 variance_value = variance_value + &
433 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
435 variance_value = variance_value /
real(alldim_size)
436 sd_value = sqrt( variance_value )
437 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
446 & indent_str(1:indent_len) // &
447 &
'#<INT-ARRAY:: @size=%c, @max=%d, @min=%d, @avg=%r%c>', &
448 & i = (/max_value, min_value/), r = (/avg_value/), &
451 & c1 = trim(size_str), c2 = trim(sd_str) )
456 subroutine putlineint4( array, lbounds, ubounds, unit, indent, sd )
464 integer,
intent(in):: array(:,:,:,:)
465 integer,
intent(in),
optional:: lbounds(4)
466 integer,
intent(in),
optional:: ubounds(4)
467 integer,
intent(in),
optional:: unit
468 character(*),
intent(in),
optional:: indent
469 logical,
intent(in),
optional:: sd
472 character(STRING):: indent_str
474 integer:: alldim_size, lbound_nums(4), ubound_nums(4)
475 character(STRING):: size_str, sd_str
476 integer:: max_value, min_value
477 integer,
allocatable:: array_packed(:)
478 real:: avg_value, variance_value, sd_value
485 if (
present(unit) )
then 493 if (
present(indent) )
then 494 if (len(indent) /= 0)
then 495 indent_len = len(indent)
496 indent_str(1:indent_len) = indent
505 if (
present(lbounds) .and.
present(ubounds) )
then 506 lbound_nums = lbounds
507 ubound_nums = ubounds
509 lbound_nums(1) = lbound( array, 1 )
510 ubound_nums(1) = ubound( array, 1 )
512 lbound_nums(2) = lbound( array, 2 )
513 ubound_nums(2) = ubound( array, 2 )
515 lbound_nums(3) = lbound( array, 3 )
516 ubound_nums(3) = ubound( array, 3 )
518 lbound_nums(4) = lbound( array, 4 )
519 ubound_nums(4) = ubound( array, 4 )
524 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 525 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
526 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
527 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
529 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
530 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
532 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
533 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
535 size_str = trim(size_str) //
')' 541 max_value = maxval(array)
547 min_value = minval(array)
553 alldim_size =
size(array)
554 avg_value = sum(array) /
real(alldim_size)
564 if ( alldim_size > 1 )
then 565 if (
allocated(array_packed))
then 566 deallocate(array_packed)
568 allocate( array_packed(alldim_size) )
570 array_packed = pack(array, .true.)
573 do i = 1, alldim_size
574 variance_value = variance_value + &
575 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
577 variance_value = variance_value /
real(alldim_size)
578 sd_value = sqrt( variance_value )
579 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
588 & indent_str(1:indent_len) // &
589 &
'#<INT-ARRAY:: @size=%c, @max=%d, @min=%d, @avg=%r%c>', &
590 & i = (/max_value, min_value/), r = (/avg_value/), &
593 & c1 = trim(size_str), c2 = trim(sd_str) )
598 subroutine putlineint5( array, lbounds, ubounds, unit, indent, sd )
606 integer,
intent(in):: array(:,:,:,:,:)
607 integer,
intent(in),
optional:: lbounds(5)
608 integer,
intent(in),
optional:: ubounds(5)
609 integer,
intent(in),
optional:: unit
610 character(*),
intent(in),
optional:: indent
611 logical,
intent(in),
optional:: sd
614 character(STRING):: indent_str
616 integer:: alldim_size, lbound_nums(5), ubound_nums(5)
617 character(STRING):: size_str, sd_str
618 integer:: max_value, min_value
619 integer,
allocatable:: array_packed(:)
620 real:: avg_value, variance_value, sd_value
627 if (
present(unit) )
then 635 if (
present(indent) )
then 636 if (len(indent) /= 0)
then 637 indent_len = len(indent)
638 indent_str(1:indent_len) = indent
647 if (
present(lbounds) .and.
present(ubounds) )
then 648 lbound_nums = lbounds
649 ubound_nums = ubounds
651 lbound_nums(1) = lbound( array, 1 )
652 ubound_nums(1) = ubound( array, 1 )
654 lbound_nums(2) = lbound( array, 2 )
655 ubound_nums(2) = ubound( array, 2 )
657 lbound_nums(3) = lbound( array, 3 )
658 ubound_nums(3) = ubound( array, 3 )
660 lbound_nums(4) = lbound( array, 4 )
661 ubound_nums(4) = ubound( array, 4 )
663 lbound_nums(5) = lbound( array, 5 )
664 ubound_nums(5) = ubound( array, 5 )
669 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 670 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
671 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
672 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
674 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
675 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
677 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
678 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
680 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
681 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
683 size_str = trim(size_str) //
')' 689 max_value = maxval(array)
695 min_value = minval(array)
701 alldim_size =
size(array)
702 avg_value = sum(array) /
real(alldim_size)
712 if ( alldim_size > 1 )
then 713 if (
allocated(array_packed))
then 714 deallocate(array_packed)
716 allocate( array_packed(alldim_size) )
718 array_packed = pack(array, .true.)
721 do i = 1, alldim_size
722 variance_value = variance_value + &
723 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
725 variance_value = variance_value /
real(alldim_size)
726 sd_value = sqrt( variance_value )
727 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
736 & indent_str(1:indent_len) // &
737 &
'#<INT-ARRAY:: @size=%c, @max=%d, @min=%d, @avg=%r%c>', &
738 & i = (/max_value, min_value/), r = (/avg_value/), &
741 & c1 = trim(size_str), c2 = trim(sd_str) )
746 subroutine putlineint6( array, lbounds, ubounds, unit, indent, sd )
754 integer,
intent(in):: array(:,:,:,:,:,:)
755 integer,
intent(in),
optional:: lbounds(6)
756 integer,
intent(in),
optional:: ubounds(6)
757 integer,
intent(in),
optional:: unit
758 character(*),
intent(in),
optional:: indent
759 logical,
intent(in),
optional:: sd
762 character(STRING):: indent_str
764 integer:: alldim_size, lbound_nums(6), ubound_nums(6)
765 character(STRING):: size_str, sd_str
766 integer:: max_value, min_value
767 integer,
allocatable:: array_packed(:)
768 real:: avg_value, variance_value, sd_value
775 if (
present(unit) )
then 783 if (
present(indent) )
then 784 if (len(indent) /= 0)
then 785 indent_len = len(indent)
786 indent_str(1:indent_len) = indent
795 if (
present(lbounds) .and.
present(ubounds) )
then 796 lbound_nums = lbounds
797 ubound_nums = ubounds
799 lbound_nums(1) = lbound( array, 1 )
800 ubound_nums(1) = ubound( array, 1 )
802 lbound_nums(2) = lbound( array, 2 )
803 ubound_nums(2) = ubound( array, 2 )
805 lbound_nums(3) = lbound( array, 3 )
806 ubound_nums(3) = ubound( array, 3 )
808 lbound_nums(4) = lbound( array, 4 )
809 ubound_nums(4) = ubound( array, 4 )
811 lbound_nums(5) = lbound( array, 5 )
812 ubound_nums(5) = ubound( array, 5 )
814 lbound_nums(6) = lbound( array, 6 )
815 ubound_nums(6) = ubound( array, 6 )
820 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 821 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
822 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
823 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
825 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
826 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
828 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
829 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
831 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
832 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
834 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(6)))
835 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(6)))
837 size_str = trim(size_str) //
')' 843 max_value = maxval(array)
849 min_value = minval(array)
855 alldim_size =
size(array)
856 avg_value = sum(array) /
real(alldim_size)
866 if ( alldim_size > 1 )
then 867 if (
allocated(array_packed))
then 868 deallocate(array_packed)
870 allocate( array_packed(alldim_size) )
872 array_packed = pack(array, .true.)
875 do i = 1, alldim_size
876 variance_value = variance_value + &
877 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
879 variance_value = variance_value /
real(alldim_size)
880 sd_value = sqrt( variance_value )
881 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
890 & indent_str(1:indent_len) // &
891 &
'#<INT-ARRAY:: @size=%c, @max=%d, @min=%d, @avg=%r%c>', &
892 & i = (/max_value, min_value/), r = (/avg_value/), &
895 & c1 = trim(size_str), c2 = trim(sd_str) )
900 subroutine putlineint7( array, lbounds, ubounds, unit, indent, sd )
908 integer,
intent(in):: array(:,:,:,:,:,:,:)
909 integer,
intent(in),
optional:: lbounds(7)
910 integer,
intent(in),
optional:: ubounds(7)
911 integer,
intent(in),
optional:: unit
912 character(*),
intent(in),
optional:: indent
913 logical,
intent(in),
optional:: sd
916 character(STRING):: indent_str
918 integer:: alldim_size, lbound_nums(7), ubound_nums(7)
919 character(STRING):: size_str, sd_str
920 integer:: max_value, min_value
921 integer,
allocatable:: array_packed(:)
922 real:: avg_value, variance_value, sd_value
929 if (
present(unit) )
then 937 if (
present(indent) )
then 938 if (len(indent) /= 0)
then 939 indent_len = len(indent)
940 indent_str(1:indent_len) = indent
949 if (
present(lbounds) .and.
present(ubounds) )
then 950 lbound_nums = lbounds
951 ubound_nums = ubounds
953 lbound_nums(1) = lbound( array, 1 )
954 ubound_nums(1) = ubound( array, 1 )
956 lbound_nums(2) = lbound( array, 2 )
957 ubound_nums(2) = ubound( array, 2 )
959 lbound_nums(3) = lbound( array, 3 )
960 ubound_nums(3) = ubound( array, 3 )
962 lbound_nums(4) = lbound( array, 4 )
963 ubound_nums(4) = ubound( array, 4 )
965 lbound_nums(5) = lbound( array, 5 )
966 ubound_nums(5) = ubound( array, 5 )
968 lbound_nums(6) = lbound( array, 6 )
969 ubound_nums(6) = ubound( array, 6 )
971 lbound_nums(7) = lbound( array, 7 )
972 ubound_nums(7) = ubound( array, 7 )
977 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 978 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
979 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
980 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
982 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
983 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
985 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
986 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
988 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
989 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
991 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(6)))
992 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(6)))
994 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(7)))
995 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(7)))
997 size_str = trim(size_str) //
')' 1003 max_value = maxval(array)
1009 min_value = minval(array)
1015 alldim_size =
size(array)
1016 avg_value = sum(array) /
real(alldim_size)
1023 variance_value = 0.0
1026 if ( alldim_size > 1 )
then 1027 if (
allocated(array_packed))
then 1028 deallocate(array_packed)
1030 allocate( array_packed(alldim_size) )
1032 array_packed = pack(array, .true.)
1035 do i = 1, alldim_size
1036 variance_value = variance_value + &
1037 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
1039 variance_value = variance_value /
real(alldim_size)
1040 sd_value = sqrt( variance_value )
1041 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
1050 & indent_str(1:indent_len) // &
1051 &
'#<INT-ARRAY:: @size=%c, @max=%d, @min=%d, @avg=%r%c>', &
1052 & i = (/max_value, min_value/), r = (/avg_value/), &
1055 & c1 = trim(size_str), c2 = trim(sd_str) )
1060 subroutine putlinereal1( array, lbounds, ubounds, unit, indent, sd )
1069 real,
intent(in):: array(:)
1070 integer,
intent(in),
optional:: lbounds(1)
1071 integer,
intent(in),
optional:: ubounds(1)
1072 integer,
intent(in),
optional:: unit
1073 character(*),
intent(in),
optional:: indent
1074 logical,
intent(in),
optional:: sd
1076 integer:: indent_len
1077 character(STRING):: indent_str
1079 integer:: alldim_size, lbound_nums(1), ubound_nums(1)
1080 character(STRING):: size_str, sd_str
1081 real:: max_value, min_value
1082 real,
allocatable:: array_packed(:)
1083 real:: avg_value, variance_value, sd_value
1090 if (
present(unit) )
then 1098 if (
present(indent) )
then 1099 if (len(indent) /= 0)
then 1100 indent_len = len(indent)
1101 indent_str(1:indent_len) = indent
1110 if (
present(lbounds) .and.
present(ubounds) )
then 1111 lbound_nums = lbounds
1112 ubound_nums = ubounds
1114 lbound_nums(1) = lbound( array, 1 )
1115 ubound_nums(1) = ubound( array, 1 )
1120 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 1121 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
1123 size_str = trim(size_str) //
')' 1129 max_value = maxval(array)
1135 min_value = minval(array)
1141 alldim_size =
size(array)
1142 avg_value = sum(array) /
real(alldim_size)
1149 variance_value = 0.0
1152 if ( alldim_size > 1 )
then 1153 if (
allocated(array_packed))
then 1154 deallocate(array_packed)
1156 allocate( array_packed(alldim_size) )
1158 array_packed = array
1161 do i = 1, alldim_size
1162 variance_value = variance_value + &
1163 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
1165 variance_value = variance_value /
real(alldim_size)
1166 sd_value = sqrt( variance_value )
1167 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
1176 & indent_str(1:indent_len) // &
1177 &
'#<SP-ARRAY:: @size=%c, @max=%r, @min=%r, @avg=%r%c>', &
1178 & r = (/max_value, min_value, avg_value/), &
1181 & c1 = trim(size_str), c2 = trim(sd_str) )
1186 subroutine putlinereal2( array, lbounds, ubounds, unit, indent, sd )
1194 real,
intent(in):: array(:,:)
1195 integer,
intent(in),
optional:: lbounds(2)
1196 integer,
intent(in),
optional:: ubounds(2)
1197 integer,
intent(in),
optional:: unit
1198 character(*),
intent(in),
optional:: indent
1199 logical,
intent(in),
optional:: sd
1201 integer:: indent_len
1202 character(STRING):: indent_str
1204 integer:: alldim_size, lbound_nums(2), ubound_nums(2)
1205 character(STRING):: size_str, sd_str
1206 real:: max_value, min_value
1207 real,
allocatable:: array_packed(:)
1208 real:: avg_value, variance_value, sd_value
1215 if (
present(unit) )
then 1223 if (
present(indent) )
then 1224 if (len(indent) /= 0)
then 1225 indent_len = len(indent)
1226 indent_str(1:indent_len) = indent
1235 if (
present(lbounds) .and.
present(ubounds) )
then 1236 lbound_nums = lbounds
1237 ubound_nums = ubounds
1239 lbound_nums(1) = lbound( array, 1 )
1240 ubound_nums(1) = ubound( array, 1 )
1242 lbound_nums(2) = lbound( array, 2 )
1243 ubound_nums(2) = ubound( array, 2 )
1248 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 1249 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
1250 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
1251 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
1253 size_str = trim(size_str) //
')' 1259 max_value = maxval(array)
1265 min_value = minval(array)
1271 alldim_size =
size(array)
1272 avg_value = sum(array) /
real(alldim_size)
1279 variance_value = 0.0
1282 if ( alldim_size > 1 )
then 1283 if (
allocated(array_packed))
then 1284 deallocate(array_packed)
1286 allocate( array_packed(alldim_size) )
1288 array_packed = pack(array, .true.)
1291 do i = 1, alldim_size
1292 variance_value = variance_value + &
1293 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
1295 variance_value = variance_value /
real(alldim_size)
1296 sd_value = sqrt( variance_value )
1297 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
1306 & indent_str(1:indent_len) // &
1307 &
'#<SP-ARRAY:: @size=%c, @max=%r, @min=%r, @avg=%r%c>', &
1308 & r = (/max_value, min_value, avg_value/), &
1311 & c1 = trim(size_str), c2 = trim(sd_str) )
1316 subroutine putlinereal3( array, lbounds, ubounds, unit, indent, sd )
1324 real,
intent(in):: array(:,:,:)
1325 integer,
intent(in),
optional:: lbounds(3)
1326 integer,
intent(in),
optional:: ubounds(3)
1327 integer,
intent(in),
optional:: unit
1328 character(*),
intent(in),
optional:: indent
1329 logical,
intent(in),
optional:: sd
1331 integer:: indent_len
1332 character(STRING):: indent_str
1334 integer:: alldim_size, lbound_nums(3), ubound_nums(3)
1335 character(STRING):: size_str, sd_str
1336 real:: max_value, min_value
1337 real,
allocatable:: array_packed(:)
1338 real:: avg_value, variance_value, sd_value
1345 if (
present(unit) )
then 1353 if (
present(indent) )
then 1354 if (len(indent) /= 0)
then 1355 indent_len = len(indent)
1356 indent_str(1:indent_len) = indent
1365 if (
present(lbounds) .and.
present(ubounds) )
then 1366 lbound_nums = lbounds
1367 ubound_nums = ubounds
1369 lbound_nums(1) = lbound( array, 1 )
1370 ubound_nums(1) = ubound( array, 1 )
1372 lbound_nums(2) = lbound( array, 2 )
1373 ubound_nums(2) = ubound( array, 2 )
1375 lbound_nums(3) = lbound( array, 3 )
1376 ubound_nums(3) = ubound( array, 3 )
1381 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 1382 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
1383 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
1384 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
1386 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
1387 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
1389 size_str = trim(size_str) //
')' 1395 max_value = maxval(array)
1401 min_value = minval(array)
1407 alldim_size =
size(array)
1408 avg_value = sum(array) /
real(alldim_size)
1415 variance_value = 0.0
1418 if ( alldim_size > 1 )
then 1419 if (
allocated(array_packed))
then 1420 deallocate(array_packed)
1422 allocate( array_packed(alldim_size) )
1424 array_packed = pack(array, .true.)
1427 do i = 1, alldim_size
1428 variance_value = variance_value + &
1429 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
1431 variance_value = variance_value /
real(alldim_size)
1432 sd_value = sqrt( variance_value )
1433 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
1442 & indent_str(1:indent_len) // &
1443 &
'#<SP-ARRAY:: @size=%c, @max=%r, @min=%r, @avg=%r%c>', &
1444 & r = (/max_value, min_value, avg_value/), &
1447 & c1 = trim(size_str), c2 = trim(sd_str) )
1452 subroutine putlinereal4( array, lbounds, ubounds, unit, indent, sd )
1460 real,
intent(in):: array(:,:,:,:)
1461 integer,
intent(in),
optional:: lbounds(4)
1462 integer,
intent(in),
optional:: ubounds(4)
1463 integer,
intent(in),
optional:: unit
1464 character(*),
intent(in),
optional:: indent
1465 logical,
intent(in),
optional:: sd
1467 integer:: indent_len
1468 character(STRING):: indent_str
1470 integer:: alldim_size, lbound_nums(4), ubound_nums(4)
1471 character(STRING):: size_str, sd_str
1472 real:: max_value, min_value
1473 real,
allocatable:: array_packed(:)
1474 real:: avg_value, variance_value, sd_value
1481 if (
present(unit) )
then 1489 if (
present(indent) )
then 1490 if (len(indent) /= 0)
then 1491 indent_len = len(indent)
1492 indent_str(1:indent_len) = indent
1501 if (
present(lbounds) .and.
present(ubounds) )
then 1502 lbound_nums = lbounds
1503 ubound_nums = ubounds
1505 lbound_nums(1) = lbound( array, 1 )
1506 ubound_nums(1) = ubound( array, 1 )
1508 lbound_nums(2) = lbound( array, 2 )
1509 ubound_nums(2) = ubound( array, 2 )
1511 lbound_nums(3) = lbound( array, 3 )
1512 ubound_nums(3) = ubound( array, 3 )
1514 lbound_nums(4) = lbound( array, 4 )
1515 ubound_nums(4) = ubound( array, 4 )
1520 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 1521 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
1522 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
1523 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
1525 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
1526 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
1528 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
1529 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
1531 size_str = trim(size_str) //
')' 1537 max_value = maxval(array)
1543 min_value = minval(array)
1549 alldim_size =
size(array)
1550 avg_value = sum(array) /
real(alldim_size)
1557 variance_value = 0.0
1560 if ( alldim_size > 1 )
then 1561 if (
allocated(array_packed))
then 1562 deallocate(array_packed)
1564 allocate( array_packed(alldim_size) )
1566 array_packed = pack(array, .true.)
1569 do i = 1, alldim_size
1570 variance_value = variance_value + &
1571 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
1573 variance_value = variance_value /
real(alldim_size)
1574 sd_value = sqrt( variance_value )
1575 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
1584 & indent_str(1:indent_len) // &
1585 &
'#<SP-ARRAY:: @size=%c, @max=%r, @min=%r, @avg=%r%c>', &
1586 & r = (/max_value, min_value, avg_value/), &
1589 & c1 = trim(size_str), c2 = trim(sd_str) )
1594 subroutine putlinereal5( array, lbounds, ubounds, unit, indent, sd )
1602 real,
intent(in):: array(:,:,:,:,:)
1603 integer,
intent(in),
optional:: lbounds(5)
1604 integer,
intent(in),
optional:: ubounds(5)
1605 integer,
intent(in),
optional:: unit
1606 character(*),
intent(in),
optional:: indent
1607 logical,
intent(in),
optional:: sd
1609 integer:: indent_len
1610 character(STRING):: indent_str
1612 integer:: alldim_size, lbound_nums(5), ubound_nums(5)
1613 character(STRING):: size_str, sd_str
1614 real:: max_value, min_value
1615 real,
allocatable:: array_packed(:)
1616 real:: avg_value, variance_value, sd_value
1623 if (
present(unit) )
then 1631 if (
present(indent) )
then 1632 if (len(indent) /= 0)
then 1633 indent_len = len(indent)
1634 indent_str(1:indent_len) = indent
1643 if (
present(lbounds) .and.
present(ubounds) )
then 1644 lbound_nums = lbounds
1645 ubound_nums = ubounds
1647 lbound_nums(1) = lbound( array, 1 )
1648 ubound_nums(1) = ubound( array, 1 )
1650 lbound_nums(2) = lbound( array, 2 )
1651 ubound_nums(2) = ubound( array, 2 )
1653 lbound_nums(3) = lbound( array, 3 )
1654 ubound_nums(3) = ubound( array, 3 )
1656 lbound_nums(4) = lbound( array, 4 )
1657 ubound_nums(4) = ubound( array, 4 )
1659 lbound_nums(5) = lbound( array, 5 )
1660 ubound_nums(5) = ubound( array, 5 )
1665 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 1666 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
1667 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
1668 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
1670 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
1671 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
1673 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
1674 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
1676 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
1677 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
1679 size_str = trim(size_str) //
')' 1685 max_value = maxval(array)
1691 min_value = minval(array)
1697 alldim_size =
size(array)
1698 avg_value = sum(array) /
real(alldim_size)
1705 variance_value = 0.0
1708 if ( alldim_size > 1 )
then 1709 if (
allocated(array_packed))
then 1710 deallocate(array_packed)
1712 allocate( array_packed(alldim_size) )
1714 array_packed = pack(array, .true.)
1717 do i = 1, alldim_size
1718 variance_value = variance_value + &
1719 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
1721 variance_value = variance_value /
real(alldim_size)
1722 sd_value = sqrt( variance_value )
1723 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
1732 & indent_str(1:indent_len) // &
1733 &
'#<SP-ARRAY:: @size=%c, @max=%r, @min=%r, @avg=%r%c>', &
1734 & r = (/max_value, min_value, avg_value/), &
1737 & c1 = trim(size_str), c2 = trim(sd_str) )
1742 subroutine putlinereal6( array, lbounds, ubounds, unit, indent, sd )
1750 real,
intent(in):: array(:,:,:,:,:,:)
1751 integer,
intent(in),
optional:: lbounds(6)
1752 integer,
intent(in),
optional:: ubounds(6)
1753 integer,
intent(in),
optional:: unit
1754 character(*),
intent(in),
optional:: indent
1755 logical,
intent(in),
optional:: sd
1757 integer:: indent_len
1758 character(STRING):: indent_str
1760 integer:: alldim_size, lbound_nums(6), ubound_nums(6)
1761 character(STRING):: size_str, sd_str
1762 real:: max_value, min_value
1763 real,
allocatable:: array_packed(:)
1764 real:: avg_value, variance_value, sd_value
1771 if (
present(unit) )
then 1779 if (
present(indent) )
then 1780 if (len(indent) /= 0)
then 1781 indent_len = len(indent)
1782 indent_str(1:indent_len) = indent
1791 if (
present(lbounds) .and.
present(ubounds) )
then 1792 lbound_nums = lbounds
1793 ubound_nums = ubounds
1795 lbound_nums(1) = lbound( array, 1 )
1796 ubound_nums(1) = ubound( array, 1 )
1798 lbound_nums(2) = lbound( array, 2 )
1799 ubound_nums(2) = ubound( array, 2 )
1801 lbound_nums(3) = lbound( array, 3 )
1802 ubound_nums(3) = ubound( array, 3 )
1804 lbound_nums(4) = lbound( array, 4 )
1805 ubound_nums(4) = ubound( array, 4 )
1807 lbound_nums(5) = lbound( array, 5 )
1808 ubound_nums(5) = ubound( array, 5 )
1810 lbound_nums(6) = lbound( array, 6 )
1811 ubound_nums(6) = ubound( array, 6 )
1816 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 1817 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
1818 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
1819 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
1821 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
1822 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
1824 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
1825 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
1827 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
1828 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
1830 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(6)))
1831 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(6)))
1833 size_str = trim(size_str) //
')' 1839 max_value = maxval(array)
1845 min_value = minval(array)
1851 alldim_size =
size(array)
1852 avg_value = sum(array) /
real(alldim_size)
1859 variance_value = 0.0
1862 if ( alldim_size > 1 )
then 1863 if (
allocated(array_packed))
then 1864 deallocate(array_packed)
1866 allocate( array_packed(alldim_size) )
1868 array_packed = pack(array, .true.)
1871 do i = 1, alldim_size
1872 variance_value = variance_value + &
1873 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
1875 variance_value = variance_value /
real(alldim_size)
1876 sd_value = sqrt( variance_value )
1877 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
1886 & indent_str(1:indent_len) // &
1887 &
'#<SP-ARRAY:: @size=%c, @max=%r, @min=%r, @avg=%r%c>', &
1888 & r = (/max_value, min_value, avg_value/), &
1891 & c1 = trim(size_str), c2 = trim(sd_str) )
1896 subroutine putlinereal7( array, lbounds, ubounds, unit, indent, sd )
1904 real,
intent(in):: array(:,:,:,:,:,:,:)
1905 integer,
intent(in),
optional:: lbounds(7)
1906 integer,
intent(in),
optional:: ubounds(7)
1907 integer,
intent(in),
optional:: unit
1908 character(*),
intent(in),
optional:: indent
1909 logical,
intent(in),
optional:: sd
1911 integer:: indent_len
1912 character(STRING):: indent_str
1914 integer:: alldim_size, lbound_nums(7), ubound_nums(7)
1915 character(STRING):: size_str, sd_str
1916 real:: max_value, min_value
1917 real,
allocatable:: array_packed(:)
1918 real:: avg_value, variance_value, sd_value
1925 if (
present(unit) )
then 1933 if (
present(indent) )
then 1934 if (len(indent) /= 0)
then 1935 indent_len = len(indent)
1936 indent_str(1:indent_len) = indent
1945 if (
present(lbounds) .and.
present(ubounds) )
then 1946 lbound_nums = lbounds
1947 ubound_nums = ubounds
1949 lbound_nums(1) = lbound( array, 1 )
1950 ubound_nums(1) = ubound( array, 1 )
1952 lbound_nums(2) = lbound( array, 2 )
1953 ubound_nums(2) = ubound( array, 2 )
1955 lbound_nums(3) = lbound( array, 3 )
1956 ubound_nums(3) = ubound( array, 3 )
1958 lbound_nums(4) = lbound( array, 4 )
1959 ubound_nums(4) = ubound( array, 4 )
1961 lbound_nums(5) = lbound( array, 5 )
1962 ubound_nums(5) = ubound( array, 5 )
1964 lbound_nums(6) = lbound( array, 6 )
1965 ubound_nums(6) = ubound( array, 6 )
1967 lbound_nums(7) = lbound( array, 7 )
1968 ubound_nums(7) = ubound( array, 7 )
1973 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 1974 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
1975 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
1976 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
1978 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
1979 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
1981 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
1982 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
1984 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
1985 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
1987 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(6)))
1988 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(6)))
1990 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(7)))
1991 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(7)))
1993 size_str = trim(size_str) //
')' 1999 max_value = maxval(array)
2005 min_value = minval(array)
2011 alldim_size =
size(array)
2012 avg_value = sum(array) /
real(alldim_size)
2019 variance_value = 0.0
2022 if ( alldim_size > 1 )
then 2023 if (
allocated(array_packed))
then 2024 deallocate(array_packed)
2026 allocate( array_packed(alldim_size) )
2028 array_packed = pack(array, .true.)
2031 do i = 1, alldim_size
2032 variance_value = variance_value + &
2033 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
2035 variance_value = variance_value /
real(alldim_size)
2036 sd_value = sqrt( variance_value )
2037 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
2046 & indent_str(1:indent_len) // &
2047 &
'#<SP-ARRAY:: @size=%c, @max=%r, @min=%r, @avg=%r%c>', &
2048 & r = (/max_value, min_value, avg_value/), &
2051 & c1 = trim(size_str), c2 = trim(sd_str) )
2056 subroutine putlinedouble1( array, lbounds, ubounds, unit, indent, sd )
2065 real(DP),
intent(in):: array(:)
2066 integer,
intent(in),
optional:: lbounds(1)
2067 integer,
intent(in),
optional:: ubounds(1)
2068 integer,
intent(in),
optional:: unit
2069 character(*),
intent(in),
optional:: indent
2070 logical,
intent(in),
optional:: sd
2072 integer:: indent_len
2073 character(STRING):: indent_str
2075 integer:: alldim_size, lbound_nums(1), ubound_nums(1)
2076 character(STRING):: size_str, sd_str
2077 real(DP):: max_value, min_value
2078 real(DP),
allocatable:: array_packed(:)
2079 real:: avg_value, variance_value, sd_value
2086 if (
present(unit) )
then 2094 if (
present(indent) )
then 2095 if (len(indent) /= 0)
then 2096 indent_len = len(indent)
2097 indent_str(1:indent_len) = indent
2106 if (
present(lbounds) .and.
present(ubounds) )
then 2107 lbound_nums = lbounds
2108 ubound_nums = ubounds
2110 lbound_nums(1) = lbound( array, 1 )
2111 ubound_nums(1) = ubound( array, 1 )
2116 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 2117 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
2119 size_str = trim(size_str) //
')' 2125 max_value = maxval(array)
2131 min_value = minval(array)
2137 alldim_size =
size(array)
2138 avg_value = sum(array) /
real(alldim_size)
2145 variance_value = 0.0
2148 if ( alldim_size > 1 )
then 2149 if (
allocated(array_packed))
then 2150 deallocate(array_packed)
2152 allocate( array_packed(alldim_size) )
2154 array_packed = array
2157 do i = 1, alldim_size
2158 variance_value = variance_value + &
2159 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
2161 variance_value = variance_value /
real(alldim_size)
2162 sd_value = sqrt( variance_value )
2163 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
2172 & indent_str(1:indent_len) // &
2173 &
'#<DP-ARRAY:: @size=%c, @max=%f, @min=%f, @avg=%r%c>', &
2174 & d = (/max_value, min_value/), r = (/avg_value/), &
2177 & c1 = trim(size_str), c2 = trim(sd_str) )
2182 subroutine putlinedouble2( array, lbounds, ubounds, unit, indent, sd )
2190 real(DP),
intent(in):: array(:,:)
2191 integer,
intent(in),
optional:: lbounds(2)
2192 integer,
intent(in),
optional:: ubounds(2)
2193 integer,
intent(in),
optional:: unit
2194 character(*),
intent(in),
optional:: indent
2195 logical,
intent(in),
optional:: sd
2197 integer:: indent_len
2198 character(STRING):: indent_str
2200 integer:: alldim_size, lbound_nums(2), ubound_nums(2)
2201 character(STRING):: size_str, sd_str
2202 real(DP):: max_value, min_value
2203 real(DP),
allocatable:: array_packed(:)
2204 real:: avg_value, variance_value, sd_value
2211 if (
present(unit) )
then 2219 if (
present(indent) )
then 2220 if (len(indent) /= 0)
then 2221 indent_len = len(indent)
2222 indent_str(1:indent_len) = indent
2231 if (
present(lbounds) .and.
present(ubounds) )
then 2232 lbound_nums = lbounds
2233 ubound_nums = ubounds
2235 lbound_nums(1) = lbound( array, 1 )
2236 ubound_nums(1) = ubound( array, 1 )
2238 lbound_nums(2) = lbound( array, 2 )
2239 ubound_nums(2) = ubound( array, 2 )
2244 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 2245 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
2246 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
2247 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
2249 size_str = trim(size_str) //
')' 2255 max_value = maxval(array)
2261 min_value = minval(array)
2267 alldim_size =
size(array)
2268 avg_value = sum(array) /
real(alldim_size)
2275 variance_value = 0.0
2278 if ( alldim_size > 1 )
then 2279 if (
allocated(array_packed))
then 2280 deallocate(array_packed)
2282 allocate( array_packed(alldim_size) )
2284 array_packed = pack(array, .true.)
2287 do i = 1, alldim_size
2288 variance_value = variance_value + &
2289 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
2291 variance_value = variance_value /
real(alldim_size)
2292 sd_value = sqrt( variance_value )
2293 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
2302 & indent_str(1:indent_len) // &
2303 &
'#<DP-ARRAY:: @size=%c, @max=%f, @min=%f, @avg=%r%c>', &
2304 & d = (/max_value, min_value/), r = (/avg_value/), &
2307 & c1 = trim(size_str), c2 = trim(sd_str) )
2312 subroutine putlinedouble3( array, lbounds, ubounds, unit, indent, sd )
2320 real(DP),
intent(in):: array(:,:,:)
2321 integer,
intent(in),
optional:: lbounds(3)
2322 integer,
intent(in),
optional:: ubounds(3)
2323 integer,
intent(in),
optional:: unit
2324 character(*),
intent(in),
optional:: indent
2325 logical,
intent(in),
optional:: sd
2327 integer:: indent_len
2328 character(STRING):: indent_str
2330 integer:: alldim_size, lbound_nums(3), ubound_nums(3)
2331 character(STRING):: size_str, sd_str
2332 real(DP):: max_value, min_value
2333 real(DP),
allocatable:: array_packed(:)
2334 real:: avg_value, variance_value, sd_value
2341 if (
present(unit) )
then 2349 if (
present(indent) )
then 2350 if (len(indent) /= 0)
then 2351 indent_len = len(indent)
2352 indent_str(1:indent_len) = indent
2361 if (
present(lbounds) .and.
present(ubounds) )
then 2362 lbound_nums = lbounds
2363 ubound_nums = ubounds
2365 lbound_nums(1) = lbound( array, 1 )
2366 ubound_nums(1) = ubound( array, 1 )
2368 lbound_nums(2) = lbound( array, 2 )
2369 ubound_nums(2) = ubound( array, 2 )
2371 lbound_nums(3) = lbound( array, 3 )
2372 ubound_nums(3) = ubound( array, 3 )
2377 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 2378 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
2379 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
2380 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
2382 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
2383 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
2385 size_str = trim(size_str) //
')' 2391 max_value = maxval(array)
2397 min_value = minval(array)
2403 alldim_size =
size(array)
2404 avg_value = sum(array) /
real(alldim_size)
2411 variance_value = 0.0
2414 if ( alldim_size > 1 )
then 2415 if (
allocated(array_packed))
then 2416 deallocate(array_packed)
2418 allocate( array_packed(alldim_size) )
2420 array_packed = pack(array, .true.)
2423 do i = 1, alldim_size
2424 variance_value = variance_value + &
2425 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
2427 variance_value = variance_value /
real(alldim_size)
2428 sd_value = sqrt( variance_value )
2429 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
2438 & indent_str(1:indent_len) // &
2439 &
'#<DP-ARRAY:: @size=%c, @max=%f, @min=%f, @avg=%r%c>', &
2440 & d = (/max_value, min_value/), r = (/avg_value/), &
2443 & c1 = trim(size_str), c2 = trim(sd_str) )
2448 subroutine putlinedouble4( array, lbounds, ubounds, unit, indent, sd )
2456 real(DP),
intent(in):: array(:,:,:,:)
2457 integer,
intent(in),
optional:: lbounds(4)
2458 integer,
intent(in),
optional:: ubounds(4)
2459 integer,
intent(in),
optional:: unit
2460 character(*),
intent(in),
optional:: indent
2461 logical,
intent(in),
optional:: sd
2463 integer:: indent_len
2464 character(STRING):: indent_str
2466 integer:: alldim_size, lbound_nums(4), ubound_nums(4)
2467 character(STRING):: size_str, sd_str
2468 real(DP):: max_value, min_value
2469 real(DP),
allocatable:: array_packed(:)
2470 real:: avg_value, variance_value, sd_value
2477 if (
present(unit) )
then 2485 if (
present(indent) )
then 2486 if (len(indent) /= 0)
then 2487 indent_len = len(indent)
2488 indent_str(1:indent_len) = indent
2497 if (
present(lbounds) .and.
present(ubounds) )
then 2498 lbound_nums = lbounds
2499 ubound_nums = ubounds
2501 lbound_nums(1) = lbound( array, 1 )
2502 ubound_nums(1) = ubound( array, 1 )
2504 lbound_nums(2) = lbound( array, 2 )
2505 ubound_nums(2) = ubound( array, 2 )
2507 lbound_nums(3) = lbound( array, 3 )
2508 ubound_nums(3) = ubound( array, 3 )
2510 lbound_nums(4) = lbound( array, 4 )
2511 ubound_nums(4) = ubound( array, 4 )
2516 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 2517 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
2518 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
2519 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
2521 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
2522 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
2524 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
2525 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
2527 size_str = trim(size_str) //
')' 2533 max_value = maxval(array)
2539 min_value = minval(array)
2545 alldim_size =
size(array)
2546 avg_value = sum(array) /
real(alldim_size)
2553 variance_value = 0.0
2556 if ( alldim_size > 1 )
then 2557 if (
allocated(array_packed))
then 2558 deallocate(array_packed)
2560 allocate( array_packed(alldim_size) )
2562 array_packed = pack(array, .true.)
2565 do i = 1, alldim_size
2566 variance_value = variance_value + &
2567 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
2569 variance_value = variance_value /
real(alldim_size)
2570 sd_value = sqrt( variance_value )
2571 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
2580 & indent_str(1:indent_len) // &
2581 &
'#<DP-ARRAY:: @size=%c, @max=%f, @min=%f, @avg=%r%c>', &
2582 & d = (/max_value, min_value/), r = (/avg_value/), &
2585 & c1 = trim(size_str), c2 = trim(sd_str) )
2590 subroutine putlinedouble5( array, lbounds, ubounds, unit, indent, sd )
2598 real(DP),
intent(in):: array(:,:,:,:,:)
2599 integer,
intent(in),
optional:: lbounds(5)
2600 integer,
intent(in),
optional:: ubounds(5)
2601 integer,
intent(in),
optional:: unit
2602 character(*),
intent(in),
optional:: indent
2603 logical,
intent(in),
optional:: sd
2605 integer:: indent_len
2606 character(STRING):: indent_str
2608 integer:: alldim_size, lbound_nums(5), ubound_nums(5)
2609 character(STRING):: size_str, sd_str
2610 real(DP):: max_value, min_value
2611 real(DP),
allocatable:: array_packed(:)
2612 real:: avg_value, variance_value, sd_value
2619 if (
present(unit) )
then 2627 if (
present(indent) )
then 2628 if (len(indent) /= 0)
then 2629 indent_len = len(indent)
2630 indent_str(1:indent_len) = indent
2639 if (
present(lbounds) .and.
present(ubounds) )
then 2640 lbound_nums = lbounds
2641 ubound_nums = ubounds
2643 lbound_nums(1) = lbound( array, 1 )
2644 ubound_nums(1) = ubound( array, 1 )
2646 lbound_nums(2) = lbound( array, 2 )
2647 ubound_nums(2) = ubound( array, 2 )
2649 lbound_nums(3) = lbound( array, 3 )
2650 ubound_nums(3) = ubound( array, 3 )
2652 lbound_nums(4) = lbound( array, 4 )
2653 ubound_nums(4) = ubound( array, 4 )
2655 lbound_nums(5) = lbound( array, 5 )
2656 ubound_nums(5) = ubound( array, 5 )
2661 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 2662 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
2663 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
2664 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
2666 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
2667 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
2669 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
2670 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
2672 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
2673 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
2675 size_str = trim(size_str) //
')' 2681 max_value = maxval(array)
2687 min_value = minval(array)
2693 alldim_size =
size(array)
2694 avg_value = sum(array) /
real(alldim_size)
2701 variance_value = 0.0
2704 if ( alldim_size > 1 )
then 2705 if (
allocated(array_packed))
then 2706 deallocate(array_packed)
2708 allocate( array_packed(alldim_size) )
2710 array_packed = pack(array, .true.)
2713 do i = 1, alldim_size
2714 variance_value = variance_value + &
2715 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
2717 variance_value = variance_value /
real(alldim_size)
2718 sd_value = sqrt( variance_value )
2719 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
2728 & indent_str(1:indent_len) // &
2729 &
'#<DP-ARRAY:: @size=%c, @max=%f, @min=%f, @avg=%r%c>', &
2730 & d = (/max_value, min_value/), r = (/avg_value/), &
2733 & c1 = trim(size_str), c2 = trim(sd_str) )
2738 subroutine putlinedouble6( array, lbounds, ubounds, unit, indent, sd )
2746 real(DP),
intent(in):: array(:,:,:,:,:,:)
2747 integer,
intent(in),
optional:: lbounds(6)
2748 integer,
intent(in),
optional:: ubounds(6)
2749 integer,
intent(in),
optional:: unit
2750 character(*),
intent(in),
optional:: indent
2751 logical,
intent(in),
optional:: sd
2753 integer:: indent_len
2754 character(STRING):: indent_str
2756 integer:: alldim_size, lbound_nums(6), ubound_nums(6)
2757 character(STRING):: size_str, sd_str
2758 real(DP):: max_value, min_value
2759 real(DP),
allocatable:: array_packed(:)
2760 real:: avg_value, variance_value, sd_value
2767 if (
present(unit) )
then 2775 if (
present(indent) )
then 2776 if (len(indent) /= 0)
then 2777 indent_len = len(indent)
2778 indent_str(1:indent_len) = indent
2787 if (
present(lbounds) .and.
present(ubounds) )
then 2788 lbound_nums = lbounds
2789 ubound_nums = ubounds
2791 lbound_nums(1) = lbound( array, 1 )
2792 ubound_nums(1) = ubound( array, 1 )
2794 lbound_nums(2) = lbound( array, 2 )
2795 ubound_nums(2) = ubound( array, 2 )
2797 lbound_nums(3) = lbound( array, 3 )
2798 ubound_nums(3) = ubound( array, 3 )
2800 lbound_nums(4) = lbound( array, 4 )
2801 ubound_nums(4) = ubound( array, 4 )
2803 lbound_nums(5) = lbound( array, 5 )
2804 ubound_nums(5) = ubound( array, 5 )
2806 lbound_nums(6) = lbound( array, 6 )
2807 ubound_nums(6) = ubound( array, 6 )
2812 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 2813 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
2814 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
2815 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
2817 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
2818 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
2820 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
2821 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
2823 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
2824 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
2826 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(6)))
2827 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(6)))
2829 size_str = trim(size_str) //
')' 2835 max_value = maxval(array)
2841 min_value = minval(array)
2847 alldim_size =
size(array)
2848 avg_value = sum(array) /
real(alldim_size)
2855 variance_value = 0.0
2858 if ( alldim_size > 1 )
then 2859 if (
allocated(array_packed))
then 2860 deallocate(array_packed)
2862 allocate( array_packed(alldim_size) )
2864 array_packed = pack(array, .true.)
2867 do i = 1, alldim_size
2868 variance_value = variance_value + &
2869 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
2871 variance_value = variance_value /
real(alldim_size)
2872 sd_value = sqrt( variance_value )
2873 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
2882 & indent_str(1:indent_len) // &
2883 &
'#<DP-ARRAY:: @size=%c, @max=%f, @min=%f, @avg=%r%c>', &
2884 & d = (/max_value, min_value/), r = (/avg_value/), &
2887 & c1 = trim(size_str), c2 = trim(sd_str) )
2892 subroutine putlinedouble7( array, lbounds, ubounds, unit, indent, sd )
2900 real(DP),
intent(in):: array(:,:,:,:,:,:,:)
2901 integer,
intent(in),
optional:: lbounds(7)
2902 integer,
intent(in),
optional:: ubounds(7)
2903 integer,
intent(in),
optional:: unit
2904 character(*),
intent(in),
optional:: indent
2905 logical,
intent(in),
optional:: sd
2907 integer:: indent_len
2908 character(STRING):: indent_str
2910 integer:: alldim_size, lbound_nums(7), ubound_nums(7)
2911 character(STRING):: size_str, sd_str
2912 real(DP):: max_value, min_value
2913 real(DP),
allocatable:: array_packed(:)
2914 real:: avg_value, variance_value, sd_value
2921 if (
present(unit) )
then 2929 if (
present(indent) )
then 2930 if (len(indent) /= 0)
then 2931 indent_len = len(indent)
2932 indent_str(1:indent_len) = indent
2941 if (
present(lbounds) .and.
present(ubounds) )
then 2942 lbound_nums = lbounds
2943 ubound_nums = ubounds
2945 lbound_nums(1) = lbound( array, 1 )
2946 ubound_nums(1) = ubound( array, 1 )
2948 lbound_nums(2) = lbound( array, 2 )
2949 ubound_nums(2) = ubound( array, 2 )
2951 lbound_nums(3) = lbound( array, 3 )
2952 ubound_nums(3) = ubound( array, 3 )
2954 lbound_nums(4) = lbound( array, 4 )
2955 ubound_nums(4) = ubound( array, 4 )
2957 lbound_nums(5) = lbound( array, 5 )
2958 ubound_nums(5) = ubound( array, 5 )
2960 lbound_nums(6) = lbound( array, 6 )
2961 ubound_nums(6) = ubound( array, 6 )
2963 lbound_nums(7) = lbound( array, 7 )
2964 ubound_nums(7) = ubound( array, 7 )
2969 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':' 2970 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
2971 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
2972 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
2974 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
2975 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
2977 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
2978 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
2980 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
2981 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
2983 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(6)))
2984 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(6)))
2986 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(7)))
2987 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(7)))
2989 size_str = trim(size_str) //
')' 2995 max_value = maxval(array)
3001 min_value = minval(array)
3007 alldim_size =
size(array)
3008 avg_value = sum(array) /
real(alldim_size)
3015 variance_value = 0.0
3018 if ( alldim_size > 1 )
then 3019 if (
allocated(array_packed))
then 3020 deallocate(array_packed)
3022 allocate( array_packed(alldim_size) )
3024 array_packed = pack(array, .true.)
3027 do i = 1, alldim_size
3028 variance_value = variance_value + &
3029 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
3031 variance_value = variance_value /
real(alldim_size)
3032 sd_value = sqrt( variance_value )
3033 sd_str =
cprintf(
' @sd=%r', r = (/ sd_value /) )
3042 & indent_str(1:indent_len) // &
3043 &
'#<DP-ARRAY:: @size=%c, @max=%f, @min=%f, @avg=%r%c>', &
3044 & d = (/max_value, min_value/), r = (/avg_value/), &
3047 & c1 = trim(size_str), c2 = trim(sd_str) )
subroutine putlinereal3(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinedouble2(array, lbounds, ubounds, unit, indent, sd)
logical function, public present_and_true(arg)
subroutine putlinereal1(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinereal5(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinereal2(array, lbounds, ubounds, unit, indent, sd)
subroutine putlineint4(array, lbounds, ubounds, unit, indent, sd)
subroutine putlineint3(array, lbounds, ubounds, unit, indent, sd)
subroutine putlineint7(array, lbounds, ubounds, unit, indent, sd)
integer, parameter, public dp
倍精度実数型変数
subroutine putlinereal4(array, lbounds, ubounds, unit, indent, sd)
integer, parameter, public stdout
標準出力の装置番号
subroutine putlinedouble1(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinedouble3(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinedouble5(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinedouble4(array, lbounds, ubounds, unit, indent, sd)
subroutine putlineint6(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinereal6(array, lbounds, ubounds, unit, indent, sd)
subroutine putlineint1(array, lbounds, ubounds, unit, indent, sd)
subroutine putlineint5(array, lbounds, ubounds, unit, indent, sd)
subroutine putlineint2(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinereal7(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinedouble7(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinedouble6(array, lbounds, ubounds, unit, indent, sd)
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ