pro wrtHXTMap, lun, fpoint, bytout, fhead, rsiz, init_fhead=init_fhead
;
;
;
ref_struct, ref, dpos1, dpos2, sxtos1, sxtos2, sxtos3, stat1
;
if (keyword_set(init_fhead)) then gen_struct, file_header=fhead
gen_struct, gen_index=gen_index
hxt_struct, hxt_index=hxt_index, hxt_roadmap=hxt_roadmap, hxt_version=hxt_version
;
qdebug = 0
print, 'Now Inside WRTHXTMAP.PRO
;
rsiz = ref.HXT_Fil_Rec_Siz
maxsamps = 0
nDataSets = 0
;
ibyt_stop = bytout
fpoint.map_section = bytout
;
first_time = 0		;TODO - should not be necessary
first_day = 0
last_time = 0
last_day = 0
ibyt = fpoint.data_section
while (ibyt lt ibyt_stop) do begin
    ibyt0 = ibyt
    if (qdebug) then print, 'Dset = ', ndatasets+1, '  ibyt = ', ibyt0

    rdwrt, 'R', lun, ibyt, rsiz, Gen_Index, 1
    rdwrt, 'R', lun, ibyt, rsiz, HXT_Index, 1

    hxt_roadmap.byteSkip		= ibyt0
    hxt_roadmap.time			= gen_index.time
    hxt_roadmap.day			= gen_index.day
    hxt_roadmap.dp_mode			= gen_index.dp_mode
    hxt_roadmap.dp_rate			= gen_index.dp_rate
    ;
    hxt_roadmap.sum_L			= hxt_index.sum_L
    hxt_roadmap.sum_M1			= hxt_index.sum_M1
    hxt_roadmap.sum_M2			= hxt_index.sum_M2
    hxt_roadmap.sum_H			= hxt_index.sum_H
    hxt_roadmap.sigma_L			= hxt_index.sigma_L

    hxt_roadmap.dataRecTypes		= hxt_index.dataRecTypes

    rdwrt, 'W', lun, bytout, rsiz, HXT_Roadmap, 1

    if (qdebug) then print, 'Time = ', gen_index.time
    if (qdebug) then print, 'GEN_Index.nIndexByte =', GEN_Index.nIndexByte

    ibyt = ibyt0 + GEN_Index.nIndexByte + Gen_Index.nDataByte
    nDataSets = nDataSets + 1

    day  = hxt_roadmap.day
    time  = hxt_roadmap.time
    if (nDataSets eq 1) then begin
	first_day  = day
	first_time = time
	last_day   = day
	last_time  = time
    end else begin
        s_day = 86400
        v = (day-first_day)*s_day + (time-first_time)/1000
        if (v lt 0) then begin  ;found an earlier start time/day
            first_day  = day
            first_time = time
        end
        v = (day-last_day)*s_day + (time-last_time)/1000
        if (v gt 0) then begin  ;found a later end time/day
            last_day  = day
            last_time = time
        end
    end

    maxsamps = max([maxSamps, gen_index.nDataByte])
end

fpoint.TotBytes		= bytout
fpoint.roadmap_version  = hxt_version.roadmap

fhead.first_Time	= first_time
fhead.first_Day		= first_day
fhead.last_Time		= last_time
fhead.last_Day		= last_day

fhead.nDataSets		= nDataSets
fhead.maxSamps		= maxSamps

end
