[updated 15.Jun.2003]
SUBROUTINE PRNTRM (NMTERM,NVTERM,THETRM,NCATRM)
Auteur : D.Martin (Janvier 1998)
Derniere modification : D.Martin (21 Janvier 1999)
Version 1.0.0
Codage des nom et niveau d'un terme sous la forme (NMTERM,NVTERM)
Exemple : Si NMTERM='TOTO', NVTERM=10 et LEN(THETRM) > 8 la procedure
retourne THETRM='(TOTO,10)' et NCATRM=9
-- Arguments d'entree --
NMTERM nom du terme
NVTERM niveau du terme
-- Argument de sortie --
THETRM chaine de caractere contenant (NOM,NIVEAU)
NCATRM longueur de la chaine contenant (NOM,NIVEAU)
-- Procedures utilisees --
ENCLER (utilite)
IMPLICIT NONE
CHARACTER*(*) NMTERM,THETRM
INTEGER NVTERM,NCATRM
INTEGER NCHTRM,NCHDIS,NBCARN,NVTERA,DIXN
NCHDIS=LEN (THETRM)
NCHTRM=LEN (NMTERM)
THETRM(1:MIN(NCHTRM,NCHDIS))=NMTERM
NCATRM=NCHDIS
NVTERA=ABS (NVTERM)
DIXN=10
DO 10 NBCARN=1,9
IF (NVTERA.LT.DIXN) GOTO 11
DIXN=10*DIXN
10 CONTINUE
11 IF (NVTERM.LT.0) NBCARN=NBCARN+1
IF (NCHDIS.GE.2+NCHTRM) THEN
THETRM(1:2+NCHTRM)='('//NMTERM(1:NCHTRM)//','
NCATRM=NCHTRM+2
IF (NCHDIS.GE.NCHTRM+2+NBCARN) THEN
CALL ENCLER (NVTERM,THETRM(NCHTRM+3:NCHTRM+2+NBCARN))
NCATRM=NCATRM+NBCARN
IF (NCHDIS.GE.NCHTRM+3+NBCARN) THEN
THETRM(NCHTRM+3+NBCARN:NCHTRM+3+NBCARN)=')'
NCATRM=NCATRM+1
ENDIF
ENDIF
ENDIF
END !PrnTrm
prntrm est appelé dans (94 procédures)