; ; PURPOSE: Calculate date and time that correspond to a fractional crn:Cl0 ; CALLING SEQUENCE : ; datetime_scrncl0_200905,crn,cl0,reso,year,month,day,hh,mm,ss,/plt ; IUPUT: crn,cl0,reso ; OUTPUT: year,month,day,hh,mm,ss,/plt ; MODIFICATION HISTORY : ; First version: 20090531 by X. Zhao based on datetime_scrncl0.pro ; 20060327 by X. Zhao ; pro datetime_scrncl0_suninfo,crn,cl0,reso,cl0i,date,DTL1=dtl1,DTL2=dtl2 if N_params() LT 1 then begin print,'datetime_scrncl0_suninfo,crn,cl0,reso,cl0i,date,/dtl1,/dtl2' print,"crn=2081 & cl0=180.50, crn=2079 & cl0=150.00, 360.00" return endif scrncl0=STRTRIM(crn,2)+':'+STRTRIM(cl0,2) spawn,'suninfo ct'+scrncl0+' > outd.d' date0=' ' & crn=' ' get_lun,unit openr,unit,'outd.d' for ii=0,6 do readf,unit,date0 free_lun,unit spawn,'rm outd.d' ln=STRLEN(date0) date=STRMID(date0,ln-26,22) date0=date cl0i_date_suninfo,date,crn,cl0i ; NEW dcl=cl0i-cl0 if keyword_set(dtl1) then print,'cl0,date0,cl0i:',cl0,' ',date0,cl0i year_sec_date,date,year,month,day,hh,mm,ss ; NEW CASE 1 OF ; Case 1 dcl gt reso: begin ;t-> lbl1: dcl0=dcl if hh eq 24 then begin day=day+1 hh=0 endif hh=hh+1 date_year_sec,year,month,day,hh,mm,ss,date cl0i_date_suninfo,date,crn,cl0i dcl=cl0i-cl0 if keyword_set(dtl1) then print,'date,cl0i,dcl:',date,cl0i,dcl CASE 1 OF dcl ge reso: goto, lbl1 dcl le -reso: begin ;t <- if ABS(dcl) le dcl0 then begin lbl21: mm=mm-1 date_year_sec,year,month,day,hh,mm,ss,date cl0i_date_suninfo,date,crn,cl0i if keyword_set(dtl1) then print,'date,cl0i,dcl:',date,cl0i,dcl dcl=cl0i-cl0 if dcl lt -reso then goto, lbl21 endif else begin hh=hh-1 mm=60 lbl22: mm=mm-1 date_year_sec,year,month,day,hh,mm,ss,date cl0i_date_suninfo,date,crn,cl0i dcl=cl0i-cl0 if dcl ge reso then goto, lbl22 endelse end ENDCASE end ; Case 2 dcl lt -reso: begin ; t <- lbl3: dcl0=dcl if hh eq 0 then begin day=day-1 hh=24 endif hh=hh-1 date_year_sec,year,month,day,hh,mm,ss,date cl0i_date_suninfo,date,crn,cl0i dcl=cl0i-cl0 if keyword_set(dtl1) then print,'date,cl0i,dcl:',date,cl0i,dcl CASE 1 OF dcl le -reso: goto, lbl3 dcl ge reso: begin ; t -> if dcl ge ABS(dcl0) then begin ; t <- hh=hh+1 lbl41: if hh eq 24 then begin hh=0 day=day+1 endif if mm eq 0 then begin hh=hh-1 mm=60 endif mm=mm-1 date_year_sec,year,month,day,hh,mm,ss,date cl0i_date_suninfo,date,crn,cl0i dcl=cl0i-cl0 if keyword_set(dtl1) then print,'date,cl0i,dcl:',date,cl0i,dcl if dcl le -reso then goto, lbl41 endif else begin ; t -> ; mm=0 lbl42: if mm eq 59 then begin hh=hh+1 mm=0 endif mm=mm+1 date_year_sec,year,month,day,hh,mm,ss,date cl0i_date_suninfo,date,crn,cl0i dcl=cl0i-cl0 if keyword_set(dtl1) then print,'date,cl0i,dcl:',date,cl0i,dcl if dcl ge reso then goto, lbl42 endelse end dcl eq 0: goto, lbl5 ENDCASE end ENDCASE lbl5:if hh eq 24 then begin day=day+1 hh=0 endif if keyword_set(dtl2) then begin print,'Orig. cl0 and initial date:',cl0,' ',date0 print,'Last cl0i and date :',cl0i,' ',date endif end