Viewing contents of file '../idllib/ghrs/pro/calhrs_udl.pro'
pro calhrs_udl,ihudl,ihsdp,udls,udl_begin,udl_end
;
;+
; calhrs_udl
;
; procedure to match udls to science data packets.
;
; CALLING SEQUENCE:
; calhrs_udl,ihudl,ihsdp,udls,udl_begin,udl_end
;
; INPUTS:
; ihudl - headers for udl packets (returned from HRS_READ)
; ihsdp - headers for science packets (returned fro HRS_READ)
; udls - udl array
; OUTPUTS:
; udl_begin - vector giving beggining UDL number for each science
; packet (set to -1 if not found)
; udl_end - vector giving ending udl number for each science packet.
;
; HISTORY:
; version 1 D. Lindler Mar 89
; version 2 JKF/ACC 11-nov-92 - moved to IDL Version 2.
; version 3 JKF/ACC 4-apr-92 - check for 1D UDL and SDP inputs.
;-
;------------------------------------------------------------------------
s=size(ihudl) & nudl=n_elements(ihudl)/s(1)
s=size(ihsdp) & nsdp=n_elements(ihsdp)/s(1)
;
; prelaunch data or ddlink data (ddlink added 11/1/91)
;
if (!prelaunch ne 0) or (ihsdp(0) eq 10) then begin
udl_begin=lonarr(nsdp)
udl_end=replicate(nudl-1,nsdp)
return
endif
;
; post launch data
;
obsnum_udl=transpose(ihudl(19,*))
obsnum_sdp=transpose(ihsdp(19,*))
if min(obsnum_sdp) lt 0 then begin ;GCOST?
obsnum_udl=-obsnum_udl
obsnum_sdp=-obsnum_sdp
endif
max_obsnum=max(obsnum_udl)>max(obsnum_sdp)
fincod=udls(87,*) ;observation fin code
beginu=where(fincod eq 101) & n_begin=!err
endu=where(fincod ne 101) & n_end=!err
obsnum_begin=replicate(-1,max_obsnum+1)
obsnum_end=replicate(-1,max_obsnum+1)
if n_begin gt 0 then obsnum_begin(obsnum_udl(beginu))=beginu
if n_end gt 0 then obsnum_end(obsnum_udl(endu))=endu
udl_begin=obsnum_begin(obsnum_sdp)
udl_end=obsnum_end(obsnum_sdp)
return
end