1C 2C This file is issued from the MODULEF library, but has been 3C subsequently modified 4C 5 SUBROUTINE FONAID(CIDEN,NUMERO,ICODE) 6C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7C S.P. FONAID (FONCTIONS INTERPRETEES) 8C ----------- 9C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 10C BUT : 11C AJOUTER UN IDENTIFICATEUR DANS LA TABLE DES IDENTIFICATEURS 12C 13C PARAMETRES D ENTREE : 14C CIDEN : IDENTIFICATEUR A AJOUTER 15C 16C PARAMETRES DE SORTIE : 17C NUMERO : NUMERO DANS LA TABLE DES IDENTIFICATEURS 18C ICODE : CODE DE RETOUR (VOIR LE S.P. FONERR) 19C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 20C PROGRAMMEUR : PATRICK LAUG ; INRIA (3) 954 90 20 POSTE 508 21C ...................................................................... 22 PARAMETER (LIDN=8) 23 CHARACTER*(*) CIDEN 24 CHARACTER*256 MIDN(LIDN) 25 COMMON /FONIDN/ MIDN 26 COMMON /FONNUM/ IDLIG,IFLIG,NITEMS,NBIDEN,IMPLIC 27 COMMON /FONLC / LCI,LCR,LCL,LCC,LCD,LCOPN,LCOPT,LCSYM,LCEXP,LCIDN 28 COMMON /FONLM / LMI,LMR,LML,LMC,LMD,LMOPN,LMOPT,LMSYM,LMEXP,LMIDN 29C 30C L'IDENTIFICATEUR EST-IL DEJA DANS LA TABLE ? 31 CALL FONCID(CIDEN,NUMERO,ICODE) 32 IF (ICODE.EQ.0) THEN 33 ICODE = 22 34 RETURN 35 END IF 36C 37C ON N'A PAS TROUVE L'IDENTIFICATEUR 38 IDEB = INDEX(MIDN(LCIDN), '||') + 1 39 LTOTAL = IDEB + LEN(CIDEN) + 1 40 IF (LTOTAL .GT. 256) THEN 41 LCIDN = LCIDN + 1 42 IF (LCIDN .GT. LMIDN) THEN 43 ICODE = 31 44 RETURN 45 END IF 46 MIDN(LCIDN)(1:1) = '|' 47 IDEB = 2 48 LTOTAL = LEN(CIDEN) + 3 49 END IF 50 MIDN(LCIDN)(IDEB:LTOTAL-2) = CIDEN 51 MIDN(LCIDN)(LTOTAL-1:LTOTAL) = '||' 52 NBIDEN = NBIDEN + 1 53 ICODE = 0 54 END 55