Télécharger liresc.eso

Retour à la liste

Numérotation des lignes :

liresc
  1. C LIRESC SOURCE PV090527 24/01/09 21:15:13 11817
  2. C Lire emascule a l'usage d'un esclave
  3. C
  4. SUBROUTINE LIRESC(ITYPE,IRET,ICODE,IRETOU)
  5.  
  6. IMPLICIT INTEGER(I-N)
  7. IMPLICIT REAL*8 (A-H,O-Z)
  8.  
  9.  
  10. -INC PPARAM
  11. -INC CCOPTIO
  12. -INC CCASSIS
  13. -INC CCNOYAU
  14. -INC SMBLOC
  15.  
  16. character*(*) itype
  17. character*(8) ityp
  18.  
  19. C ith=0
  20. ith=oothrd
  21. if (ith .eq. 0) call erreur(5)
  22. mescla=imescl(ith)
  23. iretou=0
  24. if (icode .eq. -1) then
  25. esoplu(imotlv)=.false.
  26. return
  27. endif
  28. if (ierr .ne. 0) return
  29.  
  30. if (itype(1:8).eq.'FLOTTANT') THEN
  31. ityp='ENTIER '
  32. else
  33. ityp=' '
  34. endif
  35.  
  36. do 10 i=1,100
  37. if (esoplu(i)) goto 10
  38.  
  39. C Si on tombe sur un esclave on le remplace par sa valeur
  40. C write(6,*) 'Liresc : esopty(i) =',esopty(i)
  41. if (esopty(i).eq.'ESCLAVE ') then
  42. mesres=esopva(i)
  43. segact,mesres
  44. C Gestion du SOUCI dans le BLOC (COMMENTE ACTUELLEMENT)
  45. C mbsouc=max(mbsouc,esisou)
  46. if (.not. loremp) then
  47. 5 continue
  48. segdes,Mesres*RECORD
  49. SEGACT,MESRES*(ECR=1,MOD)
  50. if (.not. loremp) then
  51. write(6,*) ' loremp pas vrai dans liresc '
  52. goto 5
  53. endif
  54. endif
  55. esopty(i)=esrety
  56. if ( esrety.eq.'LOGIQUE ') then
  57. esoplo(i)=esrelo
  58. elseif(esrety.eq.'FLOTTANT') then
  59. esopre(i)=esrere
  60. elseif (esrety.eq.'MOT ') then
  61. esopch(i)=esrech
  62. else
  63. esopva(i)=esreva
  64. end if
  65. SEGDES,MESRES
  66. else if (esopty(i).eq.'LISTOBJE') then
  67. mesres=esopva(i)
  68. segact,mesres
  69. C Gestion du SOUCI dans le BLOC (COMMENTE ACTUELLEMENT)
  70. C mbsouc=max(mbsouc,esisou)
  71. if (.not. loremp) then
  72. 6 continue
  73. segdes,Mesres*RECORD
  74. SEGACT,MESRES*(ECR=1,MOD)
  75. if (.not. loremp) then
  76. write(6,*) ' loremp pas vrai dans liresc '
  77. goto 6
  78. endif
  79. endif
  80. esopty(i)=esrety
  81. if ( esrety.eq.'LOGIQUE ') then
  82. esoplo(i)=esrelo
  83. elseif (esrety.eq.'FLOTTANT') then
  84. esopre(i)=esrere
  85. elseif (esrety.eq.'MOT ') then
  86. esopch(i)=esrech
  87. else
  88. esopva(i)=esreva
  89. endif
  90. SEGDES,MESRES
  91. endif
  92.  
  93. if (itype(1:8).eq.' ') goto 20
  94. if (itype(1:8).eq. esopty(i)) goto 20
  95. if (ityp .eq. esopty(i)) goto 20
  96. 10 continue
  97.  
  98. iretou=0
  99. if (icode.eq.1) then
  100. moterr(1:8)=itype(1:8)
  101. call erreur(37)
  102. endif
  103. return
  104.  
  105. 20 continue
  106. imotlv=i
  107. iretou=1
  108. itype=esopty(i)
  109. iret =esopva(i)
  110. esoplu(i)=.true.
  111. if (itype(1:8).eq.'FLOTTANT') iret=i
  112. if (itype(1:8).eq.'MOT ') iret=i
  113. if (itype(1:8).eq.'LOGIQUE ') iret=i
  114.  
  115. end
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  

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