diff --git a/lib/fox_sim.f90 b/lib/fox_sim.f90 index ca903813b..45a17c413 100644 --- a/lib/fox_sim.f90 +++ b/lib/fox_sim.f90 @@ -14,6 +14,7 @@ program fox_sim character*6 MyCall character*4 MyGrid character*8 arg + character*1 c1,c2,c3,c4 integer ntot(MAXSIG),irate(MAXSIG),ntimes(MAXSIG) logical logit common/dxpfifo/nc,isnr,xcall,xgrid @@ -53,14 +54,32 @@ program fox_sim ! Read a file with calls and grids; insert random S/N values. ! This is used in place of an operator-selected FIFO - open(10,file='xcall.txt',status='old') +! open(10,file='xcall.txt',status='old') do i=1,NCALLS - read(10,1000) xcall(i),xgrid(i) -1000 format(a6,7x,a4) +! read(10,1000) xcall(i),xgrid(i) +!1000 format(a6,7x,a4) + j=mod(i-1,26) + c1=char(ichar('A')+j) + k=mod((i-1)/26,26) + c2=char(ichar('A')+k) + n=mod((i-1)/260,10) + c3=char(ichar('0')+n) + xcall(i)='K'//c2//c3//c1//c1//c1 + + j=mod(i-1,18) + c1=char(ichar('A')+j) + k=mod((i-1)/18,18) + c2=char(ichar('A')+k) + n=mod((i-1)/10,10) + c4=char(ichar('0')+n) + n=mod((i-1)/100,10) + c3=char(ichar('0')+n) + xgrid(i)=c1//c2//c3//c4 + call random_number(x) isnr(i)=-20+int(40*x) enddo - close(10) +! close(10) ! Write headings for the summary file minutes=nseq/4 diff --git a/lib/fox_tx.f90 b/lib/fox_tx.f90 index 1eec64086..9a72b3909 100644 --- a/lib/fox_tx.f90 +++ b/lib/fox_tx.f90 @@ -16,8 +16,11 @@ subroutine fox_tx(maxtimes,fail,called,gcalled,hm,fm,ntimes,log,logit) g4(4:4).ge.'0' .and. g4(4:4).le.'9' .and. g4(1:4).ne.'RR73' logit=.false. + n=len(trim(hm)) + g4="" + if(n.gt.8) g4=hm(n-3:n) call random_number(r) - if(r.lt.fail) hm="" !Fox failed to copy + if(r.lt.fail .and. .not.isgrid(g4)) hm="" !Fox failed to copy i2=len(trim(hm)) if(i2.gt.10) then @@ -59,13 +62,19 @@ subroutine fox_tx(maxtimes,fail,called,gcalled,hm,fm,ntimes,log,logit) if(hm.eq.'') then if(fm(1:3).ne.'CQ ') then - if(ntimes.lt.maxtimes) then +! if(ntimes.lt.maxtimes) then ntimes=ntimes+1 - else +! else +! ntimes=1 +! If FIFO is empty we should call CQ in this slot +! call dxped_fifo(cy,gy,isnry) +! call random_number(r) +! isnr=nint(-20+40*r) +! write(fm,1010) cy,gy,isnr write(fm,1010) called,MyCall,isent 1010 format(a6,1x,a6,i4.2) if(fm(15:15).eq.' ') fm(15:15)='+' - endif +! endif endif endif