!------------------------------------------------------------------------ ! HEADER.GREG ! Procedure to plot header information for contour plots ! Variables defined in DEFINE.GRAPHIC ! Created R.Lucas 10-may-1990 ! Revised S.Guilloteau 29-Jul-1990 (G_PA in radians, SYS_DATE added) !------------------------------------------------------------------------ on error return ! define character text*40 text2*20 define logical landscape define real boxs xbox ybox ! let landscape page_x.gt.page_y let xbox 6*character_size ! was 5 let ybox 3*character_size if (landscape) then let boxs min(page_x-0.1-xbox-12*character_size,page_y-ybox-0.1) ! was 13 if (boxs.lt.0) then say "F-HEADER, Page to small - change page or decrease character size" quit all endif set box xbox+boxs page_x ybox page_y-0.1 else let boxs min(page_x-xbox-0.1,page_y-13*character_size-0.1) if (boxs.lt.0) then say "F-HEADER, Page to small - change page or decrease character size" quit all endif set box xbox xbox+boxs ybox+boxs page_y-0.1 endif if (do_header) then box n n n set expand 1.0 ! let text 'name'.'type' dra text .5 -1 'text' 6 /box 7 set expand 0.8 ! let text "\\iSource:\\i "'&1%source' dra text .5 -2 'text' 6 /box 7 ! let text "\\iLine:\\i "'&1%line' dra text .5 -3 'text' 6 /box 7 ! let text "\\iFrequency:\\i "'1d-6*nint(&1%restfre*1000)'" GHz" dra text .5 -4 'text' 6 /box 7 ! if (&1%major.ne.0) then define integer imajor iminor ipa if (&1%minor.gt.1.0) then let imajor nint(&1%major*180*3600|pi*10) let iminor nint(&1%minor*180*3600|pi*10) let ipa nint(&1%pa*180.0|pi) let text "\\iBeam:\\i "'0.1*imajor'" x "'0.1*iminor'" PA "'ipa'"^" else let imajor nint(&1%major*180*3600|pi*100) let iminor nint(&1%minor*180*3600|pi*100) let ipa nint(&1%pa*180.0|pi) let text "\\iBeam:\\i "'0.01*imajor'" x "'0.01*iminor'" PA "'ipa'"^" endif define real lambda jyperk let lambda 2.99792458e8|&1%restfre*1e-6 let jyperk 2.0*1.38e3*pi*&1%major*&1%minor|4.|log(2.0)|lambda^2 else let text "\\iBeam:\\i (no clean beam)" endif dra text .5 -5 'text' 6 /box 7 ! ! let text2 " " if (spacing.ge.0) then if (&1%unit.eq."Jy".or.&1%unit.eq."Jy/beam") then if (&1%major.ne.0) then let jyperk = true_spacing|jyperk if (&1%unit.eq."Jy") then let text "Jy " else let text "Jy/beam" endif let text2 '0.01*nint(jyperk*100.)'" K " else let text '&1%unit' endif if (true_spacing.gt.10.0) then let text "\\iLevel step:\\i "'nint(true_spacing)'" "'text' else if (true_spacing.gt.0.01) then let text "\\iLevel step:\\i "'nint(true_spacing*1000.)'" m"'text' else let text "\\iLevel step:\\i "'0.1*nint(true_spacing*1e4)'" m"'text' endif else let text '&1%unit' if (true_spacing.gt.10.0) then let text "\\iLevel spacing:\\i "'nint(true_spacing)'" "'text' else if (true_spacing.ge.0.1) then let text "\\iLevel spacing:\\i "'true_spacing'" "'text' else if (true_spacing.ge.0.01) then let text "\\iLevel spacing:\\i "'nint(true_spacing*1e3)'" m"'text' else let text "\\iLevel spacing:\\i "'0.1*nint(true_spacing*1e4)'" m"'text' endif endif else let text "\\iLevel spacing:\\i (user list)" endif dra text .5 -6 'text' 6 /box 7 dra text .5 -7 " "'text2' 6 /box 7 ! ! the exact spelling of the LET commands is mandatory ! (MASK is in a widget menu). if (mark.ne."CHANNEL".and.mark.ne."NONE") then if (&1%unit3.eq."RA") then let mark "RA Offset" else if (&1%unit3.eq."DEC") then let mark "DEC Offset" else if (mark.ne."FREQUENCY") then let mark "VELOCITY" endif endif let text "\\iBox marking:\\i "'mark' dra text .5 -8 'text' 6 /box 7 let text "\\iChannels:\\i ["'first'","'last'"]" dra text .5 -9 text 6 /box 7 ! sic\sic date if (landscape) then dra text 0.0 2.0 "'SYS_INFO'" 5 0 /box 2 dra text 0.0 1.0 "'SYS_DATE'" 5 0 /box 2 else dra text -1.0 0.0 "'SYS_INFO'" 5 90 /box 4 dra text -2.0 0.0 "'SYS_DATE'" 5 90 /box 4 endif ! endif ! DO_HEADER set box xbox xbox+boxs ybox ybox+boxs ! BOX N N N