34
36
37
38
39#include "implicit_f.inc"
40
41
42
43#include "units_c.inc"
44
45
46
47 INTEGER NB_INTERV,SIZEY,S_ARRAY
49 . array(*),x_minvalue, x_maxvalue,y_maxvalue
50 CHARACTER*1 ECRIT
51 CHARACTER(len=60) :: FMTA,FMTB,FMTC
52
53
54
55 INTEGER KK,FLAG_FMT,I,J,K,IGS,ID,FLAG_FMT_TMP,IFIX_TMP,
56 . ISU,NUMA,J10(10),IGAUSS,IFUNC,UID,SUB_ID,MAX_PART,
57 . CPT_PART,,ITY,NEL,NFT,II,DISTRIB(),MAX_DISTRIB
59 . mean,sd,mean_input,sd_input,temp,interv,
60 . VALUE,x_maxvalue1
61 CHARACTER*100 CHAR(100)
62 CHARACTER*100 CHAR1(100)
63 CHARACTER*100 CHAR2
64
65 char=''
66 char1=''
67 char2=''
68 distrib(1:nb_interv) = 0
69 interv = (x_maxvalue-x_minvalue)/nb_interv
70 max_distrib = 0
71
72 DO ii = 1, nb_interv
73 DO j = 1, s_array
74 IF(array(j) >= x_minvalue+interv*(ii-1) .AND.
75 . array(j) < x_minvalue+interv*ii) THEN
76 distrib(ii) = distrib(ii) + 1
77 ENDIF
78 IF(array(j) == x_maxvalue) distrib(ii) = distrib(ii) + 1
79 ENDDO
80 ENDDO
81
82 x_maxvalue1 =zero
83 DO ii = 1, nb_interv
84 VALUE = distrib(ii)
85 VALUE = VALUE/s_array
86 VALUE = VALUE * hundred
87 char(ii)= " "
88 x_maxvalue1 =
max(x_maxvalue1,
VALUE)
89 max_distrib =
max(max_distrib,distrib(ii))
90 ENDDO
91
92 DO ii = 1, nb_interv
93 VALUE = distrib(ii)
94 VALUE = VALUE/s_array
95 VALUE = VALUE * hundred
96 char(ii)= " "
97 DO j = 1,(sizey+1)
98 IF( VALUE > (j-1) * x_maxvalue1/(sizey+1)) THEN
99 char(ii)(j:j)=
ecrit(1:1)
100
101 ENDIF
102 ENDDO
103 ENDDO
104
105 DO ii = 1, nb_interv
106 DO j = 1,(sizey+1)
107 char1(j)(ii:ii) = char(ii)(j:j)
108 ENDDO
109 ENDDO
110
111 IF(y_maxvalue /= zero) THEN
112 WRITE(iout,'(10X,1PG20.13)') y_maxvalue
113 ELSEIF(x_maxvalue1 /= zero) THEN
114 WRITE(iout,'(15X,I10)') max_distrib
115 ENDIF
116
117 DO ii = 1,(sizey+1)
118 IF (x_maxvalue1/(x_maxvalue1/(sizey+1)) > (sizey+1)-ii+1 )
119 . WRITE(iout,'(19X,A,A)') '|',char1((sizey+1)-ii+1)(1:nb_interv)
120 ENDDO
121
122
123 DO ii = 1,nb_interv
124 char2(ii:ii) = '-'
125 ENDDO
126 CHAR2(NB_INTERV:NB_INTERV+1) = '>'
127 WRITE(IOUT,'(20x,a)') CHAR2(1:51)
128
129 CHAR2 = ' '
130 CHAR2(1:1)= '|'
131 CHAR2(NB_INTERV:NB_INTERV)= '|'
132 WRITE(IOUT,'(20x,a)') CHAR2(1:51)
133
134 IF (NB_INTERV <= 10) THEN
135 FMTA='(10x,1pg20.13,2x,1pg20.13)'
136 ELSEIF (NB_INTERV <= 20) THEN
137 FMTA='(10x,1pg20.13,5x,1pg20.13)'
138 ELSEIF (NB_INTERV <= 30) THEN
139 FMTA='(10x,1pg20.13,15x,1pg20.13)'
140 ELSEIF (NB_INTERV <= 40) THEN
141 FMTA='(10x,1pg20.13,25x,1pg20.13)'
142 ELSEIF (NB_INTERV <= 50) THEN
143 FMTA='(10x,1pg20.13,35x,1pg20.13)'
144 ELSEIF (NB_INTERV <= 60) THEN
145 FMTA='(10x,1pg20.13,45x,1pg20.13)'
146 ELSEIF (NB_INTERV <= 70) THEN
147 FMTA='(10x,1pg20.13,55x,1pg20.13)'
148 ELSEIF (NB_INTERV <= 80) THEN
149 FMTA='(10x,1pg20.13,65x,1pg20.13)'
150 ELSEIF (NB_INTERV <= 90) THEN
151 FMTA='(10x,1pg20.13,75x,1pg20.13)'
152 ELSE
153 FMTA='(10x,1pg20.13,85x,1pg20.13)'
154 ENDIF
155
156 WRITE(IOUT,FMT=FMTA) X_MINVALUE,X_MAXVALUE
157
158 WRITE(IOUT,*) ' '
159 WRITE(IOUT,*) ' '
160
161 RETURN
subroutine ecrit(timers, partsav, ms, v, in, r, dmas, weight, enintot, ekintot, a, ar, fxbipm, fxbrpm, monvol, xmom_sms, sensors, qfricint, ipari, weight_md, wfexth, iflag, ms_2d, multi_fvm, mas_nd, kend, h3d_data, dynain_data, usreint, output)