1. Allow display of JT65 single-line decodes when there is also an
average decode.
5. Do not call JT4 deep search if Fano decode has succeeded.
7. Fix occasional Fortran error seen with the "#" (nflip=-1) sync.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6678 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2. When switching to JT65 mode, go through JT9 first.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6621 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Add test program fersum; several tweaks to fer65.
Code cleanup in lorentzian, and return chisqr in a(5).
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6567 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2. Make averaging and DS separately selecteble.
3. Clear nftt and avemsg on Clear Avg.
4. Allow fer65 to handle message averaging.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6543 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
1. Use "f" to flag FT decodes, 'h' for hinted decodes.
2. Let "Experience-based" checkboxes activate hinted decoding.
3. Singls-sequence decodes go to left window, average decodes to right.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6542 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
in submodes JT65B, C. More changes still to come!
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6535 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Fell into the Fortran trap for C/C++ programmers, automatic SAVE
attribute on default initialized variables.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6326 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Re-factor the JT4, JT65 and JT9 decoders as Fortran modules using type
bound procedures, the decoder types implement a callback procedure
such that he client of the decoder can interpret the decode results as
they need.
The JT4 decoder has a second callback that delivers message averaging
status. Also the previously separate source files lib/jt4a.f90 and
lib/avg4.f90 have been merged into lib/jt4_decode.f90 as private type
bound procedures of the new jt4_decoder type.
Re-factored the lib/decoder.f90 subroutine to utilize the new decoder
types. Added local procedures to process decodes and averaging results
including the necessary OpenMP synchronization directives for parallel
JT9+JT65 decoding.
Added the jt65_test module which is a basic test harness for JT65
decoding. Re-factored the jt65 utility to utilize the new jt65_test
module.
Changed a few integers to logical variables where their meaning is
clearly binary.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6324 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Groundwork for calling the decoders directly from C/C++ threads.
To access the timer module timer_module must now be used.
Instrumented code need only use the module function 'timer' which is
now a procedure pointer that is guaranteed to be associated (unless
null() is assigned to it, which should not be done). The default
behaviour of 'timer' is to do nothing.
If a Fortran program wishes to profile code it should now use the
timer_impl module which contains a default timer implementation. The
main program should call 'init_timer([filename])' before using 'timer'
or calling routines that are instrumented. If
'init_timer([filename])'. If it is called then an optional file name
may be provided with 'timer.out' being used as a default. The
procedure 'fini_timer()' may be called to close the file.
The default timer implementation is thread safe if used with OpenMP
multi-threaded code so long as the OpenMP thread team is given the
copyin(/timer_private/) attribute for correct operation. The common
block /timer_private/ should be included for OpenMP use by including
the file 'timer_common.inc'.
The module 'lib/timer_C_wrapper.f90' provides a Fortran wrapper along
with 'init' and 'fini' subroutines which allow a C/C++ application to
call timer instrumented Fortran code and for it to receive callbacks
of 'timer()' subroutine invocations. No C/C++ timer implementation is
provided at this stage.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6320 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Also use correct C binding and have compilers determine sizes and
offsets.
The wsjtx.exe program now owns the decoder shared data that is shared
with symspec. It is now in struct dec_data, still a global variable
for now but hopefully a MainWindow member variable soon.
The struct dec_data (in both C/C++ and Fortran) has a sub structure
with the decoder parameters which enables copying and manipulating a
lot cleaner.
New of changed types of shared data must still be modified in
commons.h and a new file lib/jt9com.f90, they must stay in sync as a
pointer to the structure is passed between C and Fortran.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6290 ab8295b8-cf94-4d9e-aec4-7959e3be5d79