41#include "implicit_f.inc"
52 INTEGER IEND,CPT,MODE,I,J,NBERR,NBWARN,K,CPTWARN,CPTERR
53 INTEGER ITAB(5,IWARN+IERR), WORK(70000), INDEX_WARN(5*(IWARN+IERR)),
54 . INDEX_ERR(5*(IWARN+IERR)),ITRI_WARN(5,IWARN+IERR+1),
55 . ITRI_ERR(5,IWARN+IERR+1),IOPTIONTYPE(50,IWARN+IERR),
56 . INDEXOPT(50*(IWARN+IERR)),INDEXOPT_1(50*(IWARN+IERR)),
57 . W_CPT_TYP(IWARN+IERR),E_CPT_TYP(IWARN+IERR),
58 . W_OPTION_INDEX(IWARN+IERR+2),E_OPTION_INDEX(IWARN+IERR+2)
59 CHARACTER*20 TITLE(IWARN+IERR)
60 CHARACTER*30 W_OPTION_TYPE(IWARN+IERR),
61 . E_OPTION_TYPE(IWARN+IERR)
63 CHARACTER*60 OPTIONTYPE(IWARN+IERR)
64 CHARACTER(LEN=NCHARLINE) :: MYFMT,TMP_CHAR
65 CHARACTER*59 ,
DIMENSION(:),
ALLOCATABLE :: SUM_WARN,SUM_ERR
72 w_cpt_typ(1:iwarn+ierr) = 0
76 w_option_index(1:iwarn+ierr+2) = 0
82 READ(res_check,
'(A)',
END=110) tmpin
83 IF(tmpin(1:9)==
'W_OPTION=')
THEN
87 READ(tmpin(10:110),
'(A)') optiontype(cpt)
89 ioptiontype(i,cpt) = ichar(optiontype(cpt)(i:i))
92 READ(res_check,
'(A)',
END=110) tmpin
93 READ(tmpin(13:23),
'(I10)') itab(2,cpt)
94 itri_warn(2,cpt) = itab(2,cpt)
96 READ(res_check,
'(A)',
END=110) tmpin
97 READ(tmpin(11:21),
'(I10)') itab(3,cpt)
99 READ(res_check,
'(A)',
END=110) tmpin
100 READ(tmpin(8:108),
'(A)') title(cpt)
102 READ(res_check,
'(A)',
END=110) tmpin
103 READ(tmpin(8:18),
'(I10)') itab(4,cpt)
104 READ(res_check,
'(A)',
END=110) tmpin
105 READ(tmpin(10:20),
'(I10)') itab(5,cpt)
110 IF (cpt /= iwarn)
THEN
111 DO WHILE(cpt < iwarn)
113 indexopt_1(cpt) = cpt
114 index_warn(cpt) = cpt
115 optiontype(cpt) =
'NO CATEGORY'
117 ioptiontype(i,cpt) = ichar(optiontype(cpt)(i:i))
126 CALL my_orders( mode, work, ioptiontype, indexopt_1, cpt , 50)
129 indexopt(i) = indexopt_1(i)
133 IF( optiontype(indexopt(i))(1:50) ==
134 . optiontype(indexopt(i-1))(1:50) )
THEN
135 indexopt(i) = indexopt(i-1)
140 itab(1,i) = indexopt(i)
141 itri_warn(1,i) = itab(1,i)
143 itri_warn(3,i) = itab(4,indexopt_1(i))
149 CALL my_orders( mode, work, itri_warn, index_warn, cpt , 5)
157 w_cpt_typ(j) = w_cpt_typ(j) + 1
158 w_option_type(j) = optiontype(indexopt(index_warn(1)))
159 w_option_index(j) = 1
162 IF( itab(1,index_warn(i)) /= itab(1,index_warn(i-1)) )
THEN
164 w_option_index(j) = i
166 w_cpt_typ(j) = w_cpt_typ(j) + 1
167 w_option_type(j) = optiontype(indexopt(index_warn(i)))
169 w_option_index(j+1) = cpt+1
172 IF(itri_warn(3,index_warn(i)) == itri_warn(3,index_warn(i-1)) )
THEN
173 itri_warn(4,index_warn(i)) = itri_warn(4,index_warn(i-1)) + 1
179 IF(iwarn /=0) index_warn(w_option_index(j+1)) = cpt + 1
185 e_cpt_typ(1:iwarn+ierr) = 0
189 e_option_index(1:iwarn+ierr+2) = 0
195 READ(res_check,
'(A)',
END=120) tmpin
196 IF(tmpin(1:9)==
'E_OPTION=')
THEN
198 indexopt_1(cpt) = cpt
200 READ(tmpin(10:110),
'(A)') optiontype(cpt)
202 ioptiontype(i,cpt) = ichar(optiontype(cpt)(i:i))
205 READ(res_check,
'(A)',
END=110) tmpin
206 READ(tmpin(13:23),
'(I10)') itab(2,cpt)
207 itri_err(2,cpt) = itab(2,cpt)
209 READ(res_check,
'(A)',
END=110) tmpin
210 READ(tmpin(11:21),
'(I10)') itab(3,cpt)
212 READ(res_check,
'(A)',
END=110) tmpin
213 READ(tmpin(8:108),
'(A)') title(cpt)
215 READ(res_check,
'(A)',
END=110) tmpin
216 READ(tmpin(8:18),
'(I10)') itab(4,cpt)
217 READ(res_check,'(a)
',END=110) TMPIN
218 READ(TMPIN(10:20),'(i10)
') ITAB(5,CPT)
223 IF (CPT /= IERR) THEN
226 INDEXOPT_1(CPT) = CPT
228 OPTIONTYPE(CPT) = 'no category
'
230 IOPTIONTYPE(I,CPT) = ICHAR(OPTIONTYPE(CPT)(I:I))
239 CALL MY_ORDERS( MODE, WORK, IOPTIONTYPE, INDEXOPT_1, CPT , 50)
242 INDEXOPT(I) = INDEXOPT_1(I)
246 IF( OPTIONTYPE(INDEXOPT(I))(1:50) ==
247 . OPTIONTYPE(INDEXOPT(I-1))(1:50) ) THEN
248 INDEXOPT(I) = INDEXOPT(I-1)
253 ITAB(1,I) = INDEXOPT(I)
254 ITRI_ERR(1,I) = ITAB(1,I)
256 ITRI_ERR(3,I) = ITAB(4,INDEXOPT_1(I))
262 CALL MY_ORDERS( MODE, WORK, ITRI_ERR, INDEX_ERR, CPT , 5)
270 E_CPT_TYP(J) = E_CPT_TYP(J) + 1
271 E_OPTION_TYPE(J) = OPTIONTYPE(INDEXOPT(INDEX_ERR(1)))
272 E_OPTION_INDEX(J) = 1
275 IF( ITAB(1,INDEX_ERR(I)) /= ITAB(1,INDEX_ERR(I-1)) ) THEN
277 E_OPTION_INDEX(J) = I
279 E_CPT_TYP(J) = E_CPT_TYP(J) + 1
280 E_OPTION_TYPE(J) = OPTIONTYPE(INDEXOPT(INDEX_ERR(I)))
282 E_OPTION_INDEX(J+1) = CPT+1
285 IF(ITRI_ERR(3,INDEX_ERR(I)) == ITRI_ERR(3,INDEX_ERR(I-1)) ) THEN
286 ITRI_ERR(4,INDEX_ERR(I)) = ITRI_ERR(4,INDEX_ERR(I-1)) + 1
292 IF(IERR /=0) INDEX_ERR(E_OPTION_INDEX(J+1)) = CPT + 1
297 ALLOCATE(SUM_WARN(CPTWARN*10),SUM_ERR(CPTERR*10))
298 IF( IERR + IWARN /= 0 ) THEN
300 IF(CPTWARN /= 0) THEN
302 WRITE(TMP_CHAR ,'(a)
') ' '
304 SUM_WARN(NBWARN)(I:I) = TMP_CHAR(I:I)
309 IF(W_CPT_TYP(J) /= 0) THEN
311 WRITE(TMP_CHAR ,'(2x,a,a,5x,i6,1x,a)
') '---
',
312 . W_OPTION_TYPE(J),W_CPT_TYP(J),'warning(s)
'
314 SUM_WARN(NBWARN)(I:I) = TMP_CHAR(I:I)
318 WRITE(TMP_CHAR ,'(7x,a)
') '|
'
320 SUM_WARN(NBWARN)(I:I) = TMP_CHAR(I:I)
324 WRITE(TMP_CHAR ,'(7x,a)
') '|
'
326 SUM_WARN(NBWARN)(I:I) = TMP_CHAR(I:I)
329 DO K=W_OPTION_INDEX(J),W_OPTION_INDEX(J+1)-1
330 IF(ITRI_WARN(3,INDEX_WARN(K+1)) /= ITRI_WARN(3,INDEX_WARN(K)) )THEN
332 IF(ITRI_WARN(3,INDEX_WARN(K)) /= 9998) THEN
333 WRITE(TMP_CHAR ,'(7x,a,i6,x,a,i6)
') '|---
',
334 . ITRI_WARN(4,INDEX_WARN(K)),'warning
id :
',ITRI_WARN(3,INDEX_WARN(K))
336 WRITE(TMP_CHAR ,'(7x,a,i6,a)
') '|---
',
337 . ITRI_WARN(4,INDEX_WARN(K)),'warning
id : no
id '
340 SUM_WARN(NBWARN)(I:I) = TMP_CHAR(I:I)
342 IF (ALLOCATED(MESSAGES(1,ITRI_WARN(3,INDEX_WARN(K)))%MESSAGE)) THEN
344 WRITE(TMP_CHAR ,'(7x,a,a)
') '|
',
345 . MESSAGES(1,ITRI_WARN(3,INDEX_WARN(K)))%MESSAGE(1)(1:50)
347 SUM_WARN(NBWARN)(I:I) = TMP_CHAR(I:I)
352 WRITE(TMP_CHAR ,'(7x,a)
') '|
'
354 SUM_WARN(NBWARN)(I:I) = TMP_CHAR(I:I)
361 WRITE(TMP_CHAR ,'(a)
') ' '
363 SUM_WARN(NBWARN)(I:I) = TMP_CHAR(I:I)
366 WRITE(TMP_CHAR ,'(a)
') ' '
368 SUM_WARN(NBWARN)(I:I) = TMP_CHAR(I:I)
377 WRITE(TMP_CHAR ,'(a)
') ' '
379 SUM_ERR(NBERR)(I:I) = TMP_CHAR(I:I)
383 IF(E_CPT_TYP(J) /= 0) THEN
385 WRITE(TMP_CHAR ,'(2x,a,a,5x,i6,1x,a)
') '---
',
386 . E_OPTION_TYPE(J),E_CPT_TYP(J),''
388 SUM_ERR(NBERR)(I:I) = TMP_CHAR(I:I)
392 WRITE(TMP_CHAR ,'(7x,a)
') '|
'
394 SUM_ERR(NBERR)(I:I) = TMP_CHAR(I:I)
398 WRITE(TMP_CHAR ,'(7x,a)
') '|
'
400 SUM_ERR(NBERR)(I:I) = TMP_CHAR(I:I)
403 DO K=E_OPTION_INDEX(J),E_OPTION_INDEX(J+1)-1
404 IF(ITRI_ERR(3,INDEX_ERR(K+1)) /= ITRI_ERR(3,INDEX_ERR(K)) )THEN
407 IF(ITRI_ERR(3,INDEX_ERR(K)) /= 9998) THEN
408 WRITE(TMP_CHAR ,'(7x,a,i6,x,a,i6)
') '|---
',
409 . ITRI_ERR(4,INDEX_ERR(K)),' error
id :
',ITRI_ERR(3,INDEX_ERR(K))
411 WRITE(TMP_CHAR ,'(7x,a,i6,a)
') '|---
',
412 . ITRI_ERR(4,INDEX_ERR(K)),' error
id : no
id '
416 SUM_ERR(NBERR)(I:I) = TMP_CHAR(I:I)
419 IF (ALLOCATED(MESSAGES(1,ITRI_ERR(3,INDEX_ERR(K)))%MESSAGE)) THEN
421 WRITE(TMP_CHAR ,'(7x,a,a)
') '|
',
422 . MESSAGES(1,ITRI_ERR(3,INDEX_ERR(K)))%MESSAGE(1)(1:50)
424 SUM_ERR(NBERR)(I:I) = TMP_CHAR(I:I)
429 WRITE(TMP_CHAR ,'(7x,a)
') '|
'
431 SUM_ERR(NBERR)(I:I) = TMP_CHAR(I:I)
437 WRITE(TMP_CHAR ,'(a)
') ' '
439 SUM_ERR(NBERR)(I:I) = TMP_CHAR(I:I)
442 WRITE(TMP_CHAR ,'(a)
') ' '
444 SUM_ERR(NBERR)(I:I) = TMP_CHAR(I:I)
452 WRITE(IOUT,MYFMT)'----------------------------------------------
453 .----------------------------------------------------------------------
455 WRITE(IOUT,MYFMT)'| error(s) summary
456 . | warning(s) summary
458 WRITE(IOUT,MYFMT)'----------------------------------------------
459 .----------------------------------------------------------------------
461 DO I=1,MAX(NBERR,NBWARN)
466 TMP_CHAR(J:J) = SUM_ERR(I)(J-1:J-1)
473 TMP_CHAR(61:61) = '|
'
474 IF (I <= NBWARN) THEN
476 TMP_CHAR(J:J) = SUM_WARN(I)(J-61:J-61)
483 TMP_CHAR(120:120) = '|
'
484 WRITE(IOUT,MYFMT)TMP_CHAR(1:120)
487 WRITE(IOUT,MYFMT)'----------------------------------------------
488 .----------------------------------------------------------------------
493 DEALLOCATE(SUM_WARN,SUM_ERR)