Télécharger flot.eso

Retour à la liste

Numérotation des lignes :

flot
  1. C FLOT SOURCE BP208322 16/05/24 21:15:07 8932
  2. C
  3.  
  4. C=======================================================================
  5. C
  6. C CONVERTIT : - UN ENTIER EN FLOTTANT
  7. C - OU UN LISTENTI/MOT/LISTMOTS EN LISTREEL
  8. C
  9. C=======================================================================
  10.  
  11. SUBROUTINE FLOT(CHA8,IVALIN,CHARIN,IOBIN,XVALRE,IOBRE)
  12. IMPLICIT REAL*8 (A-H,O-Z)
  13. IMPLICIT INTEGER(I-N)
  14.  
  15.  
  16. -INC PPARAM
  17. -INC CCOPTIO
  18. -INC SMLENTI
  19. -INC SMLREEL
  20. -INC SMLMOTS
  21.  
  22. REAL*8 XVALRE
  23. CHARACTER*32 CHARIN
  24. CHARACTER*8 CHA8,CHAFMT
  25.  
  26. * Initialisations
  27. XVALRE=0.D0
  28. IOBRE=0
  29.  
  30. * Conversion d'un LISTENTI en LISTREEL
  31. IF (CHA8.EQ.'LISTENTI') THEN
  32. MLENTI=IOBIN
  33. SEGACT MLENTI
  34. JG=LECT(/1)
  35. SEGINI MLREEL
  36. DO IG=1,JG
  37. PROG(IG)=LECT(IG)
  38. ENDDO
  39. SEGDES MLREEL
  40. SEGDES MLENTI
  41. IOBRE=MLREEL
  42. RETURN
  43.  
  44. * Conversion d'un ENTIER en FLOTTANT
  45. ELSEIF (CHA8.EQ.'ENTIER') THEN
  46. XVALRE=IVALIN
  47. RETURN
  48.  
  49. * Conversion d'un LISTMOTS en LISTREEL
  50. ELSEIF (CHA8.EQ.'LISTMOTS') THEN
  51. MLMOTS=IOBIN
  52. SEGACT MLMOTS
  53. JG=MOTS(/2)
  54. SEGINI MLREEL
  55. DO IG=1,JG
  56. READ(MOTS(IG),FMT='(F4.0)',ERR=999) PROG(IG)
  57. ENDDO
  58. SEGDES MLREEL
  59. SEGDES MLMOTS
  60. IOBRE=MLREEL
  61. RETURN
  62.  
  63. * Conversion d'un MOT en FLOTTANT
  64. ELSEIF (CHA8.EQ.'MOT') THEN
  65. WRITE(CHAFMT,FMT='("(F",I2,".0)")') IVALIN
  66. READ(CHARIN(1:IVALIN),FMT=CHAFMT,ERR=999) XVALRE
  67. RETURN
  68.  
  69. ENDIF
  70.  
  71. C=======================================================================
  72. C ERREURS
  73. C=======================================================================
  74.  
  75. * /!\ ERREUR : AUCUN OBJET COMPATIBLE TROUVE
  76. 998 MOTERR(1:40)='ENTIER FLOTTANTLISTENTIMOT LISTMOTS'
  77. CALL ERREUR(471)
  78. RETURN
  79.  
  80. * /!\ ERREUR LORS DE LA CONVERSION MOT=>FLOTTANT
  81. 999 CALL ERREUR(21)
  82. RETURN
  83.  
  84. END
  85.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales