5 * Revision 1.1.1.1 1996/03/06 10:47:26 mclareni
9 #include "zebra/pilot.h"
10 SUBROUTINE RZPURF(N,KPURG)
12 ************************************************************************
14 * Update list of purged records
16 * N Number of consecutive records purged
17 * KPURG First of the N records purged
21 * Author : R.Brun DD/US/PD
25 ************************************************************************
27 #include "zebra/rzcl.inc"
28 #include "zebra/rzclun.inc"
29 #include "zebra/rzk.inc"
31 *-----------------------------------------------------------------------
33 IF(LQ(KQSP+LTOP-5).EQ.0)THEN
34 CALL MZBOOK(JQPDVS,LPURG,LTOP,-5,'RZPU',0,0,21,2,0)
38 IF(KPURG.EQ.0)GO TO 99
42 IF(I.EQ.IQ(KQSP+LCDIR+KRLOUT))THEN
43 IQ(KQSP+LCDIR+KRLOUT)=0
47 NPURG=IQ(KQSP+LPURG+1)
50 IQ(KQSP+LPURG+2)=IPURG
51 IQ(KQSP+LPURG+3)=IPURL
56 IRF=IQ(KQSP+LPURG+2*I)
57 IRL=IQ(KQSP+LPURG+2*I+1)
58 IF(IPURG.GE.IRF.AND.IPURG.LE.IRL)IPURG=IRL+1
59 IF(IPURL.GE.IRF.AND.IPURL.LE.IRL)IPURL=IRF-1
60 IF(IPURG.GT.IPURL)GO TO 99
64 10 IF(IPURL.LT.IQ(KQSP+LPURG+IPU))THEN
65 IF(IPURL.EQ.IQ(KQSP+LPURG+IPU)-1)THEN
66 IQ(KQSP+LPURG+IPU)=IPURG
68 IF(IPU.GT.2.AND.IPURG.LE.IQ(KQSP+LPURG+IPU-1))GO TO 99
69 NDATA=IQ(KQSP+LPURG-1)
70 IF(NDATA.LT.2*NPURG+3)THEN
71 CALL MZPUSH(JQPDVS,LPURG,0,10,'I')
75 CALL UCOPY2(IQ(KQSP+LPURG+IPU),
76 + IQ(KQSP+LPURG+IPU+2),NLEFT)
79 IQ(KQSP+LPURG+1)=NPURG
80 IQ(KQSP+LPURG+IPU)=IPURG
81 IQ(KQSP+LPURG+IPU+1)=IPURL
86 IF(IPURG.EQ.IQ(KQSP+LPURG+IPU+1)+1)THEN
87 IQ(KQSP+LPURG+IPU+1)=IPURL
88 IF(IPU+2.LT.2*NPURG)THEN
89 IF(IQ(KQSP+LPURG+IPU+1).EQ.IQ(KQSP+LPURG+IPU+2))THEN
90 IQ(KQSP+LPURG+IPU+1)=IQ(KQSP+LPURG+IPU+3)
93 CALL UCOPY2(IQ(KQSP+LPURG+IPU+4),
94 + IQ(KQSP+LPURG+IPU+2),NLEFT)
97 IQ(KQSP+LPURG+1)=NPURG
104 IF(IPU.LE.2*NPURG)GO TO 10
106 NDATA=IQ(KQSP+LPURG-1)
107 IF(NDATA.LT.2*NPURG+3)THEN
108 CALL MZPUSH(JQPDVS,LPURG,0,2,'I')
110 IQ(KQSP+LPURG+IPU)=IPURG
111 IQ(KQSP+LPURG+IPU+1)=IPURL
113 IQ(KQSP+LPURG+1)=NPURG