; ; 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 date_crncrlz3,crn,crl,reso,date,crli,date0,PLT=plt pro date_crncrlz3,crn,crl,date,crli,date0,PLT=plt if N_params() LT 1 then begin print,'date_crncrlz3,crn,crl,date,crli,date0,/plt' print,"crn=2081 & crl=180.50, crn=2079 & crl=150.00, 360.00" print,'reso=1,10,60,300,600 sec' return endif lim=0.0166667 ; CASE 1 OF ; reso eq 600: lim=0.166667 ; 600 sec = 10 min. = 0.166667 hr ; reso eq 300: lim=0.0833333 ; reso eq 60: lim=0.0166667 ; reso eq 50: lim=0.0138889 ; reso eq 30: lim=0.00833333 ; reso eq 10: lim=0.00277778 ; reso eq 1: lim=0.000277778 ; ENDCASE scrncrl=STRTRIM(crn,2)+':'+STRTRIM(crl,2) spawn,'suninfo ct'+scrncrl+' > outd.d' str0=' ' get_lun,unit openr,unit,'outd.d' for ii=0,6 do readf,unit,str0 free_lun,unit spawn,'rm outd.d' ln=STRLEN(str0) date0=STRMID(str0,ln-26,22) year_sec_date,date0,year,month,day,hh,mm,ss ; NEW fhr01=mm/60.+ss/3600. fhr0=hh+fhr01 ; print,'str0,fhr0,crl:',str0,fhr0,crl crli_date_suninfo,date0,crn,crli ; NEW dcl=crli-crl if ABS(dcl) gt 100 then crli=crli+360 dcl=crli-crl if keyword_set(plt) then print,'date0,crli,dcl:',date0,crli,dcl CASE 1 OF ; Case 1 dcl gt 0.005: begin lbl1: if hh eq 23 then begin day=day+1 fhr=fhr01 endif else fhr=fhr0 fhr=fhr+lim ;fhr=fhr+1. hh=FIX(fhr) & mm=FIX((fhr-hh)*60) & ss=FIX(((fhr-hh)*60-mm)*60) date_year_sec,year,month,day,hh,mm,ss,date crli_date_suninfo,date,crn,crli dcl=crli-crl if ABS(dcl) gt 100 then crli=crli+360 dcl=crli-crl if keyword_set(plt) then print,'C1-crli,dcl:',crli,dcl if dcl gt 0.005 then goto, lbl1 else day1=day+fhr/24. end ; Case 2 dcl lt -0.005: begin if hh eq 0 then begin day=day-1 fhr0=23+fhr01 fhr=fhr0 endif else fhr=fhr0 lbl3: if mm eq 0 then begin mm=60 if (hh eq 0) then begin day=day-1 hh=24 endif hh=hh-1 fhr1=mm/60.+ss/3600. fhr=hh+fhr1 endif fhr=fhr-lim hh=FIX(fhr) & mm=FIX((fhr-hh)*60) & ss=FIX(((fhr-hh)*60-mm)*60) date_year_sec,year,month,day,hh,mm,ss,date crli_date_suninfo,date,crn,crli dcl=crli-crl if keyword_set(plt) then print,'C2-date,crli,dcl:',date,crli,dcl if dcl lt -0.005 then goto, lbl3 else day1=day+fhr/24. end else: day1=day+fhr0/24. ENDCASE fhr1=(day1-day)*24. if hh eq 24 then begin day=day+1 hh=0 endif date_year_sec,year,month,day,hh,mm,ss,date1 ; if keyword_set(plt) then begin print,'Orig. crl and initial date:',crl,' ',date0 print,'Last crli and date :',crli,' ',date ; endif end