On 12/06/2016 17:57, Steven Franke wrote: > I’m kind of stuck at the moment. Hoping that you will see something that I’m > missing. In r6773, I am getting consistent decoding results using either > msk144d or wsjt-x on linux, but on OS X I am getting different results > between msk144d and wsjt-x, and also different results between either of > these programs on OS X and linux.
Hi Steve, the problem is almost certainly related to the size and initialization of detmet in detectmsk144.f90. You have it sized at 700 but only initialize it up to element 693 but also access it 3 elements either side of the maximum element value. I tried the following patch but cannot get the number of decodes you have: diff --git a/lib/detectmsk144.f90 b/lib/detectmsk144.f90 index b3fbc5a..8d29947 100644 --- a/lib/detectmsk144.f90 +++ b/lib/detectmsk144.f90 @@ -6,6 +6,7 @@ subroutine detectmsk144(cbig,n,pchk_file,lines,nmessages,nutc) use timer_module, only: timer parameter (NSPM=864, NPTS=3*NSPM) + integer, parameter :: nstep=693 character*22 msgreceived,allmessages(20) character*80 lines(100) character*512 pchk_file,gen_file @@ -26,12 +27,12 @@ subroutine detectmsk144(cbig,n,pchk_file,lines,nmessages,nutc) integer*4 i4Dec6BitWords(12) integer*1 decoded(80) integer*1 i1hashdec - integer indices(700) + integer indices(nstep) integer ipeaks(10) logical ismask(6000) real cbi(42),cbq(42) - real detmet(700) - real detfer(700) + real detmet(-2:nstep+3) + real detfer(nstep) real tonespec(6000) real rcw(12) real dd(NPTS) @@ -82,7 +83,8 @@ subroutine detectmsk144(cbig,n,pchk_file,lines,nmessages,nutc) first=.false. endif - nstep=693 ! fill the detmet, detsnr, detferr arrays + ! fill the detmet, detsnr, detferr arrays + detmet=0. do istp=1,nstep ns=1+256*(istp-1) ne=ns+NPTS-1 @@ -127,7 +129,7 @@ subroutine detectmsk144(cbig,n,pchk_file,lines,nmessages,nutc) detfer(istp)=ferr enddo ! end of detection-metric, snr, and frequency error estimation loop - call indexx(detmet,nstep,indices) !find median of detection metric vector + call indexx(detmet(1:nstep),nstep,indices) !find median of detection metric vector xmed=detmet(indices(nstep/2)) detmet=detmet/xmed ! noise floor of detection metric is 1.0 @@ -358,8 +360,8 @@ subroutine detectmsk144(cbig,n,pchk_file,lines,nmessages,nutc) if( ndupe .eq. 0 ) then nmessages=nmessages+1 allmessages(nmessages)=msgreceived - write(lines(nmessages),1020) nutc,nsnr,t0,nint(fest),msgreceived,char(0) -1020 format(i6.6,i4,f5.1,i5,' & ',a22,a1) + write(lines(nmessages),1020) nutc,nsnr,t0,nint(fest),msgreceived +1020 format(i6.6,i4,f5.1,i5,' & ',a22) endif endif 73 Bill G4WJS. ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e _______________________________________________ wsjt-devel mailing list wsjt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wsjt-devel