operfl
C OPERFL SOURCE BP208322 16/05/24 21:15:12 8932 C======================================================================= C C CONVERTIT : - UN ENTIER EN FLOTTANT C - OU UN LISTENTI/MOT/LISTMOTS EN LISTREEL C C======================================================================= SUBROUTINE OPERFL IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER(I-N) -INC PPARAM -INC CCOPTIO c REAL*8 X1 c CHARACTER*32 CH REAL*8 XVALRE CHARACTER*32 CHARIN CHARACTER*8 CHA8 C======================================================================= C LECTURE DES OBJETS EN ENTREE + CONVERSION EN FLOTTANT C======================================================================= IF (IRETOU.EQ.0) GOTO 998 * Conversion d'un LISTENTI en LISTREEL IF (CHA8.EQ.'LISTENTI') THEN IF (IERR.NE.0) RETURN c SEGACT MLENTI c JG=LECT(/1) c SEGINI MLREEL c DO IG=1,JG c PROG(IG)=LECT(IG) c ENDDO c SEGDES MLREEL c SEGDES MLENTI IOBIN=MLENTI MLREEL=IOBRE RETURN * Conversion d'un ENTIER ou d'un FLOTTANT en FLOTTANT c ELSEIF (CHA8.EQ.'ENTIER'.OR.CHA8.EQ.'FLOTTANT') THEN c CALL LIRREE(X1,1,IRETOU) c IF (IERR.NE.0) RETURN c CALL ECRREE(X1) c RETURN * Conversion d'un ENTIER en FLOTTANT : on passe par FLOT ELSEIF (CHA8.EQ.'ENTIER') THEN IF (IERR.NE.0) RETURN RETURN * Conversion d'un FLOTTANT en FLOTTANT : on ne passe pas dans FLOT ! ELSEIF (CHA8.EQ.'FLOTTANT') THEN IF (IERR.NE.0) RETURN RETURN * Conversion d'un LISTMOTS en LISTREEL ELSEIF (CHA8.EQ.'LISTMOTS') THEN IF (IERR.NE.0) RETURN c SEGACT MLMOTS c JG=MOTS(/2) c SEGINI MLREEL c DO IG=1,JG c READ(MOTS(IG),FMT='(F4.0)',ERR=999) PROG(IG) c ENDDO c SEGDES MLREEL c SEGDES MLMOTS IOBIN=MLMOTS MLREEL=IOBRE RETURN * Conversion d'un MOT en FLOTTANT ELSEIF (CHA8.EQ.'MOT') THEN c CALL LIRCHA(CH,1,IRETOU) c WRITE(CHA8,FMT='("(F",I2,".0)")') IRETOU c READ(CH(1:IRETOU),FMT=CHA8,ERR=999) X1 IF (IERR.NE.0) RETURN RETURN ENDIF C======================================================================= C ERREURS C======================================================================= * /!\ ERREUR : AUCUN OBJET COMPATIBLE TROUVE 998 MOTERR(1:40)='ENTIER FLOTTANTLISTENTIMOT LISTMOTS' RETURN c * /!\ ERREUR LORS DE LA CONVERSION MOT=>FLOTTANT c 999 CALL ERREUR(21) c RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales