[updated 29.May.2000]
FUNCTION KELCHN (CHAINE,TBCHEN,NBCHEN,NBCCHN)
Auteur : D.Martin (Janvier 1991)
Derniere modification : D.Martin (29 Mai 2000)
Version # 1.0.1
Recherche le rang de CHAINE dans le tableau TBCHEN.
La recherche ne porte que sur le minimum des longueurs de CHAINE
et des elements du tableau TBCHEN
Cette fonction retourne 0 si la chaine n'est pas dans TBCHEN
-- Arguments --
CHAINE mot dont on cherche l'ocurrence dans TBCHEN
TBCHEN tableau de NBCHEN mots de longueur NBCCHN
NBCHEN nombre de mots dans TBCHEN
NBCCHN nombre de caracteres par mot dans TBCHEN
INTEGER KELCHN,NBCHEN,NBCCHN
CHARACTER TBCHEN(NBCCHN,NBCHEN),CHAINE*(*)
INTEGER LENCHN,MINLEN,LENCH1,ICAR
Si la chaine est plus longue que les elements du tableau et si
les caracteres en surnombre dans la chaine ne sont pas tous 'blanc',
la chaine ne peut etre dans le tableau, on se casse ...
KELCHN=0
LENCHN=LEN (CHAINE)
IF (LENCHN.GT.NBCCHN.AND.CHAINE(NBCCHN+1:LENCHN).NE.' ') RETURN
MINLEN=MIN (LENCHN,NBCCHN)
LENCH1=LENCHN+1
DO 3 KELCHN=1,NBCHEN
DO 2 ICAR=1,MINLEN
IF (CHAINE(ICAR:ICAR).NE.TBCHEN(ICAR,KELCHN)) GOTO 3
2 CONTINUE
La chaine est reconnue dans le tableau et est de la longueur
souhaitee ou plus longue et se termine par des 'blanc' OK
IF (LENCHN.GE.NBCCHN) RETURN
La chaine est reconnue dans le tableau et est de longueur
inferieure a celle des elements du tableau
Si l'element du tableau trouve se termine par des 'blanc' OK
IF (LENCHN.LT.NBCCHN.AND.TBCHEN(LENCH1,KELCHN).EQ.' ') RETURN
3 CONTINUE
KELCHN=0
END !KelChn
kelchn est appelé dans (64 procédures)