pro get_wind,index,xsize=xsize,ysize=ysize,free=free,$ ypos=ypos,xpos=xpos,retain=retain,title=title if (!d.name ne 'X') then return if n_elements(retain) eq 0 then retain=2 if n_elements(xpos) eq 0 then xpos=0 if n_elements(ypos) eq 0 then ypos=0 if (n_elements(xsize) eq 0) and (n_elements(ysize) ne 0) then xsize=ysize if (n_elements(ysize) eq 0) and (n_elements(xsize) ne 0) then ysize=xsize if (n_elements(ysize) eq 0) and (n_elements(xsize) eq 0) then begin xsize=512 & ysize=512 endif if n_elements(title) eq 0 then title='' avail=0 device,window=ow owx=where(ow eq 1) dt=datatype(index,2) if (dt gt 5) or (dt eq 0) then index=-2 find=where(float(index) eq float(owx),count) get_new=0 if keyword_set(free) then get_new=1 else begin if count gt 0 then begin index=(owx(find))(0) wset,index if (!d.x_size ne xsize) or (!d.y_size ne ysize) then get_new=1 endif else get_new=1 endelse if get_new then $ window,/free,xsize=xsize,ysize=ysize,xpos=xpos,retain=retain,title=title,ypos=ypos index=!d.window wshow,index & wset,index return & end