1 : C OPERFL SOURCE JC220346 12/06/19 21:15:04 7405 2 : C CONVERTIT UN ENTIER EN FLOTTANT 3 : C OU UN LISTENTI/MOT/LISTMOTS EN LISTREEL 4 : C 5 : SUBROUTINE OPERFL 6 : IMPLICIT REAL*8 (A-H,O-Z) 7 : IMPLICIT INTEGER(I-N) 8 : -INC CCOPTIO 9 : -INC SMLENTI 10 : -INC SMLREEL 11 : -INC SMLMOTS 12 : REAL*8 X1 13 : CHARACTER*32 CH 14 : CHARACTER*8 CHA8 15 : 16 : 16 : CALL QUETYP(CHA8,0,IRETOU) 17 : IF (IRETOU.EQ.0) GOTO 998 18 : 19 : 20 : * Conversion d'un LISTENTI en LISTREEL 21 : IF (CHA8.EQ.'LISTENTI') THEN 21 : CALL LIROBJ('LISTENTI',MLENTI,1,IRETOU) 22 : SEGACT MLENTI 23 : JG=LECT(/1) 24 : SEGINI MLREEL 25 : DO IG=1,JG 26 : PROG(IG)=LECT(IG) 27 : ENDDO 28 : SEGDES MLREEL 29 : SEGDES MLENTI 29 : CALL ECROBJ('LISTREEL',MLREEL) 30 : RETURN 31 : 32 : 33 : * Conversion d'un LISTMOTS en LISTREEL 34 : ELSEIF (CHA8.EQ.'LISTMOTS') THEN 34 : CALL LIROBJ('LISTMOTS',MLMOTS,1,IRETOU) 35 : SEGACT MLMOTS 36 : JG=MOTS(/2) 37 : SEGINI MLREEL 38 : DO IG=1,JG 39 : READ(MOTS(IG),FMT='(F4.0)',ERR=999) PROG(IG) 40 : ENDDO 41 : SEGDES MLREEL 42 : SEGDES MLMOTS 42 : CALL ECROBJ('LISTREEL',MLREEL) 43 : RETURN 44 : 45 : 46 : * Conversion d'un MOT en FLOTTANT 47 : ELSEIF (CHA8.EQ.'MOT') THEN 47 : CALL LIRCHA(CH,1,IRETOU) 48 : WRITE(CHA8,FMT='("(F",I2,".0)")') IRETOU 49 : READ(CH(1:IRETOU),FMT=CHA8,ERR=999) X1 49 : CALL ECRREE(X1) 50 : RETURN 51 : 52 : 53 : * Conversion d'un ENTIER en FLOTTANT 54 : ELSEIF (CHA8.EQ.'ENTIER'.OR.CHA8.EQ.'FLOTTANT') THEN 54 : CALL LIRREE(X1,1,IRETOU) 55 : IF (IERR.NE.0) RETURN 55 : CALL ECRREE(X1) 56 : RETURN 57 : 58 : ENDIF 59 : 60 : 61 : * /!\ ERREUR : AUCUN OBJET COMPATIBLE TROUVE 62 : 998 MOTERR(1:40)='ENTIER FLOTTANTLISTENTIMOT LISTMOTS' 62 : CALL ERREUR(471) 63 : RETURN 64 : 65 : 66 : * /!\ ERREUR LORS DE LA CONVERSION MOT=>FLOTTANT 66 : 999 CALL ERREUR(21) 67 : RETURN 68 : 69 : END 70 : 71 : 72 :
© Cast3M 2003 - All rights reserved.
Disclaimer