Download operfl.eso

Back to the list

   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