From f73a35842a609b9c8fac1a36a88a3a63f22802cc Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 1 Jul 2017 18:46:14 +0000 Subject: [PATCH] Reduce stack usage of F8 decoder modules Reverted to default stack allocation for jt9.exe on Windows. Tidied up FT8 decoder inteface to remove arguments that will probably never be used. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7768 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- CMakeLists.txt | 6 +++--- lib/decoder.f90 | 12 +++++------- lib/ft8_decode.f90 | 8 ++++---- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 193907948..0a7b68e03 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1223,9 +1223,9 @@ if (${OPENMP_FOUND} OR APPLE) ) endif (APPLE) if (WIN32) - set_target_properties (jt9 PROPERTIES - LINK_FLAGS -Wl,--stack,16777216 - ) + # set_target_properties (jt9 PROPERTIES + # LINK_FLAGS -Wl,--stack,16777216 + # ) endif () target_link_libraries (jt9 wsjt_fort_omp wsjt_cxx Qt5::Core) else (${OPENMP_FOUND} OR APPLE) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index ba2b7eaca..0d5153a2e 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -69,10 +69,10 @@ subroutine multimode_decoder(ss,id2,params,nfsample) if(params%nmode.eq.8) then ! We're in FT8 mode call timer('decft8 ',0) - call my_ft8%decode(ft8_decoded,ss,id2,params%nfqso, & - newdat9,params%npts8,params%nutc,params%nfa,params%nfsplit, & - params%nfb,params%ntol,params%nzhsym,logical(params%nagain), & - params%ndepth,params%nmode,params%nsubmode,params%nexp_decode) + call my_ft8%decode(ft8_decoded,id2,params%nfqso, & + newdat9,params%nutc,params%nfa, & + params%nfb,logical(params%nagain), & + params%ndepth,params%nsubmode) call timer('decft8 ',1) go to 800 endif @@ -388,7 +388,7 @@ contains end select end subroutine jt9_decoded - subroutine ft8_decoded (this,sync,snr,dt,freq,nbadcrc,decoded) + subroutine ft8_decoded (this,sync,snr,dt,freq,nbadcrc,decoded) use ft8_decode implicit none @@ -400,7 +400,6 @@ contains integer, intent(in) :: nbadcrc character(len=22), intent(in) :: decoded -!### !$omp critical(decode_results) if(nbadcrc.eq.0) then write(*,1000) params%nutc,snr,dt,nint(freq),decoded 1000 format(i6.6,i4,f5.1,i5,' ~ ',1x,a22) @@ -409,7 +408,6 @@ contains call flush(6) call flush(13) endif -!### !$omp end critical(decode_results) select type(this) type is (counting_ft8_decoder) diff --git a/lib/ft8_decode.f90 b/lib/ft8_decode.f90 index 36df0e2a5..5905385c4 100644 --- a/lib/ft8_decode.f90 +++ b/lib/ft8_decode.f90 @@ -22,22 +22,22 @@ module ft8_decode contains - subroutine decode(this,callback,ss,iwave,nfqso,newdat,npts8,nutc,nfa, & - nfsplit,nfb,ntol,nzhsym,nagain,ndepth,nmode,nsubmode,nexp_decode) + subroutine decode(this,callback,iwave,nfqso,newdat,nutc,nfa, & + nfb,nagain,ndepth,nsubmode) use timer_module, only: timer include 'fsk4hf/ft8_params.f90' class(ft8_decoder), intent(inout) :: this procedure(ft8_decode_callback) :: callback - real ss(1,1) !### dummy, to be removed ### real s(NH1,NHSYM) real candidate(3,100) real dd(15*12000) logical, intent(in) :: newdat, nagain integer*2 iwave(15*12000) character datetime*13,message*22 - + save s,dd + this%callback => callback write(datetime,1001) nutc !### TEMPORARY ### 1001 format("000000_",i6.6)