function jdatetodate,jdate,year ;The function jdatetodate takes the Julian date and the year and returns ;the date in yyyymmdd format. ; ;Use is as follows: ; yyyymmdd=jdatetodate(jdate,yyyy) ;Where ; input | jdate = Julian day (integer) ; | yyyy = 4-digit year (integer) ; ; output | yyyymmdd = date of Julian day (eg 19980625) ; ; ;Modified 6/30/99 by BWBerger to change returned date format from yymmdd ;to yyyymmdd. leap=0 if year/4. eq fix(year/4.) then begin leap=1 endif yr=strtrim(string(year),2) month=['01','02','03','04','05','06','07','08','09','10','11','12','01'] days_noleap=[[1,31],[32,59],[60,90],[91,120],[121,151],[152,181],[182,212],[213,243],[244,273],[274,304],[305,334],[335,365],[366,396]] days_leap=[[1,31],[32,60],[days_noleap(*,2:12)+1]] for i=0,12 do begin if leap eq 0 then begin if (jdate ge days_noleap(0,i)) and (jdate le days_noleap(1,i)) then begin mo=month(i) dy=jdate-days_noleap(0,i)+1 if dy le 9 then begin dy='0'+strtrim(string(dy),2) endif else begin dy=strtrim(string(dy),2) endelse endif if jdate gt 365 then begin yr=strtrim(string(year+1),2) endif endif if leap eq 1 then begin if (jdate ge days_leap(0,i)) and (jdate le days_leap(1,i)) then begin mo=month(i) dy=jdate-days_leap(0,i)+1 if dy le 9 then begin dy='0'+strtrim(string(dy),2) endif else begin dy=strtrim(string(dy),2) endelse endif if jdate gt 366 then begin yr=strtrim(string(year+1),2) endif endif endfor date=long(yr+mo+dy) return,date end