C MESSAG SOURCE JC220346 14/02/19 21:15:04 7941 SUBROUTINE MESSAG IMPLICIT INTEGER(I-N) CHARACTER*500 MESS CHARACTER*500 ICARB CHARACTER*(8) ICAR REAL*8 XPO external long -INC SMTEXTE -INC CCOPTIO -INC CCNOYAU MESS=' ' ILON=0 1 CONTINUE CALL QUETYP( ICAR,0,IRETOU) IF( IRETOU.EQ.0) GOTO 10 IF(ICAR.EQ.'ENTIER ') THEN CALL LIRENT(IPO,0,IRETOU) IF(IRETOU.EQ.0) THEN CALL ERREUR(5) RETURN ENDIF IF(ILON+13.GT.500) GO TO 1000 IF(ABS(IPO).LT.10000) THEN WRITE(MESS(ILON+1:ILON+7),FMT='(I5)') IPO ILON=ILON+8 ELSE WRITE(MESS(ILON+1:ILON+11),FMT='(I9)') IPO ILON=ILON+12 ENDIF ELSEIF( ICAR.EQ.'FLOTTANT') THEN CALL LIRREE(XPO,0,IRETOU) IF(IRETOU.EQ.0) THEN CALL ERREUR(5) RETURN ENDIF IF( ILON +17.GT.500) GO TO 1000 WRITE(MESS(ILON+1:ILON+15),FMT='(1PG12.5)')XPO ILON=ILON+16 ELSEIF ((ICAR.EQ.'MOT ').OR.(ICAR.EQ.'PROCEDUR')) THEN CALL LIRCHA(ICARB,0,IRETOU) IF(IRETOU.EQ.0) THEN CALL ERREUR(5) RETURN ENDIF IFI=MIN(IRETOU,500) IF(ILON+IFI.GT.500) GO TO 1000 MESS(ILON+1:ILON+IFI)=ICARB(1:IFI) ILON=ILON+IFI ELSEIF( ICAR.EQ.'TEXTE ') THEN CALL LIROBJ('TEXTE ',IPO,0,IRETOU) IF(IRETOU.EQ.0) THEN CALL ERREUR(5) RETURN ENDIF MTEXTE = IPO SEGACT MTEXTE IF(ILON+NCART.GT.500) GO TO 1000 MESS(ILON+1:ILON+NCART)=MTEXT(1:NCART) ILON=ILON+NCART SEGDES MTEXTE ELSE CALL ERREUR (21) RETURN ENDIF GO TO 1 10 CONTINUE INTEXT = 0 ILON=LONG(MESS(1:ILON)) DO 12 J=1,MIN(ILON,500-132),133 WRITE(IOIMP,11) MESS (J:MIN(J+132,ILON)) 11 FORMAT(1X,A) 12 CONTINUE RETURN 1000 CONTINUE CALL ERREUR(274) RETURN END