!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! Copyright 2011 California Institute of Technology !!! !!! shift_reference.class !!! !!! 2011-05-16 version 1.0 Initial release !!! 2011-06-03 version 1.1 Copyright notice; use case; no write if no argument !!! 2014-11-17 version 2.0 sradford !!! update for changes in class variable names !!! !!! @shift_reference [ new_restf(MHz) ] !!! !!! Shifts reference channel and frequency. !!! !!! Use case: You have observed two or more lines simultaneously by doppler- !!! tracking one of them. The spectrometer was *centered* at the same line. !!! Now you want scans *centered* at one of other lines in the signal sideband. !!! To *center* at one of lines in the image sideband, use the procedure !!! swap_sideband.class. !!! !!! file in ... !!! file out ... !!! find ... !!! set variable spectro write !!! for i 1 to found !!! get next !!! @shift_reference 220398.6765 !!! write !!! next !!! !!! C18O (J=2-1) 219560.3568 MHz !!! 13CO (J=2-1) 220398.6765 MHz !!! 12CO (J=2-1) 230538.0000 MHz !!! NB. Update Class's memory by toggling the units before plotting !!! set unit c f !!! set unit v f !!! plot sic\let clight = 2.99792458e5 /new double ! Speed of light (km/s) sic\let new_restf = r%head%spe%restf /new double sic\let new_image = r%head%spe%image /new double sic\let new_rchan = r%head%spe%rchan /new real sic\let new_fres = r%head%spe%fres /new real ! No change (topocentric!!!) sic\let new_vres = r%head%spe%vres /new real sic\if ("&1 ".ne." ") then sic\let new_restf = &1 sic\let new_image = (r%head%spe%restf+r%head%spe%image)-new_restf sic\let new_rchan = r%head%spe%rchan+(new_restf-r%head%spe%restf)*(1+r%head%spe%doppler)/new_fres sic\let new_vres = -clight*new_fres/((1+r%head%spe%doppler)*new_restf) sic\let r%head%spe%restf = new_restf sic\let r%head%spe%image = new_image sic\let r%head%spe%rchan = new_rchan sic\let r%head%spe%fres = new_fres sic\let r%head%spe%vres = new_vres sic\end if