ajnume
C AJNUME SOURCE CB215821 20/11/04 21:15:10 10766 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C But : AJouter une représentation NUMÉrique d'un nombre C entier NUMERO à la chaîne de caractères STRING de C longueur ILONGS. On en a besoin lors de la lecture C d'un fichier AVS qui peut contenir des champs vectoriels C ou tensoriels (plusieurs composantes portent le même C nom). Sans AJNUME il seraît impossible d'accéder (en C GIBIANE) aux certaines des composantes du champ lu. C C Paramètres : C C STRING : la chaîne de caractères à modifier (entrée-sortie) C ILONGS : la longueur de STRING (entrée) C NUMERO : le nombre à rajouter à la chaîne STRING (entrée) C C Auteur : Michel Bulik C Octobre 1994 C C Appelé par : LIRAVS C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC IMPLICIT INTEGER(I-N) -INC PPARAM -INC CCOPTIO CHARACTER*(*) STRING(ILONGS) INTEGER ILONGS,NUMERO CHARACTER*4 STRFOR C ... INUFIN = longueur réelle de STRING (sans blancs à la fin) ... INUFIN = 0 DO 1000 I=ILONGS,1,-1 IF(STRING(I).NE.' ') THEN INUFIN=I GOTO 1001 ENDIF 1000 CONTINUE 1001 CONTINUE C ... ILONGN = longueur de la représentation alphanumérique de NUMERO ... IF (NUMERO.GE.1.AND.NUMERO.LE.9) THEN ILONGN=1 ELSEIF (NUMERO.GE.10.AND.NUMERO.LE.99) THEN ILONGN=2 ELSEIF (NUMERO.GE.100.AND.NUMERO.LE.999) THEN ILONGN=3 ELSEIF (NUMERO.GE.1000.AND.NUMERO.LE.9999) THEN ILONGN=4 ELSE WRITE(IOIMP,*) 'AJNUME : ERREUR ! Mauvais numéro !' RETURN ENDIF C ... IPOSEC = position à laquelle on écrira le numéro ... IF(ILONGN.GT.ILONGS) THEN WRITE(IOIMP,*) 'AJNUME : ERREUR ! Pas assez de place dans' & // ' STRING !' RETURN ELSE IPOSEC = ILONGS - ILONGN + 1 IF(IPOSEC.GT.INUFIN+1) THEN IPOSEC = INUFIN + 1 ENDIF ENDIF C ... L'écriture elle même ... WRITE(STRFOR,8000) ILONGN RETURN 8000 FORMAT('(I',I1,')') END
© Cast3M 2003 - Tous droits réservés.
Mentions légales