linoti
C LINOTI SOURCE JC220346 18/12/14 21:15:09 10039 C LINOTI SOURCE PV 14/04/14 21:15:01 8035 -INC PPARAM -INC CCOPTIO -INC CCNOYAU CHARACTER*500 cline DATA iLonEn /100000/ CHARACTER*100000 cChar integer IRET integer mChap,mPart integer iostat integer iEnre,jEnre,kEnre,nindex integer tmplong integer nLig,iLig integer curFic,curLig,curEnr integer curCha,curCh2 LOGICAL bEcri segment,noti character*(LONOM) nomOpe character*500 blig(nlig) endsegment SEGMENT UTIFIC integer debCha(nlig+1) ENDSEGMENT pointeur utif3.utific utif3=0 102 FORMAT(A500) 103 FORMAT(A100000) POINTEUR pNoti.NOTI IRET=0 nLig=1000 mChap=0 mPart=0 iLig=1 segini pNoti utif3=utifi3(curFic-30) IF(utif3.LE.0) return segact utif3 IF(curLig.GE.utif3.debCha(/1)) then segdes utif3 return endif curCha = mod(utif3.debCha(curLig),iLonEn)+1 curCh2 = mod(utif3.debCha(curLig+1),iLonEn) curEnr = utif3.debCha(curLig)/iLonEn+1 bEcri=.true. READ(curFic,REC=curEnr,FMT=103,IOSTAT=IOSTAT) cCHAR if (iostat.gt.0) then WRITE(cline,FMT=203)' ' goto 20 endif 42 WRITE(cline,FMT=203)' ' if(curCha.LE.curCh2) then tmplong=curCh2-curCha+1 cline(1:tmplong) = cChar(curCha:curCh2) else tmplong=(iLonEn-curCha) + 1 cline(1:tmpLong)=cCHAR(curCha:iLonEn) c write(6,*) 'Premiere partie',curEnr,1,tmpLong,curCha,iLonEn, c & cline(1:tmpLong) curEnr=curEnr+1 READ(curFic,REC=curEnr,FMT=103,IOSTAT=IOSTAT)cCHAR if (iostat.eq.0) then cline(1+tmpLong:curCh2-curCha+1+iLonEn) = cChar(1:curCh2) tmplong=curCh2-curCha+1+iLonEn endif c write(6,*) 'Deuxieme partie',curEnr,1+tmpLong,1,curCh2, c & curCh2-curCha+1+iLonEn, c & cline(1+tmpLong:curCh2-curCha+1+iLonEn) endif 20 IF (iostat.le.0.AND.cline(1:4).NE.'$$$$') THEN IF(cline(5:8).EQ.'====') THEN IF(cline(1:4).EQ.LANGUE.OR.cline(1:4).EQ.'====')THEN bEcri=.true. ELSE bEcri=.false. ENDIF ELSE if(bEcri) THEN pNoti.blig(ilig)=cline ilig=ilig+1 if(ilig.eq.pnoti.blig(/2)) then nLig=nLig+1000 segadj pNoti endif ENDIF ENDIF curLig=curLig+1 if(curlig.lt.utif3.debCha(/1)) then curCha = mod(utif3.debCha(curLig),iLonEn)+1 curCh2 = mod(utif3.debCha(curLig+1),iLonEn) IF(curEnr.NE.utif3.debCha(curLig)/iLonEn+1) THEN curEnr = utif3.debCha(curLig)/iLonEn+1 READ(curFic,REC=curEnr,FMT=103,IOSTAT=IOSTAT)cCHAR ENDIF IF(IOSTAT.LE.0) THEN goto 42 ENDIF endif endif nlig=iLig-1 segadj pNoti segdes utif3 return 203 FORMAT(A) END
© Cast3M 2003 - Tous droits réservés.
Mentions légales