68subroutine 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(DP) :: avg_value, variance_value, sd_value
93 if (
present(unit) )
then
100 if (
present(indent) )
then
101 if (len(indent) /= 0)
then
102 indent_len = len(indent)
103 indent_str(1:indent_len) = indent
110 if (
present(lbounds) .and.
present(ubounds) )
then
111 lbound_nums = lbounds
112 ubound_nums = ubounds
114 lbound_nums(1) = lbound( array, 1 )
115 ubound_nums(1) = ubound( array, 1 )
118 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
119 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
120 size_str = trim(size_str) //
')'
125 max_value = maxval(array)
130 min_value = minval(array)
135 alldim_size =
size(array)
136 avg_value = sum(array) / dble(alldim_size)
142 variance_value = 0.0d0
145 if ( alldim_size > 1 )
then
146 if (
allocated(array_packed))
then
147 deallocate(array_packed)
149 allocate( array_packed(alldim_size) )
151 do i = 1, alldim_size
152 variance_value = variance_value + &
153 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
155 variance_value = variance_value / dble(alldim_size)
156 sd_value = sqrt( variance_value )
157 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
165 & indent_str(1:indent_len) // &
166 &
'#<INT-ARRAY:: @size=%c, @max=%d, @min=%d, @avg=%f%c>', &
167 & i = (/max_value, min_value/), d = (/avg_value/), &
168 & c1 = trim(size_str), c2 = trim(sd_str) )
195subroutine putlineint2( array, lbounds, ubounds, unit, indent, sd )
200 integer,
intent(in):: array(:,:)
201 integer,
intent(in),
optional:: lbounds(2)
202 integer,
intent(in),
optional:: ubounds(2)
203 integer,
intent(in),
optional:: unit
204 character(*),
intent(in),
optional:: indent
205 logical,
intent(in),
optional:: sd
208 character(STRING):: indent_str
210 integer:: alldim_size, lbound_nums(2), ubound_nums(2)
211 character(STRING):: size_str, sd_str
212 integer:: max_value, min_value
213 integer,
allocatable:: array_packed(:)
214 real(DP) :: avg_value, variance_value, sd_value
220 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
237 if (
present(lbounds) .and.
present(ubounds) )
then
238 lbound_nums = lbounds
239 ubound_nums = ubounds
241 lbound_nums(1) = lbound( array, 1 )
242 ubound_nums(1) = ubound( array, 1 )
243 lbound_nums(2) = lbound( array, 2 )
244 ubound_nums(2) = ubound( array, 2 )
247 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
248 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
249 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
250 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
251 size_str = trim(size_str) //
')'
256 max_value = maxval(array)
261 min_value = minval(array)
266 alldim_size =
size(array)
267 avg_value = sum(array) / dble(alldim_size)
273 variance_value = 0.0d0
276 if ( alldim_size > 1 )
then
277 if (
allocated(array_packed))
then
278 deallocate(array_packed)
280 allocate( array_packed(alldim_size) )
281 array_packed = pack(array, .true.)
282 do i = 1, alldim_size
283 variance_value = variance_value + &
284 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
286 variance_value = variance_value / dble(alldim_size)
287 sd_value = sqrt( variance_value )
288 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
296 & indent_str(1:indent_len) // &
297 &
'#<INT-ARRAY:: @size=%c, @max=%d, @min=%d, @avg=%f%c>', &
298 & i = (/max_value, min_value/), d = (/avg_value/), &
299 & c1 = trim(size_str), c2 = trim(sd_str) )
326subroutine putlineint3( array, lbounds, ubounds, unit, indent, sd )
331 integer,
intent(in):: array(:,:,:)
332 integer,
intent(in),
optional:: lbounds(3)
333 integer,
intent(in),
optional:: ubounds(3)
334 integer,
intent(in),
optional:: unit
335 character(*),
intent(in),
optional:: indent
336 logical,
intent(in),
optional:: sd
339 character(STRING):: indent_str
341 integer:: alldim_size, lbound_nums(3), ubound_nums(3)
342 character(STRING):: size_str, sd_str
343 integer:: max_value, min_value
344 integer,
allocatable:: array_packed(:)
345 real(DP) :: avg_value, variance_value, sd_value
351 if (
present(unit) )
then
358 if (
present(indent) )
then
359 if (len(indent) /= 0)
then
360 indent_len = len(indent)
361 indent_str(1:indent_len) = indent
368 if (
present(lbounds) .and.
present(ubounds) )
then
369 lbound_nums = lbounds
370 ubound_nums = ubounds
372 lbound_nums(1) = lbound( array, 1 )
373 ubound_nums(1) = ubound( array, 1 )
374 lbound_nums(2) = lbound( array, 2 )
375 ubound_nums(2) = ubound( array, 2 )
376 lbound_nums(3) = lbound( array, 3 )
377 ubound_nums(3) = ubound( array, 3 )
380 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
381 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
382 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
383 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
384 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
385 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
386 size_str = trim(size_str) //
')'
391 max_value = maxval(array)
396 min_value = minval(array)
401 alldim_size =
size(array)
402 avg_value = sum(array) / dble(alldim_size)
408 variance_value = 0.0d0
411 if ( alldim_size > 1 )
then
412 if (
allocated(array_packed))
then
413 deallocate(array_packed)
415 allocate( array_packed(alldim_size) )
416 array_packed = pack(array, .true.)
417 do i = 1, alldim_size
418 variance_value = variance_value + &
419 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
421 variance_value = variance_value / dble(alldim_size)
422 sd_value = sqrt( variance_value )
423 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
431 & indent_str(1:indent_len) // &
432 &
'#<INT-ARRAY:: @size=%c, @max=%d, @min=%d, @avg=%f%c>', &
433 & i = (/max_value, min_value/), d = (/avg_value/), &
434 & c1 = trim(size_str), c2 = trim(sd_str) )
461subroutine putlineint4( array, lbounds, ubounds, unit, indent, sd )
466 integer,
intent(in):: array(:,:,:,:)
467 integer,
intent(in),
optional:: lbounds(4)
468 integer,
intent(in),
optional:: ubounds(4)
469 integer,
intent(in),
optional:: unit
470 character(*),
intent(in),
optional:: indent
471 logical,
intent(in),
optional:: sd
474 character(STRING):: indent_str
476 integer:: alldim_size, lbound_nums(4), ubound_nums(4)
477 character(STRING):: size_str, sd_str
478 integer:: max_value, min_value
479 integer,
allocatable:: array_packed(:)
480 real(DP) :: avg_value, variance_value, sd_value
486 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
503 if (
present(lbounds) .and.
present(ubounds) )
then
504 lbound_nums = lbounds
505 ubound_nums = ubounds
507 lbound_nums(1) = lbound( array, 1 )
508 ubound_nums(1) = ubound( array, 1 )
509 lbound_nums(2) = lbound( array, 2 )
510 ubound_nums(2) = ubound( array, 2 )
511 lbound_nums(3) = lbound( array, 3 )
512 ubound_nums(3) = ubound( array, 3 )
513 lbound_nums(4) = lbound( array, 4 )
514 ubound_nums(4) = ubound( array, 4 )
517 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
518 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
519 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
520 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
521 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
522 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
523 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
524 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
525 size_str = trim(size_str) //
')'
530 max_value = maxval(array)
535 min_value = minval(array)
540 alldim_size =
size(array)
541 avg_value = sum(array) / dble(alldim_size)
547 variance_value = 0.0d0
550 if ( alldim_size > 1 )
then
551 if (
allocated(array_packed))
then
552 deallocate(array_packed)
554 allocate( array_packed(alldim_size) )
555 array_packed = pack(array, .true.)
556 do i = 1, alldim_size
557 variance_value = variance_value + &
558 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
560 variance_value = variance_value / dble(alldim_size)
561 sd_value = sqrt( variance_value )
562 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
570 & indent_str(1:indent_len) // &
571 &
'#<INT-ARRAY:: @size=%c, @max=%d, @min=%d, @avg=%f%c>', &
572 & i = (/max_value, min_value/), d = (/avg_value/), &
573 & c1 = trim(size_str), c2 = trim(sd_str) )
600subroutine putlineint5( array, lbounds, ubounds, unit, indent, sd )
605 integer,
intent(in):: array(:,:,:,:,:)
606 integer,
intent(in),
optional:: lbounds(5)
607 integer,
intent(in),
optional:: ubounds(5)
608 integer,
intent(in),
optional:: unit
609 character(*),
intent(in),
optional:: indent
610 logical,
intent(in),
optional:: sd
613 character(STRING):: indent_str
615 integer:: alldim_size, lbound_nums(5), ubound_nums(5)
616 character(STRING):: size_str, sd_str
617 integer:: max_value, min_value
618 integer,
allocatable:: array_packed(:)
619 real(DP) :: avg_value, variance_value, sd_value
625 if (
present(unit) )
then
632 if (
present(indent) )
then
633 if (len(indent) /= 0)
then
634 indent_len = len(indent)
635 indent_str(1:indent_len) = indent
642 if (
present(lbounds) .and.
present(ubounds) )
then
643 lbound_nums = lbounds
644 ubound_nums = ubounds
646 lbound_nums(1) = lbound( array, 1 )
647 ubound_nums(1) = ubound( array, 1 )
648 lbound_nums(2) = lbound( array, 2 )
649 ubound_nums(2) = ubound( array, 2 )
650 lbound_nums(3) = lbound( array, 3 )
651 ubound_nums(3) = ubound( array, 3 )
652 lbound_nums(4) = lbound( array, 4 )
653 ubound_nums(4) = ubound( array, 4 )
654 lbound_nums(5) = lbound( array, 5 )
655 ubound_nums(5) = ubound( array, 5 )
658 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
659 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
660 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
661 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
662 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
663 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
664 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
665 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
666 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
667 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
668 size_str = trim(size_str) //
')'
673 max_value = maxval(array)
678 min_value = minval(array)
683 alldim_size =
size(array)
684 avg_value = sum(array) / dble(alldim_size)
690 variance_value = 0.0d0
693 if ( alldim_size > 1 )
then
694 if (
allocated(array_packed))
then
695 deallocate(array_packed)
697 allocate( array_packed(alldim_size) )
698 array_packed = pack(array, .true.)
699 do i = 1, alldim_size
700 variance_value = variance_value + &
701 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
703 variance_value = variance_value / dble(alldim_size)
704 sd_value = sqrt( variance_value )
705 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
713 & indent_str(1:indent_len) // &
714 &
'#<INT-ARRAY:: @size=%c, @max=%d, @min=%d, @avg=%f%c>', &
715 & i = (/max_value, min_value/), d = (/avg_value/), &
716 & c1 = trim(size_str), c2 = trim(sd_str) )
743subroutine putlineint6( array, lbounds, ubounds, unit, indent, sd )
748 integer,
intent(in):: array(:,:,:,:,:,:)
749 integer,
intent(in),
optional:: lbounds(6)
750 integer,
intent(in),
optional:: ubounds(6)
751 integer,
intent(in),
optional:: unit
752 character(*),
intent(in),
optional:: indent
753 logical,
intent(in),
optional:: sd
756 character(STRING):: indent_str
758 integer:: alldim_size, lbound_nums(6), ubound_nums(6)
759 character(STRING):: size_str, sd_str
760 integer:: max_value, min_value
761 integer,
allocatable:: array_packed(:)
762 real(DP) :: avg_value, variance_value, sd_value
768 if (
present(unit) )
then
775 if (
present(indent) )
then
776 if (len(indent) /= 0)
then
777 indent_len = len(indent)
778 indent_str(1:indent_len) = indent
785 if (
present(lbounds) .and.
present(ubounds) )
then
786 lbound_nums = lbounds
787 ubound_nums = ubounds
789 lbound_nums(1) = lbound( array, 1 )
790 ubound_nums(1) = ubound( array, 1 )
791 lbound_nums(2) = lbound( array, 2 )
792 ubound_nums(2) = ubound( array, 2 )
793 lbound_nums(3) = lbound( array, 3 )
794 ubound_nums(3) = ubound( array, 3 )
795 lbound_nums(4) = lbound( array, 4 )
796 ubound_nums(4) = ubound( array, 4 )
797 lbound_nums(5) = lbound( array, 5 )
798 ubound_nums(5) = ubound( array, 5 )
799 lbound_nums(6) = lbound( array, 6 )
800 ubound_nums(6) = ubound( array, 6 )
803 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
804 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
805 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
806 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
807 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
808 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
809 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
810 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
811 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
812 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
813 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(6)))
814 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(6)))
815 size_str = trim(size_str) //
')'
820 max_value = maxval(array)
825 min_value = minval(array)
830 alldim_size =
size(array)
831 avg_value = sum(array) / dble(alldim_size)
837 variance_value = 0.0d0
840 if ( alldim_size > 1 )
then
841 if (
allocated(array_packed))
then
842 deallocate(array_packed)
844 allocate( array_packed(alldim_size) )
845 array_packed = pack(array, .true.)
846 do i = 1, alldim_size
847 variance_value = variance_value + &
848 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
850 variance_value = variance_value / dble(alldim_size)
851 sd_value = sqrt( variance_value )
852 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
860 & indent_str(1:indent_len) // &
861 &
'#<INT-ARRAY:: @size=%c, @max=%d, @min=%d, @avg=%f%c>', &
862 & i = (/max_value, min_value/), d = (/avg_value/), &
863 & c1 = trim(size_str), c2 = trim(sd_str) )
890subroutine putlineint7( array, lbounds, ubounds, unit, indent, sd )
895 integer,
intent(in):: array(:,:,:,:,:,:,:)
896 integer,
intent(in),
optional:: lbounds(7)
897 integer,
intent(in),
optional:: ubounds(7)
898 integer,
intent(in),
optional:: unit
899 character(*),
intent(in),
optional:: indent
900 logical,
intent(in),
optional:: sd
903 character(STRING):: indent_str
905 integer:: alldim_size, lbound_nums(7), ubound_nums(7)
906 character(STRING):: size_str, sd_str
907 integer:: max_value, min_value
908 integer,
allocatable:: array_packed(:)
909 real(DP) :: avg_value, variance_value, sd_value
915 if (
present(unit) )
then
922 if (
present(indent) )
then
923 if (len(indent) /= 0)
then
924 indent_len = len(indent)
925 indent_str(1:indent_len) = indent
932 if (
present(lbounds) .and.
present(ubounds) )
then
933 lbound_nums = lbounds
934 ubound_nums = ubounds
936 lbound_nums(1) = lbound( array, 1 )
937 ubound_nums(1) = ubound( array, 1 )
938 lbound_nums(2) = lbound( array, 2 )
939 ubound_nums(2) = ubound( array, 2 )
940 lbound_nums(3) = lbound( array, 3 )
941 ubound_nums(3) = ubound( array, 3 )
942 lbound_nums(4) = lbound( array, 4 )
943 ubound_nums(4) = ubound( array, 4 )
944 lbound_nums(5) = lbound( array, 5 )
945 ubound_nums(5) = ubound( array, 5 )
946 lbound_nums(6) = lbound( array, 6 )
947 ubound_nums(6) = ubound( array, 6 )
948 lbound_nums(7) = lbound( array, 7 )
949 ubound_nums(7) = ubound( array, 7 )
952 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
953 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
954 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
955 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
956 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
957 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
958 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
959 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
960 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
961 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
962 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(6)))
963 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(6)))
964 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(7)))
965 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(7)))
966 size_str = trim(size_str) //
')'
971 max_value = maxval(array)
976 min_value = minval(array)
981 alldim_size =
size(array)
982 avg_value = sum(array) / dble(alldim_size)
988 variance_value = 0.0d0
991 if ( alldim_size > 1 )
then
992 if (
allocated(array_packed))
then
993 deallocate(array_packed)
995 allocate( array_packed(alldim_size) )
996 array_packed = pack(array, .true.)
997 do i = 1, alldim_size
998 variance_value = variance_value + &
999 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
1001 variance_value = variance_value / dble(alldim_size)
1002 sd_value = sqrt( variance_value )
1003 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
1011 & indent_str(1:indent_len) // &
1012 &
'#<INT-ARRAY:: @size=%c, @max=%d, @min=%d, @avg=%f%c>', &
1013 & i = (/max_value, min_value/), d = (/avg_value/), &
1014 & c1 = trim(size_str), c2 = trim(sd_str) )
1046 real(SP),
intent(in):: array(:)
1047 integer,
intent(in),
optional:: lbounds(1)
1048 integer,
intent(in),
optional:: ubounds(1)
1049 integer,
intent(in),
optional:: unit
1050 character(*),
intent(in),
optional:: indent
1051 logical,
intent(in),
optional:: sd
1053 integer:: indent_len
1054 character(STRING):: indent_str
1056 integer:: alldim_size, lbound_nums(1), ubound_nums(1)
1057 character(STRING):: size_str, sd_str
1058 real(SP) :: max_value, min_value
1059 real(SP),
allocatable :: array_packed(:)
1060 real(DP) :: avg_value, variance_value, sd_value
1066 if (
present(unit) )
then
1073 if (
present(indent) )
then
1074 if (len(indent) /= 0)
then
1075 indent_len = len(indent)
1076 indent_str(1:indent_len) = indent
1083 if (
present(lbounds) .and.
present(ubounds) )
then
1084 lbound_nums = lbounds
1085 ubound_nums = ubounds
1087 lbound_nums(1) = lbound( array, 1 )
1088 ubound_nums(1) = ubound( array, 1 )
1091 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
1092 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
1093 size_str = trim(size_str) //
')'
1098 max_value = maxval(array)
1103 min_value = minval(array)
1108 alldim_size =
size(array)
1109 avg_value = sum(array) / dble(alldim_size)
1115 variance_value = 0.0d0
1118 if ( alldim_size > 1 )
then
1119 if (
allocated(array_packed))
then
1120 deallocate(array_packed)
1122 allocate( array_packed(alldim_size) )
1123 array_packed = array
1124 do i = 1, alldim_size
1125 variance_value = variance_value + &
1126 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
1128 variance_value = variance_value / dble(alldim_size)
1129 sd_value = sqrt( variance_value )
1130 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
1138 & indent_str(1:indent_len) // &
1139 &
'#<SP-ARRAY:: @size=%c, @max=%r, @min=%r, @avg=%f%c>', &
1140 & r = (/max_value, min_value/), d = (/avg_value/), &
1141 & c1 = trim(size_str), c2 = trim(sd_str) )
1173 real(SP),
intent(in):: array(:,:)
1174 integer,
intent(in),
optional:: lbounds(2)
1175 integer,
intent(in),
optional:: ubounds(2)
1176 integer,
intent(in),
optional:: unit
1177 character(*),
intent(in),
optional:: indent
1178 logical,
intent(in),
optional:: sd
1180 integer:: indent_len
1181 character(STRING):: indent_str
1183 integer:: alldim_size, lbound_nums(2), ubound_nums(2)
1184 character(STRING):: size_str, sd_str
1185 real(SP) :: max_value, min_value
1186 real(SP),
allocatable :: array_packed(:)
1187 real(DP) :: avg_value, variance_value, sd_value
1193 if (
present(unit) )
then
1200 if (
present(indent) )
then
1201 if (len(indent) /= 0)
then
1202 indent_len = len(indent)
1203 indent_str(1:indent_len) = indent
1210 if (
present(lbounds) .and.
present(ubounds) )
then
1211 lbound_nums = lbounds
1212 ubound_nums = ubounds
1214 lbound_nums(1) = lbound( array, 1 )
1215 ubound_nums(1) = ubound( array, 1 )
1216 lbound_nums(2) = lbound( array, 2 )
1217 ubound_nums(2) = ubound( array, 2 )
1220 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
1221 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
1222 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
1223 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
1224 size_str = trim(size_str) //
')'
1229 max_value = maxval(array)
1234 min_value = minval(array)
1239 alldim_size =
size(array)
1240 avg_value = sum(array) / dble(alldim_size)
1246 variance_value = 0.0d0
1249 if ( alldim_size > 1 )
then
1250 if (
allocated(array_packed))
then
1251 deallocate(array_packed)
1253 allocate( array_packed(alldim_size) )
1254 array_packed = pack(array, .true.)
1255 do i = 1, alldim_size
1256 variance_value = variance_value + &
1257 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
1259 variance_value = variance_value / dble(alldim_size)
1260 sd_value = sqrt( variance_value )
1261 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
1269 & indent_str(1:indent_len) // &
1270 &
'#<SP-ARRAY:: @size=%c, @max=%r, @min=%r, @avg=%f%c>', &
1271 & r = (/max_value, min_value/), d = (/avg_value/), &
1272 & c1 = trim(size_str), c2 = trim(sd_str) )
1304 real(SP),
intent(in):: array(:,:,:)
1305 integer,
intent(in),
optional:: lbounds(3)
1306 integer,
intent(in),
optional:: ubounds(3)
1307 integer,
intent(in),
optional:: unit
1308 character(*),
intent(in),
optional:: indent
1309 logical,
intent(in),
optional:: sd
1311 integer:: indent_len
1312 character(STRING):: indent_str
1314 integer:: alldim_size, lbound_nums(3), ubound_nums(3)
1315 character(STRING):: size_str, sd_str
1316 real(SP) :: max_value, min_value
1317 real(SP),
allocatable :: array_packed(:)
1318 real(DP) :: avg_value, variance_value, sd_value
1324 if (
present(unit) )
then
1331 if (
present(indent) )
then
1332 if (len(indent) /= 0)
then
1333 indent_len = len(indent)
1334 indent_str(1:indent_len) = indent
1341 if (
present(lbounds) .and.
present(ubounds) )
then
1342 lbound_nums = lbounds
1343 ubound_nums = ubounds
1345 lbound_nums(1) = lbound( array, 1 )
1346 ubound_nums(1) = ubound( array, 1 )
1347 lbound_nums(2) = lbound( array, 2 )
1348 ubound_nums(2) = ubound( array, 2 )
1349 lbound_nums(3) = lbound( array, 3 )
1350 ubound_nums(3) = ubound( array, 3 )
1353 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
1354 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
1355 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
1356 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
1357 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
1358 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
1359 size_str = trim(size_str) //
')'
1364 max_value = maxval(array)
1369 min_value = minval(array)
1374 alldim_size =
size(array)
1375 avg_value = sum(array) / dble(alldim_size)
1381 variance_value = 0.0d0
1384 if ( alldim_size > 1 )
then
1385 if (
allocated(array_packed))
then
1386 deallocate(array_packed)
1388 allocate( array_packed(alldim_size) )
1389 array_packed = pack(array, .true.)
1390 do i = 1, alldim_size
1391 variance_value = variance_value + &
1392 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
1394 variance_value = variance_value / dble(alldim_size)
1395 sd_value = sqrt( variance_value )
1396 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
1404 & indent_str(1:indent_len) // &
1405 &
'#<SP-ARRAY:: @size=%c, @max=%r, @min=%r, @avg=%f%c>', &
1406 & r = (/max_value, min_value/), d = (/avg_value/), &
1407 & c1 = trim(size_str), c2 = trim(sd_str) )
1439 real(SP),
intent(in):: array(:,:,:,:)
1440 integer,
intent(in),
optional:: lbounds(4)
1441 integer,
intent(in),
optional:: ubounds(4)
1442 integer,
intent(in),
optional:: unit
1443 character(*),
intent(in),
optional:: indent
1444 logical,
intent(in),
optional:: sd
1446 integer:: indent_len
1447 character(STRING):: indent_str
1449 integer:: alldim_size, lbound_nums(4), ubound_nums(4)
1450 character(STRING):: size_str, sd_str
1451 real(SP) :: max_value, min_value
1452 real(SP),
allocatable :: array_packed(:)
1453 real(DP) :: avg_value, variance_value, sd_value
1459 if (
present(unit) )
then
1466 if (
present(indent) )
then
1467 if (len(indent) /= 0)
then
1468 indent_len = len(indent)
1469 indent_str(1:indent_len) = indent
1476 if (
present(lbounds) .and.
present(ubounds) )
then
1477 lbound_nums = lbounds
1478 ubound_nums = ubounds
1480 lbound_nums(1) = lbound( array, 1 )
1481 ubound_nums(1) = ubound( array, 1 )
1482 lbound_nums(2) = lbound( array, 2 )
1483 ubound_nums(2) = ubound( array, 2 )
1484 lbound_nums(3) = lbound( array, 3 )
1485 ubound_nums(3) = ubound( array, 3 )
1486 lbound_nums(4) = lbound( array, 4 )
1487 ubound_nums(4) = ubound( array, 4 )
1490 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
1491 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
1492 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
1493 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
1494 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
1495 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
1496 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
1497 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
1498 size_str = trim(size_str) //
')'
1503 max_value = maxval(array)
1508 min_value = minval(array)
1513 alldim_size =
size(array)
1514 avg_value = sum(array) / dble(alldim_size)
1520 variance_value = 0.0d0
1523 if ( alldim_size > 1 )
then
1524 if (
allocated(array_packed))
then
1525 deallocate(array_packed)
1527 allocate( array_packed(alldim_size) )
1528 array_packed = pack(array, .true.)
1529 do i = 1, alldim_size
1530 variance_value = variance_value + &
1531 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
1533 variance_value = variance_value / dble(alldim_size)
1534 sd_value = sqrt( variance_value )
1535 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
1543 & indent_str(1:indent_len) // &
1544 &
'#<SP-ARRAY:: @size=%c, @max=%r, @min=%r, @avg=%f%c>', &
1545 & r = (/max_value, min_value/), d = (/avg_value/), &
1546 & c1 = trim(size_str), c2 = trim(sd_str) )
1578 real(SP),
intent(in):: array(:,:,:,:,:)
1579 integer,
intent(in),
optional:: lbounds(5)
1580 integer,
intent(in),
optional:: ubounds(5)
1581 integer,
intent(in),
optional:: unit
1582 character(*),
intent(in),
optional:: indent
1583 logical,
intent(in),
optional:: sd
1585 integer:: indent_len
1586 character(STRING):: indent_str
1588 integer:: alldim_size, lbound_nums(5), ubound_nums(5)
1589 character(STRING):: size_str, sd_str
1590 real(SP) :: max_value, min_value
1591 real(SP),
allocatable :: array_packed(:)
1592 real(DP) :: avg_value, variance_value, sd_value
1598 if (
present(unit) )
then
1605 if (
present(indent) )
then
1606 if (len(indent) /= 0)
then
1607 indent_len = len(indent)
1608 indent_str(1:indent_len) = indent
1615 if (
present(lbounds) .and.
present(ubounds) )
then
1616 lbound_nums = lbounds
1617 ubound_nums = ubounds
1619 lbound_nums(1) = lbound( array, 1 )
1620 ubound_nums(1) = ubound( array, 1 )
1621 lbound_nums(2) = lbound( array, 2 )
1622 ubound_nums(2) = ubound( array, 2 )
1623 lbound_nums(3) = lbound( array, 3 )
1624 ubound_nums(3) = ubound( array, 3 )
1625 lbound_nums(4) = lbound( array, 4 )
1626 ubound_nums(4) = ubound( array, 4 )
1627 lbound_nums(5) = lbound( array, 5 )
1628 ubound_nums(5) = ubound( array, 5 )
1631 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
1632 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
1633 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
1634 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
1635 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
1636 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
1637 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
1638 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
1639 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
1640 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
1641 size_str = trim(size_str) //
')'
1646 max_value = maxval(array)
1651 min_value = minval(array)
1656 alldim_size =
size(array)
1657 avg_value = sum(array) / dble(alldim_size)
1663 variance_value = 0.0d0
1666 if ( alldim_size > 1 )
then
1667 if (
allocated(array_packed))
then
1668 deallocate(array_packed)
1670 allocate( array_packed(alldim_size) )
1671 array_packed = pack(array, .true.)
1672 do i = 1, alldim_size
1673 variance_value = variance_value + &
1674 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
1676 variance_value = variance_value / dble(alldim_size)
1677 sd_value = sqrt( variance_value )
1678 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
1686 & indent_str(1:indent_len) // &
1687 &
'#<SP-ARRAY:: @size=%c, @max=%r, @min=%r, @avg=%f%c>', &
1688 & r = (/max_value, min_value/), d = (/avg_value/), &
1689 & c1 = trim(size_str), c2 = trim(sd_str) )
1721 real(SP),
intent(in):: array(:,:,:,:,:,:)
1722 integer,
intent(in),
optional:: lbounds(6)
1723 integer,
intent(in),
optional:: ubounds(6)
1724 integer,
intent(in),
optional:: unit
1725 character(*),
intent(in),
optional:: indent
1726 logical,
intent(in),
optional:: sd
1728 integer:: indent_len
1729 character(STRING):: indent_str
1731 integer:: alldim_size, lbound_nums(6), ubound_nums(6)
1732 character(STRING):: size_str, sd_str
1733 real(SP) :: max_value, min_value
1734 real(SP),
allocatable :: array_packed(:)
1735 real(DP) :: avg_value, variance_value, sd_value
1741 if (
present(unit) )
then
1748 if (
present(indent) )
then
1749 if (len(indent) /= 0)
then
1750 indent_len = len(indent)
1751 indent_str(1:indent_len) = indent
1758 if (
present(lbounds) .and.
present(ubounds) )
then
1759 lbound_nums = lbounds
1760 ubound_nums = ubounds
1762 lbound_nums(1) = lbound( array, 1 )
1763 ubound_nums(1) = ubound( array, 1 )
1764 lbound_nums(2) = lbound( array, 2 )
1765 ubound_nums(2) = ubound( array, 2 )
1766 lbound_nums(3) = lbound( array, 3 )
1767 ubound_nums(3) = ubound( array, 3 )
1768 lbound_nums(4) = lbound( array, 4 )
1769 ubound_nums(4) = ubound( array, 4 )
1770 lbound_nums(5) = lbound( array, 5 )
1771 ubound_nums(5) = ubound( array, 5 )
1772 lbound_nums(6) = lbound( array, 6 )
1773 ubound_nums(6) = ubound( array, 6 )
1776 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
1777 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
1778 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
1779 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
1780 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
1781 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
1782 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
1783 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
1784 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
1785 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
1786 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(6)))
1787 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(6)))
1788 size_str = trim(size_str) //
')'
1793 max_value = maxval(array)
1798 min_value = minval(array)
1803 alldim_size =
size(array)
1804 avg_value = sum(array) / dble(alldim_size)
1810 variance_value = 0.0d0
1813 if ( alldim_size > 1 )
then
1814 if (
allocated(array_packed))
then
1815 deallocate(array_packed)
1817 allocate( array_packed(alldim_size) )
1818 array_packed = pack(array, .true.)
1819 do i = 1, alldim_size
1820 variance_value = variance_value + &
1821 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
1823 variance_value = variance_value / dble(alldim_size)
1824 sd_value = sqrt( variance_value )
1825 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
1833 & indent_str(1:indent_len) // &
1834 &
'#<SP-ARRAY:: @size=%c, @max=%r, @min=%r, @avg=%f%c>', &
1835 & r = (/max_value, min_value/), d = (/avg_value/), &
1836 & c1 = trim(size_str), c2 = trim(sd_str) )
1868 real(SP),
intent(in):: array(:,:,:,:,:,:,:)
1869 integer,
intent(in),
optional:: lbounds(7)
1870 integer,
intent(in),
optional:: ubounds(7)
1871 integer,
intent(in),
optional:: unit
1872 character(*),
intent(in),
optional:: indent
1873 logical,
intent(in),
optional:: sd
1875 integer:: indent_len
1876 character(STRING):: indent_str
1878 integer:: alldim_size, lbound_nums(7), ubound_nums(7)
1879 character(STRING):: size_str, sd_str
1880 real(SP) :: max_value, min_value
1881 real(SP),
allocatable :: array_packed(:)
1882 real(DP) :: avg_value, variance_value, sd_value
1888 if (
present(unit) )
then
1895 if (
present(indent) )
then
1896 if (len(indent) /= 0)
then
1897 indent_len = len(indent)
1898 indent_str(1:indent_len) = indent
1905 if (
present(lbounds) .and.
present(ubounds) )
then
1906 lbound_nums = lbounds
1907 ubound_nums = ubounds
1909 lbound_nums(1) = lbound( array, 1 )
1910 ubound_nums(1) = ubound( array, 1 )
1911 lbound_nums(2) = lbound( array, 2 )
1912 ubound_nums(2) = ubound( array, 2 )
1913 lbound_nums(3) = lbound( array, 3 )
1914 ubound_nums(3) = ubound( array, 3 )
1915 lbound_nums(4) = lbound( array, 4 )
1916 ubound_nums(4) = ubound( array, 4 )
1917 lbound_nums(5) = lbound( array, 5 )
1918 ubound_nums(5) = ubound( array, 5 )
1919 lbound_nums(6) = lbound( array, 6 )
1920 ubound_nums(6) = ubound( array, 6 )
1921 lbound_nums(7) = lbound( array, 7 )
1922 ubound_nums(7) = ubound( array, 7 )
1925 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
1926 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
1927 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
1928 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
1929 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
1930 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
1931 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
1932 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
1933 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
1934 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
1935 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(6)))
1936 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(6)))
1937 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(7)))
1938 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(7)))
1939 size_str = trim(size_str) //
')'
1944 max_value = maxval(array)
1949 min_value = minval(array)
1954 alldim_size =
size(array)
1955 avg_value = sum(array) / dble(alldim_size)
1961 variance_value = 0.0d0
1964 if ( alldim_size > 1 )
then
1965 if (
allocated(array_packed))
then
1966 deallocate(array_packed)
1968 allocate( array_packed(alldim_size) )
1969 array_packed = pack(array, .true.)
1970 do i = 1, alldim_size
1971 variance_value = variance_value + &
1972 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
1974 variance_value = variance_value / dble(alldim_size)
1975 sd_value = sqrt( variance_value )
1976 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
1984 & indent_str(1:indent_len) // &
1985 &
'#<SP-ARRAY:: @size=%c, @max=%r, @min=%r, @avg=%f%c>', &
1986 & r = (/max_value, min_value/), d = (/avg_value/), &
1987 & c1 = trim(size_str), c2 = trim(sd_str) )
2019 real(DP),
intent(in):: array(:)
2020 integer,
intent(in),
optional:: lbounds(1)
2021 integer,
intent(in),
optional:: ubounds(1)
2022 integer,
intent(in),
optional:: unit
2023 character(*),
intent(in),
optional:: indent
2024 logical,
intent(in),
optional:: sd
2026 integer:: indent_len
2027 character(STRING):: indent_str
2029 integer:: alldim_size, lbound_nums(1), ubound_nums(1)
2030 character(STRING):: size_str, sd_str
2031 real(DP) :: max_value, min_value
2032 real(DP),
allocatable :: array_packed(:)
2033 real(DP) :: avg_value, variance_value, sd_value
2039 if (
present(unit) )
then
2046 if (
present(indent) )
then
2047 if (len(indent) /= 0)
then
2048 indent_len = len(indent)
2049 indent_str(1:indent_len) = indent
2056 if (
present(lbounds) .and.
present(ubounds) )
then
2057 lbound_nums = lbounds
2058 ubound_nums = ubounds
2060 lbound_nums(1) = lbound( array, 1 )
2061 ubound_nums(1) = ubound( array, 1 )
2064 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
2065 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
2066 size_str = trim(size_str) //
')'
2071 max_value = maxval(array)
2076 min_value = minval(array)
2081 alldim_size =
size(array)
2082 avg_value = sum(array) / dble(alldim_size)
2088 variance_value = 0.0d0
2091 if ( alldim_size > 1 )
then
2092 if (
allocated(array_packed))
then
2093 deallocate(array_packed)
2095 allocate( array_packed(alldim_size) )
2096 array_packed = array
2097 do i = 1, alldim_size
2098 variance_value = variance_value + &
2099 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
2101 variance_value = variance_value / dble(alldim_size)
2102 sd_value = sqrt( variance_value )
2103 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
2111 & indent_str(1:indent_len) // &
2112 &
'#<DP-ARRAY:: @size=%c, @max=%f, @min=%f, @avg=%f%c>', &
2113 & d = (/max_value, min_value, avg_value/), &
2114 & c1 = trim(size_str), c2 = trim(sd_str) )
2146 real(DP),
intent(in):: array(:,:)
2147 integer,
intent(in),
optional:: lbounds(2)
2148 integer,
intent(in),
optional:: ubounds(2)
2149 integer,
intent(in),
optional:: unit
2150 character(*),
intent(in),
optional:: indent
2151 logical,
intent(in),
optional:: sd
2153 integer:: indent_len
2154 character(STRING):: indent_str
2156 integer:: alldim_size, lbound_nums(2), ubound_nums(2)
2157 character(STRING):: size_str, sd_str
2158 real(DP) :: max_value, min_value
2159 real(DP),
allocatable :: array_packed(:)
2160 real(DP) :: avg_value, variance_value, sd_value
2166 if (
present(unit) )
then
2173 if (
present(indent) )
then
2174 if (len(indent) /= 0)
then
2175 indent_len = len(indent)
2176 indent_str(1:indent_len) = indent
2183 if (
present(lbounds) .and.
present(ubounds) )
then
2184 lbound_nums = lbounds
2185 ubound_nums = ubounds
2187 lbound_nums(1) = lbound( array, 1 )
2188 ubound_nums(1) = ubound( array, 1 )
2189 lbound_nums(2) = lbound( array, 2 )
2190 ubound_nums(2) = ubound( array, 2 )
2193 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
2194 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
2195 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
2196 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
2197 size_str = trim(size_str) //
')'
2202 max_value = maxval(array)
2207 min_value = minval(array)
2212 alldim_size =
size(array)
2213 avg_value = sum(array) / dble(alldim_size)
2219 variance_value = 0.0d0
2222 if ( alldim_size > 1 )
then
2223 if (
allocated(array_packed))
then
2224 deallocate(array_packed)
2226 allocate( array_packed(alldim_size) )
2227 array_packed = pack(array, .true.)
2228 do i = 1, alldim_size
2229 variance_value = variance_value + &
2230 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
2232 variance_value = variance_value / dble(alldim_size)
2233 sd_value = sqrt( variance_value )
2234 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
2242 & indent_str(1:indent_len) // &
2243 &
'#<DP-ARRAY:: @size=%c, @max=%f, @min=%f, @avg=%f%c>', &
2244 & d = (/max_value, min_value, avg_value/), &
2245 & c1 = trim(size_str), c2 = trim(sd_str) )
2277 real(DP),
intent(in):: array(:,:,:)
2278 integer,
intent(in),
optional:: lbounds(3)
2279 integer,
intent(in),
optional:: ubounds(3)
2280 integer,
intent(in),
optional:: unit
2281 character(*),
intent(in),
optional:: indent
2282 logical,
intent(in),
optional:: sd
2284 integer:: indent_len
2285 character(STRING):: indent_str
2287 integer:: alldim_size, lbound_nums(3), ubound_nums(3)
2288 character(STRING):: size_str, sd_str
2289 real(DP) :: max_value, min_value
2290 real(DP),
allocatable :: array_packed(:)
2291 real(DP) :: avg_value, variance_value, sd_value
2297 if (
present(unit) )
then
2304 if (
present(indent) )
then
2305 if (len(indent) /= 0)
then
2306 indent_len = len(indent)
2307 indent_str(1:indent_len) = indent
2314 if (
present(lbounds) .and.
present(ubounds) )
then
2315 lbound_nums = lbounds
2316 ubound_nums = ubounds
2318 lbound_nums(1) = lbound( array, 1 )
2319 ubound_nums(1) = ubound( array, 1 )
2320 lbound_nums(2) = lbound( array, 2 )
2321 ubound_nums(2) = ubound( array, 2 )
2322 lbound_nums(3) = lbound( array, 3 )
2323 ubound_nums(3) = ubound( array, 3 )
2326 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
2327 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
2328 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
2329 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
2330 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
2331 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
2332 size_str = trim(size_str) //
')'
2337 max_value = maxval(array)
2342 min_value = minval(array)
2347 alldim_size =
size(array)
2348 avg_value = sum(array) / dble(alldim_size)
2354 variance_value = 0.0d0
2357 if ( alldim_size > 1 )
then
2358 if (
allocated(array_packed))
then
2359 deallocate(array_packed)
2361 allocate( array_packed(alldim_size) )
2362 array_packed = pack(array, .true.)
2363 do i = 1, alldim_size
2364 variance_value = variance_value + &
2365 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
2367 variance_value = variance_value / dble(alldim_size)
2368 sd_value = sqrt( variance_value )
2369 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
2377 & indent_str(1:indent_len) // &
2378 &
'#<DP-ARRAY:: @size=%c, @max=%f, @min=%f, @avg=%f%c>', &
2379 & d = (/max_value, min_value, avg_value/), &
2380 & c1 = trim(size_str), c2 = trim(sd_str) )
2412 real(DP),
intent(in):: array(:,:,:,:)
2413 integer,
intent(in),
optional:: lbounds(4)
2414 integer,
intent(in),
optional:: ubounds(4)
2415 integer,
intent(in),
optional:: unit
2416 character(*),
intent(in),
optional:: indent
2417 logical,
intent(in),
optional:: sd
2419 integer:: indent_len
2420 character(STRING):: indent_str
2422 integer:: alldim_size, lbound_nums(4), ubound_nums(4)
2423 character(STRING):: size_str, sd_str
2424 real(DP) :: max_value, min_value
2425 real(DP),
allocatable :: array_packed(:)
2426 real(DP) :: avg_value, variance_value, sd_value
2432 if (
present(unit) )
then
2439 if (
present(indent) )
then
2440 if (len(indent) /= 0)
then
2441 indent_len = len(indent)
2442 indent_str(1:indent_len) = indent
2449 if (
present(lbounds) .and.
present(ubounds) )
then
2450 lbound_nums = lbounds
2451 ubound_nums = ubounds
2453 lbound_nums(1) = lbound( array, 1 )
2454 ubound_nums(1) = ubound( array, 1 )
2455 lbound_nums(2) = lbound( array, 2 )
2456 ubound_nums(2) = ubound( array, 2 )
2457 lbound_nums(3) = lbound( array, 3 )
2458 ubound_nums(3) = ubound( array, 3 )
2459 lbound_nums(4) = lbound( array, 4 )
2460 ubound_nums(4) = ubound( array, 4 )
2463 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
2464 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
2465 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
2466 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
2467 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
2468 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
2469 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
2470 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
2471 size_str = trim(size_str) //
')'
2476 max_value = maxval(array)
2481 min_value = minval(array)
2486 alldim_size =
size(array)
2487 avg_value = sum(array) / dble(alldim_size)
2493 variance_value = 0.0d0
2496 if ( alldim_size > 1 )
then
2497 if (
allocated(array_packed))
then
2498 deallocate(array_packed)
2500 allocate( array_packed(alldim_size) )
2501 array_packed = pack(array, .true.)
2502 do i = 1, alldim_size
2503 variance_value = variance_value + &
2504 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
2506 variance_value = variance_value / dble(alldim_size)
2507 sd_value = sqrt( variance_value )
2508 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
2516 & indent_str(1:indent_len) // &
2517 &
'#<DP-ARRAY:: @size=%c, @max=%f, @min=%f, @avg=%f%c>', &
2518 & d = (/max_value, min_value, avg_value/), &
2519 & c1 = trim(size_str), c2 = trim(sd_str) )
2551 real(DP),
intent(in):: array(:,:,:,:,:)
2552 integer,
intent(in),
optional:: lbounds(5)
2553 integer,
intent(in),
optional:: ubounds(5)
2554 integer,
intent(in),
optional:: unit
2555 character(*),
intent(in),
optional:: indent
2556 logical,
intent(in),
optional:: sd
2558 integer:: indent_len
2559 character(STRING):: indent_str
2561 integer:: alldim_size, lbound_nums(5), ubound_nums(5)
2562 character(STRING):: size_str, sd_str
2563 real(DP) :: max_value, min_value
2564 real(DP),
allocatable :: array_packed(:)
2565 real(DP) :: avg_value, variance_value, sd_value
2571 if (
present(unit) )
then
2578 if (
present(indent) )
then
2579 if (len(indent) /= 0)
then
2580 indent_len = len(indent)
2581 indent_str(1:indent_len) = indent
2588 if (
present(lbounds) .and.
present(ubounds) )
then
2589 lbound_nums = lbounds
2590 ubound_nums = ubounds
2592 lbound_nums(1) = lbound( array, 1 )
2593 ubound_nums(1) = ubound( array, 1 )
2594 lbound_nums(2) = lbound( array, 2 )
2595 ubound_nums(2) = ubound( array, 2 )
2596 lbound_nums(3) = lbound( array, 3 )
2597 ubound_nums(3) = ubound( array, 3 )
2598 lbound_nums(4) = lbound( array, 4 )
2599 ubound_nums(4) = ubound( array, 4 )
2600 lbound_nums(5) = lbound( array, 5 )
2601 ubound_nums(5) = ubound( array, 5 )
2604 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
2605 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
2606 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
2607 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
2608 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
2609 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
2610 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
2611 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
2612 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
2613 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
2614 size_str = trim(size_str) //
')'
2619 max_value = maxval(array)
2624 min_value = minval(array)
2629 alldim_size =
size(array)
2630 avg_value = sum(array) / dble(alldim_size)
2636 variance_value = 0.0d0
2639 if ( alldim_size > 1 )
then
2640 if (
allocated(array_packed))
then
2641 deallocate(array_packed)
2643 allocate( array_packed(alldim_size) )
2644 array_packed = pack(array, .true.)
2645 do i = 1, alldim_size
2646 variance_value = variance_value + &
2647 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
2649 variance_value = variance_value / dble(alldim_size)
2650 sd_value = sqrt( variance_value )
2651 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
2659 & indent_str(1:indent_len) // &
2660 &
'#<DP-ARRAY:: @size=%c, @max=%f, @min=%f, @avg=%f%c>', &
2661 & d = (/max_value, min_value, avg_value/), &
2662 & c1 = trim(size_str), c2 = trim(sd_str) )
2694 real(DP),
intent(in):: array(:,:,:,:,:,:)
2695 integer,
intent(in),
optional:: lbounds(6)
2696 integer,
intent(in),
optional:: ubounds(6)
2697 integer,
intent(in),
optional:: unit
2698 character(*),
intent(in),
optional:: indent
2699 logical,
intent(in),
optional:: sd
2701 integer:: indent_len
2702 character(STRING):: indent_str
2704 integer:: alldim_size, lbound_nums(6), ubound_nums(6)
2705 character(STRING):: size_str, sd_str
2706 real(DP) :: max_value, min_value
2707 real(DP),
allocatable :: array_packed(:)
2708 real(DP) :: avg_value, variance_value, sd_value
2714 if (
present(unit) )
then
2721 if (
present(indent) )
then
2722 if (len(indent) /= 0)
then
2723 indent_len = len(indent)
2724 indent_str(1:indent_len) = indent
2731 if (
present(lbounds) .and.
present(ubounds) )
then
2732 lbound_nums = lbounds
2733 ubound_nums = ubounds
2735 lbound_nums(1) = lbound( array, 1 )
2736 ubound_nums(1) = ubound( array, 1 )
2737 lbound_nums(2) = lbound( array, 2 )
2738 ubound_nums(2) = ubound( array, 2 )
2739 lbound_nums(3) = lbound( array, 3 )
2740 ubound_nums(3) = ubound( array, 3 )
2741 lbound_nums(4) = lbound( array, 4 )
2742 ubound_nums(4) = ubound( array, 4 )
2743 lbound_nums(5) = lbound( array, 5 )
2744 ubound_nums(5) = ubound( array, 5 )
2745 lbound_nums(6) = lbound( array, 6 )
2746 ubound_nums(6) = ubound( array, 6 )
2749 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
2750 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
2751 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
2752 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
2753 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
2754 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
2755 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
2756 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
2757 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
2758 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
2759 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(6)))
2760 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(6)))
2761 size_str = trim(size_str) //
')'
2766 max_value = maxval(array)
2771 min_value = minval(array)
2776 alldim_size =
size(array)
2777 avg_value = sum(array) / dble(alldim_size)
2783 variance_value = 0.0d0
2786 if ( alldim_size > 1 )
then
2787 if (
allocated(array_packed))
then
2788 deallocate(array_packed)
2790 allocate( array_packed(alldim_size) )
2791 array_packed = pack(array, .true.)
2792 do i = 1, alldim_size
2793 variance_value = variance_value + &
2794 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
2796 variance_value = variance_value / dble(alldim_size)
2797 sd_value = sqrt( variance_value )
2798 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
2806 & indent_str(1:indent_len) // &
2807 &
'#<DP-ARRAY:: @size=%c, @max=%f, @min=%f, @avg=%f%c>', &
2808 & d = (/max_value, min_value, avg_value/), &
2809 & c1 = trim(size_str), c2 = trim(sd_str) )
2841 real(DP),
intent(in):: array(:,:,:,:,:,:,:)
2842 integer,
intent(in),
optional:: lbounds(7)
2843 integer,
intent(in),
optional:: ubounds(7)
2844 integer,
intent(in),
optional:: unit
2845 character(*),
intent(in),
optional:: indent
2846 logical,
intent(in),
optional:: sd
2848 integer:: indent_len
2849 character(STRING):: indent_str
2851 integer:: alldim_size, lbound_nums(7), ubound_nums(7)
2852 character(STRING):: size_str, sd_str
2853 real(DP) :: max_value, min_value
2854 real(DP),
allocatable :: array_packed(:)
2855 real(DP) :: avg_value, variance_value, sd_value
2861 if (
present(unit) )
then
2868 if (
present(indent) )
then
2869 if (len(indent) /= 0)
then
2870 indent_len = len(indent)
2871 indent_str(1:indent_len) = indent
2878 if (
present(lbounds) .and.
present(ubounds) )
then
2879 lbound_nums = lbounds
2880 ubound_nums = ubounds
2882 lbound_nums(1) = lbound( array, 1 )
2883 ubound_nums(1) = ubound( array, 1 )
2884 lbound_nums(2) = lbound( array, 2 )
2885 ubound_nums(2) = ubound( array, 2 )
2886 lbound_nums(3) = lbound( array, 3 )
2887 ubound_nums(3) = ubound( array, 3 )
2888 lbound_nums(4) = lbound( array, 4 )
2889 ubound_nums(4) = ubound( array, 4 )
2890 lbound_nums(5) = lbound( array, 5 )
2891 ubound_nums(5) = ubound( array, 5 )
2892 lbound_nums(6) = lbound( array, 6 )
2893 ubound_nums(6) = ubound( array, 6 )
2894 lbound_nums(7) = lbound( array, 7 )
2895 ubound_nums(7) = ubound( array, 7 )
2898 size_str = trim(size_str) // trim(
tochar(lbound_nums(1))) //
':'
2899 size_str = trim(size_str) // trim(
tochar(ubound_nums(1)))
2900 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(2)))
2901 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(2)))
2902 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(3)))
2903 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(3)))
2904 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(4)))
2905 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(4)))
2906 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(5)))
2907 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(5)))
2908 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(6)))
2909 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(6)))
2910 size_str = trim(size_str) //
',' // trim(
tochar(lbound_nums(7)))
2911 size_str = trim(size_str) //
':' // trim(
tochar(ubound_nums(7)))
2912 size_str = trim(size_str) //
')'
2917 max_value = maxval(array)
2922 min_value = minval(array)
2927 alldim_size =
size(array)
2928 avg_value = sum(array) / dble(alldim_size)
2934 variance_value = 0.0d0
2937 if ( alldim_size > 1 )
then
2938 if (
allocated(array_packed))
then
2939 deallocate(array_packed)
2941 allocate( array_packed(alldim_size) )
2942 array_packed = pack(array, .true.)
2943 do i = 1, alldim_size
2944 variance_value = variance_value + &
2945 & (array_packed(i) - avg_value) * (array_packed(i) - avg_value)
2947 variance_value = variance_value / dble(alldim_size)
2948 sd_value = sqrt( variance_value )
2949 sd_str =
cprintf(
' @sd=%f', d = (/ sd_value /) )
2957 & indent_str(1:indent_len) // &
2958 &
'#<DP-ARRAY:: @size=%c, @max=%f, @min=%f, @avg=%f%c>', &
2959 & d = (/max_value, min_value, avg_value/), &
2960 & c1 = trim(size_str), c2 = trim(sd_str) )
subroutine putlinedouble6(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinereal1(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinereal6(array, lbounds, ubounds, unit, indent, sd)
subroutine putlineint7(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinedouble4(array, lbounds, ubounds, unit, indent, sd)
subroutine putlineint6(array, lbounds, ubounds, unit, indent, sd)
subroutine putlineint5(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinedouble5(array, lbounds, ubounds, unit, indent, sd)
subroutine putlineint4(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinedouble1(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinereal3(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinereal4(array, lbounds, ubounds, unit, indent, sd)
subroutine putlineint2(array, lbounds, ubounds, unit, indent, sd)
subroutine putlineint1(array, lbounds, ubounds, unit, indent, sd)
Print array summary (PutLine subroutines)
subroutine putlinereal7(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinereal2(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinedouble2(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinereal5(array, lbounds, ubounds, unit, indent, sd)
subroutine putlineint3(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinedouble7(array, lbounds, ubounds, unit, indent, sd)
subroutine putlinedouble3(array, lbounds, ubounds, unit, indent, sd)
Judge optional control parameters.
logical function, public present_and_true(arg)
Handling character types.
Provides kind type parameter values.
integer, parameter, public sp
Single Precision Real number.
integer, parameter, public stdout
Unit number for Standard OUTPUT
integer, parameter, public dp
Double Precision Real number
integer, parameter, public string
Character length for string