mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-09-01 04:37:50 -04:00
Simplify the multi-threading code in msk144sync().
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7127 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
5b5d4ecb7c
commit
f98fc81bf1
@ -54,19 +54,12 @@ subroutine msk144sync(cdat,nframes,ntol,delf,navmask,npeaks,fc,fest, &
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
nfreqs=2*nint(ntol/delf) + 1
|
nfreqs=2*nint(ntol/delf) + 1
|
||||||
if(nfreqs.lt.0) then
|
|
||||||
nthreads=1
|
|
||||||
if2=nint(ntol/delf)
|
|
||||||
if1=-if2
|
|
||||||
call msk144_freq_search(cdat,fc,if1,if2,delf,nframes,navmask,cb, &
|
|
||||||
xmax,bestf,c,xcc)
|
|
||||||
fest=fc+bestf
|
|
||||||
else
|
|
||||||
xm=0.0
|
xm=0.0
|
||||||
bf=0.0
|
bf=0.0
|
||||||
nthreads=min(4,OMP_GET_MAX_THREADS())
|
nthreads=min(8,OMP_GET_MAX_THREADS())
|
||||||
nstep=nfreqs/nthreads
|
nstep=nfreqs/nthreads
|
||||||
call OMP_SET_NUM_THREADS(nthreads)
|
call OMP_SET_NUM_THREADS(nthreads)
|
||||||
|
|
||||||
!$OMP PARALLEL PRIVATE(id,if1,if2)
|
!$OMP PARALLEL PRIVATE(id,if1,if2)
|
||||||
id=OMP_GET_THREAD_NUM() + 1 !Thread id = 1,2,...
|
id=OMP_GET_THREAD_NUM() + 1 !Thread id = 1,2,...
|
||||||
if1=-nint(ntol/delf) + (id-1)*nstep
|
if1=-nint(ntol/delf) + (id-1)*nstep
|
||||||
@ -74,12 +67,15 @@ subroutine msk144sync(cdat,nframes,ntol,delf,navmask,npeaks,fc,fest, &
|
|||||||
if(id.eq.nthreads) if2=nint(ntol/delf)
|
if(id.eq.nthreads) if2=nint(ntol/delf)
|
||||||
call msk144_freq_search(cdat,fc,if1,if2,delf,nframes,navmask,cb, &
|
call msk144_freq_search(cdat,fc,if1,if2,delf,nframes,navmask,cb, &
|
||||||
xm(id),bf(id),cs(1,id),xccs(1,id))
|
xm(id),bf(id),cs(1,id),xccs(1,id))
|
||||||
|
! write(73,3002) id,if1,if2,nfreqs,nthreads,bf(id),xm(id)
|
||||||
|
!3002 format(5i5,2f10.3)
|
||||||
!$OMP END PARALLEL
|
!$OMP END PARALLEL
|
||||||
|
|
||||||
xmax=xm(1)
|
xmax=xm(1)
|
||||||
fest=fc+bf(1)
|
fest=fc+bf(1)
|
||||||
c=cs(1:NSPM,1)
|
c=cs(1:NSPM,1)
|
||||||
xcc=xccs(0:NSPM-1,1)
|
xcc=xccs(0:NSPM-1,1)
|
||||||
|
if(nthreads.gt.1) then
|
||||||
do i=2,nthreads
|
do i=2,nthreads
|
||||||
if(xm(i).gt.xmax) then
|
if(xm(i).gt.xmax) then
|
||||||
xmax=xm(i)
|
xmax=xm(i)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user