diff --git a/lib/ft4/clockit.f90 b/lib/ft4/clockit.f90 index 69d9690d7..7e05f55de 100644 --- a/lib/ft4/clockit.f90 +++ b/lib/ft4/clockit.f90 @@ -6,16 +6,16 @@ subroutine clockit(dname,k) character*8 dname,name(50),space,ename character*16 sname + character*512 data_dir,fname logical first,on(50) real ut(50),ut0(50),dut(50),tt(2) integer ncall(50),nlevel(50),nparent(50) integer onlevel(0:10) -! common/tracer/ limtrace,lu,ntimer data first/.true./,eps/0.000001/,ntrace/0/ data level/0/,nmax/0/,space/' '/ data limtrace/0/,lu/29/,ntimer/1/ save - + if(ntimer.eq.0) return if(lu.lt.1) lu=6 if(k.gt.1) go to 40 !Check for "all done" (k>1) @@ -62,7 +62,7 @@ subroutine clockit(dname,k) ! Write out the timer statistics -40 open(lu,file='clockit.out',status='unknown') +40 open(lu,file=trim(fname),status='unknown') write(lu,1040) 1040 format(/' name time frac dtime', & ' dfrac calls level parent'/73('-')) @@ -99,6 +99,11 @@ subroutine clockit(dname,k) write(lu,1070) sum,sumf 1070 format(/36x,f10.2,f6.2) close(lu) - return + + entry clockit2(data_dir) + i0=index(data_dir,char(0)) + fname=trim(data_dir(1:i0-1))//'/clockit.out' + return + end subroutine clockit diff --git a/lib/ft4/ft4_decode.f90 b/lib/ft4/ft4_decode.f90 index 5ef9527a9..2150568b7 100644 --- a/lib/ft4/ft4_decode.f90 +++ b/lib/ft4/ft4_decode.f90 @@ -1,5 +1,5 @@ subroutine ft4_decode(cdatetime0,tbuf,nfa,nfb,nfqso,iwave,ndecodes,mycall, & - hiscall,nrx,line) + hiscall,nrx,line,data_dir) use packjt77 include 'ft4_params.f90' @@ -9,7 +9,7 @@ subroutine ft4_decode(cdatetime0,tbuf,nfa,nfb,nfqso,iwave,ndecodes,mycall, & character c77*77 character*61 line,linex(100) character*37 decodes(100) - character*120 data_dir + character*512 data_dir,fname character*17 cdatetime0 character*6 mycall,hiscall,hhmmss @@ -68,9 +68,6 @@ subroutine ft4_decode(cdatetime0,tbuf,nfa,nfb,nfqso,iwave,ndecodes,mycall, & syncmin=1.2 maxcand=100 -! ### This is temporary. Correct directory should be passed in as an argument. - data_dir="." - fa=nfa fb=nfb call clockit('getcand4',0) @@ -274,7 +271,9 @@ subroutine ft4_decode(cdatetime0,tbuf,nfa,nfb,nfqso,iwave,ndecodes,mycall, & write(line,1000) hhmmss,nsnr,tsig,nint(freq),message 1000 format(a6,i4,f5.1,i5,' + ',1x,a37) - open(24,file='all_ft4.txt',status='unknown',position='append') + i0=index(data_dir,char(0)) + fname=trim(data_dir(1:i0-1))//'/all_ft4.txt' + open(24,file=trim(fname),status='unknown',position='append') write(24,1002) cdatetime0,nsnr,tsig,nint(freq),message, & nharderror,nsync_qual,isd,niterations if(hhmmss.eq.' ') write(*,1002) cdatetime0,nsnr, & @@ -307,6 +306,7 @@ subroutine ft4_decode(cdatetime0,tbuf,nfa,nfb,nfqso,iwave,ndecodes,mycall, & enddo !Sequence estimation enddo !Candidate list call clockit('ft4_deco',1) + call clockit2(data_dir) call clockit('ft4_deco',101) return diff --git a/lib/ft4/ft4d.f90 b/lib/ft4/ft4d.f90 index 20da1d2ab..12e4e5660 100644 --- a/lib/ft4/ft4d.f90 +++ b/lib/ft4/ft4d.f90 @@ -4,7 +4,7 @@ program ft4d character*8 arg character*17 cdatetime - character*120 data_dir + character*512 data_dir character*11 datetime character*37 decodes(100) character*16 fname @@ -57,7 +57,7 @@ program ft4d close(10) call ft4_decode(cdatetime,0.0,nfa,nfb,nfqso,iwave,ndecodes,mycall, & - hiscall,nrx,line) + hiscall,nrx,line,data_dir) do idecode=1,ndecodes call get_ft4msg(idecode,nrx,line) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index cf20023b6..f24628781 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -165,7 +165,8 @@ extern "C" { void ft4_decode_(char* cdatetime, float* tbuf, int* nfa, int* nfb, int* nfqso, short int id[], int* ndecodes, char* mycall6, char* hiscall6, - int* nrx, char* line, int len1, int len2, int len3, int len4); + int* nrx, char* line, char* ddir, int len1, int len2, int len3, + int len4, int len5); void get_ft4msg_(int* idecode, int* nrx, char* line, int len); @@ -8658,8 +8659,12 @@ void MainWindow::ft4Data(int k) int nrx=-1; int nfa=m_wideGraph->nStartFreq(); int nfb=m_wideGraph->Fmax(); + QString dataDir; + dataDir = m_config.writeable_data_dir ().absolutePath (); + char ddir[512]; + strncpy(ddir,dataDir.toLatin1(), sizeof (ddir) - 1); ft4_decode_(cdatetime,&tbuf,&nfa,&nfb,&nfqso,id,&ndecodes,mycall6,hiscall6, - &nrx,&line[0],17,6,6,61); + &nrx,&line[0],&ddir[0],17,6,6,61,512); line[60]=0; // if(ndecodes>0) { for (int idecode=1; idecode<=ndecodes; idecode++) {