; Runs defocus group loop & endmerge in parallel
;
; SOURCE:       pub_refine_start.pam 
;                            [rn]   ArDean Leith Feb 2005
;                            []     ArDean Leith Dec 2005
;
; PURPOSE:      Runs defocus group loop & endmerge  ArDean Leith Feb. 2002
;
; MASTER COPY:  /net/bali/usr1/spider/docs/techs/recon/newprogs/
;
; PURPOSE:      Calls grploop/smangloop, or endmerge in parallel 
;
; CALLED FROM:  Run directly using PubSub
;
; INPUT REGISTERS (SET On operation line):
;    [task]        Task selector
;    [iter]        Current iteration 
;    [grp]         Group number 
;    [rn]          Random number for unique DOC_SYNC files

MD
TR OFF                      ; Loop info turned off
MD
VB OFF                      ; File info turned off

; Input global parameters & file names 
@refine_settings([maxspfreq],[radius],[alignsh],[prj-radius],[iter1],[iter-end],[lambda],[small-ang],[winsize],[converg])

MD                          ; Set OMP processors to all available
SET MP
0

MY FL

IF([task].EQ.-1)THEN       ; Runs angle setting task
   @cpang([iter],[grp])
ENDIF

DO LB1 I=1,[iter]
   RR [ang-step]           ; Angular step (varies with iteration)
   [ang-steps]

   RR [ang-limit]          ;  Restriction on ang. search degrees (varies with iteration)
   [ang-limits]
LB1

IF([task].EQ.0)THEN        ; Runs main refinement  grploop tasks
   ; Returns [stop] which is communicated via document files
   @grploop([ang-step],[ang-limit],[radius],[alignsh],[prj-radius],[iter],[grp],[stop],[maxspfreq])
ENDIF

IF([task].EQ.1)THEN  ; Runs main refinement smangloop tasks
   ; Returns [stop] which is communicated via document files
   @smangloop([ang-step],[radius],[alignsh],[prj-radius],[iter],[grp],[stop],[maxspfreq])
ENDIF

IF([task].EQ.2)THEN          ; Runs endmerge consolidation task
   [next-iter]=[iter]        ; Operates on current iteration
   @endmerge([prj-radius],[grp],[next-iter])
ENDIF

MY FL

; Signal master SPIDER that this task is finished
@pub_refine_doc_sync([task],[stop],[grp],[rn])

EN                           ; This SPIDER ends now
;