PRO DIRS__DEFINE
void = {dirs, name:'', year1:0 ,doy1:0 ,year2:0 ,doy2:0}
end
FUNCTION make_dir_tab, year1, ddday1, year2, ddday2,verbose = verbose
if keyword_set(verbose) then verbose = 1b else verbose = 0b
if verbose then message,string(format='("Building directory list for ",I4,"/",I3.3,"->",I4,"/",I3.3)',year1,ddday1, year2, ddday2),/info
n_dirs_pre_2000 = 6
dirs_pre_2000 = replicate({dirs},n_dirs_pre_2000)
dirs_pre_2000.name = ['Turn_on', 'Venus1', 'Ico_m14', 'Ico_m14', 'Venus2', 'Earth']
dirs_pre_2000.year1 = [1997, 1998, 1998, 1999, 1999, 1999]
dirs_pre_2000.doy1 = [298, 116, 364, 1, 175, 227 ]
dirs_pre_2000.year2 = [1997, 1998, 1998, 1999, 1999, 1999]
dirs_pre_2000.doy2 = [299, 116, 365, 5, 175, 257 ]
dir_ext = strarr(4)
dir_ext[0] = '_001_090'
dir_ext[1] = '_091_180'
dir_ext[2] = '_181_270'
dir_ext[3] = '_271_366'
dirnames = ['']
n_dirs_post_2000 = 4
dirs_post_2000 = replicate({dirs},n_dirs_post_2000)
dirs_post_2000.name = dir_ext
dirs_post_2000.doy1 = [1, 91, 181, 271]
dirs_post_2000.doy2 = [90, 180, 270, 366]
if year1 eq year2 then begin
if (year1 lt 2000) then begin
for idir=0,n_dirs_pre_2000-1 do begin
if ( (year1 eq dirs_pre_2000(idir).year1) and $
(ddday1 le dirs_pre_2000(idir).doy2) and $
(ddday2 ge dirs_pre_2000(idir).doy1) ) $
then begin
if verbose then message,'Adding '+dirs_pre_2000(idir).name+'/ to directory list',/info
dirnames=[dirnames, dirs_pre_2000(idir).name]
endif
endfor
endif else begin
dirs_year1 = dirs_post_2000
dirs_year1.name = string(format='(I4)',year1)+dirs_year1.name
dirs_year1.year1 = year1
dirs_year1.year2 = year1
for idir=0,3 do begin
if ( (ddday1 le dirs_year1(idir).doy2) and $
(ddday2 ge dirs_year1(idir).doy1) ) $
then begin
if verbose then message,'Adding '+dirs_year1(idir).name+'/ to directory list',/info
dirnames=[dirnames, dirs_year1(idir).name]
endif
endfor
endelse
endif else begin
if (year1 lt 2000) then begin
if ( (year1 eq 1997) ) then begin
if verbose then message,'Adding Turn_on/ to directory list',/info
dirnames=[dirnames, 'Turn_on']
endif
if ( ( (year1 lt 1998) or ( (year1 eq 1998) and (ddday1 le 116) ) ) and $
( (year2 gt 1998) or ( (year2 eq 1998) and (ddday2 ge 116) ) ) ) then begin
if verbose then message,'Adding Venus1/ to directory list',/info
dirnames=[dirnames, 'Venus1']
endif
if ( ( (year1 lt 1999) or ( (year1 eq 1999) and (ddday1 le 5) ) ) and $
( (year2 gt 1998) or ( (year2 eq 1998) and (ddday2 ge 364) ) ) ) then begin
if verbose then message,'Adding Ico_m14/ to directory list',/info
dirnames=[dirnames, 'Ico_m14']
endif
if ( ( (year1 lt 1999) or ( (year1 eq 1999) and (ddday1 le 175) ) ) and $
( (year2 gt 1999) or ( (year2 eq 1999) and (ddday2 ge 175) ) ) ) then begin
if verbose then message,'Adding Venus2/ to directory list',/info
dirnames=[dirnames, 'Venus2']
endif
if ( ( (year1 lt 1999) or ( (year1 eq 1999) and (ddday1 le 257) ) ) and $
( (year2 gt 1999) or ( (year2 eq 1999) and (ddday2 ge 227) ) ) ) then begin
if verbose then message,'Adding Earth/ to directory list',/info
dirnames=[dirnames, 'Earth']
endif
year=2000
endif else begin
if (ddday1 le 90) then begin
if verbose then message,'Adding '+strmid(string(year1), 3, /reverse_offset)+dir_ext[0]+'/ to directory list',/info
dirnames=[dirnames, strmid(string(year1), 3, /reverse_offset)+dir_ext[0]]
endif
if (ddday1 le 180) then begin
if verbose then message,'Adding '+strmid(string(year1), 3, /reverse_offset)+dir_ext[1]+'/ to directory list',/info
dirnames=[dirnames, strmid(string(year1), 3, /reverse_offset)+dir_ext[1]]
endif
if (ddday1 le 270) then begin
if verbose then message,'Adding '+strmid(string(year1), 3, /reverse_offset)+dir_ext[2]+'/ to directory list',/info
dirnames=[dirnames, strmid(string(year1), 3, /reverse_offset)+dir_ext[2]]
endif
if verbose then message,'Adding '+strmid(string(year1), 3, /reverse_offset)+dir_ext[3]+'/ to directory list',/info
dirnames=[dirnames, strmid(string(year1), 3, /reverse_offset)+dir_ext[3]]
year=year1+1
endelse
if (year2 ge 2000) then begin
while (year lt year2) do begin
if verbose then message,'Adding '+strmid(string(year), 3, /reverse_offset)+dir_ext[0]+'/ to directory list',/info
if verbose then message,'Adding '+strmid(string(year), 3, /reverse_offset)+dir_ext[1]+'/ to directory list',/info
if verbose then message,'Adding '+strmid(string(year), 3, /reverse_offset)+dir_ext[2]+'/ to directory list',/info
if verbose then message,'Adding '+strmid(string(year), 3, /reverse_offset)+dir_ext[3]+'/ to directory list',/info
dirnames=[dirnames, strmid(string(year), 3, /reverse_offset)+dir_ext[0]]
dirnames=[dirnames, strmid(string(year), 3, /reverse_offset)+dir_ext[1]]
dirnames=[dirnames, strmid(string(year), 3, /reverse_offset)+dir_ext[2]]
dirnames=[dirnames, strmid(string(year), 3, /reverse_offset)+dir_ext[3]]
year=year+1
endwhile
if verbose then message,'Adding '+strmid(string(year), 3, /reverse_offset)+dir_ext[0]+'/ to directory list',/info
dirnames=[dirnames, strmid(string(year), 3, /reverse_offset)+dir_ext[0]]
if (ddday2 gt 90) then begin
if verbose then message,'Adding '+strmid(string(year), 3, /reverse_offset)+dir_ext[1]+'/ to directory list',/info
dirnames=[dirnames, strmid(string(year),3, /reverse_offset)+dir_ext[1]]
if (ddday2 gt 180) then begin
if verbose then message,'Adding '+strmid(string(year), 3, /reverse_offset)+dir_ext[2]+'/ to directory list',/info
dirnames=[dirnames, strmid(string(year), 3, /reverse_offset)+dir_ext[2]]
if (ddday2 gt 270) then begin
if verbose then message,'Adding '+strmid(string(year), 3, /reverse_offset)+dir_ext[3]+'/ to directory list',/info
dirnames=[dirnames, strmid(string(year), 3, /reverse_offset)+dir_ext[3]]
endif
endif
endif
endif
endelse
if (n_elements(dirnames) eq 1) then begin
pdirnames=ptr_new()
endif else begin
dirnames=dirnames(1:*)
ndirs = n_elements(dirnames)
dir_check = strarr(ndirs)
for idir=0,ndirs-1 do dir_check(idir)=(strsplit(dirnames(idir),'/',/extract))(0)
pdirnames=ptr_new(dirnames)
endelse
return, pdirnames
end