;
;
; SOURCE: spider/docs/techs/recon/newprogs/pub_refine_start.pam
; New Feb 2002 ArDean Leith
; [rn] Feb 2005 ArDean Leith
; [] Dec 2005 ArDean Leith
; Clone Jan 2009 ArDean Leith
; Removed cpang, has_scratch Jan 2010 Ardean Leith
; smangloop has_scratch Aug 2010 Ardean Leith
;
; PURPOSE: Runs defocus group loop & endmerge
; Calls grploop/smangloop, or endmerge in parallel
; Run directly in SPIDER
;
; 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
MD
SET MP ; Set OMP processors to all available
0
; Input global parameters & file names
@refine_settings([sp_maxspfreq],[radius],[alignsh],[prj-radius],[iter1],[iter-end],[sp_lambda],[small-ang],[sp_winsize],[converg])
IQ DIR [has-scratch]
[temp_local_dir]
MY FL
IF([task].EQ.0)THEN ; Runs main refinement grploop tasks
RR S [ang-limit] ; Restriction on ang. search (varies with iteration)
[ang-limits]
[iter]
RR S [ang-step] ; Angular step (varies with iteration)
[ang-steps]
[iter]
IF ([has-scratch].GT.0) THEN
; Copy files to local disk
@pub_ref_loop_clone([iter],[grp])
; Returns [stop] which is communicated via document files
@grploop([ang-step],[ang-limit],[radius],[alignsh],[prj-radius],[iter],[grp],[stop],[sp_maxspfreq])
; Copy local disk files to server disk
@pub_ref_loop_declone([iter],[grp])
ELSE
; Redefine [temp_local_dir] to work directory
GLO [temp_local_dir] = '[temp_work_dir]'
; Returns [stop] which is communicated via document files
@grploop([ang-step],[ang-limit],[radius],[alignsh],[prj-radius],[iter],[grp],[stop],[sp_maxspfreq])
ENDIF
ENDIF
IF([task].EQ.1)THEN ; Runs main refinement smangloop tasks
IF ([has-scratch].GT.0) THEN
; Copy files to local disk
@pub_ref_loop_clone([iter],[grp])
; Returns [stop] which is communicated via document files
@smangloop([radius],[alignsh],[prj-radius],[iter],[grp],[stop])
; Copy local disk files to server disk
@pub_ref_loop_declone([iter],[grp])
ELSE
; Redefine [temp_local_dir] to work directory
GLO [temp_local_dir] = '[temp_work_dir]'
; Returns [stop] which is communicated via document files
@smangloop([radius],[alignsh],[prj-radius],[iter],[grp],[stop])
ENDIF
ENDIF
IF([task].EQ.2)THEN ; Runs endmerge consolidation task
[next-iter] = [iter] ; Operates on current iteration
IF ([has-scratch].GT.0) THEN
; Copy files to local disk
@pub_ref_merge_clone([iter],[grp])
@endmerge([prj-radius],[grp],[next-iter])
; Copy local disk files to server disk
@pub_ref_merge_declone([iter],[grp])
ELSE
; Redefine [temp_local_dir] to work directory
GLO [temp_local_dir] = '[temp_work_dir]'
@endmerge([prj-radius],[grp],[next-iter])
ENDIF
ENDIF
MY FL
; Signal master SPIDER that this task is finished
@pub_refine_doc_sync([task],[stop],[grp],[rn])
EN ; This SPIDER ends now
;