pro test36_0702,crn,crl1,crl2,i1,i2,di,dt121,dt122,dt120,dt124,dt1240 if n_params( ) lt 1 then begin print,'test36_0702,crn,crl1,crl2,i1,i2,di,dt121,dt122,dt123,dt124,dt1240,/cs3' print,'crn=2075 & crl1=150.550 & crl2=190.505' print,'i1=0 & i2=14 & di=1' return endif ; crn=2075 & crl1=150.550 & crl2=190.505 ; Specify snp0 crnt=INDGEN(15)+crn dt121=fltarr(15) dt1220=fltarr(15) dt122=fltarr(15) dt124=fltarr(15) dt1240=fltarr(15) ; 1 Xuepu print,'Start 1' SPAWN,'date' for ii=i1,i2,di do begin crni=crnt(ii) date_crncrlz1,crni,crl1,date1 date_crncrlz1,crni,crl2,date2 fdoy_date,date1,fdoy1,year1 fdoy_date,date2,fdoy2,year2 dt=fdoy2-fdoy1 CASE 1 OF dt gt 54: begin md=year2 MOD 4 if md eq 0 then fdoy1=fdoy1+366 else fdoy1=fdoy1+365 end dt lt -54: begin md=year1 MOD 4 if md eq 0 then fdoy2=fdoy2+366 else fdoy2=fdoy2+365 end else: print,' ' ENDCASE dt1=fdoy2-fdoy1 dt121(ii)=dt1 endfor ; 2 times, ctimes print,'start 2' SPAWN,'date' for ii=i1,i2,di do begin crni=crnt(ii) CASE 1 OF crl1 lt 10: scrl1='00'+STRTRIM(crl1,2) crl1 lt 100: scrl1='0'+STRTRIM(crl1,2) else: scrl1=STRTRIM(crl1,2) ENDCASE scrncl0=STRTRIM(crni,2)+':'+scrl1 time_crncl0,scrncl0,date10 time_crncl0_ctimes,scrncl0,date1 CASE 1 OF crl2 lt 10: scrl2='00'+STRTRIM(crl2,2) crl2 lt 100: scrl2='0'+STRTRIM(crl2,2) else: scrl2=STRTRIM(crl2,2) ENDCASE scrncl0=STRTRIM(crni,2)+':'+scrl2 time_crncl0,scrncl0,date20 time_crncl0_ctimes,scrncl0,date2 fdoy_date,date10,fdoy10,year10 fdoy_date,date20,fdoy20,year20 dt0=fdoy2-fdoy1 fdoy_date,date1,fdoy1,year1 fdoy_date,date2,fdoy2,year2 dt=fdoy2-fdoy1 CASE 1 OF dt gt 54: begin md=year2 MOD 4 if md eq 0 then begin fdoy10=fdoy10+366 fdoy1=fdoy1+366 endif else begin fdoy10=fdoy10+365 fdoy1=fdoy1+365 endelse end dt lt -54: begin md=year1 MOD 4 if md eq 0 then begin fdoy20=fdoy20+366 fdoy2=fdoy2+366 endif else begin fdoy20=fdoy20+365 fdoy2=fdoy2+365 endelse end else: print,' ' ENDCASE dt20=fdoy20-fdoy10 dt2=fdoy2-fdoy1 dt1220(ii)=dt20 dt122(ii)=dt2 endfor ; 4 Roger and improved Roger print,'start 4' spawn,'date' ; Specify snp366 rseve_xyxvxvyvz0701,rse,ve,rse366,ve366 vs366=fltarr(366) & snp366=vs sdp=25.38 for i=0,365 do begin vs(i)=rse366(i)*2*!pi/sdp ;in AU/day snp366(i)=sdp/(1-ve366(i)/vs366(i)) ;snp=sdp+Ve*snp/Vs endfor for ii=i1,i2,di do begin crni=crnt(ii) crtsnp_crncrl,crni,crl1,snp366,crt1,snp1 crtsnp_crncrl,crni,crl2,snp366,crt2,snp2 ;dct4=(crt2-crni)*snp2 - (crt1-crni)*snp1 dct=crt2-crt1 snp=0.5*(snp1+snp2) dt124(ii)=dct*snp dt1240(ii)=dct*27.2753 endfor print,'End 4' spawn,'date' plt0625,dt121,dt122,dt1220,dt124,dt1240 end