Télécharger linoti.eso

Retour à la liste

Numérotation des lignes :

linoti
  1. C LINOTI SOURCE JC220346 18/12/14 21:15:09 10039
  2. C LINOTI SOURCE PV 14/04/14 21:15:01 8035
  3. SUBROUTINE LINOTI(curFic,curLig,pNoti)
  4.  
  5. -INC PPARAM
  6. -INC CCOPTIO
  7. -INC CCNOYAU
  8. CHARACTER*500 cline
  9. DATA iLonEn /100000/
  10. CHARACTER*100000 cChar
  11. integer IRET
  12. integer mChap,mPart
  13. integer iostat
  14. integer iEnre,jEnre,kEnre,nindex
  15. integer tmplong
  16. integer nLig,iLig
  17. integer curFic,curLig,curEnr
  18. integer curCha,curCh2
  19. LOGICAL bEcri
  20. segment,noti
  21. character*(LONOM) nomOpe
  22. character*500 blig(nlig)
  23. endsegment
  24. SEGMENT UTIFIC
  25. integer debCha(nlig+1)
  26. ENDSEGMENT
  27. pointeur utif3.utific
  28. utif3=0
  29. 102 FORMAT(A500)
  30. 103 FORMAT(A100000)
  31. POINTEUR pNoti.NOTI
  32. IRET=0
  33. nLig=1000
  34. mChap=0
  35. mPart=0
  36. iLig=1
  37. segini pNoti
  38. utif3=utifi3(curFic-30)
  39. IF(utif3.LE.0) return
  40. segact utif3
  41. IF(curLig.GE.utif3.debCha(/1)) then
  42. segdes utif3
  43. return
  44. endif
  45. curCha = mod(utif3.debCha(curLig),iLonEn)+1
  46. curCh2 = mod(utif3.debCha(curLig+1),iLonEn)
  47. curEnr = utif3.debCha(curLig)/iLonEn+1
  48. bEcri=.true.
  49. READ(curFic,REC=curEnr,FMT=103,IOSTAT=IOSTAT) cCHAR
  50. if (iostat.gt.0) then
  51. WRITE(cline,FMT=203)' '
  52. goto 20
  53. endif
  54. 42 WRITE(cline,FMT=203)' '
  55. if(curCha.LE.curCh2) then
  56. tmplong=curCh2-curCha+1
  57. cline(1:tmplong) = cChar(curCha:curCh2)
  58. else
  59. tmplong=(iLonEn-curCha) + 1
  60. cline(1:tmpLong)=cCHAR(curCha:iLonEn)
  61. c write(6,*) 'Premiere partie',curEnr,1,tmpLong,curCha,iLonEn,
  62. c & cline(1:tmpLong)
  63. curEnr=curEnr+1
  64. READ(curFic,REC=curEnr,FMT=103,IOSTAT=IOSTAT)cCHAR
  65. if (iostat.eq.0) then
  66. cline(1+tmpLong:curCh2-curCha+1+iLonEn) = cChar(1:curCh2)
  67. tmplong=curCh2-curCha+1+iLonEn
  68. endif
  69. c write(6,*) 'Deuxieme partie',curEnr,1+tmpLong,1,curCh2,
  70. c & curCh2-curCha+1+iLonEn,
  71. c & cline(1+tmpLong:curCh2-curCha+1+iLonEn)
  72. endif
  73.  
  74. 20 IF (iostat.le.0.AND.cline(1:4).NE.'$$$$') THEN
  75.  
  76. IF(cline(5:8).EQ.'====') THEN
  77. IF(cline(1:4).EQ.LANGUE.OR.cline(1:4).EQ.'====')THEN
  78. bEcri=.true.
  79. ELSE
  80. bEcri=.false.
  81. ENDIF
  82. ELSE
  83. if(bEcri) THEN
  84. pNoti.blig(ilig)=cline
  85. ilig=ilig+1
  86. if(ilig.eq.pnoti.blig(/2)) then
  87. nLig=nLig+1000
  88. segadj pNoti
  89. endif
  90. ENDIF
  91. ENDIF
  92. curLig=curLig+1
  93. if(curlig.lt.utif3.debCha(/1)) then
  94. curCha = mod(utif3.debCha(curLig),iLonEn)+1
  95. curCh2 = mod(utif3.debCha(curLig+1),iLonEn)
  96. IF(curEnr.NE.utif3.debCha(curLig)/iLonEn+1) THEN
  97. curEnr = utif3.debCha(curLig)/iLonEn+1
  98. READ(curFic,REC=curEnr,FMT=103,IOSTAT=IOSTAT)cCHAR
  99. ENDIF
  100. IF(IOSTAT.LE.0) THEN
  101. goto 42
  102. ENDIF
  103. endif
  104. endif
  105. nlig=iLig-1
  106. segadj pNoti
  107. segdes utif3
  108. return
  109. 203 FORMAT(A)
  110. END
  111.  
  112.  
  113.  
  114.  
  115.  

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