diff options
Diffstat (limited to 'ast/ast_tester')
159 files changed, 0 insertions, 48084 deletions
diff --git a/ast/ast_tester/README b/ast/ast_tester/README deleted file mode 100644 index 8c50db6..0000000 --- a/ast/ast_tester/README +++ /dev/null @@ -1,33 +0,0 @@ - -This directory contains files used for performing some fairly restricted -testing of the AST library. A Fortran 77 compiler is required. As supplied -it uses the g77 Fortran compiler, but this can be changed by editing the ast_tester -script. - -To perform a test: - -- build AST - -- define the environment variables AST and STARLINK so that $AST/lib contains - the AST libraries to be tested, and $STARLINK/lib contains the the USSC libraries. - -- If required, edit the ast_tester script to modify the fortran compiler and/or options. - -- execute the ast_tester script. - - -The script generates various output files which are compared with existing files -which are presumed to represent correct behaviour of the AST library. Any differences -are reported by the script. - -The script also generates various postscript files representing "critically difficult" plots. -A file "*-new.ps" is created for each file "*.head" in the directory. The directory also -contains files "*.ps" which represent the expected appearance of the plots. By default, the -new plots are displayed using ghostview. This can be disabled by specifying the "-nd" option -on the ast_tester command line. - - - - - - diff --git a/ast/ast_tester/a20070718_00010_02_cube.ast b/ast/ast_tester/a20070718_00010_02_cube.ast deleted file mode 100644 index f005938..0000000 --- a/ast/ast_tester/a20070718_00010_02_cube.ast +++ /dev/null @@ -1,339 +0,0 @@ - Begin FrameSet # Set of inter-related coordinate systems -# Title = "3-d compound coordinate system" # Title of coordinate system -# Naxes = 3 # Number of coordinate axes -# Domain = "SKY-DSBSPECTRUM" # Coordinate system domain -# Epoch = 2007.54208230851 # Julian epoch of observation -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 -# Lbl3 = "Radio velocity (USB)" # Label for axis 3 -# System = "Compound" # Coordinate system type -# Uni1 = "hh:mm:ss.s" # Units for axis 1 -# Uni2 = "ddd:mm:ss" # Units for axis 2 -# Uni3 = "km/s" # Units for axis 3 -# Dir1 = 0 # Plot axis 1 in reverse direction - IsA Frame # Coordinate system description - Nframe = 4 # Number of Frames in FrameSet -# Base = 1 # Index of base Frame - Currnt = 4 # Index of current Frame - Nnode = 5 # Number of nodes in FrameSet - Nod1 = 3 # Frame 1 is associated with node 3 - Nod2 = 4 # Frame 2 is associated with node 4 - Nod3 = 5 # Frame 3 is associated with node 5 - Nod4 = 2 # Frame 4 is associated with node 2 - Lnk2 = 1 # Node 2 is derived from node 1 - Lnk3 = 1 # Node 3 is derived from node 1 - Lnk4 = 1 # Node 4 is derived from node 1 - Lnk5 = 1 # Node 5 is derived from node 1 - Frm1 = # Frame number 1 - Begin Frame # Coordinate system description - Title = "Data grid indices; first pixel at (1,1,1)" # Title of coordinate system - Naxes = 3 # Number of coordinate axes - Domain = "GRID" # Coordinate system domain -# Lbl1 = "Data grid index 1" # Label for axis 1 -# Lbl2 = "Data grid index 2" # Label for axis 2 -# Lbl3 = "Data grid index 3" # Label for axis 3 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 -# Uni3 = "pixel" # Units for axis 3 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Data grid index 1" # Axis Label - Symbol = "g1" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Data grid index 2" # Axis Label - Symbol = "g2" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax3 = # Axis number 3 - Begin Axis # Coordinate axis - Label = "Data grid index 3" # Axis Label - Symbol = "g3" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - End Frame - Frm2 = # Frame number 2 - Begin Frame # Coordinate system description - Title = "Pixel coordinates; first pixel at (-8.5,-8.5,-2048.5)" # Title of coordinate system - Naxes = 3 # Number of coordinate axes - Domain = "PIXEL" # Coordinate system domain -# Lbl1 = "Pixel coordinate 1" # Label for axis 1 -# Lbl2 = "Pixel coordinate 2" # Label for axis 2 -# Lbl3 = "Pixel coordinate 3" # Label for axis 3 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 -# Uni3 = "pixel" # Units for axis 3 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Pixel coordinate 1" # Axis Label - Symbol = "p1" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Pixel coordinate 2" # Axis Label - Symbol = "p2" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax3 = # Axis number 3 - Begin Axis # Coordinate axis - Label = "Pixel coordinate 3" # Axis Label - Symbol = "p3" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - End Frame - Frm3 = # Frame number 3 - Begin Frame # Coordinate system description - Title = "Axis coordinates; first pixel at (-8.5,-8.5,-2048.5)" # Title of coordinate system - Naxes = 3 # Number of coordinate axes - Domain = "AXIS" # Coordinate system domain -# Lbl1 = "Axis 1" # Label for axis 1 -# Lbl2 = "Axis 2" # Label for axis 2 -# Lbl3 = "Axis 3" # Label for axis 3 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 -# Uni3 = "pixel" # Units for axis 3 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Axis 1" # Axis Label - Symbol = "a1" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Axis 2" # Axis Label - Symbol = "a2" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax3 = # Axis number 3 - Begin Axis # Coordinate axis - Label = "Axis 3" # Axis Label - Symbol = "a3" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - End Frame - Frm4 = # Frame number 4 - Begin CmpFrame # Compound coordinate system description -# Title = "3-d compound coordinate system" # Title of coordinate system -# Naxes = 3 # Number of coordinate axes -# Domain = "SKY-DSBSPECTRUM" # Coordinate system domain -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 -# Lbl3 = "Radio velocity (USB)" # Label for axis 3 -# Uni1 = "hh:mm:ss.s" # Units for axis 1 -# Uni2 = "ddd:mm:ss" # Units for axis 2 -# Uni3 = "km/s" # Units for axis 3 -# Dir1 = 0 # Plot axis 1 in reverse direction - IsA Frame # Coordinate system description - FrameA = # First component Frame - Begin SkyFrame # Description of celestial coordinate system - Naxes = 2 # Number of coordinate axes - Epoch = 2007.54208230851 # Julian epoch of observation - System = "FK5" # Coordinate system type - ObsLat = 0.346026050148997 # Observers geodetic latitude (rads) - ObsLon = -2.71363306946838 # Observers geodetic longitude (rads) - Dut1 = -0.162963400559962 # UT1-UTC in seconds - Ax1 = # Axis number 1 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - Ax2 = # Axis number 2 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - IsA Frame # Coordinate system description - SRef1 = 4.90555239050187 # Ref. pos. RA 18:44:16.2 - SRef2 = -0.0698132003068136 # Ref. pos. Dec -4:00:00 - End SkyFrame - FrameB = # Second component Frame - Begin DSBSpecFrame # Dual sideband spectral axis - Naxes = 1 # Number of coordinate axes - Epoch = 2007.54208230851 # Julian epoch of observation - System = "VRAD" # Coordinate system type - ObsLat = 0.346026069000144 # Observers geodetic latitude (rads) - ObsLon = -2.71363307300091 # Observers geodetic longitude (rads) - Dut1 = -0.162963400559962 # UT1-UTC in seconds - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - End Axis - IsA Frame # Coordinate system description - SoR = "LSRK" # Standard of rest - RefRA = 4.90553899950038 # Reference RA (rads, FK5 J2000) - RefDec = -0.0698131700797732 # Reference Dec (rads, FK5 J2000) - RstFrq = 372672509000 # Rest frequency (Hz) - SrcVel = 87012.623732646 # Source velocity (m/s) - SrcVRF = "LSRK" # Source velocity rest frame - UFreq = "GHz" # Preferred units for frequency - IsA SpecFrame # Description of spectral coordinate system - DSBCen = 372576971505.836 # Central frequency (Hz topo) - IF = -5251168918.31241 # Intermediate frequency (Hz) - SideBn = "USB" # Represents upper sideband - End DSBSpecFrame - End CmpFrame - Map2 = # Mapping between nodes 1 and 2 - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Series = 0 # Component Mappings applied in parallel - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = 10 # Shift for axis 1 - Sft2 = 10.4938775599003 # Shift for axis 2 - End WinMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 1 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 1 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = 6105939.046167 # Shift for axis 1 - Scl1 = -1.63834485003565e-05 # Scale factor for axis 1 - End WinMap - MapB = # Second component Mapping - Begin SpecMap # Conversion between spectral coordinate systems - Nin = 1 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Nspec = 2 # Number of conversion steps - Spec1 = "FRTOVL" # Convert frequency to rel. velocity - Spec1a = 372672509000 # Rest frequency (Hz) - Spec2 = "VLTOVR" # Convert relativistic to radio velocity - End SpecMap - End CmpMap - End CmpMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - Series = 0 # Component Mappings applied in parallel - MapA = # First component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 2 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - M0 = -2.90888208665722e-05 # Forward matrix value - M1 = 2.90888208665722e-05 # Forward matrix value - Form = "Diagonal" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin WcsMap # FITS-WCS sky projection - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Type = "TAN" # Gnomonic projection - End WcsMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = 0 # Polar longitude (rad.s) - End SphMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 3 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - M0 = -0.0133908234539359 # Forward matrix value - M1 = 0.981401710741326 # Forward matrix value - M2 = 0.191497697117288 # Forward matrix value - M3 = 0.068459122667767 # Forward matrix value - M4 = 0.191965314976427 # Forward matrix value - M5 = -0.979011065499037 # Forward matrix value - M6 = -0.997564050259824 # Forward matrix value - M7 = 0 # Forward matrix value - M8 = -0.0697564737441253 # Forward matrix value - Form = "Full" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = 4.90555329534916 # Polar longitude (rad.s) - End SphMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - MapB = # Second component Mapping - Begin ZoomMap # Zoom about the origin - Nin = 1 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - Zoom = 0.001 # Zoom factor - End ZoomMap - End CmpMap - End CmpMap - Map3 = # Mapping between nodes 1 and 3 - Begin UnitMap # Unit (null) Mapping - Nin = 3 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - End UnitMap - Map4 = # Mapping between nodes 1 and 4 - Begin WinMap # Map one window on to another - Nin = 3 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - Sft1 = -9.5 # Shift for axis 1 - Sft2 = -9.5 # Shift for axis 2 - Sft3 = -2049.5 # Shift for axis 3 - End WinMap - Map5 = # Mapping between nodes 1 and 5 - Begin WinMap # Map one window on to another - Nin = 3 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - Sft1 = -9.5 # Shift for axis 1 - Sft2 = -9.5 # Shift for axis 2 - Sft3 = -2049.5 # Shift for axis 3 - End WinMap - End FrameSet diff --git a/ast/ast_tester/a20070718_00010_02_cube.fits-wcs b/ast/ast_tester/a20070718_00010_02_cube.fits-wcs deleted file mode 100644 index 428efaa..0000000 --- a/ast/ast_tester/a20070718_00010_02_cube.fits-wcs +++ /dev/null @@ -1,61 +0,0 @@ -WCSAXES = 3 / Number of WCS axes -CRPIX1 = 10.0 / Reference pixel on axis 1 -CRPIX2 = 10.493878 / Reference pixel on axis 2 -CRPIX3 = 1.0 / Reference pixel on axis 3 -CRVAL1 = 281.0675 / Value at ref. pixel on axis 1 -CRVAL2 = -4.0 / Value at ref. pixel on axis 2 -CRVAL3 = -13.610153 / Value at ref. pixel on axis 3 -CTYPE1 = 'RA---TAN' / Type of co-ordinate on axis 1 -CTYPE2 = 'DEC--TAN' / Type of co-ordinate on axis 2 -CTYPE3 = 'VRAD ' / Type of co-ordinate on axis 3 -CDELT1 = -0.0016666667 / Pixel size on axis 1 -CDELT2 = 0.0016666667 / Pixel size on axis 2 -CDELT3 = 0.049100739 / Pixel size on axis 3 -CUNIT3 = 'km/s ' / Units for axis 3 -MJD-OBS = 54299.245 / Modified Julian Date of observation -DATE-OBS= '2007-07-18T05:52:31.475' / Date of observation -RADESYS = 'FK5 ' / Reference frame for RA/DEC values -EQUINOX = 2000.0 / [yr] Epoch of reference equinox -SPECSYS = 'LSRK ' / Standard of rest for spectral axis -SSYSSRC = 'LSRK ' / Standard of rest for source redshift -ZSOURCE = 0.000290285 / [] Redshift of source -VELOSYS = -10097.217 / [m/s] Topo. apparent velocity of rest frame -RESTFRQ = 3.7267251E+11 / [Hz] Rest frequency -IMAGFREQ= 3.621676E+11 / [Hz] Image frequency -OBSGEO-X= -5461073.2 / [m] Observatory geocentric X -OBSGEO-Y= -2491089.0 / [m] Observatory geocentric Y -OBSGEO-Z= 2149568.8 / [m] Observatory geocentric Z -WCSAXESA= 3 / Number of WCS axes -WCSNAMEA= 'PIXEL ' / Reference name for the coord. frame -CRPIX1A = 1.0 / Reference pixel on axis 1 -CRPIX2A = 1.0 / Reference pixel on axis 2 -CRPIX3A = 1.0 / Reference pixel on axis 3 -CRVAL1A = -8.5 / Value at ref. pixel on axis 1 -CRVAL2A = -8.5 / Value at ref. pixel on axis 2 -CRVAL3A = -2048.5 / Value at ref. pixel on axis 3 -CTYPE1A = 'p1 ' / Pixel coordinate 1 -CTYPE2A = 'p2 ' / Pixel coordinate 2 -CTYPE3A = 'p3 ' / Pixel coordinate 3 -CDELT1A = 1.0 / Pixel size on axis 1 -CDELT2A = 1.0 / Pixel size on axis 2 -CDELT3A = 1.0 / Pixel size on axis 3 -CUNIT1A = 'pixel ' / Units for axis 1 -CUNIT2A = 'pixel ' / Units for axis 2 -CUNIT3A = 'pixel ' / Units for axis 3 -WCSAXESB= 3 / Number of WCS axes -WCSNAMEB= 'AXIS ' / Reference name for the coord. frame -CRPIX1B = 1.0 / Reference pixel on axis 1 -CRPIX2B = 1.0 / Reference pixel on axis 2 -CRPIX3B = 1.0 / Reference pixel on axis 3 -CRVAL1B = -8.5 / Value at ref. pixel on axis 1 -CRVAL2B = -8.5 / Value at ref. pixel on axis 2 -CRVAL3B = -2048.5 / Value at ref. pixel on axis 3 -CTYPE1B = 'a1 ' / Axis 1 -CTYPE2B = 'a2 ' / Axis 2 -CTYPE3B = 'a3 ' / Axis 3 -CDELT1B = 1.0 / Pixel size on axis 1 -CDELT2B = 1.0 / Pixel size on axis 2 -CDELT3B = 1.0 / Pixel size on axis 3 -CUNIT1B = 'pixel ' / Units for axis 1 -CUNIT2B = 'pixel ' / Units for axis 2 -CUNIT3B = 'pixel ' / Units for axis 3 diff --git a/ast/ast_tester/aitoff.attr b/ast/ast_tester/aitoff.attr deleted file mode 100644 index 85aa9de..0000000 --- a/ast/ast_tester/aitoff.attr +++ /dev/null @@ -1 +0,0 @@ -Grid=1,tickall=0,border=1,tol=0.001 diff --git a/ast/ast_tester/aitoff.box b/ast/ast_tester/aitoff.box deleted file mode 100644 index b4f303e..0000000 --- a/ast/ast_tester/aitoff.box +++ /dev/null @@ -1 +0,0 @@ -10.0 -10.0 300.0 280.0 diff --git a/ast/ast_tester/aitoff.head b/ast/ast_tester/aitoff.head deleted file mode 100644 index 5f34de0..0000000 --- a/ast/ast_tester/aitoff.head +++ /dev/null @@ -1,13 +0,0 @@ -SIMPLE = T / Written by IDL: 30-Jul-1997 05:35:42.00 -BITPIX = -32 / Bits per pixel. -NAXIS = 2 / Number of dimensions -NAXIS1 = 300 / Length of x axis. -NAXIS2 = 300 / Length of y axis. -CTYPE1 = 'GLON-AIT' / X-axis type -CTYPE2 = 'GLAT-AIT' / Y-axis type -CRVAL1 = -149.56866 / Reference pixel value -CRVAL2 = -19.758201 / Reference pixel value -CRPIX1 = 150.500 / Reference pixel -CRPIX2 = 150.500 / Reference pixel -CDELT1 = -1.20000 / Degrees/pixel -CDELT2 = 1.20000 / Degrees/pixel diff --git a/ast/ast_tester/ast_tester b/ast/ast_tester/ast_tester deleted file mode 100755 index e626157..0000000 --- a/ast/ast_tester/ast_tester +++ /dev/null @@ -1,232 +0,0 @@ -#!/bin/tcsh -#+ -# Purpose: -# Does a few tests of the version of AST installed in $INSTALL. - -# Usage: -# ast_tester <-nd> - -# Description: -# Build and run various tests of an AST installation. -# -# Some tests produce graphical output. Postscript plots of the FITS -# headers in the current directory are produced for visual comparison -# with previous versions. For each file matching "*.head" in the current -# directory, a file is created called "*-new.ps". This file should be -# compared visually with the file "*.ps". The new files are displayed -# automatically unless the -nd option is supplied on the command line -# -# This script assumes the gfortran compiler is available. If this is not -# the case, do a global edit of gfortran to whatever fortran 77 compiler -# you have available (you will probably also need to change the compiler -# flags). - -# Options: -# -nd : Suppresses display of test plots. - -# Prior Requirements: -# - Unless the "-nd" option is specified, it requires the gv command (a -# frontend for ghostscript) to be on your PATH. -# - The following environment variables are used: -# STARLINK_DIR - should be set to the root of the tree in which the SSC is -# installed. A default of /star is used if not set. -# AST - should be set to the root of the tree in which the version of -# AST to be tested is installed. A default of $STARLINK_DIR is used -# if not set. - -# Author: -# DSB: David Berry (JAC, Hawaii) -#- - -if( ! $?STARLINK_DIR ) then - setenv STARLINK_DIR /star -endif - -if( ! $?AST ) then - setenv AST $STARLINK_DIR -endif - -if( ! $?LDFLAGS ) then - setenv LDFLAGS "" -endif - -setenv PATH $AST/bin\:$STARLINK_DIR/bin\:$PATH - - -# Build the progs -#gfortran -fno-second-underscore -o regression regression.f -fno-range-check $LDFLAGS -I$AST/include -I$STARLINK_DIR/include -L$AST/lib -L$STARLINK_DIR/lib `ast_link -ems` `chr_link` -gfortran -fno-second-underscore -o plotter plotter.f -fno-range-check $LDFLAGS -I$AST/include -I$STARLINK_DIR/include -L$AST/lib -L$STARLINK_DIR/lib `ast_link -pgp -ems` `pgplot_link` -gfortran -fno-second-underscore -o wcsconverter wcsconverter.f -fno-range-check $LDFLAGS -I$AST/include -I$STARLINK_DIR/include -L$AST/lib -L$STARLINK_DIR/lib `ast_link -ems` `chr_link` `err_link` -gfortran -fno-second-underscore -o simplify simplify.f -fno-range-check $LDFLAGS -I$AST/include -I$STARLINK_DIR/include -L$AST/lib -L$STARLINK_DIR/lib `ast_link -ems` `chr_link` `err_link` - -# Run the other test progs -echo "" - - -foreach prog (testmapping testchebymap testunitnormmap testskyframe testframeset testchannel testpolymap testcmpmap testlutmap testfitstable testtable teststcschan teststc testspecframe testfitschan testswitchmap testrebin testrebinseq testtrangrid testnormmap testtime testrate testflux testratemap testspecflux testxmlchan testregions testkeymap ) - -gfortran -fno-second-underscore -w -g -o $prog -g $prog.f -fno-range-check $LDFLAGS -I$AST/include \ - -I$STARLINK_DIR/include -L$AST/lib -L$STARLINK_DIR/lib `ast_link -ems` \ - `psx_link` `prm_link` `chr_link` `err_link` - -./$prog -\rm $prog - -end - - - -foreach prog (testobject testconvert testerror) - -gcc -o $prog $prog.c -I.. -DHAVE_CONFIG_H $LDFLAGS -L$STARLINK_DIR/lib `ast_link` - -./$prog -\rm $prog - -end - - - - -# Make new plots. -echo "" -echo "Generating new plots..." -echo "" -if( $1 == "-nd" ) then -echo " (but not displaying them because the -nd option was supplied)" -echo "" -endif - -\rm *-new.ps >& /dev/null - -foreach n (*.head) - set bn = `basename $n .head` - - set atfile = "${bn}.attr" - if( -e $atfile ) then - set attr1 = `cat $atfile` - else - set attr1 = ' ' - endif - - set atfile = "${bn}.fattr" - if( -e $atfile ) then - set attr2 = `cat $atfile` - else - set attr2 = ' ' - endif - - set boxfile = "${bn}.box" - if( -e $boxfile ) then - set box = `cat $boxfile` - else - set box = ' ' - endif - - - set psfile = "${bn}-new.ps" - ./plotter $n "$attr1" "$attr2" a.ps $box - - if( -e $STARLINK_DIR/bin/psmerge ) then - $STARLINK_DIR/bin/psmerge -t300x300 -r90 a.ps > $psfile - else - cp a.ps $psfile - endif - - if( $1 != "-nd" ) then - gv $psfile -orientation=landscape - endif - -end - -\rm -f a.ps - - -# Make new fits headers -echo "" -echo "Doing WCS conversion tests..." -echo "" - -set ok = 1 -foreach n ( "timj ast fits-wcs cdmatrix=1" \ - "timj ast fits-iraf" \ - "timj ast fits-aips" \ - "timj ast fits-pc" \ - "timj ast native" \ - "timj ast native" \ - "a20070718_00010_02_cube ast fits-wcs" \ - "dss fits-dss ast" \ - "dss ast dss" \ - "dss ast fits-wcs cdmatrix=1" \ - "degen1 ast fits-wcs cdmatrix=1" \ - "degen1 ast fits-wcs cdmatrix=1" \ - "sip head fits-wcs cdmatrix=1,sipreplace=0" \ - "longslit fits-pc fits-wcs cdmatrix=1" ) - - set a = `echo $n` - - set base = $a[1] - set in_suffix = $a[2] - set encoding = $a[3] - if( $#a > 3 ) then - set attrs = $a[4] - else - set attrs = "" - endif - - set in_file = "$base.$in_suffix" - set old_file = "$base.$encoding" - set new_file = "$base-new.$encoding" - - - ./wcsconverter $in_file $encoding $new_file "$attrs,FitsDigits=8" - diff -c $old_file $new_file > ! $old_file.diff - - if( $status == 0 ) then - \rm -f $old_file.diff $new_file - else - echo " $old_file and $new_file differ\!\! (see $old_file.diff)" - echo " Command was:" - echo " wcsconverter $in_file $encoding $new_file <quote>$attrs,FitsDigits=8<quote>" - set ok = 0 - endif - -end - -if( $ok == 1 ) then - echo " All WCS conversion tests passed" - echo "" -endif - - -echo "" -echo "Doing Simplification tests..." -echo "" - -set ok = 1 -foreach n ( *.map ) - set a = `basename $n .map` - ./simplify $n $a.out - diff -c $a.simp $a.out > ! $a.diff - - if( $status == 0 ) then - \rm -f $a.out $a.diff - else - echo " $a.simp and $a.out differ\!\! (see $a.diff)" - set ok = 0 - endif - -end - -if( $ok == 1 ) then - echo " All simplification tests passed" - echo "" - echo "" -endif - - - - - - -\rm -f plotter wcsconverter simplify testxmlchan diff --git a/ast/ast_tester/brad.map b/ast/ast_tester/brad.map deleted file mode 100644 index d403fce..0000000 --- a/ast/ast_tester/brad.map +++ /dev/null @@ -1,58 +0,0 @@ -Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates -IsA Mapping # Mapping between coordinate systems - Series = 0 # Component Mappings applied in parallel - MapA = # First component Mapping - Begin CmpMap # Compound Mapping - Nin = 1 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 1 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = 0.215698 # Shift for axis 1 - End WinMap - MapB = # Second component Mapping - Begin LutMap # Map 1-d coordinates using a lookup table - Nin = 1 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Nlut = 11 # Number of lookup table elements - Start = 1 # Input value at first element - Incr = 100 # Input value increment between elements - LutInt = 0 # Interpolation method - L1 = 1.39532005786896 # Lookup table elements... - L2 = 1.50432002544403 - L3 = 1.61332011222839 - L4 = 1.72232007980347 - L5 = 1.83132004737854 - L6 = 1.94032001495361 - L7 = 2.04932022094727 - L8 = 2.15831995010376 - L9 = 2.26732015609741 - L10 = 2.37632012367249 - L11 = 2.48532009124756 - End LutMap - End CmpMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin ZoomMap # Zoom about the origin - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Zoom = 5.23598775598299e-06 # Zoom factor - End ZoomMap - MapB = # Second component Mapping - Begin WcsMap # FITS-WCS sky projection - Nin = 2 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - Type = "TAN" # Gnomonic projection - End WcsMap - End CmpMap -End CmpMap diff --git a/ast/ast_tester/brad.simp b/ast/ast_tester/brad.simp deleted file mode 100644 index ffa6e18..0000000 --- a/ast/ast_tester/brad.simp +++ /dev/null @@ -1,49 +0,0 @@ - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 3 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - Sft1 = -0.215698 # Shift for axis 1 - Scl2 = 5.2359877559829903e-06 # Scale factor for axis 2 - Scl3 = 5.2359877559829903e-06 # Scale factor for axis 3 - End WinMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - Series = 0 # Component Mappings applied in parallel - MapA = # First component Mapping - Begin LutMap # Map 1-d coordinates using a lookup table - Nin = 1 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Nlut = 11 # Number of lookup table elements - Start = 1 # Input value at first element - Incr = 100 # Input value increment between elements - LutInt = 0 # Interpolation method - L1 = 1.39532005786896 # Lookup table elements... - L2 = 1.5043200254440301 - L3 = 1.61332011222839 - L4 = 1.7223200798034699 - L5 = 1.83132004737854 - L6 = 1.94032001495361 - L7 = 2.0493202209472701 - L8 = 2.1583199501037602 - L9 = 2.2673201560974099 - L10 = 2.3763201236724898 - L11 = 2.4853200912475599 - End LutMap - MapB = # Second component Mapping - Begin WcsMap # FITS-WCS sky projection - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Type = "TAN" # Gnomonic projection - End WcsMap - End CmpMap - End CmpMap diff --git a/ast/ast_tester/car1.attr b/ast/ast_tester/car1.attr deleted file mode 100644 index f74084f..0000000 --- a/ast/ast_tester/car1.attr +++ /dev/null @@ -1 +0,0 @@ -numlabgap=0.05 diff --git a/ast/ast_tester/car1.box b/ast/ast_tester/car1.box deleted file mode 100644 index 09670e6..0000000 --- a/ast/ast_tester/car1.box +++ /dev/null @@ -1 +0,0 @@ -0 0 2962 562 diff --git a/ast/ast_tester/car1.fattr b/ast/ast_tester/car1.fattr deleted file mode 100644 index 5f408d2..0000000 --- a/ast/ast_tester/car1.fattr +++ /dev/null @@ -1 +0,0 @@ -carlin=1 diff --git a/ast/ast_tester/car1.head b/ast/ast_tester/car1.head deleted file mode 100644 index bec8d59..0000000 --- a/ast/ast_tester/car1.head +++ /dev/null @@ -1,32 +0,0 @@ -SIMPLE = T / Standard FITS format -BITPIX = 16 / Bits per pixel -NAXIS = 2 / Number of axes -NAXIS1 = 2961 / Number pixels on axis 1 -NAXIS2 = 561 / Number pixels on axis 2 -CTYPE1 = 'GLON-CAR' / axis 1 coord type -CRVAL1 = 1.850000e+02 / coord value at CRPIX1 -CDELT1 = -1.250000e-01 / pixel spacing for axis 1 -CRPIX1 = 1.000000 / ref pixel for axis 1 -CTYPE2 = 'GLAT-CAR' / axis 2 coord type -CRVAL2 = -3.500000e+01 / coord value at CRPIX2 -CDELT2 = 1.250000e-01 / pixel spacing for axis 2 -CRPIX2 = 1.000000 / ref pixel for axis 2 -BSCALE = 2.610167e-02 / real = int*bscale + bzero -BZERO = 8.321995e+02 / -DATAMIN = -6.326761e+00 / minimum real value -DATAMAX = 1.670731e+03 / maximum real value -BLANK = -32768 / missing data flag -COMMENT PARENT DISK FILE: Wco_DHT2001.fits -COMMENT temp =colscales( CHANGE-ME , -185.0000, 185.0000) -COMMENT coords=rowscales( temp, 35.0000, -35.0000) -COMMENT Written by MacFITS -COMMENT Created: Tuesday, 14 August, 2001 01:18:06 PM -COMMENT Whole-Galaxy velocity-integrated CO(1-0) map (Fig. 2) from -COMMENT "The Milky Way in Molecular Clouds: A New Complete CO Survey" -COMMENT T. M. Dame, Dap Hartmann, & P. Thaddeus (2001), ApJ, 547, 792. -COMMENT WARNING: Both the angular resolution and the sensitivity varies -COMMENT from region to region in this map: see Fig. 1 and Table 1 from -COMMENT the paper above. Moment masking and clipping were used as -COMMENT necessary to keep the noise in the map below ~1.5 K km/s. -COMMENT See Section 2.2 for details. -END diff --git a/ast/ast_tester/car2.attr b/ast/ast_tester/car2.attr deleted file mode 100644 index 483f747..0000000 --- a/ast/ast_tester/car2.attr +++ /dev/null @@ -1 +0,0 @@ -numlabgap(2)=0.05,labelling=interior diff --git a/ast/ast_tester/car2.box b/ast/ast_tester/car2.box deleted file mode 100644 index 09670e6..0000000 --- a/ast/ast_tester/car2.box +++ /dev/null @@ -1 +0,0 @@ -0 0 2962 562 diff --git a/ast/ast_tester/car2.fattr b/ast/ast_tester/car2.fattr deleted file mode 100644 index 5f408d2..0000000 --- a/ast/ast_tester/car2.fattr +++ /dev/null @@ -1 +0,0 @@ -carlin=1 diff --git a/ast/ast_tester/car2.head b/ast/ast_tester/car2.head deleted file mode 100644 index bec8d59..0000000 --- a/ast/ast_tester/car2.head +++ /dev/null @@ -1,32 +0,0 @@ -SIMPLE = T / Standard FITS format -BITPIX = 16 / Bits per pixel -NAXIS = 2 / Number of axes -NAXIS1 = 2961 / Number pixels on axis 1 -NAXIS2 = 561 / Number pixels on axis 2 -CTYPE1 = 'GLON-CAR' / axis 1 coord type -CRVAL1 = 1.850000e+02 / coord value at CRPIX1 -CDELT1 = -1.250000e-01 / pixel spacing for axis 1 -CRPIX1 = 1.000000 / ref pixel for axis 1 -CTYPE2 = 'GLAT-CAR' / axis 2 coord type -CRVAL2 = -3.500000e+01 / coord value at CRPIX2 -CDELT2 = 1.250000e-01 / pixel spacing for axis 2 -CRPIX2 = 1.000000 / ref pixel for axis 2 -BSCALE = 2.610167e-02 / real = int*bscale + bzero -BZERO = 8.321995e+02 / -DATAMIN = -6.326761e+00 / minimum real value -DATAMAX = 1.670731e+03 / maximum real value -BLANK = -32768 / missing data flag -COMMENT PARENT DISK FILE: Wco_DHT2001.fits -COMMENT temp =colscales( CHANGE-ME , -185.0000, 185.0000) -COMMENT coords=rowscales( temp, 35.0000, -35.0000) -COMMENT Written by MacFITS -COMMENT Created: Tuesday, 14 August, 2001 01:18:06 PM -COMMENT Whole-Galaxy velocity-integrated CO(1-0) map (Fig. 2) from -COMMENT "The Milky Way in Molecular Clouds: A New Complete CO Survey" -COMMENT T. M. Dame, Dap Hartmann, & P. Thaddeus (2001), ApJ, 547, 792. -COMMENT WARNING: Both the angular resolution and the sensitivity varies -COMMENT from region to region in this map: see Fig. 1 and Table 1 from -COMMENT the paper above. Moment masking and clipping were used as -COMMENT necessary to keep the noise in the map below ~1.5 K km/s. -COMMENT See Section 2.2 for details. -END diff --git a/ast/ast_tester/car3.attr b/ast/ast_tester/car3.attr deleted file mode 100644 index b80a7c0..0000000 --- a/ast/ast_tester/car3.attr +++ /dev/null @@ -1 +0,0 @@ -grid=1 diff --git a/ast/ast_tester/car3.box b/ast/ast_tester/car3.box deleted file mode 100644 index 54240c7..0000000 --- a/ast/ast_tester/car3.box +++ /dev/null @@ -1 +0,0 @@ -0 0 400 400 diff --git a/ast/ast_tester/car3.head b/ast/ast_tester/car3.head deleted file mode 100644 index de6c76e..0000000 --- a/ast/ast_tester/car3.head +++ /dev/null @@ -1,8 +0,0 @@ -CTYPE1 = 'GLON-CAR' -CRVAL1 = 1.850000e+02 -CDELT1 = -1.250000e-01 -CRPIX1 = 200.000000 -CTYPE2 = 'GLAT-CAR' -CRVAL2 = -3.500000e+01 -CDELT2 = 1.250000e-01 -CRPIX2 = 200.000000 diff --git a/ast/ast_tester/car4.attr b/ast/ast_tester/car4.attr deleted file mode 100644 index e69de29..0000000 --- a/ast/ast_tester/car4.attr +++ /dev/null diff --git a/ast/ast_tester/car4.box b/ast/ast_tester/car4.box deleted file mode 100644 index 0393b0d..0000000 --- a/ast/ast_tester/car4.box +++ /dev/null @@ -1 +0,0 @@ -0 0 951 1851 diff --git a/ast/ast_tester/car4.fattr b/ast/ast_tester/car4.fattr deleted file mode 100644 index 5f408d2..0000000 --- a/ast/ast_tester/car4.fattr +++ /dev/null @@ -1 +0,0 @@ -carlin=1 diff --git a/ast/ast_tester/car4.head b/ast/ast_tester/car4.head deleted file mode 100644 index 95cd97a..0000000 --- a/ast/ast_tester/car4.head +++ /dev/null @@ -1,38 +0,0 @@ -SIMPLE = T / Written by IDL: Thu Apr 27 08:52:27 2000 -BITPIX = -32 / -NAXIS = 2 / -NAXIS1 = 951 / -NAXIS2 = 1851 / -CRPIX1 = 211076.0 / -CRVAL1 = 0.000000000 / -CTYPE1 = 'GLON-CAR' / -CRPIX2 = 475.39400 / -CRVAL2 = 0.000000000 / -CTYPE2 = 'GLAT-CAR' / -CROTA2 = 0.000000000 / -LONPOLE = 0.00000 / Defined by Greisen and Calabretta -CD1_1 = -0.0016666667 / -CD1_2 = 0.00000 / -CD2_1 = 0.00000 / -CD2_2 = 0.0016666667 / -WAVELENG= 8.28000e-06 / Isophotal wavelength in meters -BUNIT = 'W/m^2-sr' / -SECURITY= 'Unclassified' / -TELESCOP= 'MSX ' / -INSTRUME= 'SPIRITIII' / -ORIGIN = 'AFRL-VSBC' / -MJD-OBS = 50295.5 / Mean modified Julian date of observation -DATE = '16/02/2000' / Date of file generation -HISTORY Convert Version 6.2.X -HISTORY Level-2A Deshadow Version 4.0 -HISTORY Level-2A Saturation Correction Version 1.0 -HISTORY Pointing Convert Version 6.0.1 -HISTORY Makeimage Version 3.2 -HISTORY Destriped -HISTORY Data collected in J2000 FK5 coordinates -HISTORY Data samples transformed to Galactic coordinates -HISTORY and convolved onto image grid using sigma=3.0 arcsec -HISTORY Gaussian kernel -HISTORY Master Plate: GP_351.0_+0.0_A.fits -HISTORY Written by IDL: 28-Jan-2000 17:44:54.00 -END diff --git a/ast/ast_tester/car5.attr b/ast/ast_tester/car5.attr deleted file mode 100644 index e69de29..0000000 --- a/ast/ast_tester/car5.attr +++ /dev/null diff --git a/ast/ast_tester/car5.box b/ast/ast_tester/car5.box deleted file mode 100644 index 0393b0d..0000000 --- a/ast/ast_tester/car5.box +++ /dev/null @@ -1 +0,0 @@ -0 0 951 1851 diff --git a/ast/ast_tester/car5.head b/ast/ast_tester/car5.head deleted file mode 100644 index 2be3a64..0000000 --- a/ast/ast_tester/car5.head +++ /dev/null @@ -1,38 +0,0 @@ -SIMPLE = T / Written by IDL: Thu Apr 27 08:52:27 2000 -BITPIX = -32 / -NAXIS = 2 / -NAXIS1 = 951 / -NAXIS2 = 1851 / -CRPIX1 = -4932.0204 / -CRVAL1 = 0.000000000 / -CTYPE1 = 'GLON-CAR' / -CRPIX2 = 475.39400 / -CRVAL2 = 0.000000000 / -CTYPE2 = 'GLAT-CAR' / -CROTA2 = 0.000000000 / -LONPOLE = 0.00000 / Defined by Greisen and Calabretta -CD1_1 = -0.0016666667 / -CD1_2 = 0.00000 / -CD2_1 = 0.00000 / -CD2_2 = 0.0016666667 / -WAVELENG= 8.28000e-06 / Isophotal wavelength in meters -BUNIT = 'W/m^2-sr' / -SECURITY= 'Unclassified' / -TELESCOP= 'MSX ' / -INSTRUME= 'SPIRITIII' / -ORIGIN = 'AFRL-VSBC' / -MJD-OBS = 50295.5 / Mean modified Julian date of observation -DATE = '16/02/2000' / Date of file generation -HISTORY Convert Version 6.2.X -HISTORY Level-2A Deshadow Version 4.0 -HISTORY Level-2A Saturation Correction Version 1.0 -HISTORY Pointing Convert Version 6.0.1 -HISTORY Makeimage Version 3.2 -HISTORY Destriped -HISTORY Data collected in J2000 FK5 coordinates -HISTORY Data samples transformed to Galactic coordinates -HISTORY and convolved onto image grid using sigma=3.0 arcsec -HISTORY Gaussian kernel -HISTORY Master Plate: GP_351.0_+0.0_A.fits -HISTORY Written by IDL: 28-Jan-2000 17:44:54.00 -END diff --git a/ast/ast_tester/car6.attr b/ast/ast_tester/car6.attr deleted file mode 100644 index e69de29..0000000 --- a/ast/ast_tester/car6.attr +++ /dev/null diff --git a/ast/ast_tester/car6.box b/ast/ast_tester/car6.box deleted file mode 100644 index e5f0493..0000000 --- a/ast/ast_tester/car6.box +++ /dev/null @@ -1 +0,0 @@ -0 0 5401 1741 diff --git a/ast/ast_tester/car6.head b/ast/ast_tester/car6.head deleted file mode 100644 index 5356fa5..0000000 --- a/ast/ast_tester/car6.head +++ /dev/null @@ -1,39 +0,0 @@ -FITS headers in CHIPASS_Equ.fits: -SIMPLE = T / file does conform to FITS standard -BITPIX = -32 / IEEE (big-endian) 32-bit floating point data -NAXIS = 2 / number of data axes -NAXIS1 = 5401 / length of data axis 1 -NAXIS2 = 1741 / length of data axis 2 -EXTEND = T / FITS dataset may contain extensions -COMMENT FITS (Flexible Image Transport System) format is defined in 'Astronomy -COMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H -BUNIT = 'mK ' / Using 438.5 mK/(Jy/beam) plus 3300 mK offset -CTYPE1 = 'RA---CAR' -CRPIX1 = 2701. -CDELT1 = -0.0666666666666667 -CRVAL1 = 180. -CTYPE2 = 'DEC--CAR' -CRPIX2 = 1351. -CDELT2 = 0.0666666666666667 -CRVAL2 = 0. -LONPOLE = 0. / Native longitude of celestial pole -LATPOLE = 90. / Native latitude of celestial pole -RADESYS = 'FK5 ' / Equatorial coordinate system -EQUINOX = 2000.0 / Equinox of equatorial coordinates -BMAJ = 0.24000 / [deg] Beam major axis -BMIN = 0.24000 / [deg] Beam minor axis -BPA = 0.0 / [deg] Beam position angle -FREQENCY= 1.3945E+09 / [Hz] Centre frequency -BANDWID = 6.4E+07 / [Hz] Bandwidth -DATE = '2013-04-20T13:20:39' / file creation date (YYYY-MM-DDThh:mm:ss UT) -COMMENT ------------------------------------------------------------------------ -COMMENT This file contains a 1.4 GHz continuum map of the sky south of dec +26 -COMMENT produced from HIPASS and ZOA data. These surveys were undertaken with -COMMENT the 13-beam multibeam system on the Parkes radio telescope. -COMMENT Details may be found in the following paper: -COMMENT Calabretta, M.R., Staveley-Smith, L., and Barnes, D.G., (2013) -COMMENT PASA (in preparation). -COMMENT ------------------------------------------------------------------------ -COMMENT THIS IS A PRE-PUBLICATION IMAGE, FOR RESTRICTED DISTRIBUTION ONLY -COMMENT ------------------------------------------------------------------------ -END diff --git a/ast/ast_tester/cobe.attr b/ast/ast_tester/cobe.attr deleted file mode 100644 index c1f61e5..0000000 --- a/ast/ast_tester/cobe.attr +++ /dev/null @@ -1 +0,0 @@ -format(1)=gd,format(2)=gd,Grid=1,tickall=0,width(axes)=3 diff --git a/ast/ast_tester/cobe.box b/ast/ast_tester/cobe.box deleted file mode 100644 index b4f303e..0000000 --- a/ast/ast_tester/cobe.box +++ /dev/null @@ -1 +0,0 @@ -10.0 -10.0 300.0 280.0 diff --git a/ast/ast_tester/cobe.head b/ast/ast_tester/cobe.head deleted file mode 100644 index fb6da34..0000000 --- a/ast/ast_tester/cobe.head +++ /dev/null @@ -1,61 +0,0 @@ -SIMPLE = T / Written by IDL: 30-Jul-1997 05:35:42.00 -BITPIX = -32 / Bits per pixel. -NAXIS = 2 / Number of dimensions -NAXIS1 = 300 / Length of x axis. -NAXIS2 = 300 / Length of y axis. -CTYPE1 = 'GLON-ZEA' / X-axis type -CTYPE2 = 'GLAT-ZEA' / Y-axis type -CRVAL1 = -149.56866 / Reference pixel value -CRVAL2 = -19.758201 / Reference pixel value -CRPIX1 = 150.500 / Reference pixel -CRPIX2 = 150.500 / Reference pixel -CDELT1 = -1.20000 / Degrees/pixel -CDELT2 = 1.20000 / Degrees/pixel -CROTA1 = 0.00000 / Rotation in degrees. -COMMENT -COMMENT This file was produced by the SkyView survey analysis system from -COMMENT available astronomical surveys. The data are formatted -COMMENT as a simple two-dimensional FITS image with the same units as -COMMENT the orginal survey. A single ASCII table extension may be present -COMMENT which describes catalog objects found within the field of view. -COMMENT Copies of relevant copyright notices are included in this file. -COMMENT -COMMENT Questions should be directed to: -COMMENT -COMMENT scollick@skyview.gsfc.nasa.gov -COMMENT or -COMMENT mcglynn@grossc.gsfc.nasa.gov -COMMENT -COMMENT SkyView -COMMENT Code 668.1 -COMMENT Goddard Space Flight Center, Greenbelt, MD 20771 -COMMENT 301-286-7780 -COMMENT -COMMENT SkyView is supported by NASA ADP grant NAS 5-32068. -COMMENT -SURVEY = 'COBE DIRBE' -BUNITS = 'MJy/sr ' / -ORIGIN = 'CDAC ' / Cosmology Data Analysis Center -TELESCOP= 'COBE ' / COsmic Background Explorer satellite -INSTRUME= 'DIRBE ' / COBE instrument [DIRBE, DMR, FIRAS] -PIXRESOL= 9 / Quad tree pixel resolution [6, 9] -DATE = '27/09/94' / FITS file creation date (dd/mm/yy) -DATE-MAP= '16/09/94' / Date of original file creation (dd/mm/yy) -COMMENT COBE specific keywords -DATE-BEG= '08/12/89' / date of initial data represented (dd/mm/yy) -DATE-END= '25/09/90' / date of final data represented (dd/mm/yy) -COMMENT -COMMENT THE COBE DIRBE map is a combination of the original ten -COMMENT band passes with the following wavelengths: -COMMENT Band 1 - 1.25 microns -COMMENT Band 2 - 2.2 microns -COMMENT Band 3 - 3.5 microns -COMMENT Band 4 - 4.9 microns -COMMENT Band 5 - 12 microns -COMMENT Band 6 - 25 microns -COMMENT Band 7 - 60 microns -COMMENT Band 8 - 100 microns -COMMENT Band 9 - 140 microns -COMMENT Band 10 - 240 microns -COMMENT -END diff --git a/ast/ast_tester/degen1.ast b/ast/ast_tester/degen1.ast deleted file mode 100644 index 202f149..0000000 --- a/ast/ast_tester/degen1.ast +++ /dev/null @@ -1,318 +0,0 @@ -# -# This FrameSet has 2 axes in the Base (GRID) Frame, but 3 in the Current -# Frame. It is used to test the ability of FitsChan to create degenerate -# WCS axes. It represents the first DEC plane from a WAVE/RA/DEC 3D NDF. -# - Begin FrameSet # Set of inter-related coordinate systems -# Title = "3-d compound coordinate system" # Title of coordinate system -# Naxes = 3 # Number of coordinate axes -# Domain = "CMP" # Coordinate system domain -# Epoch = 2003.0173483725 # Julian epoch of observation -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 -# Lbl3 = "Wavelength axis with no distortion" # Label for axis 3 -# System = "Compound" # Coordinate system type -# Uni1 = "hh:mm:ss.s" # Units for axis 1 -# Uni2 = "ddd:mm:ss" # Units for axis 2 -# Uni3 = "um " # Units for axis 3 -# Dir1 = 0 # Plot axis 1 in reverse direction - ActUnt = 0 # Unit strings do not affect alignment - IsA Frame # Coordinate system description - Nframe = 4 # Number of Frames in FrameSet -# Base = 1 # Index of base Frame - Currnt = 4 # Index of current Frame - Nnode = 5 # Number of nodes in FrameSet - Nod1 = 3 # Frame 1 is associated with node 3 - Nod2 = 4 # Frame 2 is associated with node 4 - Nod3 = 5 # Frame 3 is associated with node 5 - Nod4 = 2 # Frame 4 is associated with node 2 - Lnk2 = 1 # Node 2 is derived from node 1 - Lnk3 = 1 # Node 3 is derived from node 1 - Lnk4 = 1 # Node 4 is derived from node 1 - Lnk5 = 1 # Node 5 is derived from node 1 - Frm1 = # Frame number 1 - Begin Frame # Coordinate system description - Title = "Data grid indices; first pixel at (1,1)" # Title of coordinate system - Naxes = 2 # Number of coordinate axes - Domain = "GRID" # Coordinate system domain -# Lbl1 = "Data grid index 1" # Label for axis 1 -# Lbl2 = "Data grid index 2" # Label for axis 2 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 - ActUnt = 0 # Unit strings do not affect alignment - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Data grid index 1" # Axis Label - Symbol = "g1" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Data grid index 2" # Axis Label - Symbol = "g2" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - End Frame - Frm2 = # Frame number 2 - Begin Frame # Coordinate system description - Title = "Pixel coordinates; first pixel at (0.5,0.5)" # Title of coordinate system - Naxes = 2 # Number of coordinate axes - Domain = "PIXEL" # Coordinate system domain -# Lbl1 = "Pixel coordinate 1" # Label for axis 1 -# Lbl2 = "Pixel coordinate 2" # Label for axis 2 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 - ActUnt = 0 # Unit strings do not affect alignment - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Pixel coordinate 1" # Axis Label - Symbol = "p1" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Pixel coordinate 2" # Axis Label - Symbol = "p2" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - End Frame - Frm3 = # Frame number 3 - Begin Frame # Coordinate system description - Title = "Axis coordinates; first pixel at (0.5,0.5)" # Title of coordinate system - Naxes = 2 # Number of coordinate axes - Domain = "AXIS" # Coordinate system domain -# Lbl1 = "Axis 1" # Label for axis 1 -# Lbl2 = "Axis 2" # Label for axis 2 - ActUnt = 0 # Unit strings do not affect alignment - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Axis 1" # Axis Label - Symbol = "a1" # Axis symbol - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Axis 2" # Axis Label - Symbol = "a2" # Axis symbol - End Axis - End Frame - Frm4 = # Frame number 4 - Begin CmpFrame # Compound coordinate system description -# Title = "3-d compound coordinate system" # Title of coordinate system -# Naxes = 3 # Number of coordinate axes -# Domain = "CMP" # Coordinate system domain -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 -# Lbl3 = "Wavelength axis with no distortion" # Label for axis 3 -# Uni1 = "hh:mm:ss.s" # Units for axis 1 -# Uni2 = "ddd:mm:ss" # Units for axis 2 -# Uni3 = "um " # Units for axis 3 -# Dir1 = 0 # Plot axis 1 in reverse direction - ActUnt = 0 # Unit strings do not affect alignment - IsA Frame # Coordinate system description - Axp1 = 3 # Axis 1 permuted to use internal axis 3 - Axp2 = 1 # Axis 2 permuted to use internal axis 1 - Axp3 = 2 # Axis 3 permuted to use internal axis 2 - FrameA = # First component Frame - Begin SkyFrame # Description of celestial coordinate system - Naxes = 2 # Number of coordinate axes - Epoch = 2003.0173483725 # Julian epoch of observation - System = "FK5" # Coordinate system type - ActUnt = 0 # Unit strings do not affect alignment - Ax1 = # Axis number 1 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - Ax2 = # Axis number 2 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - IsA Frame # Coordinate system description - Proj = "gnomonic" # Description of sky projection - Eqnox = 2000 # Julian epoch of mean equinox - End SkyFrame - FrameB = # Second component Frame - Begin Frame # Coordinate system description - Naxes = 1 # Number of coordinate axes - ActUnt = 0 # Unit strings do not affect alignment - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Wavelength axis with no distortion" # Axis Label - Symbol = "WAVE-WAV" # Axis symbol - Unit = "um " # Axis units - End Axis - End Frame - End CmpFrame - Map2 = # Mapping between nodes 1 and 2 - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - Nout = 3 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin PermMap # Coordinate permutation - Nin = 2 # Number of input coordinates - Nout = 3 # Number of output coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Out1 = 1 # Output coordinate 1 = input coordinate 1 - Out2 = 2 # Output coordinate 2 = input coordinate 2 - Out3 = -1 # Output coordinate 3 = constant no. 1 - InCpy = 1 # Input coordinates = output coordinates - Nconst = 1 # Number of constants - Con1 = 1 # Constant number 1 - End PermMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = -512.5 # Shift for axis 1 - Sft2 = -480.5 # Shift for axis 2 - Sft3 = -480.5 # Shift for axis 3 - End WinMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = -0.00109 # Forward matrix value - M1 = 5.84161700642502e-07 # Forward matrix value - M2 = -5.84161700642502e-07 # Forward matrix value - Form = "Diagonal" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin WcsMap # FITS-WCS sky projection - Nin = 3 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - Type = "TAN" # Gnomonic projection - WcsAx1 = 2 # Index of celestial longitude axis - WcsAx2 = 3 # Index of celestial latitude axis - End WcsMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin PermMap # Coordinate permutation - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Out1 = 2 # Output coordinate 1 = input coordinate 2 - Out2 = 3 # Output coordinate 2 = input coordinate 3 - Out3 = 1 # Output coordinate 3 = input coordinate 1 - In1 = 3 # Input coordinate 1 = output coordinate 3 - In2 = 1 # Input coordinate 2 = output coordinate 1 - In3 = 2 # Input coordinate 3 = output coordinate 2 - End PermMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - Series = 0 # Component Mappings applied in parallel - MapA = # First component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - Nout = 3 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - End SphMap - MapB = # Second component Mapping - Begin MatrixMap # Matrix transformation - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = 0.0122898607703168 # Forward matrix value - M1 = -0.231781944526882 # Forward matrix value - M2 = -0.972690130264301 # Forward matrix value - M3 = -0.00292831230784838 # Forward matrix value - M4 = -0.972767767862061 # Forward matrix value - M5 = 0.231763445771093 # Forward matrix value - M6 = -0.999920188969737 # Forward matrix value - M7 = 0 # Forward matrix value - M8 = -0.0126339103497717 # Forward matrix value - Form = "Full" # Matrix storage form - End MatrixMap - End CmpMap - MapB = # Second component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - End SphMap - End CmpMap - MapB = # Second component Mapping - Begin WinMap # Map one window on to another - Nin = 1 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - Sft1 = 1.9534 # Shift for axis 1 - End WinMap - End CmpMap - MapB = # Second component Mapping - Begin PermMap # Coordinate permutation - Nin = 3 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - Out1 = 3 # Output coordinate 1 = input coordinate 3 - Out2 = 1 # Output coordinate 2 = input coordinate 1 - Out3 = 2 # Output coordinate 3 = input coordinate 2 - In1 = 2 # Input coordinate 1 = output coordinate 2 - In2 = 3 # Input coordinate 2 = output coordinate 3 - In3 = 1 # Input coordinate 3 = output coordinate 1 - End PermMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - Map3 = # Mapping between nodes 1 and 3 - Begin UnitMap # Unit (null) Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - End UnitMap - Map4 = # Mapping between nodes 1 and 4 - Begin WinMap # Map one window on to another - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - Sft1 = -0.5 # Shift for axis 1 - Sft2 = -0.5 # Shift for axis 2 - End WinMap - Map5 = # Mapping between nodes 1 and 5 - Begin WinMap # Map one window on to another - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - Sft1 = -0.5 # Shift for axis 1 - Sft2 = -0.5 # Shift for axis 2 - End WinMap - End FrameSet diff --git a/ast/ast_tester/degen1.fits-wcs b/ast/ast_tester/degen1.fits-wcs deleted file mode 100644 index 6e5309d..0000000 --- a/ast/ast_tester/degen1.fits-wcs +++ /dev/null @@ -1,40 +0,0 @@ -WCSAXES = 3 / Number of WCS axes -CRPIX1 = 1.0 / Reference pixel on axis 1 -CRPIX2 = 480.5 / Reference pixel on axis 2 -CRPIX3 = 480.5 / Reference pixel on axis 3 -CRVAL1 = 2.510935 / Value at ref. pixel on axis 1 -CRVAL2 = 166.59799 / Value at ref. pixel on axis 2 -CRVAL3 = -0.723889 / Value at ref. pixel on axis 3 -CTYPE1 = 'WAVE-WAV' / Wavelength axis with no distortion -CTYPE2 = 'RA---TAN' / Type of co-ordinate on axis 2 -CTYPE3 = 'DEC--TAN' / Type of co-ordinate on axis 3 -CD1_1 = -0.00109 / Transformation matrix element -CD2_2 = 3.347E-5 / Transformation matrix element -CD3_3 = -3.347E-5 / Transformation matrix element -CUNIT1 = 'um ' / Units for axis 1 -MJD-OBS = 52646.586 / Modified Julian Date of observation -DATE-OBS= '2003-01-07T14:03:28.816' / Date of observation -RADESYS = 'FK5 ' / Reference frame for RA/DEC values -EQUINOX = 2000.0 / [yr] Epoch of reference equinox -WCSAXESA= 2 / Number of WCS axes -WCSNAMEA= 'PIXEL ' / Reference name for the coord. frame -CRPIX1A = 1.0 / Reference pixel on axis 1 -CRPIX2A = 1.0 / Reference pixel on axis 2 -CRVAL1A = 0.5 / Value at ref. pixel on axis 1 -CRVAL2A = 0.5 / Value at ref. pixel on axis 2 -CTYPE1A = 'p1 ' / Pixel coordinate 1 -CTYPE2A = 'p2 ' / Pixel coordinate 2 -CD1_1A = 1.0 / Transformation matrix element -CD2_2A = 1.0 / Transformation matrix element -CUNIT1A = 'pixel ' / Units for axis 1 -CUNIT2A = 'pixel ' / Units for axis 2 -WCSAXESB= 2 / Number of WCS axes -WCSNAMEB= 'AXIS ' / Reference name for the coord. frame -CRPIX1B = 1.0 / Reference pixel on axis 1 -CRPIX2B = 1.0 / Reference pixel on axis 2 -CRVAL1B = 0.5 / Value at ref. pixel on axis 1 -CRVAL2B = 0.5 / Value at ref. pixel on axis 2 -CTYPE1B = 'a1 ' / Axis 1 -CTYPE2B = 'a2 ' / Axis 2 -CD1_1B = 1.0 / Transformation matrix element -CD2_2B = 1.0 / Transformation matrix element diff --git a/ast/ast_tester/doplot b/ast/ast_tester/doplot deleted file mode 100755 index f7df1ce..0000000 --- a/ast/ast_tester/doplot +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/tcsh - - if( ! $?STARLINK ) then - setenv STARLINK /star - endif - - if( ! $?AST ) then - setenv AST $STARLINK - endif - - if( ! $?LDFLAGS ) then - setenv LDFLAGS "" - endif - - setenv PATH $AST/bin\:$STARLINK/bin\:$PATH - - gfortran -fno-second-underscore -o plotter plotter.f -fno-range-check $LDFLAGS -I$AST/include -I$STARLINK/include -L$AST/lib -L$STARLINK/lib `ast_link -pgp -ems` `pgplot_link` - - set bn = $1 - set n = "${bn}.head" - - set atfile = "${bn}.attr" - if( -e $atfile ) then - set attr1 = `cat $atfile` - else - set attr1 = ' ' - endif - - set atfile = "${bn}.fattr" - if( -e $atfile ) then - set attr2 = `cat $atfile` - else - set attr2 = ' ' - endif - - set boxfile = "${bn}.box" - if( -e $boxfile ) then - set box = `cat $boxfile` - else - set box = ' ' - endif - - - plotter $n "$attr1" "$attr2" a.ps $box - - if( -e $STARLINK/bin/psmerge ) then - $STARLINK/bin/psmerge -t300x300 -r90 a.ps > b.ps - else - cp a.ps b.ps - endif - - gv b.ps -orientation=landscape - diff --git a/ast/ast_tester/dss.ast b/ast/ast_tester/dss.ast deleted file mode 100644 index 6c778c4..0000000 --- a/ast/ast_tester/dss.ast +++ /dev/null @@ -1,166 +0,0 @@ - Begin FrameSet # Set of inter-related coordinate systems -# Title = "FK5 equatorial coordinates; mean equinox J2000.0; gnomonic polynomial projection" # Title of coordinate system -# Naxes = 2 # Number of coordinate axes -# Domain = "SKY" # Coordinate system domain -# Epoch = 2000 # Julian epoch of observation -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 -# System = "FK5" # Coordinate system type -# Uni1 = "hh:mm:ss.s" # Units for axis 1 -# Uni2 = "ddd:mm:ss" # Units for axis 2 -# Dir1 = 0 # Plot axis 1 in reverse direction -# Bot2 = -1.5707963267948966 # Lowest legal axis value -# Top2 = 1.5707963267948966 # Highest legal axis value - IsA Frame # Coordinate system description - Nframe = 2 # Number of Frames in FrameSet - Base = 1 # Index of base Frame - Currnt = 2 # Index of current Frame - Lnk2 = 1 # Node 2 is derived from node 1 - Frm1 = # Frame number 1 - Begin Frame # Coordinate system description - Title = "Pixel Coordinates" # Title of coordinate system - Naxes = 2 # Number of coordinate axes - Domain = "GRID" # Coordinate system domain -# Lbl1 = "Pixel axis 1" # Label for axis 1 -# Lbl2 = "Pixel axis 2" # Label for axis 2 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Pixel axis 1" # Axis Label - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Pixel axis 2" # Axis Label - End Axis - End Frame - Frm2 = # Frame number 2 - Begin SkyFrame # Description of celestial coordinate system - Ident = " " # Permanent Object identification string - IsA Object # AST Object -# Title = "FK5 equatorial coordinates; mean equinox J2000.0; gnomonic polynomial projection" # Title of coordinate system - Naxes = 2 # Number of coordinate axes -# Domain = "SKY" # Coordinate system domain - Epoch = 2000 # Julian epoch of observation -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 - System = "FK5" # Coordinate system type -# Uni1 = "hh:mm:ss.s" # Units for axis 1 -# Uni2 = "ddd:mm:ss" # Units for axis 2 -# Dir1 = 0 # Plot axis 1 in reverse direction -# Bot2 = -1.5707963267948966 # Lowest legal axis value -# Top2 = 1.5707963267948966 # Highest legal axis value - Ax1 = # Axis number 1 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - Ax2 = # Axis number 2 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - IsA Frame # Coordinate system description - Proj = "gnomonic polynomial" # Description of sky projection -# SkyTol = 0.001 # Smallest significant separation [arc-sec] - Eqnox = 2000 # Julian epoch of mean equinox - SRefIs = "Ignored" # Not rotated (ref. pos. is ignored) - SRef1 = 2.8272374655684112 # Ref. pos. RA 10:47:57.3 - SRef2 = -1.0518122540502668 # Ref. pos. Dec -60:15:52 - End SkyFrame - Map2 = # Mapping between nodes 1 and 2 - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = -0.3287946560728543 # Shift for axis 1 - Scl1 = -0.00044129690205585437 # Scale factor for axis 1 - Sft2 = 0.38797155568647818 # Shift for axis 2 - Scl2 = 0.00044129690205585437 # Scale factor for axis 2 - End WinMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin WcsMap # FITS-WCS sky projection - Nin = 2 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - Type = "TPN" # Gnomonic polynomial projection - PV1_0 = 0.00037777813768480556 # Projection parameter 0 for axis 1 - PV1_1 = 0.018675372165510556 # Projection parameter 1 for axis 1 - PV1_2 = 1.4659181119170556e-05 # Projection parameter 2 for axis 1 - PV1_4 = -5.6541834490241662e-09 # Projection parameter 4 for axis 1 - PV1_5 = -1.6598619578175834e-10 # Projection parameter 5 for axis 1 - PV1_6 = 3.324645548432778e-09 # Projection parameter 6 for axis 1 - PV1_7 = 6.8029375162963896e-10 # Projection parameter 7 for axis 1 - PV1_8 = -1.0315391309210556e-11 # Projection parameter 8 for axis 1 - PV1_9 = 6.5770184096316667e-10 # Projection parameter 9 for axis 1 - PV1_10 = 4.6843790588691666e-11 # Projection parameter 10 for axis 1 - PV1_17 = 0 # Projection parameter 17 for axis 1 - PV1_19 = 0 # Projection parameter 19 for axis 1 - PV1_21 = 0 # Projection parameter 21 for axis 1 - PV2_0 = 0.00020734395690532499 # Projection parameter 0 for axis 2 - PV2_1 = 0.018675089806542779 # Projection parameter 1 for axis 2 - PV2_2 = -1.6578391725152224e-05 # Projection parameter 2 for axis 2 - PV2_4 = -5.1378767937980552e-09 # Projection parameter 4 for axis 2 - PV2_5 = -1.7623932712259446e-09 # Projection parameter 5 for axis 2 - PV2_6 = 2.7161547313251387e-10 # Projection parameter 6 for axis 2 - PV2_7 = 7.088907407099166e-10 # Projection parameter 7 for axis 2 - PV2_8 = 1.8432618513145277e-11 # Projection parameter 8 for axis 2 - PV2_9 = 6.8491061989569442e-10 # Projection parameter 9 for axis 2 - PV2_10 = 7.3325859634708332e-13 # Projection parameter 10 for axis 2 - PV2_17 = 0 # Projection parameter 17 for axis 2 - PV2_19 = 0 # Projection parameter 19 for axis 2 - PV2_21 = 0 # Projection parameter 21 for axis 2 - End WcsMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = 0 # Polar longitude (rad.s) - End SphMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = 0.82577216035104439 # Forward matrix value - M1 = -0.30920332196760869 # Forward matrix value - M2 = -0.47169232013396639 # Forward matrix value - M3 = -0.26848851872737706 # Forward matrix value - M4 = -0.95099595460979502 # Forward matrix value - M5 = 0.153364303628268 # Forward matrix value - M6 = -0.49599824042101986 # Forward matrix value - M7 = 0 # Forward matrix value - M8 = -0.86832352582390171 # Forward matrix value - Form = "Full" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = 2.8272374655684112 # Polar longitude (rad.s) - End SphMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End FrameSet diff --git a/ast/ast_tester/dss.dss b/ast/ast_tester/dss.dss deleted file mode 100644 index c57a035..0000000 --- a/ast/ast_tester/dss.dss +++ /dev/null @@ -1,58 +0,0 @@ -CNPIX1 = 1.0 / X corner (pixels) -CNPIX2 = 1.0 / Y corner (pixels) -PPO1 = 0.0 / Orientation co-efficients -PPO2 = 0.0 -PPO3 = -18825.904 -PPO4 = 0.0 -PPO5 = 0.0 -PPO6 = -22216.49 -XPIXELSZ= 25.28445 / X pixel size (microns) -YPIXELSZ= 25.28445 / Y pixel size (microns) -PLTRAH = 10.0 / RA at plate centre -PLTRAM = 47.0 -PLTRAS = 57.30587 -PLTDECD = 60.0 / DEC at plate centre -PLTDECM = 15.0 -PLTDECS = 51.85079 -PLTDECSN= '- ' -PLTSCALE= 67.230832 / Plate scale (arcsec/mm) -AMDX1 = 67.23134 / Plate solution x co-efficients -AMDX2 = 0.052773052 -AMDX3 = 1.3600013 -AMDX4 = -2.035506E-5 -AMDX5 = -5.975503E-7 -AMDX6 = 1.1968724E-5 -AMDX7 = 0.0 -AMDX8 = 2.4490575E-6 -AMDX9 = -3.7135409E-8 -AMDX10 = 2.3677266E-6 -AMDX11 = 1.6863765E-7 -AMDX12 = 0.0 -AMDX13 = 0.0 -AMDX14 = 0.0 -AMDX15 = 0.0 -AMDX16 = 0.0 -AMDX17 = 0.0 -AMDX18 = 0.0 -AMDX19 = 0.0 -AMDX20 = 0.0 -AMDY1 = 67.230323 / Plate solution y co-efficients -AMDY2 = -0.05968221 -AMDY3 = 0.74643824 -AMDY4 = -1.8496356E-5 -AMDY5 = -6.3446158E-6 -AMDY6 = 9.778157E-7 -AMDY7 = 0.0 -AMDY8 = 2.5520067E-6 -AMDY9 = 6.6357427E-8 -AMDY10 = 2.4656782E-6 -AMDY11 = 2.6397309E-9 -AMDY12 = 0.0 -AMDY13 = 0.0 -AMDY14 = 0.0 -AMDY15 = 0.0 -AMDY16 = 0.0 -AMDY17 = 0.0 -AMDY18 = 0.0 -AMDY19 = 0.0 -AMDY20 = 0.0 diff --git a/ast/ast_tester/dss.fits-dss b/ast/ast_tester/dss.fits-dss deleted file mode 100644 index c728dc4..0000000 --- a/ast/ast_tester/dss.fits-dss +++ /dev/null @@ -1,108 +0,0 @@ -SIMPLE = T /FITS header -BITPIX = 16 /No.Bits per pixel -NAXIS = 2 /No.dimensions -NAXIS1 = 530 /Length X axis -NAXIS2 = 530 /Length Y axis -EXTEND = T / -DATE = '29/08/02 ' /Date of FITS file creation -ORIGIN = 'CASB -- STScI ' /Origin of FITS image -PLTLABEL= 'V 11596 ' /Observatory plate label -PLATEID = '06A6 ' /GSSS Plate ID -REGION = 'XV128 ' /GSSS Region Name -DATE-OBS= '19/01/87 ' /UT date of Observation -UT = '17:35:00.00 ' /UT time of observation -EPOCH = 1.9870512695313E+03 /Epoch of plate -PLTRAH = 10 /Plate center RA -PLTRAM = 47 / -PLTRAS = 5.7305870000000E+01 / -PLTDECSN= '- ' /Plate center Dec -PLTDECD = 60 / -PLTDECM = 15 / -PLTDECS = 5.1850790000000E+01 / -EQUINOX = 2.0000000000000E+03 /Julian Reference frame equinox -EXPOSURE= 4.0000000000000E+00 /Exposure time minutes -BANDPASS= 6 /GSSS Bandpass code -PLTGRADE= 1 /Plate grade -PLTSCALE= 6.7200000000000E+01 /Plate Scale arcsec per mm -SITELAT = '-31:16:24.00 ' /Latitude of Observatory -SITELONG= '+149:03:42.00 ' /Longitude of Observatory -TELESCOP= 'UK Schmidt (new optics)' /Telescope where plate taken -CNPIX1 = 7696 /X corner (pixels) -CNPIX2 = 7926 /Y corner -DATATYPE= 'INTEGER*2 ' /Type of Data -SCANIMG = 'XV128_06A6_00_00.PIM' /Name of original scan -SCANNUM = 0 /Identifies scan of the plate -DCHOPPED= F /Image repaired for chopping effects -DSHEARED= F /Image repaired for shearing effects -DSCNDNUM= 0 /Identifies descendant of plate scan image -XPIXELSZ= 2.5284450000000E+01 /X pixel size microns -YPIXELSZ= 2.5284450000000E+01 /Y pixel size microns -PPO1 = 0.0000000000000E+00 /Orientation Coefficients -PPO2 = 0.0000000000000E+00 / -PPO3 = 1.7573793885557E+05 / -PPO4 = 0.0000000000000E+00 / -PPO5 = 0.0000000000000E+00 / -PPO6 = 1.7816277576304E+05 / -AMDX1 = 6.7231339795838E+01 /Plate solution x coefficients -AMDX2 = 5.2773052029014E-02 / -AMDX3 = 1.3600012956653E+00 / -AMDX4 = -2.0355060416487E-05 / -AMDX5 = -5.9755030481433E-07 / -AMDX6 = 1.1968723974358E-05 / -AMDX7 = 0.0000000000000E+00 / -AMDX8 = 2.4490575058667E-06 / -AMDX9 = -3.7135408713158E-08 / -AMDX10 = 2.3677266274674E-06 / -AMDX11 = 1.6863764611929E-07 / -AMDX12 = 0.0000000000000E+00 / -AMDX13 = 0.0000000000000E+00 / -AMDX14 = 0.0000000000000E+00 / -AMDX15 = 0.0000000000000E+00 / -AMDX16 = 0.0000000000000E+00 / -AMDX17 = 0.0000000000000E+00 / -AMDX18 = 0.0000000000000E+00 / -AMDX19 = 0.0000000000000E+00 / -AMDX20 = 0.0000000000000E+00 / -AMDY1 = 6.7230323303554E+01 /Plate solution y coefficients -AMDY2 = -5.9682210210548E-02 / -AMDY3 = 7.4643824485917E-01 / -AMDY4 = -1.8496356457673E-05 / -AMDY5 = -6.3446157764134E-06 / -AMDY6 = 9.7781570327705E-07 / -AMDY7 = 0.0000000000000E+00 / -AMDY8 = 2.5520066665557E-06 / -AMDY9 = 6.6357426647323E-08 / -AMDY10 = 2.4656782316245E-06 / -AMDY11 = 2.6397309468495E-09 / -AMDY12 = 0.0000000000000E+00 / -AMDY13 = 0.0000000000000E+00 / -AMDY14 = 0.0000000000000E+00 / -AMDY15 = 0.0000000000000E+00 / -AMDY16 = 0.0000000000000E+00 / -AMDY17 = 0.0000000000000E+00 / -AMDY18 = 0.0000000000000E+00 / -AMDY19 = 0.0000000000000E+00 / -AMDY20 = 0.0000000000000E+00 / - Based on photographic data obtained using The UK Schmidt Telescope. - The UK Schmidt Telescope was operated by the Royal Observatory - Edinburgh, with funding from the UK Science and Engineering Research - Council, until 1988 June, and thereafter by the Anglo-Australian - Observatory. Original plate material is copyright (c) the Royal - Observatory Edinburgh and the Anglo-Australian Observatory. The - plates were processed into the present compressed digital form with - their permission. The Digitized Sky Survey was produced at the Space - Telescope Science Institute under US Government grant NAG W-2166. - - Investigators using these scans are requested to include the above - acknowledgements in any publications. - - Copyright (c) 1993, 1994, Association of Universities for Research in - Astronomy, Inc. All rights reserved. -DATAMAX = 23833 /Maximum data value -DATAMIN = 3673 /Minimum data value -OBJECT = 'data ' /Object ID -OBJCTRA = '10 44 10.340 ' /Object Right Ascension (J2000) -OBJCTDEC= '-59 43 11.40 ' /Object Declination (J2000) -OBJCTX = 7961.96 /Object X on plate (pixels) -OBJCTY = 8191.07 /Object Y on plate (pixels) -END diff --git a/ast/ast_tester/dss.fits-wcs b/ast/ast_tester/dss.fits-wcs deleted file mode 100644 index e9896db..0000000 --- a/ast/ast_tester/dss.fits-wcs +++ /dev/null @@ -1,39 +0,0 @@ -WCSAXES = 2 / Number of WCS axes -CRPIX1 = -745.0645 / Reference pixel on axis 1 -CRPIX2 = -879.1622 / Reference pixel on axis 2 -CRVAL1 = 161.98877 / Value at ref. pixel on axis 1 -CRVAL2 = -60.264403 / Value at ref. pixel on axis 2 -CTYPE1 = 'RA---TAN' / Type of co-ordinate on axis 1 -CTYPE2 = 'DEC--TAN' / Type of co-ordinate on axis 2 -CD1_1 = -0.02528445 / Transformation matrix element -CD2_2 = 0.02528445 / Transformation matrix element -MJD-OBS = 51544.499 / Modified Julian Date of observation -DATE-OBS= '2000-01-01T11:58:55.816' / Date of observation -QV1_0 = 0.00037777814 / Projection parameter -QV1_1 = 0.018675372 / Projection parameter -QV1_2 = 1.4659181E-5 / Projection parameter -QV1_4 = -5.6541834E-9 / Projection parameter -QV1_5 = -1.659862E-10 / Projection parameter -QV1_6 = 3.3246455E-9 / Projection parameter -QV1_7 = 6.8029375E-10 / Projection parameter -QV1_8 = -1.0315391E-11 / Projection parameter -QV1_9 = 6.5770184E-10 / Projection parameter -QV1_10 = 4.6843791E-11 / Projection parameter -QV1_17 = 0.0 / Projection parameter -QV1_19 = 0.0 / Projection parameter -QV1_21 = 0.0 / Projection parameter -QV2_0 = 0.00020734396 / Projection parameter -QV2_1 = 0.01867509 / Projection parameter -QV2_2 = -1.6578392E-5 / Projection parameter -QV2_4 = -5.1378768E-9 / Projection parameter -QV2_5 = -1.7623933E-9 / Projection parameter -QV2_6 = 2.7161547E-10 / Projection parameter -QV2_7 = 7.0889074E-10 / Projection parameter -QV2_8 = 1.8432619E-11 / Projection parameter -QV2_9 = 6.8491062E-10 / Projection parameter -QV2_10 = 7.332586E-13 / Projection parameter -QV2_17 = 0.0 / Projection parameter -QV2_19 = 0.0 / Projection parameter -QV2_21 = 0.0 / Projection parameter -RADESYS = 'FK5 ' / Reference frame for RA/DEC values -EQUINOX = 2000.0 / [yr] Epoch of reference equinox diff --git a/ast/ast_tester/hpx.attr b/ast/ast_tester/hpx.attr deleted file mode 100644 index 496403c..0000000 --- a/ast/ast_tester/hpx.attr +++ /dev/null @@ -1 +0,0 @@ -border=1 diff --git a/ast/ast_tester/hpx.box b/ast/ast_tester/hpx.box deleted file mode 100644 index 8b52762..0000000 --- a/ast/ast_tester/hpx.box +++ /dev/null @@ -1 +0,0 @@ -0.5 0.5 300.5 200.5 diff --git a/ast/ast_tester/hpx.head b/ast/ast_tester/hpx.head deleted file mode 100644 index 9e82b8e..0000000 --- a/ast/ast_tester/hpx.head +++ /dev/null @@ -1,10 +0,0 @@ -NAXIS1 = 300 -NAXIS2 = 200 -CTYPE1 = 'GLON-HPX' -CTYPE2 = 'GLAT-HPX' -CRVAL1 = -149.56866 -CRVAL2 = -19.758201 -CRPIX1 = 150.500 -CRPIX2 = 100.500 -CDELT1 = -1.00000 -CDELT2 = 1.00000 diff --git a/ast/ast_tester/joye_car_headers/CAR_model.head b/ast/ast_tester/joye_car_headers/CAR_model.head deleted file mode 100644 index 82a7d4e..0000000 --- a/ast/ast_tester/joye_car_headers/CAR_model.head +++ /dev/null @@ -1,47 +0,0 @@ -FITS headers in CAR_model.fits: -SIMPLE = T / File conforms to NOST standard -BITPIX = -32 / Bits per pixel -NAXIS = 2 / No data is associated with this header -NAXIS1 = 72 / Length of data axis 1 -NAXIS2 = 36 / Length of data axis 2 -EXTEND = T / Extensions may be present -COMMENT FITS (Flexible Image Transport System) format is defined in 'Astronomy -COMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H -CTYPE1 = 'RA---CAR' / RA---%%%, %%% is the projection, e.g., AIT -CRPIX1 = 36.5 / Reference pixel -CRVAL1 = 266.41683 / RA at the reference pixel -CDELT1 = -5. / X-axis incr per pixel at ref pixel (deg) -CUNIT1 = 'deg ' / Physical unit of X-axis -CTYPE2 = 'DEC--CAR' / DEC---%%%, %%% is the projection, e.g., AIT -CRPIX2 = 18.5 / Reference pixel -CRVAL2 = -29.00781 / DEC at the reference pixel -CDELT2 = 5. / Y-axis incr per pixel at ref pixel (deg) -CUNIT2 = 'deg ' / Physical unit of Y-axis -CROTA2 = 0. / Image rotation (deg) -DATE = '2011-03-16T11:50:24' / -TELESCOP= 'GLAST ' / Name of telescope generating data -INSTRUME= 'LAT ' / Name of instrument generating data -EQUINOX = 2000. / Equinox of RA & DEC specifications -CREATOR = 'gtmodel ' / Software creating file -HISTORY $Id: LatCountsMapTemplate,v 1.2 2004/09/24 03:54:20 jc -HISTORY hiang E -CHECKSUM= 'AU2LCU0IAU0IAU0I' / HDU checksum updated 2011-03-16T15:51:49 -DATASUM = '2800807754' / data unit checksum updated 2011-03-16T15:51:49 -DSTYP1 = 'TIME ' -DSUNI1 = 's ' -DSVAL1 = 'TABLE ' -DSREF1 = ':GTI ' -DSTYP2 = 'ENERGY ' -DSUNI2 = 'MeV ' -DSVAL2 = '100:1000' -DSTYP3 = 'EVENT_CLASS' -DSUNI3 = 'dimensionless' -DSVAL3 = '4:4 ' -DSTYP4 = 'ZENITH_ANGLE' -DSUNI4 = 'deg ' -DSVAL4 = '0:105 ' -NDSKEYS = 4 -FILENAME= 'CAR_model.fits' -HISTORY File modified by user 'jsperki1' with fv on 2011-03-16T12:00:29 -HISTORY File modified by user 'jsperki1' with fv on 2011-03-16T12:01:49 -END diff --git a/ast/ast_tester/joye_car_headers/CHIPASS_Equ.head b/ast/ast_tester/joye_car_headers/CHIPASS_Equ.head deleted file mode 100644 index 5356fa5..0000000 --- a/ast/ast_tester/joye_car_headers/CHIPASS_Equ.head +++ /dev/null @@ -1,39 +0,0 @@ -FITS headers in CHIPASS_Equ.fits: -SIMPLE = T / file does conform to FITS standard -BITPIX = -32 / IEEE (big-endian) 32-bit floating point data -NAXIS = 2 / number of data axes -NAXIS1 = 5401 / length of data axis 1 -NAXIS2 = 1741 / length of data axis 2 -EXTEND = T / FITS dataset may contain extensions -COMMENT FITS (Flexible Image Transport System) format is defined in 'Astronomy -COMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H -BUNIT = 'mK ' / Using 438.5 mK/(Jy/beam) plus 3300 mK offset -CTYPE1 = 'RA---CAR' -CRPIX1 = 2701. -CDELT1 = -0.0666666666666667 -CRVAL1 = 180. -CTYPE2 = 'DEC--CAR' -CRPIX2 = 1351. -CDELT2 = 0.0666666666666667 -CRVAL2 = 0. -LONPOLE = 0. / Native longitude of celestial pole -LATPOLE = 90. / Native latitude of celestial pole -RADESYS = 'FK5 ' / Equatorial coordinate system -EQUINOX = 2000.0 / Equinox of equatorial coordinates -BMAJ = 0.24000 / [deg] Beam major axis -BMIN = 0.24000 / [deg] Beam minor axis -BPA = 0.0 / [deg] Beam position angle -FREQENCY= 1.3945E+09 / [Hz] Centre frequency -BANDWID = 6.4E+07 / [Hz] Bandwidth -DATE = '2013-04-20T13:20:39' / file creation date (YYYY-MM-DDThh:mm:ss UT) -COMMENT ------------------------------------------------------------------------ -COMMENT This file contains a 1.4 GHz continuum map of the sky south of dec +26 -COMMENT produced from HIPASS and ZOA data. These surveys were undertaken with -COMMENT the 13-beam multibeam system on the Parkes radio telescope. -COMMENT Details may be found in the following paper: -COMMENT Calabretta, M.R., Staveley-Smith, L., and Barnes, D.G., (2013) -COMMENT PASA (in preparation). -COMMENT ------------------------------------------------------------------------ -COMMENT THIS IS A PRE-PUBLICATION IMAGE, FOR RESTRICTED DISTRIBUTION ONLY -COMMENT ------------------------------------------------------------------------ -END diff --git a/ast/ast_tester/joye_car_headers/car1.fattr b/ast/ast_tester/joye_car_headers/car1.fattr deleted file mode 100644 index 5f408d2..0000000 --- a/ast/ast_tester/joye_car_headers/car1.fattr +++ /dev/null @@ -1 +0,0 @@ -carlin=1 diff --git a/ast/ast_tester/joye_car_headers/car1.head b/ast/ast_tester/joye_car_headers/car1.head deleted file mode 100644 index bec8d59..0000000 --- a/ast/ast_tester/joye_car_headers/car1.head +++ /dev/null @@ -1,32 +0,0 @@ -SIMPLE = T / Standard FITS format -BITPIX = 16 / Bits per pixel -NAXIS = 2 / Number of axes -NAXIS1 = 2961 / Number pixels on axis 1 -NAXIS2 = 561 / Number pixels on axis 2 -CTYPE1 = 'GLON-CAR' / axis 1 coord type -CRVAL1 = 1.850000e+02 / coord value at CRPIX1 -CDELT1 = -1.250000e-01 / pixel spacing for axis 1 -CRPIX1 = 1.000000 / ref pixel for axis 1 -CTYPE2 = 'GLAT-CAR' / axis 2 coord type -CRVAL2 = -3.500000e+01 / coord value at CRPIX2 -CDELT2 = 1.250000e-01 / pixel spacing for axis 2 -CRPIX2 = 1.000000 / ref pixel for axis 2 -BSCALE = 2.610167e-02 / real = int*bscale + bzero -BZERO = 8.321995e+02 / -DATAMIN = -6.326761e+00 / minimum real value -DATAMAX = 1.670731e+03 / maximum real value -BLANK = -32768 / missing data flag -COMMENT PARENT DISK FILE: Wco_DHT2001.fits -COMMENT temp =colscales( CHANGE-ME , -185.0000, 185.0000) -COMMENT coords=rowscales( temp, 35.0000, -35.0000) -COMMENT Written by MacFITS -COMMENT Created: Tuesday, 14 August, 2001 01:18:06 PM -COMMENT Whole-Galaxy velocity-integrated CO(1-0) map (Fig. 2) from -COMMENT "The Milky Way in Molecular Clouds: A New Complete CO Survey" -COMMENT T. M. Dame, Dap Hartmann, & P. Thaddeus (2001), ApJ, 547, 792. -COMMENT WARNING: Both the angular resolution and the sensitivity varies -COMMENT from region to region in this map: see Fig. 1 and Table 1 from -COMMENT the paper above. Moment masking and clipping were used as -COMMENT necessary to keep the noise in the map below ~1.5 K km/s. -COMMENT See Section 2.2 for details. -END diff --git a/ast/ast_tester/joye_car_headers/car2.fattr b/ast/ast_tester/joye_car_headers/car2.fattr deleted file mode 100644 index 5f408d2..0000000 --- a/ast/ast_tester/joye_car_headers/car2.fattr +++ /dev/null @@ -1 +0,0 @@ -carlin=1 diff --git a/ast/ast_tester/joye_car_headers/car2.head b/ast/ast_tester/joye_car_headers/car2.head deleted file mode 100644 index bec8d59..0000000 --- a/ast/ast_tester/joye_car_headers/car2.head +++ /dev/null @@ -1,32 +0,0 @@ -SIMPLE = T / Standard FITS format -BITPIX = 16 / Bits per pixel -NAXIS = 2 / Number of axes -NAXIS1 = 2961 / Number pixels on axis 1 -NAXIS2 = 561 / Number pixels on axis 2 -CTYPE1 = 'GLON-CAR' / axis 1 coord type -CRVAL1 = 1.850000e+02 / coord value at CRPIX1 -CDELT1 = -1.250000e-01 / pixel spacing for axis 1 -CRPIX1 = 1.000000 / ref pixel for axis 1 -CTYPE2 = 'GLAT-CAR' / axis 2 coord type -CRVAL2 = -3.500000e+01 / coord value at CRPIX2 -CDELT2 = 1.250000e-01 / pixel spacing for axis 2 -CRPIX2 = 1.000000 / ref pixel for axis 2 -BSCALE = 2.610167e-02 / real = int*bscale + bzero -BZERO = 8.321995e+02 / -DATAMIN = -6.326761e+00 / minimum real value -DATAMAX = 1.670731e+03 / maximum real value -BLANK = -32768 / missing data flag -COMMENT PARENT DISK FILE: Wco_DHT2001.fits -COMMENT temp =colscales( CHANGE-ME , -185.0000, 185.0000) -COMMENT coords=rowscales( temp, 35.0000, -35.0000) -COMMENT Written by MacFITS -COMMENT Created: Tuesday, 14 August, 2001 01:18:06 PM -COMMENT Whole-Galaxy velocity-integrated CO(1-0) map (Fig. 2) from -COMMENT "The Milky Way in Molecular Clouds: A New Complete CO Survey" -COMMENT T. M. Dame, Dap Hartmann, & P. Thaddeus (2001), ApJ, 547, 792. -COMMENT WARNING: Both the angular resolution and the sensitivity varies -COMMENT from region to region in this map: see Fig. 1 and Table 1 from -COMMENT the paper above. Moment masking and clipping were used as -COMMENT necessary to keep the noise in the map below ~1.5 K km/s. -COMMENT See Section 2.2 for details. -END diff --git a/ast/ast_tester/joye_car_headers/car3.head b/ast/ast_tester/joye_car_headers/car3.head deleted file mode 100644 index de6c76e..0000000 --- a/ast/ast_tester/joye_car_headers/car3.head +++ /dev/null @@ -1,8 +0,0 @@ -CTYPE1 = 'GLON-CAR' -CRVAL1 = 1.850000e+02 -CDELT1 = -1.250000e-01 -CRPIX1 = 200.000000 -CTYPE2 = 'GLAT-CAR' -CRVAL2 = -3.500000e+01 -CDELT2 = 1.250000e-01 -CRPIX2 = 200.000000 diff --git a/ast/ast_tester/joye_car_headers/car4.fattr b/ast/ast_tester/joye_car_headers/car4.fattr deleted file mode 100644 index 5f408d2..0000000 --- a/ast/ast_tester/joye_car_headers/car4.fattr +++ /dev/null @@ -1 +0,0 @@ -carlin=1 diff --git a/ast/ast_tester/joye_car_headers/car4.head b/ast/ast_tester/joye_car_headers/car4.head deleted file mode 100644 index 95cd97a..0000000 --- a/ast/ast_tester/joye_car_headers/car4.head +++ /dev/null @@ -1,38 +0,0 @@ -SIMPLE = T / Written by IDL: Thu Apr 27 08:52:27 2000 -BITPIX = -32 / -NAXIS = 2 / -NAXIS1 = 951 / -NAXIS2 = 1851 / -CRPIX1 = 211076.0 / -CRVAL1 = 0.000000000 / -CTYPE1 = 'GLON-CAR' / -CRPIX2 = 475.39400 / -CRVAL2 = 0.000000000 / -CTYPE2 = 'GLAT-CAR' / -CROTA2 = 0.000000000 / -LONPOLE = 0.00000 / Defined by Greisen and Calabretta -CD1_1 = -0.0016666667 / -CD1_2 = 0.00000 / -CD2_1 = 0.00000 / -CD2_2 = 0.0016666667 / -WAVELENG= 8.28000e-06 / Isophotal wavelength in meters -BUNIT = 'W/m^2-sr' / -SECURITY= 'Unclassified' / -TELESCOP= 'MSX ' / -INSTRUME= 'SPIRITIII' / -ORIGIN = 'AFRL-VSBC' / -MJD-OBS = 50295.5 / Mean modified Julian date of observation -DATE = '16/02/2000' / Date of file generation -HISTORY Convert Version 6.2.X -HISTORY Level-2A Deshadow Version 4.0 -HISTORY Level-2A Saturation Correction Version 1.0 -HISTORY Pointing Convert Version 6.0.1 -HISTORY Makeimage Version 3.2 -HISTORY Destriped -HISTORY Data collected in J2000 FK5 coordinates -HISTORY Data samples transformed to Galactic coordinates -HISTORY and convolved onto image grid using sigma=3.0 arcsec -HISTORY Gaussian kernel -HISTORY Master Plate: GP_351.0_+0.0_A.fits -HISTORY Written by IDL: 28-Jan-2000 17:44:54.00 -END diff --git a/ast/ast_tester/joye_car_headers/car5.head b/ast/ast_tester/joye_car_headers/car5.head deleted file mode 100644 index 2be3a64..0000000 --- a/ast/ast_tester/joye_car_headers/car5.head +++ /dev/null @@ -1,38 +0,0 @@ -SIMPLE = T / Written by IDL: Thu Apr 27 08:52:27 2000 -BITPIX = -32 / -NAXIS = 2 / -NAXIS1 = 951 / -NAXIS2 = 1851 / -CRPIX1 = -4932.0204 / -CRVAL1 = 0.000000000 / -CTYPE1 = 'GLON-CAR' / -CRPIX2 = 475.39400 / -CRVAL2 = 0.000000000 / -CTYPE2 = 'GLAT-CAR' / -CROTA2 = 0.000000000 / -LONPOLE = 0.00000 / Defined by Greisen and Calabretta -CD1_1 = -0.0016666667 / -CD1_2 = 0.00000 / -CD2_1 = 0.00000 / -CD2_2 = 0.0016666667 / -WAVELENG= 8.28000e-06 / Isophotal wavelength in meters -BUNIT = 'W/m^2-sr' / -SECURITY= 'Unclassified' / -TELESCOP= 'MSX ' / -INSTRUME= 'SPIRITIII' / -ORIGIN = 'AFRL-VSBC' / -MJD-OBS = 50295.5 / Mean modified Julian date of observation -DATE = '16/02/2000' / Date of file generation -HISTORY Convert Version 6.2.X -HISTORY Level-2A Deshadow Version 4.0 -HISTORY Level-2A Saturation Correction Version 1.0 -HISTORY Pointing Convert Version 6.0.1 -HISTORY Makeimage Version 3.2 -HISTORY Destriped -HISTORY Data collected in J2000 FK5 coordinates -HISTORY Data samples transformed to Galactic coordinates -HISTORY and convolved onto image grid using sigma=3.0 arcsec -HISTORY Gaussian kernel -HISTORY Master Plate: GP_351.0_+0.0_A.fits -HISTORY Written by IDL: 28-Jan-2000 17:44:54.00 -END diff --git a/ast/ast_tester/joye_car_headers/cmap_3years_GP_D2.head b/ast/ast_tester/joye_car_headers/cmap_3years_GP_D2.head deleted file mode 100644 index d27e368..0000000 --- a/ast/ast_tester/joye_car_headers/cmap_3years_GP_D2.head +++ /dev/null @@ -1,162 +0,0 @@ -FITS headers in cmap_3years_GP_D2.fits: -SIMPLE = T / File conforms to NOST standard -BITPIX = 32 / Bits per pixel -NAXIS = 2 / No data is associated with this header -NAXIS1 = 1800 / Length of data axis 1 -NAXIS2 = 500 / Length of data axis 2 -EXTEND = T / Extensions may be present -COMMENT FITS (Flexible Image Transport System) format is defined in 'Astronomy -COMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H -CTYPE1 = 'GLON-CAR' / RA---%%%, %%% represents the projection method -CRPIX1 = 900.5 / Reference pixel -CRVAL1 = 0. / RA at the reference pixel -CDELT1 = -0.2 / X-axis incr per pixel of physical coord at posi -CUNIT1 = 'deg ' / Physical unit of X-axis -CTYPE2 = 'GLAT-CAR' / DEC---%%%, %%% represents the projection method -CRPIX2 = 250.5 / Reference pixel -CRVAL2 = 0. / DEC at the reference pixel -CDELT2 = 0.2 / Y-axis incr per pixel of physical coord at posi -CUNIT2 = 'deg ' / Physical unit of Y-axis -CROTA2 = 0. / Image rotation (deg) -DATE = '2011-11-18T09:38:44' / file creation date (YYYY-MM-DDThh:mm:ss U -FILENAME= 'cmap_3years_GP_D2.fits' / -TELESCOP= 'GLAST ' / name of telescope generating data -INSTRUME= 'LAT ' / name of instrument generating data -DATE-OBS= '2008-08-04T15:43:37.6089' / start date and time of the observation (U -DATE-END= '2011-07-31T23:59:59.0000' / end date and time of the observation (UTC -TIMEUNIT= 's ' / units for the time related keywords -TIMEZERO= 0. / clock correction -TIMESYS = 'TT ' / type of time system that is used -TIMEREF = 'LOCAL ' / reference frame used for times -CLOCKAPP= F / whether a clock drift correction has been appli -GPS_OUT = F / whether GPS time was unavailable at any time du -NDSKEYS = 5 -EQUINOX = 2000. / Equinox of RA & DEC specifications -OBSERVER= 'Peter Michelson' / GLAST/LAT PI -CREATOR = 'gtbin ' / Software and version creating file -HISTORY LatCountMapTemplate,v 1.3 2005/04/05 21:06:39 peachey -HISTORY Exp -CHECKSUM= 'HG8SH95PHE5PH95P' / HDU checksum updated 2011-11-18T08:38:44 -DATASUM = '3748023 ' / data unit checksum updated 2011-11-18T08:38:44 -DSTYP1 = 'TIME ' -DSUNI1 = 's ' -DSVAL1 = 'TABLE ' -DSREF1 = ':GTI ' -DSTYP2 = 'CONVERSION_TYPE' -DSUNI2 = 'dimensionless' -DSVAL2 = '1:1 ' -DSTYP3 = 'ENERGY ' -DSUNI3 = 'MeV ' -DSVAL3 = '2000:10000' -DSTYP4 = 'EVENT_CLASS' -DSUNI4 = 'dimensionless' -DSVAL4 = '4: ' -DSTYP5 = 'ZENITH_ANGLE' -DSUNI5 = 'deg ' -DSVAL5 = '0:100 ' -HISTORY The following history was copied from input files by gtbin -HISTORY ------------------------------------------------------------------------ -HISTORY BEGIN history copied from ft1_D2_Front.fits[EVENTS] -HISTORY ------------------------------------------------------------------------ -HISTORY Input merit file: /scratch/glastmp/P120-FT1/128/r0240311566_v120_merit.r -HISTORY oot -HISTORY Filter string: (FT1EventClass!=0) && (EvtElapsedTime >= 240311568) && ( -HISTORY EvtElapsedTime <= 240314221) -HISTORY CFITSIO used the following filtering expression to create this table: -HISTORY /scratch/glastmp/P120-FT1/128/foo.fit[EVENTS][gtifilter("/scratch/glastm -HISTORY p/P120-FT1/128/gll_xp_p120_r0240311566_v122.fit_tempgti")] -HISTORY CFITSIO used the following filtering expression to create this table: -HISTORY data/august_08-ft1.fits[EVENTS][100 <= ENERGY && ENERGY <= 1000000 && 4 -HISTORY <= EVENT_CLASS && 0 <= TIME && TIME <= 1000000000 && 0 <= ZENITH_ANGLE & -HISTORY & ZENITH_ANGLE <= 100 && gtifilter()] -HISTORY Filter string: 100 <= ENERGY && ENERGY <= 1000000 && 4 <= EVENT_CLASS && -HISTORY 0 <= TIME && TIME <= 1000000000 && 0 <= ZENITH_ANGLE && ZENITH_ANGLE <= -HISTORY 100 && gtifilter() -HISTORY CFITSIO used the following filtering expression to create this table: -HISTORY data/august_08_z100_ft1.fits[EVENTS][gtifilter("data/august_08-ft1.fits_ -HISTORY rocking_tempgti")] -HISTORY Filter string: 0 <= CONVERSION_TYPE && CONVERSION_TYPE <= 0 && 1000 <= E -HISTORY NERGY && ENERGY <= 5000 && 4 <= EVENT_CLASS && 0 <= TIME && TIME <= 1000 -HISTORY 000000 && 0 <= ZENITH_ANGLE && ZENITH_ANGLE <= 100 && gtifilter() -HISTORY ------------------------------------------------------------------------ -HISTORY END copied history -HISTORY ------------------------------------------------------------------------ -HISTORY ------------------------------------------------------------------------ -HISTORY BEGIN history copied from ft1_D2_Back.fits[EVENTS] -HISTORY ------------------------------------------------------------------------ -HISTORY Input merit file: /scratch/glastmp/P120-FT1/128/r0240311566_v120_merit.r -HISTORY oot -HISTORY Filter string: (FT1EventClass!=0) && (EvtElapsedTime >= 240311568) && ( -HISTORY EvtElapsedTime <= 240314221) -HISTORY CFITSIO used the following filtering expression to create this table: -HISTORY /scratch/glastmp/P120-FT1/128/foo.fit[EVENTS][gtifilter("/scratch/glastm -HISTORY p/P120-FT1/128/gll_xp_p120_r0240311566_v122.fit_tempgti")] -HISTORY CFITSIO used the following filtering expression to create this table: -HISTORY data/august_08-ft1.fits[EVENTS][100 <= ENERGY && ENERGY <= 1000000 && 4 -HISTORY <= EVENT_CLASS && 0 <= TIME && TIME <= 1000000000 && 0 <= ZENITH_ANGLE & -HISTORY & ZENITH_ANGLE <= 100 && gtifilter()] -HISTORY Filter string: 100 <= ENERGY && ENERGY <= 1000000 && 4 <= EVENT_CLASS && -HISTORY 0 <= TIME && TIME <= 1000000000 && 0 <= ZENITH_ANGLE && ZENITH_ANGLE <= -HISTORY 100 && gtifilter() -HISTORY CFITSIO used the following filtering expression to create this table: -HISTORY data/august_08_z100_ft1.fits[EVENTS][gtifilter("data/august_08-ft1.fits_ -HISTORY rocking_tempgti")] -HISTORY Filter string: 1 <= CONVERSION_TYPE && CONVERSION_TYPE <= 1 && 2000 <= E -HISTORY NERGY && ENERGY <= 10000 && 4 <= EVENT_CLASS && 0 <= TIME && TIME <= 100 -HISTORY 0000000 && 0 <= ZENITH_ANGLE && ZENITH_ANGLE <= 100 && gtifilter() -HISTORY ------------------------------------------------------------------------ -HISTORY END copied history -HISTORY ------------------------------------------------------------------------ -END -XTENSION= 'BINTABLE' / Binary table extension -BITPIX = 8 / Bits per pixel -NAXIS = 2 / Required value -NAXIS1 = 16 / Number of bytes per row -NAXIS2 = 17159 / Number of rows -PCOUNT = 0 / Normally 0 (no varying arrays) -GCOUNT = 1 / Required value -TFIELDS = 2 / Number of columns in table -TTYPE1 = 'START ' / Start time of an interval -TFORM1 = 'D ' / Data format of this field -TTYPE2 = 'STOP ' / Stop time of an interval -TFORM2 = 'D ' / Data format of this field -EXTNAME = 'GTI ' / Extension name -TELESCOP= 'GLAST ' / name of telescope generating data -INSTRUME= 'LAT ' / name of instrument generating data -MJDREFI = 51910. / Integer part of MJD corresponding to SC clock s -MJDREFF = '7.428703703703703D-4' / Fractional part of MJD corresponding to SC c -TSTART = 239557418.608944 / mission time of the start of the observation -TSTOP = 333849601. / mission time of the end of the observation -EXPOSURE= 69878014.2344566 / Integration time (in seconds) for the PHA data -HDUCLASS= 'OGIP ' / File format is OGIP standard -HDUCLAS1= 'GTI ' / Contains Good Time Intervals -HDUVERS = '1.2.0 ' / Version of file format -DATE-OBS= '2008-08-04T15:43:37.6089' / start date and time of the observation (U -DATE-END= '2011-07-31T23:59:59.0000' / end date and time of the observation (UTC -TIMEUNIT= 's ' / units for the time related keywords -TIMEZERO= 0. / clock correction -TIMESYS = 'TT ' / type of time system that is used -TIMEREF = 'LOCAL ' / reference frame used for times -CLOCKAPP= F / whether a clock drift correction has been appli -GPS_OUT = F / whether GPS time was unavailable at any time du -CREATOR = 'gtbin ' / Software and version creating file -HISTORY LatCountMapTemplate,v 1.3 2005/04/05 21:06:39 peachey -HISTORY Exp - - - - -TUNIT1 = 's ' / Unit of this field - -TUNIT2 = 's ' / Unit of this field -EXTVER = 1 / auto assigned by template parser -CHECKSUM= 'S4FDU3FBS3FBS3FB' / HDU checksum updated 2011-11-18T08:38:44 -DATASUM = '1639695499' / data unit checksum updated 2011-11-18T08:38:44 -HISTORY The following history was copied from input files by gtbin -HISTORY ------------------------------------------------------------------------ -HISTORY No history available in ft1_D2_Front.fits[GTI] -HISTORY ------------------------------------------------------------------------ -HISTORY ------------------------------------------------------------------------ -HISTORY No history available in ft1_D2_Back.fits[GTI] -HISTORY ------------------------------------------------------------------------ -END diff --git a/ast/ast_tester/joye_car_headers/doit b/ast/ast_tester/joye_car_headers/doit deleted file mode 100755 index a78a590..0000000 --- a/ast/ast_tester/joye_car_headers/doit +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/tcsh - -foreach n (*.head) - set bn = `basename $n .head` - echo "Doing $bn" - - set fat = "${bn}.fattr" - if( -e "$fat" ) then - set fattr = `cat $fat` - else - set fattr = "" - endif - - $HOME/work/ast/fplottest $n ps_l "$fattr" n - mv gks74.ps ${bn}.ps -end - diff --git a/ast/ast_tester/joye_car_headers/total_hi.head b/ast/ast_tester/joye_car_headers/total_hi.head deleted file mode 100644 index 2ed691c..0000000 --- a/ast/ast_tester/joye_car_headers/total_hi.head +++ /dev/null @@ -1,35 +0,0 @@ -SIMPLE = T -BITPIX = -32 -NAXIS = 2 -NAXIS1 = 721 -NAXIS2 = 361 -BUNIT = 'K km/s ' -DATAMAX = 11847.260742187500 -DATAMIN = -368.407501220703 -BZERO = 0.000000000000 -BSCALE = 1.000000000000 -BLANK = -32768 -OBJECT = 'Leiden/Dwingeloo HI Survey; (l,b) total HI' -TELESCOP= 'Dwingeloo 25-m' -OBSERVER= 'Dap Hartmann' -DATE-OBS= '02/09/93' -DATE = '20/01/96' -CTYPE1 = 'GLON-CAR' -CRVAL1 = 360.000000000000 -CRPIX1 = 1 -CDELT1 = -0.500000000000 -CTYPE2 = 'GLAT-CAR' -CRVAL2 = -90.000000000000 -CRPIX2 = 1 -CDELT2 = 0.500000000000 -COMMENT = +-------------------------------------------------------------+ -COMMENT = | (l,b) map, integrated between -450 km/s < V_lsr < +400 km/s | -COMMENT = | To Convert to N_HI, multiply by 1.8224e18 K km s^-1 cm^-2 | -COMMENT = +-------------------------------------------------------------+ -COMMENT = -COMMENT = +-------------------------------------------------+ -COMMENT = | The Leiden/Dwingeloo Survey of HI in the Galaxy | -COMMENT = | Dap Hartmann & W.B.Burton | -COMMENT = | Leiden Observatory | -COMMENT = | Cambridge University Press 1997 | -END diff --git a/ast/ast_tester/longslit.fits-pc b/ast/ast_tester/longslit.fits-pc deleted file mode 100644 index 2adf05a..0000000 --- a/ast/ast_tester/longslit.fits-pc +++ /dev/null @@ -1,18 +0,0 @@ -NAXIS = 3 -NAXIS1 = 1024 -NAXIS2 = 2048 -NAXIS3 = 1 -CRPIX1 = 1 -CRPIX2 = 1024.5 -CRPIX3 = 1 -CDELT1 = 100.0 / delta lambda = 100 nm -CDELT2 = -0.0005555555 / sigma = 2 arcsec -CDELT3 = 1 -CTYPE1 = 'WAVE ' -CTYPE2 = 'RA---ARC' -CTYPE3 = 'DEC--ARC' -CUNIT1 = 'nm ' -CRVAL1 = 1000.0 / Lambda-ref = 1000 nm -CRVAL2 = 150.000 / RA-ref = 150 deg (10:00:00) -CRVAL3 = -35.0 / Dec-ref = -35:00:00 -LONPOLE = 120.0 / rho = 30 degs diff --git a/ast/ast_tester/longslit.fits-wcs b/ast/ast_tester/longslit.fits-wcs deleted file mode 100644 index cff2ca0..0000000 --- a/ast/ast_tester/longslit.fits-wcs +++ /dev/null @@ -1,22 +0,0 @@ -NAXIS = 3 -NAXIS1 = 1024 -NAXIS2 = 2048 -NAXIS3 = 1 -CRPIX1 = 1.0 / Reference pixel on axis 1 -CRPIX2 = 1024.5 / Reference pixel on axis 2 -CRPIX3 = 1.0 / Reference pixel on axis 3 -CTYPE1 = 'WAVE ' / Type of co-ordinate on axis 1 -CTYPE2 = 'RA---ARC' / Type of co-ordinate on axis 2 -CTYPE3 = 'DEC--ARC' / Type of co-ordinate on axis 3 -CUNIT1 = 'nm ' / Units for axis 1 -CRVAL1 = 1000.0 / Lambda-ref = 1000 nm -CRVAL2 = 150.0 / RA-ref = 150 deg (10:00:00) -CRVAL3 = -35.0 / Dec-ref = -35:00:00 -LONPOLE = 120.0 / rho = 30 degs -CD1_1 = 100.0 / Transformation matrix element -CD2_2 = -5.555555E-4 / Transformation matrix element -CD3_3 = 1.0 / Transformation matrix element -PV2_3 = 120.0 / Projection parameter -RADESYS = 'ICRS ' / Reference frame for RA/DEC values -SPECSYS = 'HELIOCEN' / Standard of rest for spectral axis -VELOSYS = -20038.807 / [m/s] Topo. apparent velocity of rest frame diff --git a/ast/ast_tester/makeplot b/ast/ast_tester/makeplot deleted file mode 100755 index 760fac9..0000000 --- a/ast/ast_tester/makeplot +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/tcsh - -if( "$1" == "" ) then - echo "Usage: makeplot <plot>" - echo " (e.g. makeplot serpens)" - exit -endif - -gfortran -fno-second-underscore -w -g -fno-range-check -o plotter plotter.f \ - -I$GITSTAR/include -L$GITSTAR/lib `ast_link -pgp -ems` `pgplot_link` - -set bn = $1 - -set atfile = "${bn}.attr" -if( -e $atfile ) then - set attr1 = `cat $atfile` -else - set attr1 = ' ' -endif - -set atfile = "${bn}.fattr" -if( -e $atfile ) then - set attr2 = `cat $atfile` -else - set attr2 = ' ' -endif - -set boxfile = "${bn}.box" -if( -e $boxfile ) then - set box = `cat $boxfile` -else - set box = ' ' -endif - - -set psfile = "${bn}-new.ps" -echo "plotter $bn.head '$attr1' '$attr2' a.ps $box" -plotter $bn.head "$attr1" "$attr2" a.ps $box - -if( -e $GITSTAR/bin/psmerge ) then - $GITSTAR/bin/psmerge -t300x300 -r90 a.ps > $psfile -else - cp a.ps $psfile -endif - -gv $psfile -orientation=landscape - diff --git a/ast/ast_tester/maketest b/ast/ast_tester/maketest deleted file mode 100755 index 5891121..0000000 --- a/ast/ast_tester/maketest +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/tcsh - -if( "$1" == "" ) then - echo "Usage: maketest <test>" - echo " (e.g. maketest regions)" - exit -endif - -if( ! $?LDFLAGS ) then - setenv LDFLAGS "" -endif - -set a = "test$1" - -echo "Building $a" -if( "$a" == "testplot3d" ) then - gfortran -fno-second-underscore -w -g -fno-range-check $LDFLAGS -o testplot3d testplot3d.f \ - -L$GITSTAR/lib -I$GITSTAR/include \ - `ast_link -ems -pgplot3d` `sla_link` `chr_link` `err_link` - -else if( -e "$a.f" ) then - gfortran -fno-second-underscore -w -g -fno-range-check $LDFLAGS -o $a $a.f -L$GITSTAR/lib -I$GITSTAR/include \ - `ast_link -ems` `chr_link` `err_link` `prm_link` `psx_link` - -else if( -e "$a.c" ) then - gcc -o $a -g $a.c -I.. -DHAVE_CONFIG_H -L$GITSTAR/lib $LDFLAGS `ast_link` - -else - echo "Cannot find $a.f or $a.c" - -endif - -echo "Running $a" -$a - diff --git a/ast/ast_tester/origin.attr b/ast/ast_tester/origin.attr deleted file mode 100644 index 277e359..0000000 --- a/ast/ast_tester/origin.attr +++ /dev/null @@ -1 +0,0 @@ -format(1)=ghms,format(2)=gdm,edge(2)=r,tickall=0,grid=1 diff --git a/ast/ast_tester/origin.box b/ast/ast_tester/origin.box deleted file mode 100644 index 9b5eb80..0000000 --- a/ast/ast_tester/origin.box +++ /dev/null @@ -1 +0,0 @@ -0 0 500 500 diff --git a/ast/ast_tester/origin.head b/ast/ast_tester/origin.head deleted file mode 100644 index 88ea783..0000000 --- a/ast/ast_tester/origin.head +++ /dev/null @@ -1,18 +0,0 @@ -SIMPLE = T / file does conform to FITS standard -BITPIX = 16 / number of bits per data pixel -NAXIS = 2 / number of data axes -NAXIS1 = 500 / length of data axis 1 -NAXIS2 = 500 / length of data axis 2 -EPOCH = 1.977780E+03 / Epoch of observation -RADECSYS= 'ICRS ' / Reference frame for RA/DEC in original file -CRVAL1 = 0.0 / Axis 1 reference value -CRPIX1 = 250 / Axis 1 pixel value -CTYPE1 = 'RA---ARC' / Quantity represented by axis 1 -CRVAL2 = 0.0 / Axis 2 reference value -CRPIX2 = 250 / Axis 2 pixel value -CTYPE2 = 'DEC--ARC' / Quantity represented by axis 2 -CDELT1 = 0.001 / Co-ordinate transformation matrix -CDELT2 = 0.001 / Co-ordinate transformation matrix -EQUINOX = 2.000000E+03 / Julian reference frame equinox - -END diff --git a/ast/ast_tester/plot3d-test1.ast b/ast/ast_tester/plot3d-test1.ast deleted file mode 100644 index 271faf1..0000000 --- a/ast/ast_tester/plot3d-test1.ast +++ /dev/null @@ -1,340 +0,0 @@ - Begin FrameSet # Set of inter-related coordinate systems -# Title = "3-d compound coordinate system" # Title of coordinate system -# Naxes = 3 # Number of coordinate axes -# Domain = "SKY-DSBSPECTRUM" # Coordinate system domain -# Epoch = 2007.3268594222 # Julian epoch of observation -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 -# Lbl3 = "Radio velocity (USB)" # Label for axis 3 -# System = "Compound" # Coordinate system type -# Uni1 = "hh:mm:ss.s" # Units for axis 1 -# Uni2 = "ddd:mm:ss" # Units for axis 2 -# Uni3 = "km/s" # Units for axis 3 -# Dir1 = 0 # Plot axis 1 in reverse direction - IsA Frame # Coordinate system description - Nframe = 4 # Number of Frames in FrameSet -# Base = 1 # Index of base Frame - Currnt = 4 # Index of current Frame - Nnode = 5 # Number of nodes in FrameSet - Nod1 = 3 # Frame 1 is associated with node 3 - Nod2 = 4 # Frame 2 is associated with node 4 - Nod3 = 5 # Frame 3 is associated with node 5 - Nod4 = 2 # Frame 4 is associated with node 2 - Lnk2 = 1 # Node 2 is derived from node 1 - Lnk3 = 1 # Node 3 is derived from node 1 - Lnk4 = 1 # Node 4 is derived from node 1 - Lnk5 = 1 # Node 5 is derived from node 1 - Frm1 = # Frame number 1 - Begin Frame # Coordinate system description - Title = "Data grid indices; first pixel at (1,1,1)" # Title of coordinate system - Naxes = 3 # Number of coordinate axes - Domain = "GRID" # Coordinate system domain -# Lbl1 = "Data grid index 1" # Label for axis 1 -# Lbl2 = "Data grid index 2" # Label for axis 2 -# Lbl3 = "Data grid index 3" # Label for axis 3 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 -# Uni3 = "pixel" # Units for axis 3 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Data grid index 1" # Axis Label - Symbol = "g1" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Data grid index 2" # Axis Label - Symbol = "g2" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax3 = # Axis number 3 - Begin Axis # Coordinate axis - Label = "Data grid index 3" # Axis Label - Symbol = "g3" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - End Frame - Frm2 = # Frame number 2 - Begin Frame # Coordinate system description - Title = "Pixel coordinates; first pixel at (-77.5,-52.5,-820.5)" # Title of coordinate system - Naxes = 3 # Number of coordinate axes - Domain = "PIXEL" # Coordinate system domain -# Lbl1 = "Pixel coordinate 1" # Label for axis 1 -# Lbl2 = "Pixel coordinate 2" # Label for axis 2 -# Lbl3 = "Pixel coordinate 3" # Label for axis 3 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 -# Uni3 = "pixel" # Units for axis 3 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Pixel coordinate 1" # Axis Label - Symbol = "p1" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Pixel coordinate 2" # Axis Label - Symbol = "p2" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax3 = # Axis number 3 - Begin Axis # Coordinate axis - Label = "Pixel coordinate 3" # Axis Label - Symbol = "p3" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - End Frame - Frm3 = # Frame number 3 - Begin Frame # Coordinate system description - Title = "Axis coordinates; first pixel at (-77.5,-52.5,-820.5)" # Title of coordinate system - Naxes = 3 # Number of coordinate axes - Domain = "AXIS" # Coordinate system domain -# Lbl1 = "Axis 1" # Label for axis 1 -# Lbl2 = "Axis 2" # Label for axis 2 -# Lbl3 = "Axis 3" # Label for axis 3 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 -# Uni3 = "pixel" # Units for axis 3 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Axis 1" # Axis Label - Symbol = "a1" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Axis 2" # Axis Label - Symbol = "a2" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax3 = # Axis number 3 - Begin Axis # Coordinate axis - Label = "Axis 3" # Axis Label - Symbol = "a3" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - End Frame - Frm4 = # Frame number 4 - Begin CmpFrame # Compound coordinate system description -# Title = "3-d compound coordinate system" # Title of coordinate system -# Naxes = 3 # Number of coordinate axes -# Domain = "SKY-DSBSPECTRUM" # Coordinate system domain -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 -# Lbl3 = "Radio velocity (USB)" # Label for axis 3 -# Uni1 = "hh:mm:ss.s" # Units for axis 1 -# Uni2 = "ddd:mm:ss" # Units for axis 2 -# Uni3 = "km/s" # Units for axis 3 -# Dir1 = 0 # Plot axis 1 in reverse direction - IsA Frame # Coordinate system description - FrameA = # First component Frame - Begin SkyFrame # Description of celestial coordinate system - Naxes = 2 # Number of coordinate axes - Epoch = 2007.3268594222 # Julian epoch of observation - System = "FK5" # Coordinate system type - ObsLat = 0.346026050148997 # Observers geodetic latitude (rads) - ObsLon = -2.71363306946838 # Observers geodetic longitude (rads) - Dut1 = -0.0989801599329792 # UT1-UTC in seconds - Ax1 = # Axis number 1 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - Ax2 = # Axis number 2 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - IsA Frame # Coordinate system description - SRef1 = 4.8432980149123 # Ref. pos. RA 18:30:00.1 - SRef2 = 0.0213067755653197 # Ref. pos. Dec 1:13:15 - End SkyFrame - FrameB = # Second component Frame - Begin DSBSpecFrame # Dual sideband spectral axis - Naxes = 1 # Number of coordinate axes - Epoch = 2007.3268594222 # Julian epoch of observation - System = "VRAD" # Coordinate system type - ObsLat = 0.346026069000144 # Observers geodetic latitude (rads) - ObsLon = -2.71363307300091 # Observers geodetic longitude (rads) - Dut1 = -0.0989801599329792 # UT1-UTC in seconds - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - End Axis - IsA Frame # Coordinate system description - SoR = "LSRK" # Standard of rest - RefRA = 4.84328867428426 # Reference RA (rads, FK5 J2000) - RefDec = 0.0213075607299356 # Reference Dec (rads, FK5 J2000) - RstFrq = 345795989900 # Rest frequency (Hz) - SrcVel = 7000.08172321467 # Source velocity (m/s) - SrcVRF = "LSRK" # Source velocity rest frame - UFreq = "GHz" # Preferred units for frequency - IsA SpecFrame # Description of spectral coordinate system - DSBCen = 345834569302.861 # Central frequency (Hz topo) - IF = -5000001243.89453 # Intermediate frequency (Hz) - SideBn = "USB" # Represents upper sideband - AlSdBn = 1 # Align sidebands? - End DSBSpecFrame - End CmpFrame - Map2 = # Mapping between nodes 1 and 2 - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - Series = 0 # Component Mappings applied in parallel - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = -78.9102040827274 # Shift for axis 1 - Sft2 = -54.3591836988926 # Shift for axis 2 - End WinMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 1 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 1 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = 346188848728.921 # Shift for axis 1 - Scl1 = -488347.122802699 # Scale factor for axis 1 - End WinMap - MapB = # Second component Mapping - Begin SpecMap # Conversion between spectral coordinate systems - Nin = 1 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Nspec = 2 # Number of conversion steps - Spec1 = "FRTOVL" # Convert frequency to rel. velocity - Spec1a = 345795989900 # Rest frequency (Hz) - Spec2 = "VLTOVR" # Convert relativistic to radio velocity - End SpecMap - End CmpMap - End CmpMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - Series = 0 # Component Mappings applied in parallel - MapA = # First component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 2 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - M0 = 1.49080827566563e-05 # Forward matrix value - M1 = -3.19704866431787e-05 # Forward matrix value - M2 = -3.19704866431787e-05 # Forward matrix value - M3 = -1.49080827566563e-05 # Forward matrix value - Form = "Full" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin WcsMap # FITS-WCS sky projection - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Type = "TAN" # Gnomonic projection - End WcsMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = 0 # Polar longitude (rad.s) - End SphMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 3 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - M0 = 0.00278113801100606 # Forward matrix value - M1 = 0.991443912134338 # Forward matrix value - M2 = 0.130503771451718 # Forward matrix value - M3 = -0.021123653434259 # Forward matrix value - M4 = 0.130533402207093 # Forward matrix value - M5 = -0.9912188568494 # Forward matrix value - M6 = -0.999773002504545 # Forward matrix value - M7 = 0 # Forward matrix value - M8 = 0.0213059490060158 # Forward matrix value - Form = "Full" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = 4.84329594648948 # Polar longitude (rad.s) - End SphMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - MapB = # Second component Mapping - Begin ZoomMap # Zoom about the origin - Nin = 1 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - Zoom = 0.001 # Zoom factor - End ZoomMap - End CmpMap - End CmpMap - Map3 = # Mapping between nodes 1 and 3 - Begin UnitMap # Unit (null) Mapping - Nin = 3 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - End UnitMap - Map4 = # Mapping between nodes 1 and 4 - Begin WinMap # Map one window on to another - Nin = 3 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - Sft1 = -78.5 # Shift for axis 1 - Sft2 = -53.5 # Shift for axis 2 - Sft3 = -821.5 # Shift for axis 3 - End WinMap - Map5 = # Mapping between nodes 1 and 5 - Begin WinMap # Map one window on to another - Nin = 3 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - Sft1 = -78.5 # Shift for axis 1 - Sft2 = -53.5 # Shift for axis 2 - Sft3 = -821.5 # Shift for axis 3 - End WinMap - End FrameSet diff --git a/ast/ast_tester/plotter.f b/ast/ast_tester/plotter.f deleted file mode 100644 index 79bb8e1..0000000 --- a/ast/ast_tester/plotter.f +++ /dev/null @@ -1,230 +0,0 @@ - PROGRAM PLOTTER - -* Usage: -* PLOTTER <fits file> <attr1> <attr2> <ps file> [<xlo> <ylo> <xhi> <yhi>] - -* Description: -* Plots a standard grid from the specified fits header file, using -* the specified attributes, and sends postscript output to the -* specified ps file. - -* Parameters: -* file file -* A text file containing fits headers. -* attr1 -* A string containg a comma-separated list of attribute -* settings for the Plot. -* attr2 -* A string containg a comma-separated list of attribute -* settings for the FitsChan. -* ps file -* The output postscript file -* xlo ylo xhi yhi -* The bounds within the GRID Frame of the required plot. -* Taken from the FITS headers if not supplied - - - IMPLICIT NONE - INCLUDE 'AST_PAR' - - INTEGER STATUS, FC, FS, NAXIS1, NAXIS2, PL, PGBEG, IARGC, OC - CHARACTER FILE*80, CARD*80, DEVN*80, PSFILE*80, ATTR*255, TEXT*80 - REAL GBOX(4), RANGE, DELTA, ASP - DOUBLE PRECISION PBOX(4) - - STATUS = 0 -* -* Check command line arguments have been supplied. -* - IF( IARGC() .LT. 3 ) THEN - WRITE(*,*) 'Usage: plotter <file file> <attrs> <fattrs> '// - : '<ps file> [<xlo> <ylo> <xhi> <yhi>]' - RETURN - END IF - -* -* Use object caching to minimise allocation of new memory -* - OC = AST_TUNE( 'ObjectCaching', 1, STATUS ) - IF( OC .NE. 0 ) THEN - WRITE(*,'(A,I6)') 'Default ObjectCaching VALUE is ',OC - END IF - - IF( AST_TUNE( 'ObjectCaching', AST__TUNULL, STATUS ) .NE. 1 ) THEN - WRITE(*,'(A,I6)') 'Set ObjectCaching VALUE is ',OC - END IF - -* -* Create a FitsChan to store the FITS headers. -* - CALL GETARG( 3, ATTR ) - FC = AST_FITSCHAN( AST_NULL, AST_NULL, ATTR, STATUS ) - -* -* Open a text file containing a list of FITS headers. -* - CALL GETARG( 1, FILE ) - OPEN( UNIT=10, FILE=FILE, STATUS='OLD' ) - -* -* Read each card out of the text file and store it in the FitsChan. -* - DO WHILE( .TRUE. ) - READ( 10, '(A)', END = 10 ) CARD - CALL AST_PUTFITS( FC, CARD, 0, STATUS ) - END DO - - 10 CLOSE( 10 ) - - -* -* If the base frame box was supplied on the command line, use it. -* - IF( IARGC() .GT. 6 ) THEN - CALL GETARG( 5, TEXT ) - READ( TEXT, * ) PBOX( 1 ) - - CALL GETARG( 6, TEXT ) - READ( TEXT, * ) PBOX( 2 ) - - CALL GETARG( 7, TEXT ) - READ( TEXT, * ) PBOX( 3 ) - - CALL GETARG( 8, TEXT ) - READ( TEXT, * ) PBOX( 4 ) - -* Otherwise use NAXISi keywords in the header. - ELSE - -* -* See if values were supplied for NAXIS1 and NAXIS2. If not assume a value -* of 100 for each. The FitsChan is re-wound before calling AST_FINDFITS so -* that the search starts form the beginning. -* - CALL AST_CLEAR( FC, 'CARD', STATUS ) - IF ( AST_FINDFITS( FC, 'NAXIS1', CARD, .TRUE., STATUS ) ) THEN - READ(CARD(11:),*) NAXIS1 - ELSE - NAXIS1 = 100 - END IF - - CALL AST_CLEAR( FC, 'CARD', STATUS ) - IF ( AST_FINDFITS( FC, 'NAXIS2', CARD, .TRUE., STATUS ) ) THEN - READ(CARD(11:),*) NAXIS2 - ELSE - NAXIS2 = 100 - END IF - - PBOX(1) = 0.5 - PBOX(2) = 0.5 - PBOX(3) = DBLE( NAXIS1 )+0.5 - PBOX(4) = DBLE( NAXIS2 )+0.5 - END IF - -* -* Read an Object from the contents of the FitsChan. This should be a -* FrameSet (this should be tested really, and an error reported if any -* other type of Object is obtained). Re-wind the FitsChan first so that -* its entire contents are read. Note, this is a destructive read, in that -* the cards which are significant to the creation of the FrameSet are -* removed from the FitsChan (this is why NAXIS1 and NAXIS2 are read out -* earlier - just in case they are significant to the FrameSet). Any -* insignificant cards are left as they are. -* - CALL AST_CLEAR( FC, 'CARD', STATUS ) - FS = AST_READ( FC, STATUS ) - - IF( FS .EQ. AST__NULL ) THEN - WRITE(*,*) '!!! No object read from FitsChan!!!' - GO TO 999 - END IF - -* -* If all is OK, start up PGPLOT. -* - IF( STATUS .EQ. 0 ) THEN - CALL GETARG( 4, PSFILE ) - CALL DELETEFILE( PSFILE ) - - DEVN = 'pscol_l;'//PSFILE -c IF( PGBEG( 0, '?', 1, 1 ) .EQ. 1 ) THEN - IF( PGBEG( 0, DEVN, 1, 1 ) .EQ. 1 ) THEN - CALL PGPAGE - CALL PGWNAD( 0.0, 1.0, 0.0, 1.0 ) - -* -* Create the Plot. The pixel coordinates box is -* mapped onto a window which is 10% smaller than the full PGPLOT window. -* This gives some space for things like tick marks with negative length -* (which stick outside the pixel cooridnates box). -* - CALL PGQWIN( GBOX(1), GBOX(3), GBOX(2), GBOX(4) ) - - RANGE = GBOX(3) - GBOX(1) - GBOX(1) = GBOX(1) + 0.05*RANGE - GBOX(3) = GBOX(3) - 0.05*RANGE - - RANGE = GBOX(4) - GBOX(2) - GBOX(2) = GBOX(2) + 0.05*RANGE - GBOX(4) = GBOX(4) - 0.05*RANGE - - ASP = REAL( PBOX(4) - PBOX(2) )/REAL( PBOX(3) - PBOX(1) ) - IF( ASP .LT. 0.05 .OR. ASP .GT. 20 ) ASP = 1.0 - - IF( ASP .GT. 1.0 ) THEN - DELTA = 0.5*( ( GBOX(3) - GBOX(1) ) - - : ( GBOX(4) - GBOX(2) )/ASP ) - GBOX(3) = GBOX(3) - DELTA - GBOX(1) = GBOX(1) + DELTA - ELSE - DELTA = 0.5*( ( GBOX(4) - GBOX(2) ) - - : ASP*( GBOX(3) - GBOX(1) ) ) - GBOX(4) = GBOX(4) - DELTA - GBOX(2) = GBOX(2) + DELTA - END IF - - CALL GETARG( 2, ATTR ) - PL = AST_PLOT( FS, GBOX, PBOX, 'title = A FITS test', - : STATUS ) - CALL AST_SET( PL, ATTR, STATUS ) - -* -* Draw the grid. -* - CALL AST_GRID( PL, STATUS ) - -* -* Annul the Plot, and close PGPLOT. -* - CALL AST_ANNUL( PL, STATUS ) - CALL PGEND - END IF - END IF - -* -* Annul the other objects. -* - CALL AST_ANNUL( FS, STATUS ) - 999 CALL AST_ANNUL( FC, STATUS ) - - END - - -* -* Delete a file if it exists. -* - SUBROUTINE DELETEFILE( FILNAM ) - IMPLICIT NONE - - CHARACTER FILNAM*(*) - LOGICAL EXISTS - - INQUIRE ( FILE = FILNAM, - : EXIST = EXISTS ) - - IF( EXISTS ) THEN - OPEN ( UNIT=10, FILE=FILNAM, STATUS='OLD' ) - CLOSE ( 10, STATUS='DELETE' ) - END IF - - END diff --git a/ast/ast_tester/polco.attr b/ast/ast_tester/polco.attr deleted file mode 100644 index c220287..0000000 --- a/ast/ast_tester/polco.attr +++ /dev/null @@ -1 +0,0 @@ -Grid=1,labelling=interior,bottom(1)=0 diff --git a/ast/ast_tester/polco.box b/ast/ast_tester/polco.box deleted file mode 100644 index 0661792..0000000 --- a/ast/ast_tester/polco.box +++ /dev/null @@ -1 +0,0 @@ --300 -300 500 500 diff --git a/ast/ast_tester/polco.head b/ast/ast_tester/polco.head deleted file mode 100644 index d953089..0000000 --- a/ast/ast_tester/polco.head +++ /dev/null @@ -1,86 +0,0 @@ - -COMMENT AST ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ AST -COMMENT AST Beginning of AST data for FrameSet object AST -COMMENT AST ................................................................ AST -BEGAST_A= 'FrameSet' / Set of inter-related coordinate systems -NFRAME_A= 2 / Number of Frames in FrameSet -CURRNT_A= 2 / Index of current Frame -NOD1_A = 2 / Frame 1 is associated with node 2 -NOD2_A = 1 / Frame 2 is associated with node 1 -LNK2_A = 1 / Node 2 is derived from node 1 -FRM1_A = ' ' / Frame number 1 -BEGAST_B= 'Frame ' / Coordinate system description -TITLE_A = 'Data grid indices; first pixel at (1&'/ Title of coordinate system -CONTINUE '",1) "' -NAXES_A = 2 / Number of coordinate axes -DOMAIN_A= 'GRID ' / Coordinate system domain -AX1_A = ' ' / Axis number 1 -BEGAST_C= 'Axis ' / Coordinate axis -LABEL_A = 'Data grid index 1' / Axis Label -SYMBOL_A= 'g1 ' / Axis symbol -UNIT_A = 'pixel ' / Axis units -FORMAT_A= '%3.1f ' / Format specifier -ENDAST_A= 'Axis ' / End of object definition -AX2_A = ' ' / Axis number 2 -BEGAST_D= 'Axis ' / Coordinate axis -LABEL_B = 'Data grid index 2' / Axis Label -SYMBOL_B= 'g2 ' / Axis symbol -UNIT_B = 'pixel ' / Axis units -FORMAT_B= '%3.1f ' / Format specifier -ENDAST_B= 'Axis ' / End of object definition -ENDAST_C= 'Frame ' / End of object definition -FRM2_A = ' ' / Frame number 2 -BEGAST_E= 'Frame ' / Coordinate system description -TITLE_B = 'Pixel coordinates; first pixel at (-&'/ Title of coordinate system -CONTINUE '100.5,-200.5)' -NAXES_B = 2 / Number of coordinate axes -DOMAIN_B= 'POLAR ' / Coordinate system domain -AX1_B = ' ' / Axis number 1 -BEGAST_F= 'Axis ' / Coordinate axis -LABEL_C = 'Pixel coordinate 1' / Axis Label -SYMBOL_C= 'p1 ' / Axis symbol -UNIT_C = 'pixel ' / Axis units -FORMAT_C= '%3.1f ' / Format specifier -BOTTOM_A= 0.0 / Minimum legal axis value -ENDAST_D= 'Axis ' / End of object definition -AX2_B = ' ' / Axis number 2 -BEGAST_G= 'Axis ' / Coordinate axis -LABEL_D = 'Pixel coordinate 2' / Axis Label -SYMBOL_D= 'p2 ' / Axis symbol -UNIT_D = 'pixel ' / Axis units -FORMAT_D= '%3.1f ' / Format specifier -TOP_A = 3.141592 / Maximum legal axis value -BOTTOM_B= -3.141592 / Minimum legal axis value -ENDAST_E= 'Axis ' / End of object definition -ENDAST_F= 'Frame ' / End of object definition -MAP2_A = ' ' / Mapping between nodes 1 and 2 -BEGAST_H= 'CmpMap ' / Compound Mapping -NIN_A = 2 / Number of input coordinates -ISA_A = 'Mapping ' / Mapping between coordinate systems -INVA_A = 1 / First Mapping used in inverse direction -INVB_A = 1 / Second Mapping used in inverse direction -MAPA_A = ' ' / First component Mapping -BEGAST_I= 'MathMap ' / Transformation using mathematical functions -NIN_B = 2 / Number of input coordinates -INVERT_A= 0 / Mapping not inverted -ISA_B = 'Mapping ' / Mapping between coordinate systems -FWD1_A = 'r=sqrt(x*x+y*y)' / Forward function 1 -FWD2_A = 'theta=atan2(y,x)' / Forward function 2 -INV1_A = 'x=r*cos(theta)' / Inverse function 1 -INV2_A = 'y=r*sin(theta)' / Inverse function 2 -SIMPFI_A= 1 / Forward-inverse pairs may simplify -SIMPIF_A= 1 / Inverse-forward pairs may simplify -ENDAST_G= 'MathMap ' / End of object definition -MAPB_A = ' ' / Second component Mapping -BEGAST_J= 'WinMap ' / Map one window on to another -NIN_C = 2 / Number of input coordinates -INVERT_B= 0 / Mapping not inverted -ISA_C = 'Mapping ' / Mapping between coordinate systems -SFT1_A = -101.5 / Shift for axis 1 -SFT2_A = -201.5 / Shift for axis 2 -ENDAST_H= 'WinMap ' / End of object definition -ENDAST_I= 'CmpMap ' / End of object definition -ENDAST_J= 'FrameSet' / End of object definition -COMMENT AST ................................................................ AST -COMMENT AST End of AST data for FrameSet object AST -COMMENT AST ---------------------------------------------------------------- AST diff --git a/ast/ast_tester/polco2.attr b/ast/ast_tester/polco2.attr deleted file mode 100644 index 5019421..0000000 --- a/ast/ast_tester/polco2.attr +++ /dev/null @@ -1 +0,0 @@ -Grid=0,labelling=exterior,gap(1)=50 diff --git a/ast/ast_tester/polco2.box b/ast/ast_tester/polco2.box deleted file mode 100644 index 0661792..0000000 --- a/ast/ast_tester/polco2.box +++ /dev/null @@ -1 +0,0 @@ --300 -300 500 500 diff --git a/ast/ast_tester/polco2.head b/ast/ast_tester/polco2.head deleted file mode 100644 index d953089..0000000 --- a/ast/ast_tester/polco2.head +++ /dev/null @@ -1,86 +0,0 @@ - -COMMENT AST ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ AST -COMMENT AST Beginning of AST data for FrameSet object AST -COMMENT AST ................................................................ AST -BEGAST_A= 'FrameSet' / Set of inter-related coordinate systems -NFRAME_A= 2 / Number of Frames in FrameSet -CURRNT_A= 2 / Index of current Frame -NOD1_A = 2 / Frame 1 is associated with node 2 -NOD2_A = 1 / Frame 2 is associated with node 1 -LNK2_A = 1 / Node 2 is derived from node 1 -FRM1_A = ' ' / Frame number 1 -BEGAST_B= 'Frame ' / Coordinate system description -TITLE_A = 'Data grid indices; first pixel at (1&'/ Title of coordinate system -CONTINUE '",1) "' -NAXES_A = 2 / Number of coordinate axes -DOMAIN_A= 'GRID ' / Coordinate system domain -AX1_A = ' ' / Axis number 1 -BEGAST_C= 'Axis ' / Coordinate axis -LABEL_A = 'Data grid index 1' / Axis Label -SYMBOL_A= 'g1 ' / Axis symbol -UNIT_A = 'pixel ' / Axis units -FORMAT_A= '%3.1f ' / Format specifier -ENDAST_A= 'Axis ' / End of object definition -AX2_A = ' ' / Axis number 2 -BEGAST_D= 'Axis ' / Coordinate axis -LABEL_B = 'Data grid index 2' / Axis Label -SYMBOL_B= 'g2 ' / Axis symbol -UNIT_B = 'pixel ' / Axis units -FORMAT_B= '%3.1f ' / Format specifier -ENDAST_B= 'Axis ' / End of object definition -ENDAST_C= 'Frame ' / End of object definition -FRM2_A = ' ' / Frame number 2 -BEGAST_E= 'Frame ' / Coordinate system description -TITLE_B = 'Pixel coordinates; first pixel at (-&'/ Title of coordinate system -CONTINUE '100.5,-200.5)' -NAXES_B = 2 / Number of coordinate axes -DOMAIN_B= 'POLAR ' / Coordinate system domain -AX1_B = ' ' / Axis number 1 -BEGAST_F= 'Axis ' / Coordinate axis -LABEL_C = 'Pixel coordinate 1' / Axis Label -SYMBOL_C= 'p1 ' / Axis symbol -UNIT_C = 'pixel ' / Axis units -FORMAT_C= '%3.1f ' / Format specifier -BOTTOM_A= 0.0 / Minimum legal axis value -ENDAST_D= 'Axis ' / End of object definition -AX2_B = ' ' / Axis number 2 -BEGAST_G= 'Axis ' / Coordinate axis -LABEL_D = 'Pixel coordinate 2' / Axis Label -SYMBOL_D= 'p2 ' / Axis symbol -UNIT_D = 'pixel ' / Axis units -FORMAT_D= '%3.1f ' / Format specifier -TOP_A = 3.141592 / Maximum legal axis value -BOTTOM_B= -3.141592 / Minimum legal axis value -ENDAST_E= 'Axis ' / End of object definition -ENDAST_F= 'Frame ' / End of object definition -MAP2_A = ' ' / Mapping between nodes 1 and 2 -BEGAST_H= 'CmpMap ' / Compound Mapping -NIN_A = 2 / Number of input coordinates -ISA_A = 'Mapping ' / Mapping between coordinate systems -INVA_A = 1 / First Mapping used in inverse direction -INVB_A = 1 / Second Mapping used in inverse direction -MAPA_A = ' ' / First component Mapping -BEGAST_I= 'MathMap ' / Transformation using mathematical functions -NIN_B = 2 / Number of input coordinates -INVERT_A= 0 / Mapping not inverted -ISA_B = 'Mapping ' / Mapping between coordinate systems -FWD1_A = 'r=sqrt(x*x+y*y)' / Forward function 1 -FWD2_A = 'theta=atan2(y,x)' / Forward function 2 -INV1_A = 'x=r*cos(theta)' / Inverse function 1 -INV2_A = 'y=r*sin(theta)' / Inverse function 2 -SIMPFI_A= 1 / Forward-inverse pairs may simplify -SIMPIF_A= 1 / Inverse-forward pairs may simplify -ENDAST_G= 'MathMap ' / End of object definition -MAPB_A = ' ' / Second component Mapping -BEGAST_J= 'WinMap ' / Map one window on to another -NIN_C = 2 / Number of input coordinates -INVERT_B= 0 / Mapping not inverted -ISA_C = 'Mapping ' / Mapping between coordinate systems -SFT1_A = -101.5 / Shift for axis 1 -SFT2_A = -201.5 / Shift for axis 2 -ENDAST_H= 'WinMap ' / End of object definition -ENDAST_I= 'CmpMap ' / End of object definition -ENDAST_J= 'FrameSet' / End of object definition -COMMENT AST ................................................................ AST -COMMENT AST End of AST data for FrameSet object AST -COMMENT AST ---------------------------------------------------------------- AST diff --git a/ast/ast_tester/regression.current b/ast/ast_tester/regression.current deleted file mode 100644 index 788c2bc..0000000 --- a/ast/ast_tester/regression.current +++ /dev/null @@ -1,7583 +0,0 @@ - Begin FitsChan # I/O channels to FITS files - Card = 1 # Index of current card -# Encod = "NATIVE" # Encoding system -# FitsDg = 15 # No. of digits for floating point values -# DfB1950 = 1 # Default to FK4 B1950 -# CdMat = 0 # Use PC matrix -# CarLin = 0 # Use full FITS-WCS CAR projections -# Iwc = 0 # Do not include an IWC Frame -# Warn = "Tnx Zpx BadCel BadMat BadCTYPE" # Warnings to be reported - Nm1 = "NAXIS" # FITS keyword name - Ty1 = "integer" # FITS keyword data type - Dt1 = 1 # FITS keyword value - Nm2 = "NAXIS1" # FITS keyword name - Ty2 = "integer" # FITS keyword data type - Dt2 = 100 # FITS keyword value - Nm3 = "CTYPE1" # FITS keyword name - Ty3 = "string" # FITS keyword data type - Dt3 = "fred" # FITS keyword value - Nm4 = "CDELT1" # FITS keyword name - Ty4 = "floating point" # FITS keyword data type - Dt4 = 0 # FITS keyword value - Nm5 = "CRPIX1" # FITS keyword name - Ty5 = "integer" # FITS keyword data type - Dt5 = 50 # FITS keyword value - Nm6 = "CUNIT1" # FITS keyword name - Ty6 = "string" # FITS keyword data type - Dt6 = "GHz" # FITS keyword value - Nm7 = " " # FITS keyword name - Ty7 = "comment" # FITS keyword data type - End FitsChan - Begin FrameSet # Set of inter-related coordinate systems -# Title = "IAU (1958) galactic coordinates; zenithal equal area projection" # Title of coordinate system -# Naxes = 2 # Number of coordinate axes -# Domain = "SKY" # Coordinate system domain -# Epoch = 1950 # Besselian epoch of observation -# Lbl1 = "Galactic longitude" # Label for axis 1 -# Lbl2 = "Galactic latitude" # Label for axis 2 -# System = "GALACTIC" # Coordinate system type -# Uni1 = "degrees" # Units for axis 1 -# Uni2 = "degrees" # Units for axis 2 -# Bot2 = -1.5707963267949 # Lowest legal axis value -# Top2 = 1.5707963267949 # Highest legal axis value - IsA Frame # Coordinate system description - Nframe = 2 # Number of Frames in FrameSet - Base = 1 # Index of base Frame - Currnt = 2 # Index of current Frame - Lnk2 = 1 # Node 2 is derived from node 1 - Frm1 = # Frame number 1 - Begin Frame # Coordinate system description - Title = "Pixel Coordinates" # Title of coordinate system - Naxes = 2 # Number of coordinate axes - Domain = "GRID" # Coordinate system domain -# Lbl1 = "Pixel axis 1" # Label for axis 1 -# Lbl2 = "Pixel axis 2" # Label for axis 2 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Pixel axis 1" # Axis Label - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Pixel axis 2" # Axis Label - End Axis - End Frame - Frm2 = # Frame number 2 - Begin SkyFrame # Description of celestial coordinate system - Ident = " " # Permanent Object identification string - IsA Object # AST Object -# Title = "IAU (1958) galactic coordinates; zenithal equal area projection" # Title of coordinate system - Naxes = 2 # Number of coordinate axes -# Domain = "SKY" # Coordinate system domain - Epoch = 1950 # Besselian epoch of observation -# Lbl1 = "Galactic longitude" # Label for axis 1 -# Lbl2 = "Galactic latitude" # Label for axis 2 - System = "GALACTIC" # Coordinate system type -# Uni1 = "degrees" # Units for axis 1 -# Uni2 = "degrees" # Units for axis 2 -# Bot2 = -1.5707963267949 # Lowest legal axis value -# Top2 = 1.5707963267949 # Highest legal axis value - Ax1 = # Axis number 1 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - Ax2 = # Axis number 2 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - IsA Frame # Coordinate system description - Proj = "zenithal equal area" # Description of sky projection - SRefIs = "Ignored" # Not rotated (ref. pos. is ignored) - SRef1 = -2.61046557479594 # Ref. pos. l -149.5687 - SRef2 = -0.344845661720836 # Ref. pos. b -19.7582 - End SkyFrame - Map2 = # Mapping between nodes 1 and 2 - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = -150.5 # Shift for axis 1 - Sft2 = -150.5 # Shift for axis 2 - End WinMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = -0.020943951023932 # Forward matrix value - M1 = 0.020943951023932 # Forward matrix value - Form = "Diagonal" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin WcsMap # FITS-WCS sky projection - Nin = 2 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - Type = "ZEA" # Zenithal equal area projection - End WcsMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = 0 # Polar longitude (rad.s) - End SphMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = 0.291480364581799 # Forward matrix value - M1 = 0.506505471460186 # AST version 4.2- 1 -PutCards Ncards = 7 -PutCards Card = 1 -PutCards Card = 8 -PutCards Ncards = 7 -PutCards Card = 1 - - - - - FITS test number 1 - ==================== - - - -AST_SHOW: - -REG_SINK: -SIMPLE = T / Written by IDL: 30-Jul-1997 05:35:42.00 -BITPIX = -32 / Bits per pixel. -NAXIS = 2 / Number of dimensions -NAXIS1 = 300 / Length of x axis. -NAXIS2 = 300 / Length of y axis. -COMMENT -COMMENT This file was produced by the SkyView survey analysis system from -COMMENT available astronomical surveys. The data are formatted -COMMENT as a simple two-dimensional FITS image with the same units as -COMMENT the orginal survey. A single ASCII table extension may be present -COMMENT which describes catalog objects found within the field of view. -COMMENT Copies of relevant copyright notices are included in this file. -COMMENT -COMMENT Questions should be directed to: -COMMENT -COMMENT scollick@skyview.gsfc.nasa.gov -COMMENT or -COMMENT mcglynn@grossc.gsfc.nasa.gov -COMMENT -COMMENT SkyView -COMMENT Code 668.1 -COMMENT Goddard Space Flight Center, Greenbelt, MD 20771 -COMMENT 301-286-7780 -COMMENT -COMMENT SkyView is supported by NASA ADP grant NAS 5-32068. -COMMENT -SURVEY = 'COBE DIRBE' -BUNITS = 'MJy/sr ' -ORIGIN = 'CDAC ' / Cosmology Data Analysis Center -TELESCOP= 'COBE ' / COsmic Background Explorer satellite -INSTRUME= 'DIRBE ' / COBE instrument [DIRBE, DMR, FIRAS] -PIXRESOL= 9 / Quad tree pixel resolution [6, 9] -DATE = '27/09/94' / FITS file creation date (dd/mm/yy) -DATE-MAP= '16/09/94' / Date of original file creation (dd/mm/yy) -COMMENT COBE specific keywords -DATE-BEG= '08/12/89' / date of initial data represented (dd/mm/yy) -DATE-END= '25/09/90' / date of final data represented (dd/mm/yy) -COMMENT -COMMENT THE COBE DIRBE map is a combination of the original ten -COMMENT band passes with the following wavelengths: -COMMENT Band 1 - 1.25 microns -COMMENT Band 2 - 2.2 microns -COMMENT Band 3 - 3.5 microns -COMMENT Band 4 - 4.9 microns -COMMENT Band 5 - 12 microns -COMMENT Band 6 - 25 microns -COMMENT Band 7 - 60 microns -COMMENT Band 8 - 100 microns -COMMENT Band 9 - 140 microns -COMMENT Band 10 - 240 microns -COMMENT - -Objects written: 1 - -Native Encoding: - -COMMENT AST ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ AST -COMMENT AST WCS information in AST format AST -COMMENT AST See http://www.starlink.ac.uk/ast/ AST -COMMENT AST Beginning of AST data for FrameSet object AST -COMMENT AST ................................................................ AST -BEGAST_A= 'FrameSet' / Set of inter-related coordinate systems -NFRAME_A= 2 / Number of Frames in FrameSet -BASE_A = 1 / Index of base Frame -CURRNT_A= 2 / Index of current Frame -LNK2_A = 1 / Node 2 is derived from node 1 -FRM1_A = ' ' / Frame number 1 -BEGAST_B= 'Frame ' / Coordinate system description -TITLE_A = 'Pixel Coordinates' / Title of coordinate system -NAXES_A = 2 / Number of coordinate axes -DOMAIN_A= 'GRID ' / Coordinate system domain -AX1_A = ' ' / Axis number 1 -BEGAST_C= 'Axis ' / Coordinate axis -LABEL_A = 'Pixel axis 1' / Axis Label -ENDAST_A= 'Axis ' / End of object definition -AX2_A = ' ' / Axis number 2 -BEGAST_D= 'Axis ' / Coordinate axis -LABEL_B = 'Pixel axis 2' / Axis Label -ENDAST_B= 'Axis ' / End of object definition -ENDAST_C= 'Frame ' / End of object definition -FRM2_A = ' ' / Frame number 2 -BEGAST_E= 'SkyFrame' / Description of celestial coordinate system -IDENT_A = '" " ' / Permanent Object identification string -ISA_A = 'Object ' / AST Object -NAXES_B = 2 / Number of coordinate axes -EPOCH_A = 1950.0 / Besselian epoch of observation -SYSTEM_A= 'GALACTIC' / Coordinate system type -AX1_B = ' ' / Axis number 1 -BEGAST_F= 'SkyAxis ' / Celestial coordinate axis -ENDAST_D= 'SkyAxis ' / End of object definition -AX2_B = ' ' / Axis number 2 -BEGAST_G= 'SkyAxis ' / Celestial coordinate axis -ENDAST_E= 'SkyAxis ' / End of object definition -ISA_B = 'Frame ' / Coordinate system description -PROJ_A = 'zenithal equal area'/ Description of sky projection -SREFIS_A= 'Ignored ' / Not rotated (ref. pos. is ignored) -SREF1_A = -2.61046557479594 / Ref. pos. l -149.5687 -SREF2_A = -0.344845661720836 / Ref. pos. b -19.7582 -ENDAST_F= 'SkyFrame' / End of object definition -MAP2_A = ' ' / Mapping between nodes 1 and 2 -BEGAST_H= 'CmpMap ' / Compound Mapping -NIN_A = 2 / Number of input coordinates -ISSIMP_A= 1 / Mapping has been simplified -ISA_C = 'Mapping ' / Mapping between coordinate systems -MAPA_A = ' ' / First component Mapping -BEGAST_I= 'WinMap ' / Map one window on to another -NIN_B = 2 / Number of input coordinates -INVERT_A= 0 / Mapping not inverted -ISA_D = 'Mapping ' / Mapping between coordinate systems -SFT1_A = -150.5 / Shift for axis 1 -SFT2_A = -150.5 / Shift for axis 2 -ENDAST_G= 'WinMap ' / End of object definition -MAPB_A = ' ' / Second component Mapping -BEGAST_J= 'CmpMap ' / Compound Mapping -NIN_C = 2 / Number of input coordinates -ISA_E = 'Mapping ' / Mapping between coordinate systems -MAPA_B = ' ' / First component Mapping -BEGAST_K= 'MatrixMap' / Matrix transformation -NIN_D = 2 / Number of input coordinates -INVERT_B= 0 / Mapping not inverted -ISA_F = 'Mapping ' / Mapping between coordinate systems -M0_A = -0.020943951023932 / Forward matrix value -M1_A = 0.020943951023932 / Forward matrix value -FORM_A = 'Diagonal' / Matrix storage form -ENDAST_H= 'MatrixMap' / End of object definition -MAPB_B = ' ' / Second component Mapping -BEGAST_L= 'CmpMap ' / Compound Mapping -NIN_E = 2 / Number of input coordinates -ISA_G = 'Mapping ' / Mapping between coordinate systems -INVA_A = 1 / First Mapping used in inverse direction -MAPA_C = ' ' / First component Mapping -BEGAST_M= 'WcsMap ' / FITS-WCS sky projection -NIN_F = 2 / Number of input coordinates -INVERT_C= 1 / Mapping inverted -ISA_H = 'Mapping ' / Mapping between coordinate systems -TYPE_A = 'ZEA ' / Zenithal equal area projection -ENDAST_I= 'WcsMap ' / End of object definition -MAPB_C = ' ' / Second component Mapping -BEGAST_N= 'CmpMap ' / Compound Mapping -NIN_G = 2 / Number of input coordinates -ISA_I = 'Mapping ' / Mapping between coordinate systems -INVA_B = 1 / First Mapping used in inverse direction -MAPA_D = ' ' / First component Mapping -BEGAST_O= 'SphMap ' / Cartesian to Spherical mapping -NIN_H = 3 / Number of input coordinates -NOUT_A = 2 / Number of output coordinates -INVERT_D= 1 / Mapping inverted -ISA_J = 'Mapping ' / Mapping between coordinate systems -UNTRD_A = 1 / All input vectors have unit length -PLRLG_A = 0.0 / Polar longitude (rad.s) -ENDAST_J= 'SphMap ' / End of object definition -MAPB_D = ' ' / Second component Mapping -BEGAST_P= 'CmpMap ' / Compound Mapping -NIN_I = 3 / Number of input coordinates -NOUT_B = 2 / Number of output coordinates -ISA_K = 'Mapping ' / Mapping between coordinate systems -MAPA_E = ' ' / First component Mapping -BEGAST_Q= 'MatrixMap' / Matrix transformation -NIN_J = 3 / Number of input coordinates -INVERT_E= 0 / Mapping not inverted -ISA_L = 'Mapping ' / Mapping between coordinate systems -M0_B = 0.291480364581799 / Forward matrix value -M1_B = 0.506505471460186 / Forward matrix value -M2_A = -0.811474832908671 / Forward matrix value -M3_A = 0.171224898552328 / Forward matrix value -M4_A = -0.862236746712233 / Forward matrix value -M5_A = -0.476686298035564 / Forward matrix value -M6_A = -0.941127638091139 / Forward matrix value -M7_A = 0.0 / Forward matrix value -M8_A = -0.338051429254475 / Forward matrix value -FORM_B = 'Full ' / Matrix storage form -ENDAST_K= 'MatrixMap' / End of object definition -MAPB_E = ' ' / Second component Mapping -BEGAST_R= 'SphMap ' / Cartesian to Spherical mapping -NIN_K = 3 / Number of input coordinates -NOUT_C = 2 / Number of output coordinates -INVERT_F= 0 / Mapping not inverted -ISA_M = 'Mapping ' / Mapping between coordinate systems -UNTRD_B = 1 / All input vectors have unit length -PLRLG_B = -2.61046557479594 / Polar longitude (rad.s) -ENDAST_L= 'SphMap ' / End of object definition -ENDAST_M= 'CmpMap ' / End of object definition -ENDAST_N= 'CmpMap ' / End of object definition -ENDAST_O= 'CmpMap ' / End of object definition -ENDAST_P= 'CmpMap ' / End of object definition -ENDAST_Q= 'CmpMap ' / End of object definition -ENDAST_R= 'FrameSet' / End of object definition -COMMENT AST ................................................................ AST -COMMENT AST End of AST data for FrameSet object AST -COMMENT AST ---------------------------------------------------------------- AST - -ATTRIBUTES: - Colour(axis1) : 1 - Font(Stri) : 1 - Nout : 1 - Class : 4 - Tol : 0.100000E-01 - Gap(1) : 1.04720 - Border : 0 - Invert : 0 - TextLabGap : 0.100000E-01 - Nin : 2 - Current : 3 - Base : 1 - Nobject : 1 - RefCOUNT : 1 - -AST_GRID: -REG_LINE: 15 - 25.4 -29.7 - 20.1 -16.6 - 15.4 -2.03 - 11.5 13.7 - 8.35 30.3 - 5.92 47.5 - 4.25 65.0 - 3.39 82.6 - 3.35 100. - 4.19 117. - 5.99 133. - 8.83 149. - 12.9 163. - 18.3 175. - 25.4 185. -REG_LINE: 119 - 25.4 -29.7 - 24.6 -29.7 - 23.8 -29.7 - 22.9 -29.6 - 22.1 -29.5 - 21.3 -29.5 - 20.4 -29.3 - 19.6 -29.2 - 18.8 -29.0 - 17.9 -28.9 - 17.1 -28.7 - 16.3 -28.5 - 15.5 -28.2 - 14.6 -28.0 - 13.8 -27.7 - 13.0 -27.4 - 12.2 -27.1 - 11.4 -26.7 - 10.6 -26.4 - 9.74 -26.0 - 8.93 -25.6 - 8.12 -25.2 - 7.32 -24.8 - 6.52 -24.3 - 5.73 -23.9 - 4.93 -23.4 - 4.14 -22.9 - 3.35 -22.3 - 2.57 -21.8 - 1.79 -21.2 - 1.02 -20.6 - .247 -20.0 - -.520 -19.4 - -1.28 -18.8 - -2.04 -18.1 - -2.79 -17.4 - -3.54 -16.7 - -4.29 -16.0 - -5.02 -15.3 - -5.76 -14.5 - -6.49 -13.7 - -7.21 -12.9 - -7.92 -12.1 - -17.3 1.12 - -25.1 17.7 - -31.1 37.2 - -34.6 59.1 - -35.4 82.8 - -33.1 107. - -32.8 109. - -32.5 111. - -32.2 112. - -31.9 114. - -31.5 116. - -31.1 117. - -30.7 119. - -30.3 121. - -29.9 123. - -29.4 124. - -28.9 126. - -28.5 128. - -27.9 129. - -27.4 131. - -26.9 132. - -26.3 134. - -25.7 136. - -25.2 137. - -24.5 139. - -23.9 140. - -23.3 142. - -22.6 143. - -21.9 145. - -21.2 146. - -20.5 148. - -19.8 149. - -19.0 151. - -18.2 152. - -17.5 154. - -16.7 155. - -15.8 156. - -15.0 158. - -14.2 159. - -13.3 160. - -12.4 162. - -11.5 163. - -10.6 164. - -9.69 165. - -8.75 166. - -7.80 167. - -6.83 168. - -5.85 170. - -4.86 171. - -3.85 172. - -2.83 172. - -1.80 173. - -.761 174. - .293 175. - 1.36 176. - 2.43 177. - 3.52 178. - 4.61 178. - 5.72 179. - 6.83 180. - 7.95 180. - 9.08 181. - 10.2 181. - 11.4 182. - 12.5 182. - 13.7 183. - 14.8 183. - 16.0 184. - 17.2 184. - 18.3 184. - 19.5 184. - 20.7 185. - 21.9 185. - 23.1 185. - 24.3 185. - 25.4 185. -REG_LINE: 171 - 25.4 -29.7 - 19.1 -40.9 - 11.9 -49.9 - 11.3 -50.4 - 10.8 -50.9 - 10.2 -51.4 - 9.62 -51.9 - 9.04 -52.4 - 8.46 -52.8 - 7.87 -53.3 - 7.28 -53.7 - 6.68 -54.1 - 6.07 -54.5 - 5.46 -54.9 - 4.84 -55.2 - 4.21 -55.6 - 3.58 -55.9 - 2.95 -56.2 - 2.30 -56.5 - 1.65 -56.7 - .990 -56.9 - .325 -57.2 - -.348 -57.3 - -1.03 -57.5 - -1.71 -57.7 - -2.41 -57.8 - -3.11 -57.9 - -3.82 -57.9 - -4.54 -58.0 - -5.27 -58.0 - -6.00 -58.0 - -6.74 -58.0 - -7.50 -57.9 - -8.26 -57.8 - -9.03 -57.7 - -9.80 -57.5 - -10.6 -57.3 - -11.4 -57.1 - -12.2 -56.8 - -13.0 -56.5 - -13.8 -56.2 - -14.7 -55.8 - -15.5 -55.4 - -16.4 -55.0 - -17.2 -54.5 - -18.1 -53.9 - -19.0 -53.4 - -19.9 -52.7 - -20.8 -52.0 - -21.7 -51.3 - -22.6 -50.5 - -23.6 -49.7 - -24.5 -48.8 - -25.5 -47.8 - -26.4 -46.8 - -27.4 -45.7 - -28.4 -44.5 - -29.4 -43.3 - -30.4 -42.0 - -31.4 -40.6 - -32.4 -39.1 - -33.5 -37.6 - -34.5 -36.0 - -35.5 -34.3 - -36.6 -32.5 - -37.6 -30.5 - -38.7 -28.5 - -39.7 -26.4 - -40.8 -24.2 - -41.8 -21.9 - -42.8 -19.5 - -43.9 -16.9 - -44.9 -14.2 - -45.9 -11.4 - -46.9 -8.53 - -47.8 -5.48 - -48.8 -2.30 - -49.7 1.01 - -50.6 4.45 - -51.4 8.02 - -52.2 11.7 - -53.0 15.6 - -53.7 19.5 - -54.4 23.6 - -55.0 27.8 - -55.5 32.2 - -56.0 36.6 - -56.4 41.1 - -56.7 45.8 - -56.9 50.5 - -57.1 55.3 - -57.1 60.1 - -57.1 65.1 - -56.9 70.0 - -56.7 74.9 - -56.4 79.9 - -55.9 84.9 - -55.4 89.8 - -54.8 94.7 - -54.1 99.5 - -53.3 104. - -52.4 109. - -51.4 114. - -50.3 118. - -49.2 122. - -48.0 127. - -46.7 131. - -45.4 135. - -44.1 138. - -42.7 142. - -41.2 146. - -39.8 149. - -38.3 152. - -36.8 155. - -35.2 158. - -33.7 161. - -32.2 164. - -30.6 166. - -29.1 168. - -27.5 171. - -26.0 173. - -24.5 175. - -23.0 176. - -21.5 178. - -20.0 180. - -18.5 181. - -17.1 182. - -15.7 184. - -14.3 185. - -12.9 186. - -11.5 187. - -10.2 188. - -8.92 188. - -7.64 189. - -6.38 190. - -5.15 190. - -3.94 191. - -2.75 191. - -1.59 192. - -.448 192. - .669 193. - 1.76 193. - 2.83 193. - 3.88 193. - 4.91 193. - 5.92 193. - 6.91 193. - 7.88 193. - 8.82 193. - 9.75 193. - 10.7 193. - 11.6 193. - 12.4 193. - 13.3 192. - 14.1 192. - 14.9 192. - 15.7 192. - 16.5 191. - 17.3 191. - 18.1 190. - 18.8 190. - 19.5 190. - 20.2 189. - 20.9 189. - 21.6 188. - 22.3 188. - 22.9 187. - 23.6 187. - 24.2 186. - 24.8 185. - 25.4 185. -REG_LINE: 171 - 25.4 -29.7 - 31.6 -41.1 - 38.7 -50.2 - 39.2 -50.7 - 39.8 -51.2 - 40.3 -51.8 - 40.9 -52.3 - 41.5 -52.8 - 42.0 -53.2 - 42.6 -53.7 - 43.2 -54.1 - 43.8 -54.6 - 44.4 -55.0 - 45.0 -55.4 - 45.6 -55.7 - 46.2 -56.1 - 46.8 -56.4 - 47.4 -56.7 - 48.1 -57.0 - 48.7 -57.3 - 49.4 -57.6 - 50.0 -57.8 - 50.7 -58.0 - 51.3 -58.2 - 52.0 -58.4 - 52.7 -58.5 - 53.4 -58.6 - 54.1 -58.7 - 54.8 -58.8 - 55.5 -58.8 - 56.2 -58.9 - 57.0 -58.8 - 57.7 -58.8 - 58.5 -58.7 - 59.2 -58.6 - 60.0 -58.5 - 60.8 -58.3 - 61.6 -58.2 - 62.4 -57.9 - 63.2 -57.7 - 64.0 -57.4 - 64.8 -57.0 - 65.6 -56.6 - 66.5 -56.2 - 67.3 -55.8 - 68.2 -55.2 - 69.1 -54.7 - 70.0 -54.1 - 70.9 -53.4 - 71.8 -52.7 - 72.7 -52.0 - 73.7 -51.2 - 74.6 -50.3 - 75.6 -49.4 - 76.6 -48.4 - 77.5 -47.3 - 78.5 -46.2 - 79.5 -45.0 - 80.5 -43.7 - 81.6 -42.4 - 82.6 -41.0 - 83.6 -39.5 - 84.7 -37.9 - 85.7 -36.2 - 86.8 -34.4 - 87.8 -32.5 - 88.9 -30.5 - 90.0 -28.5 - 91.1 -26.3 - 92.1 -23.9 - 93.2 -21.5 - 94.2 -19.0 - 95.3 -16.3 - 96.3 -13.5 - 97.3 -10.6 - 98.4 -7.51 - 99.3 -4.31 - 100. -.976 - 101. 2.50 - 102. 6.12 - 103. 9.88 - 104. 13.8 - 105. 17.8 - 105. 22.0 - 106. 26.3 - 106. 30.7 - 107. 35.2 - 107. 39.9 - 108. 44.7 - 108. 49.5 - 108. 54.4 - 108. 59.4 - 108. 64.5 - 108. 69.5 - 108. 74.6 - 107. 79.7 - 107. 84.8 - 106. 89.9 - 106. 94.9 - 105. 99.9 - 104. 105. - 103. 110. - 102. 114. - 101. 119. - 100. 123. - 98.8 128. - 97.5 132. - 96.1 136. - 94.7 140. - 93.3 143. - 91.8 147. - 90.3 150. - 88.8 154. - 87.2 157. - 85.7 159. - 84.1 162. - 82.5 165. - 80.9 167. - 79.4 170. - 77.8 172. - 76.3 174. - 74.7 176. - 73.2 177. - 71.7 179. - 70.2 181. - 68.8 182. - 67.3 183. - 65.9 185. - 64.5 186. - 63.2 187. - 61.8 188. - 60.5 188. - 59.2 189. - 57.9 190. - 56.7 191. - 55.5 191. - 54.3 192. - 53.1 192. - 51.9 192. - 50.8 193. - 49.7 193. - 48.6 193. - 47.6 193. - 46.5 193. - 45.5 194. - 44.5 194. - 43.6 194. - 42.6 194. - 41.7 193. - 40.8 193. - 39.9 193. - 39.0 193. - 38.2 193. - 37.3 193. - 36.5 192. - 35.7 192. - 34.9 192. - 34.2 191. - 33.4 191. - 32.7 191. - 31.9 190. - 31.2 190. - 30.5 189. - 29.8 189. - 29.2 188. - 28.5 188. - 27.9 187. - 27.3 187. - 26.6 186. - 26.0 185. - 25.4 185. -REG_LINE: 119 - 25.4 -29.7 - 26.3 -29.7 - 27.1 -29.7 - 28.0 -29.7 - 28.8 -29.6 - 29.6 -29.5 - 30.5 -29.4 - 31.3 -29.3 - 32.1 -29.2 - 33.0 -29.0 - 33.8 -28.8 - 34.6 -28.6 - 35.4 -28.4 - 36.3 -28.2 - 37.1 -27.9 - 37.9 -27.6 - 38.7 -27.3 - 39.5 -27.0 - 40.4 -26.7 - 41.2 -26.3 - 42.0 -25.9 - 42.8 -25.5 - 43.6 -25.1 - 44.4 -24.7 - 45.2 -24.2 - 46.0 -23.7 - 46.8 -23.2 - 47.6 -22.7 - 48.4 -22.2 - 49.2 -21.6 - 49.9 -21.1 - 50.7 -20.5 - 51.5 -19.8 - 52.2 -19.2 - 53.0 -18.6 - 53.8 -17.9 - 54.5 -17.2 - 55.3 -16.5 - 56.0 -15.8 - 56.8 -15.0 - 57.5 -14.3 - 58.2 -13.5 - 58.9 -12.7 - 68.4 .462 - 76.3 17.0 - 82.3 36.5 - 85.9 58.6 - 86.8 82.4 - 84.5 107. - 84.2 109. - 83.9 110. - 83.5 112. - 83.2 114. - 82.8 116. - 82.4 117. - 82.0 119. - 81.6 121. - 81.2 122. - 80.7 124. - 80.2 126. - 79.7 128. - 79.2 129. - 78.7 131. - 78.1 132. - 77.6 134. - 77.0 136. - 76.4 137. - 75.8 139. - 75.1 140. - 74.5 142. - 73.8 144. - 73.1 145. - 72.4 147. - 71.7 148. - 70.9 150. - 70.2 151. - 69.4 152. - 68.6 154. - 67.8 155. - 67.0 157. - 66.1 158. - 65.3 159. - 64.4 160. - 63.5 162. - 62.6 163. - 61.7 164. - 60.8 165. - 59.8 166. - 58.8 168. - 57.9 169. - 56.9 170. - 55.9 171. - 54.9 172. - 53.8 173. - 52.8 174. - 51.8 175. - 50.7 175. - 49.6 176. - 48.5 177. - 47.4 178. - 46.3 178. - 45.2 179. - 44.1 180. - 43.0 180. - 41.8 181. - 40.7 182. - 39.6 182. - 38.4 182. - 37.2 183. - 36.1 183. - 34.9 184. - 33.7 184. - 32.6 184. - 31.4 184. - 30.2 185. - 29.0 185. - 27.8 185. - 26.6 185. - 25.4 185. -REG_LINE: 15 - 25.4 -29.7 - 31.0 -16.7 - 35.7 -2.18 - 39.8 13.5 - 43.0 30.1 - 45.5 47.3 - 47.2 64.8 - 48.1 82.5 - 48.2 99.9 - 47.3 117. - 45.5 133. - 42.5 149. - 38.4 163. - 32.8 175. - 25.4 185. -REG_LINE: 197 - 37.2 2.94 - 36.4 3.34 - 35.6 3.71 - 34.8 4.05 - 34.0 4.37 - 33.2 4.65 - 32.3 4.90 - 31.5 5.13 - 30.7 5.32 - 29.8 5.49 - 29.0 5.63 - 28.2 5.74 - 27.3 5.82 - 26.5 5.87 - 25.6 5.89 - 24.8 5.88 - 23.9 5.84 - 23.1 5.77 - 22.2 5.68 - 21.4 5.55 - 20.5 5.40 - 19.7 5.21 - 18.9 5.00 - 18.1 4.75 - 17.2 4.48 - 16.4 4.18 - 15.6 3.85 - 14.8 3.49 - 14.0 3.10 - 13.3 2.69 - 12.5 2.24 - 11.8 1.77 - 11.0 1.26 - 10.3 .730 - 9.57 .169 - 8.87 -.420 - 8.18 -1.04 - 7.51 -1.68 - 6.86 -2.36 - 6.23 -3.06 - 5.61 -3.79 - 5.02 -4.55 - 4.44 -5.33 - 3.89 -6.14 - 3.35 -6.98 - 2.84 -7.84 - 2.36 -8.73 - 1.89 -9.65 - 1.46 -10.6 - 1.04 -11.6 - .660 -12.5 - .304 -13.6 - -0.240E-01 -14.6 - -.322 -15.7 - -.589 -16.7 - -.825 -17.8 - -1.03 -19.0 - -1.20 -20.1 - -1.34 -21.3 - -1.44 -22.5 - -1.50 -23.6 - -1.53 -24.9 - -1.52 -26.1 - -1.48 -27.3 - -1.39 -28.6 - -1.26 -29.8 - -1.10 -31.1 - -.889 -32.3 - -.640 -33.6 - -.348 -34.9 - -0.127E-01 -36.1 - .365 -37.4 - .787 -38.7 - 1.25 -39.9 - 1.76 -41.2 - 2.32 -42.4 - 2.92 -43.6 - 3.56 -44.8 - 4.24 -45.9 - 4.97 -47.1 - 5.74 -48.2 - 6.56 -49.2 - 7.41 -50.3 - 8.30 -51.3 - 9.23 -52.2 - 10.2 -53.1 - 11.2 -54.0 - 12.2 -54.8 - 13.3 -55.5 - 14.4 -56.2 - 15.5 -56.8 - 16.7 -57.4 - 17.9 -57.9 - 19.1 -58.3 - 20.3 -58.7 - 21.5 -58.9 - 22.7 -59.1 - 24.0 -59.3 - 25.2 -59.3 - 26.4 -59.3 - 27.7 -59.2 - 28.9 -59.0 - 30.1 -58.8 - 31.4 -58.5 - 32.6 -58.1 - 33.7 -57.6 - 34.9 -57.1 - 36.0 -56.5 - 37.1 -55.8 - 38.2 -55.1 - 39.3 -54.3 - 40.3 -53.5 - 41.3 -52.6 - 42.2 -51.7 - 43.1 -50.7 - 44.0 -49.7 - 44.8 -48.6 - 45.6 -47.5 - 46.4 -46.4 - 47.1 -45.2 - 47.7 -44.1 - 48.3 -42.9 - 48.9 -41.7 - 49.4 -40.4 - 49.9 -39.2 - 50.4 -37.9 - 50.8 -36.7 - 51.1 -35.4 - 51.4 -34.1 - 51.7 -32.8 - 51.9 -31.6 - 52.1 -30.3 - 52.2 -29.1 - 52.3 -27.8 - 52.4 -26.6 - 52.4 -25.3 - 52.4 -24.1 - 52.4 -22.9 - 52.3 -21.7 - 52.2 -20.6 - 52.0 -19.4 - 51.8 -18.3 - 51.6 -17.2 - 51.3 -16.1 - 51.0 -15.0 - 50.7 -14.0 - 50.4 -13.0 - 50.0 -12.0 - 49.6 -11.0 - 49.2 -10.0 - 48.7 -9.10 - 48.2 -8.20 - 47.7 -7.32 - 47.2 -6.48 - 46.7 -5.65 - 46.1 -4.86 - 45.5 -4.09 - 44.9 -3.35 - 44.3 -2.64 - 43.6 -1.95 - 43.0 -1.29 - 42.3 -.665 - 41.6 -0.645E-01 - 40.9 .508 - 40.2 1.05 - 39.4 1.57 - 38.7 2.05 - 37.9 2.51 - 37.2 2.94 - 36.4 3.34 - 35.6 3.71 - 34.8 4.05 - 34.0 4.37 - 33.2 4.65 - 32.3 4.90 - 31.5 5.13 - 30.7 5.32 - 29.8 5.49 - 29.0 5.63 - 28.2 5.74 - 27.3 5.82 - 26.5 5.87 - 25.6 5.89 - 24.8 5.88 - 23.9 5.84 - 23.1 5.77 - 22.2 5.68 - 21.4 5.55 - 20.5 5.40 - 19.7 5.21 - 18.9 5.00 - 18.1 4.75 - 17.2 4.48 - 16.4 4.18 - 15.6 3.85 - 14.8 3.49 - 14.0 3.10 -REG_LINE: 197 - 44.8 41.5 - 43.5 42.0 - 42.1 42.5 - 40.8 42.9 - 39.5 43.3 - 38.1 43.6 - 36.7 43.9 - 35.4 44.2 - 34.0 44.4 - 32.6 44.6 - 31.3 44.8 - 29.9 44.9 - 28.5 45.0 - 27.1 45.1 - 25.7 45.1 - 24.3 45.1 - 23.0 45.1 - 21.6 45.0 - 20.2 44.9 - 18.8 44.7 - 17.4 44.5 - 16.1 44.3 - 14.7 44.0 - 13.3 43.7 - 12.0 43.4 - 10.6 43.0 - 9.29 42.6 - 7.96 42.2 - 6.65 41.7 - 5.34 41.2 - 4.04 40.6 - 2.75 40.0 - 1.48 39.4 - .220 38.8 - -1.02 38.0 - -2.25 37.3 - -3.47 36.5 - -4.66 35.7 - -5.84 34.8 - -7.00 33.9 - -8.14 33.0 - -9.25 32.0 - -10.3 31.0 - -11.4 29.9 - -12.5 28.8 - -13.5 27.6 - -14.5 26.4 - -15.5 25.2 - -16.4 23.9 - -17.3 22.5 - -18.2 21.2 - -19.0 19.7 - -19.8 18.2 - -20.6 16.7 - -21.4 15.1 - -22.1 13.5 - -22.7 11.8 - -23.3 10.1 - -23.9 8.29 - -24.4 6.45 - -24.9 4.55 - -25.3 2.59 - -25.7 .576 - -26.0 -1.49 - -26.3 -3.62 - -26.5 -5.81 - -26.6 -8.05 - -26.7 -10.4 - -26.7 -12.7 - -26.6 -15.1 - -26.4 -17.6 - -26.2 -20.2 - -25.8 -22.7 - -25.4 -25.4 - -24.9 -28.1 - -24.3 -30.8 - -23.5 -33.6 - -22.7 -36.4 - -21.7 -39.3 - -20.7 -42.1 - -19.5 -45.0 - -18.1 -47.9 - -16.6 -50.8 - -15.0 -53.6 - -13.3 -56.4 - -11.4 -59.2 - -9.34 -61.9 - -7.15 -64.5 - -4.82 -67.0 - -2.34 -69.3 - .268 -71.5 - 3.01 -73.5 - 5.87 -75.3 - 8.84 -76.9 - 11.9 -78.3 - 15.1 -79.3 - 18.3 -80.1 - 21.5 -80.6 - 24.8 -80.9 - 28.1 -80.8 - 31.3 -80.4 - 34.6 -79.7 - 37.7 -78.7 - 40.8 -77.5 - 43.8 -76.0 - 46.7 -74.3 - 49.5 -72.4 - 52.2 -70.2 - 54.7 -67.9 - 57.1 -65.5 - 59.4 -63.0 - 61.5 -60.3 - 63.4 -57.6 - 65.2 -54.8 - 66.9 -51.9 - 68.4 -49.1 - 69.8 -46.2 - 71.1 -43.3 - 72.2 -40.4 - 73.2 -37.6 - 74.1 -34.7 - 74.9 -31.9 - 75.5 -29.2 - 76.1 -26.5 - 76.6 -23.8 - 76.9 -21.2 - 77.2 -18.6 - 77.4 -16.1 - 77.5 -13.7 - 77.6 -11.3 - 77.5 -8.97 - 77.4 -6.71 - 77.3 -4.50 - 77.0 -2.34 - 76.7 -.250 - 76.4 1.79 - 76.0 3.76 - 75.5 5.69 - 75.0 7.55 - 74.5 9.37 - 73.9 11.1 - 73.2 12.8 - 72.5 14.5 - 71.8 16.1 - 71.1 17.6 - 70.3 19.1 - 69.4 20.6 - 68.6 22.0 - 67.7 23.3 - 66.7 24.7 - 65.8 25.9 - 64.8 27.1 - 63.8 28.3 - 62.7 29.5 - 61.7 30.5 - 60.6 31.6 - 59.5 32.6 - 58.4 33.5 - 57.2 34.5 - 56.0 35.3 - 54.8 36.2 - 53.6 37.0 - 52.4 37.7 - 51.2 38.5 - 49.9 39.2 - 48.7 39.8 - 47.4 40.4 - 46.1 41.0 - 44.8 41.5 - 43.5 42.0 - 42.1 42.5 - 40.8 42.9 - 39.5 43.3 - 38.1 43.6 - 36.7 43.9 - 35.4 44.2 - 34.0 44.4 - 32.6 44.6 - 31.3 44.8 - 29.9 44.9 - 28.5 45.0 - 27.1 45.1 - 25.7 45.1 - 24.3 45.1 - 23.0 45.1 - 21.6 45.0 - 20.2 44.9 - 18.8 44.7 - 17.4 44.5 - 16.1 44.3 - 14.7 44.0 - 13.3 43.7 - 12.0 43.4 - 10.6 43.0 - 9.29 42.6 - 7.96 42.2 - 6.65 41.7 -REG_LINE: 197 - 48.1 82.5 - 46.6 82.8 - 45.0 83.2 - 43.4 83.5 - 41.8 83.8 - 40.3 84.1 - 38.7 84.4 - 37.1 84.6 - 35.5 84.8 - 33.8 84.9 - 32.2 85.0 - 30.6 85.2 - 29.0 85.2 - 27.4 85.3 - 25.8 85.3 - 24.2 85.3 - 22.5 85.3 - 20.9 85.2 - 19.3 85.1 - 17.7 85.0 - 16.1 84.8 - 14.5 84.6 - 12.9 84.4 - 11.3 84.2 - 9.69 83.9 - 8.10 83.7 - 6.52 83.3 - 4.95 83.0 - 3.39 82.6 - 1.83 82.2 - .284 81.8 - -1.25 81.3 - -2.78 80.8 - -4.29 80.3 - -5.80 79.7 - -7.29 79.2 - -8.77 78.6 - -10.2 77.9 - -11.7 77.2 - -13.1 76.5 - -14.5 75.8 - -15.9 75.0 - -17.3 74.2 - -18.7 73.4 - -20.1 72.5 - -21.4 71.6 - -22.7 70.7 - -24.0 69.7 - -25.3 68.7 - -26.5 67.6 - -27.8 66.5 - -29.0 65.4 - -30.1 64.2 - -31.3 63.0 - -32.4 61.8 - -33.5 60.5 - -34.6 59.1 - -35.7 57.8 - -36.7 56.3 - -37.7 54.8 - -38.7 53.3 - -39.6 51.7 - -40.5 50.0 - -41.3 48.3 - -42.2 46.5 - -42.9 44.6 - -43.7 42.7 - -44.4 40.6 - -45.0 38.5 - -45.7 36.3 - -46.2 34.0 - -46.7 31.6 - -47.1 29.1 - -47.5 26.5 - -47.8 23.7 - -48.1 20.8 - -48.2 17.8 - -48.3 14.5 - -48.2 11.1 - -48.1 7.50 - -47.8 3.67 - -47.3 -.401 - -46.7 -4.73 - -45.9 -9.33 - -44.9 -14.2 - -43.6 -19.5 - -42.0 -25.0 - -40.0 -30.9 - -37.7 -37.2 - -34.8 -43.8 - -31.3 -50.6 - -27.2 -57.6 - -22.3 -64.7 - -16.7 -71.6 - -10.1 -78.1 - -2.67 -83.8 - 5.54 -88.4 - 14.4 -91.5 - 23.6 -92.8 - 32.8 -92.3 - 41.9 -89.9 - 50.3 -85.8 - 58.1 -80.5 - 65.0 -74.3 - 71.1 -67.5 - 76.2 -60.5 - 80.7 -53.4 - 84.4 -46.5 - 87.5 -39.8 - 90.0 -33.4 - 92.1 -27.4 - 93.9 -21.7 - 95.3 -16.3 - 96.4 -11.3 - 97.3 -6.55 - 98.0 -2.11 - 98.5 2.06 - 98.8 5.99 - 99.1 9.69 - 99.1 13.2 - 99.1 16.5 - 99.0 19.6 - 98.8 22.6 - 98.5 25.4 - 98.2 28.1 - 97.8 30.6 - 97.3 33.1 - 96.8 35.4 - 96.2 37.7 - 95.6 39.8 - 94.9 41.9 - 94.1 43.8 - 93.4 45.7 - 92.6 47.6 - 91.7 49.3 - 90.8 51.0 - 89.9 52.6 - 89.0 54.2 - 88.0 55.7 - 87.0 57.2 - 85.9 58.6 - 84.9 60.0 - 83.8 61.3 - 82.7 62.5 - 81.5 63.8 - 80.3 65.0 - 79.1 66.1 - 77.9 67.2 - 76.7 68.3 - 75.4 69.3 - 74.1 70.3 - 72.8 71.2 - 71.5 72.2 - 70.1 73.0 - 68.8 73.9 - 67.4 74.7 - 66.0 75.5 - 64.6 76.2 - 63.2 77.0 - 61.7 77.6 - 60.3 78.3 - 58.8 78.9 - 57.3 79.5 - 55.8 80.1 - 54.3 80.6 - 52.8 81.1 - 51.2 81.6 - 49.7 82.0 - 48.1 82.5 - 46.6 82.8 - 45.0 83.2 - 43.4 83.5 - 41.8 83.8 - 40.3 84.1 - 38.7 84.4 - 37.1 84.6 - 35.5 84.8 - 33.8 84.9 - 32.2 85.0 - 30.6 85.2 - 29.0 85.2 - 27.4 85.3 - 25.8 85.3 - 24.2 85.3 - 22.5 85.3 - 20.9 85.2 - 19.3 85.1 - 17.7 85.0 - 16.1 84.8 - 14.5 84.6 - 12.9 84.4 - 11.3 84.2 - 9.69 83.9 - 8.10 83.7 - 6.52 83.3 - 4.95 83.0 - 3.39 82.6 -REG_LINE: 158 - 46.8 122. - 25.8 124. - 4.68 123. - -14.9 119. - -31.6 115. - -32.7 115. - -33.7 115. - -34.7 114. - -35.7 114. - -36.6 114. - -37.5 114. - -38.4 114. - -39.3 113. - -40.1 113. - -41.0 113. - -41.7 113. - -42.5 113. - -43.2 113. - -43.9 113. - -44.6 113. - -45.2 113. - -45.8 114. - -46.3 114. - -46.8 114. - -47.2 115. - -47.6 116. - -48.0 116. - -48.3 117. - -48.5 118. - -48.6 120. - -48.7 121. - -48.6 123. - -48.4 125. - -48.1 128. - -47.6 131. - -46.8 134. - -45.8 138. - -44.3 143. - -42.4 149. - -39.8 155. - -36.3 163. - -31.6 172. - -25.2 181. - -16.8 192. - -5.96 201. - -5.08 202. - -4.20 203. - -3.30 203. - -2.39 204. - -1.47 204. - -.536 205. - .410 205. - 1.37 206. - 2.33 206. - 3.31 207. - 4.30 207. - 5.30 208. - 6.31 208. - 7.33 209. - 8.36 209. - 9.40 209. - 10.4 210. - 11.5 210. - 12.6 210. - 13.6 211. - 14.7 211. - 15.8 211. - 16.9 211. - 17.9 212. - 19.0 212. - 20.1 212. - 21.2 212. - 22.3 212. - 23.4 212. - 24.5 212. - 25.6 212. - 26.8 212. - 27.9 212. - 29.0 212. - 30.1 212. - 31.2 212. - 32.3 212. - 33.3 212. - 34.4 211. - 35.5 211. - 36.6 211. - 37.7 211. - 38.7 210. - 39.8 210. - 40.8 210. - 41.9 209. - 42.9 209. - 43.9 209. - 44.9 208. - 46.0 208. - 47.0 207. - 47.9 207. - 48.9 206. - 49.9 206. - 50.8 205. - 51.8 205. - 52.7 204. - 53.6 204. - 54.5 203. - 55.4 202. - 56.3 202. - 57.2 201. - 58.0 200. - 58.9 200. - 59.7 199. - 60.5 198. - 61.3 198. - 62.1 197. - 62.9 196. - 63.6 196. - 73.0 186. - 80.2 176. - 85.5 166. - 89.4 158. - 92.4 151. - 94.5 145. - 96.1 140. - 97.3 136. - 98.2 132. - 98.8 129. - 99.2 126. - 99.4 124. - 99.5 122. - 99.5 120. - 99.4 119. - 99.3 118. - 99.0 117. - 98.7 116. - 98.3 115. - 97.9 115. - 97.4 114. - 96.9 114. - 96.3 114. - 95.7 113. - 95.1 113. - 94.4 113. - 93.7 113. - 92.9 113. - 92.2 113. - 91.4 113. - 90.5 113. - 89.7 113. - 88.8 114. - 87.9 114. - 86.9 114. - 86.0 114. - 85.0 115. - 84.0 115. - 82.9 115. - 66.3 119. - 46.8 122. - 25.8 124. - 4.68 123. -REG_LINE: 132 - 39.9 158. - 25.7 158. - 11.4 158. - -1.28 160. - -2.08 160. - -2.85 160. - -3.60 160. - -4.34 161. - -5.05 161. - -5.74 161. - -6.40 162. - -7.04 162. - -7.66 162. - -8.25 163. - -8.81 163. - -9.34 163. - -9.84 164. - -10.3 164. - -10.7 165. - -11.1 165. - -11.5 166. - -11.8 167. - -12.1 167. - -12.4 168. - -12.6 169. - -12.7 169. - -12.8 170. - -12.9 171. - -12.9 172. - -12.9 173. - -12.8 174. - -12.6 174. - -12.4 175. - -12.1 177. - -11.7 178. - -11.3 179. - -10.8 180. - -10.2 181. - -9.53 182. - -8.78 184. - -7.94 185. - -7.02 186. - -6.00 188. - -4.88 189. - -3.67 190. - -2.36 192. - -.951 193. - .557 194. - 2.16 195. - 3.87 197. - 5.66 198. - 7.55 199. - 9.52 200. - 11.6 201. - 13.7 202. - 15.9 202. - 18.1 203. - 20.4 203. - 22.7 203. - 25.0 203. - 27.3 203. - 29.6 203. - 31.9 203. - 34.1 202. - 36.3 202. - 38.5 201. - 40.6 200. - 42.6 199. - 44.5 198. - 46.3 197. - 48.1 196. - 49.7 195. - 51.2 193. - 52.7 192. - 54.0 191. - 55.3 189. - 56.5 188. - 57.5 187. - 58.5 185. - 59.3 184. - 60.1 183. - 60.8 182. - 61.4 180. - 62.0 179. - 62.4 178. - 62.8 177. - 63.2 176. - 63.4 175. - 63.6 174. - 63.7 173. - 63.8 172. - 63.8 171. - 63.8 170. - 63.7 170. - 63.5 169. - 63.3 168. - 63.1 167. - 62.9 167. - 62.5 166. - 62.2 166. - 61.8 165. - 61.4 165. - 60.9 164. - 60.4 164. - 59.9 163. - 59.4 163. - 58.8 162. - 58.2 162. - 57.6 162. - 56.9 161. - 56.2 161. - 55.5 161. - 54.8 161. - 54.0 160. - 53.3 160. - 52.5 160. - 51.7 160. - 50.9 159. - 50.0 159. - 49.2 159. - 48.3 159. - 47.4 159. - 46.5 159. - 45.6 159. - 44.7 158. - 43.8 158. - 42.8 158. - 41.9 158. - 40.9 158. - 39.9 158. - 25.7 158. - 11.4 158. -REG_LINE: 2 - 40.8 84.0 - 40.8 85.8 -REG_LINE: 2 - 33.3 85.0 - 33.3 86.7 -REG_LINE: 2 - 25.8 85.3 - 25.8 87.0 -REG_LINE: 2 - 18.2 85.0 - 18.2 86.8 -REG_LINE: 2 - 10.7 84.1 - 10.7 85.9 -REG_LINE: 2 - -3.79 80.5 - -3.83 82.2 -REG_LINE: 2 - -10.7 77.7 - -10.8 79.4 -REG_LINE: 2 - -17.3 74.2 - -17.4 76.0 -REG_LINE: 2 - -23.6 70.0 - -23.6 71.8 -REG_LINE: 2 - -29.4 65.0 - -29.5 66.8 -REG_LINE: 2 - -39.3 52.2 - -39.4 54.0 -REG_LINE: 2 - -43.2 44.0 - -43.4 45.7 -REG_LINE: 2 - -46.2 34.0 - -46.4 35.8 -REG_LINE: 2 - -48.0 21.8 - -48.3 23.5 -REG_LINE: 2 - -48.0 6.25 - -48.3 7.96 -REG_LINE: 2 - -35.8 -41.5 - -36.5 -39.9 -REG_LINE: 2 - -14.6 -73.9 - -15.8 -72.6 -REG_LINE: 2 - 23.6 -92.8 - 22.6 -94.3 -REG_LINE: 2 - 62.8 -76.5 - 64.1 -75.2 -REG_LINE: 2 - 85.5 -44.2 - 86.2 -42.6 -REG_LINE: 2 - 98.7 4.70 - 99.1 6.41 -REG_LINE: 2 - 99.0 20.6 - 99.3 22.3 -REG_LINE: 2 - 97.3 33.1 - 97.5 34.8 -REG_LINE: 2 - 94.4 43.2 - 94.6 44.9 -REG_LINE: 2 - 90.5 51.6 - 90.7 53.3 -REG_LINE: 2 - 80.7 64.6 - 80.8 66.3 -REG_LINE: 2 - 75.0 69.6 - 75.1 71.4 -REG_LINE: 2 - 68.8 73.9 - 68.8 75.6 -REG_LINE: 2 - 62.2 77.4 - 62.2 79.2 -REG_LINE: 2 - 55.3 80.3 - 55.3 82.0 -REG_LINE: 2 - 40.8 84.0 - 40.8 85.8 -REG_LINE: 2 - 33.3 85.0 - 33.3 86.7 -REG_LINE: 2 - 25.8 85.3 - 25.8 87.0 -REG_LINE: 2 - 18.2 85.0 - 18.2 86.8 -REG_LINE: 2 - 10.7 84.1 - 10.7 85.9 -REG_LINE: 2 - 23.1 -34.3 - 21.6 -33.5 -REG_LINE: 2 - 20.6 -38.6 - 19.1 -37.7 -REG_LINE: 2 - 18.0 -42.6 - 16.5 -41.7 -REG_LINE: 2 - 15.2 -46.2 - 13.8 -45.2 -REG_LINE: 2 - 12.3 -49.4 - 10.9 -48.4 -REG_LINE: 2 - 6.00 -54.5 - 4.63 -53.5 -REG_LINE: 2 - 2.59 -56.3 - 1.25 -55.2 -REG_LINE: 2 - -1.03 -57.5 - -2.33 -56.3 -REG_LINE: 2 - -4.86 -58.0 - -6.12 -56.8 -REG_LINE: 2 - -8.94 -57.7 - -10.1 -56.4 -REG_LINE: 2 - -17.9 -54.1 - -19.0 -52.7 -REG_LINE: 2 - -22.8 -50.3 - -23.9 -48.9 -REG_LINE: 2 - -28.1 -44.9 - -29.0 -43.4 -REG_LINE: 2 - -33.6 -37.4 - -34.4 -35.9 -REG_LINE: 2 - -39.3 -27.4 - -40.0 -25.8 -REG_LINE: 2 - -50.1 2.52 - -50.5 4.22 -REG_LINE: 2 - -54.3 23.2 - -54.6 24.9 -REG_LINE: 2 - -56.8 47.3 - -56.8 49.1 -REG_LINE: 2 - -56.8 73.8 - -56.1 75.5 -REG_LINE: 2 - -53.9 101. - -54.0 98.8 -REG_LINE: 2 - -41.1 146. - -41.7 144. -REG_LINE: 2 - -32.8 162. - -33.7 161. -REG_LINE: 2 - -24.5 175. - -25.5 173. -REG_LINE: 2 - -16.5 183. - -17.6 182. -REG_LINE: 2 - -9.06 188. - -10.4 187. -REG_LINE: 2 - 3.65 193. - 2.17 192. -REG_LINE: 2 - 9.03 193. - 7.49 192. -REG_LINE: 2 - 13.8 192. - 12.2 192. -REG_LINE: 2 - 18.1 190. - 16.5 190. -REG_LINE: 2 - 22.0 188. - 20.3 187. -REG_LINE: 15 - 3.39 82.6 - 6.52 83.3 - 9.69 83.9 - 12.9 84.4 - 16.1 84.8 - 19.3 85.1 - 22.5 85.3 - 25.8 85.3 - 29.0 85.2 - 32.2 85.0 - 35.5 84.8 - 38.7 84.4 - 41.8 83.8 - 45.0 83.2 - 48.1 82.5 -REG_LINE: 15 - 3.39 82.6 - .284 81.8 - -2.78 80.8 - -5.80 79.7 - -8.77 78.6 - -11.7 77.2 - -14.5 75.8 - -17.3 74.2 - -20.1 72.5 - -22.7 70.7 - -25.3 68.7 - -27.8 66.5 - -30.1 64.2 - -32.4 61.8 - -34.6 59.1 -REG_LINE: 15 - -34.6 59.1 - -36.7 56.3 - -38.7 53.3 - -40.5 50.0 - -42.2 46.5 - -43.7 42.7 - -45.0 38.5 - -46.2 34.0 - -47.1 29.1 - -47.8 23.7 - -48.2 17.8 - -48.2 11.1 - -47.8 3.67 - -46.7 -4.73 - -44.9 -14.2 -REG_LINE: 93 - -44.9 -14.2 - -42.0 -25.0 - -37.7 -37.2 - -31.3 -50.6 - -22.3 -64.7 - -21.6 -65.7 - -20.8 -66.7 - -20.0 -67.7 - -19.2 -68.7 - -18.4 -69.7 - -17.5 -70.7 - -16.7 -71.6 - -15.8 -72.6 - -14.9 -73.5 - -14.0 -74.5 - -13.0 -75.4 - -12.1 -76.3 - -11.1 -77.2 - -10.1 -78.1 - -9.08 -79.0 - -8.06 -79.8 - -7.01 -80.7 - -5.95 -81.5 - -4.87 -82.3 - -3.78 -83.1 - -2.67 -83.8 - -1.54 -84.6 - -.395 -85.3 - .764 -86.0 - 1.94 -86.6 - 3.13 -87.2 - 4.33 -87.8 - 5.54 -88.4 - 6.77 -89.0 - 8.01 -89.5 - 9.27 -89.9 - 10.5 -90.4 - 11.8 -90.8 - 13.1 -91.2 - 14.4 -91.5 - 15.7 -91.8 - 17.0 -92.1 - 18.3 -92.3 - 19.6 -92.5 - 20.9 -92.6 - 22.3 -92.8 - 23.6 -92.8 - 24.9 -92.9 - 26.2 -92.9 - 27.6 -92.8 - 28.9 -92.7 - 30.2 -92.6 - 31.5 -92.5 - 32.8 -92.3 - 34.2 -92.0 - 35.5 -91.8 - 36.8 -91.4 - 38.0 -91.1 - 39.3 -90.7 - 40.6 -90.3 - 41.9 -89.9 - 43.1 -89.4 - 44.3 -88.9 - 45.6 -88.3 - 46.8 -87.7 - 48.0 -87.1 - 49.2 -86.5 - 50.3 -85.8 - 51.5 -85.2 - 52.6 -84.4 - 53.8 -83.7 - 54.9 -82.9 - 56.0 -82.2 - 57.0 -81.4 - 58.1 -80.5 - 59.1 -79.7 - 60.2 -78.8 - 61.2 -78.0 - 62.2 -77.1 - 63.1 -76.2 - 64.1 -75.2 - 65.0 -74.3 - 65.9 -73.4 - 66.8 -72.4 - 67.7 -71.4 - 68.6 -70.5 - 69.4 -69.5 - 70.2 -68.5 - 71.1 -67.5 - 80.7 -53.4 - 87.5 -39.8 - 92.1 -27.4 - 95.3 -16.3 -REG_LINE: 15 - 95.3 -16.3 - 97.3 -6.55 - 98.5 2.06 - 99.1 9.69 - 99.1 16.5 - 98.8 22.6 - 98.2 28.1 - 97.3 33.1 - 96.2 37.7 - 94.9 41.9 - 93.4 45.7 - 91.7 49.3 - 89.9 52.6 - 88.0 55.7 - 85.9 58.6 -REG_LINE: 15 - 85.9 58.6 - 83.8 61.3 - 81.5 63.8 - 79.1 66.1 - 76.7 68.3 - 74.1 70.3 - 71.5 72.2 - 68.8 73.9 - 66.0 75.5 - 63.2 77.0 - 60.3 78.3 - 57.3 79.5 - 54.3 80.6 - 51.2 81.6 - 48.1 82.5 -REG_LINE: 15 - 48.1 82.5 - 45.0 83.2 - 41.8 83.8 - 38.7 84.4 - 35.5 84.8 - 32.2 85.0 - 29.0 85.2 - 25.8 85.3 - 22.5 85.3 - 19.3 85.1 - 16.1 84.8 - 12.9 84.4 - 9.69 83.9 - 6.52 83.3 - 3.39 82.6 -REG_LINE: 15 - 48.1 82.5 - 45.0 83.2 - 41.8 83.8 - 38.7 84.4 - 35.5 84.8 - 32.2 85.0 - 29.0 85.2 - 25.8 85.3 - 22.5 85.3 - 19.3 85.1 - 16.1 84.8 - 12.9 84.4 - 9.69 83.9 - 6.52 83.3 - 3.39 82.6 -REG_LINE: 15 - 25.4 -29.7 - 24.4 -31.7 - 23.4 -33.7 - 22.4 -35.6 - 21.3 -37.4 - 20.2 -39.2 - 19.1 -40.9 - 18.0 -42.6 - 16.8 -44.2 - 15.6 -45.7 - 14.4 -47.2 - 13.1 -48.6 - 11.9 -49.9 - 10.6 -51.1 - 9.23 -52.2 -REG_LINE: 15 - 9.23 -52.2 - 7.87 -53.3 - 6.48 -54.2 - 5.05 -55.1 - 3.58 -55.9 - 2.08 -56.5 - .548 -57.1 - -1.03 -57.5 - -2.64 -57.8 - -4.30 -58.0 - -6.00 -58.0 - -7.75 -57.9 - -9.54 -57.6 - -11.4 -57.1 - -13.3 -56.4 -REG_LINE: 15 - -13.3 -56.4 - -15.2 -55.6 - -17.2 -54.5 - -19.3 -53.2 - -21.4 -51.6 - -23.6 -49.7 - -25.8 -47.5 - -28.1 -44.9 - -30.4 -42.0 - -32.8 -38.6 - -35.2 -34.8 - -37.6 -30.5 - -40.1 -25.7 - -42.5 -20.3 - -44.9 -14.2 -REG_LINE: 15 - -44.9 -14.2 - -47.2 -7.52 - -49.4 -.109 - -51.4 8.02 - -53.3 16.9 - -54.8 26.4 - -56.0 36.6 - -56.8 47.3 - -57.1 58.5 - -56.9 70.0 - -56.2 81.6 - -55.0 93.1 - -53.3 104. - -51.0 115. - -48.4 125. -REG_LINE: 15 - -48.4 125. - -45.4 135. - -42.2 143. - -38.8 151. - -35.2 158. - -31.6 164. - -28.0 170. - -24.5 175. - -21.0 179. - -17.6 182. - -14.3 185. - -11.1 187. - -8.06 189. - -5.15 190. - -2.36 192. -REG_LINE: 15 - -2.36 192. - .299 192. - 2.83 193. - 5.25 193. - 7.56 193. - 9.75 193. - 11.8 193. - 13.8 192. - 15.7 192. - 17.6 191. - 19.3 190. - 20.9 189. - 22.5 188. - 24.0 186. - 25.4 185. -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -Forward matrix value - M2 = -0.811474832908671 # Forward matrix value - M3 = 0.171224898552328 # Forward matrix value - M4 = -0.862236746712233 # Forward matrix value - M5 = -0.476686298035564 # Forward matrix value - M6 = -0.941127638091139 # Forward matrix value - M7 = 0 # Forward matrix value - M8 = -0.338051429254475 # Forward matrix value - Form = "Full" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = -2.61046557479594 # Polar longitude (rad.s) - End SphMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End FrameSet - Begin FrameSet # Set of inter-related coordinate systems -# Title = "Pixel coordinates; first pixel at (-100.5,-200.5)" # Title of coordinate system -# Naxes = 2 # Number of coordinate axes -# Domain = "POLAR" # Coordinate system domain -# Lbl1 = "Pixel coordinate 1" # Label for axis 1 -# Lbl2 = "Pixel coordinate 2" # Label for axis 2 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 - IsA Frame # Coordinate system description - Nframe = 2 # Number of Frames in FrameSet -# Base = 1 # Index of base Frame - Currnt = 2 # Index of current Frame - Nod1 = 2 # Frame 1 is associated with node 2 - Nod2 = 1 # Frame 2 is associated with node 1 - Lnk2 = 1 # Node 2 is derived from node 1 - Frm1 = # Frame number 1 - Begin Frame # Coordinate system description - Title = "Data grid indices; first pixel at (1,1) " # Title of coordinate system - Naxes = 2 # Number of coordinate axes - Domain = "GRID" # Coordinate system domain -# Lbl1 = "Data grid index 1" # Label for axis 1 -# Lbl2 = "Data grid index 2" # Label for axis 2 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Data grid index 1" # Axis Label - Symbol = "g1" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Data grid index 2" # Axis Label - Symbol = "g2" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - End Frame - Frm2 = # Frame number 2 - Begin Frame # Coordinate system description - Title = "Pixel coordinates; first pixel at (-100.5,-200.5)" # Title of coordinate system - Naxes = 2 # Number of coordinate axes - Domain = "POLAR" # Coordinate system domain -# Lbl1 = "Pixel coordinate 1" # Label for axis 1 -# Lbl2 = "Pixel coordinate 2" # Label for axis 2 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Pixel coordinate 1" # Axis Label - REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '240' - 4.00 80.2 TC -.245 .969 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '300' - -32.7 57.6 TC -.791 .612 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '0' - -42.4 -13.7 BC .974 .227 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '60' - 92.9 -15.7 BC -.973 .231 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '120' - 84.0 57.1 TC .798 .602 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '180' - 47.5 80.0 TC .253 .968 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-90' - 27.7 -30.8 TC -.899 .438 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-60' - 10.8 -54.2 TC -.629 .777 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-30' - -14.2 -58.8 TC .374 .927 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '0' - -47.2 -15.1 TC .937 .350 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '30' - -50.8 126. BC -.960 .278 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '60' - -3.21 194. BC -.341 .940 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '90' - 27.2 187. BC .711 .704 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 1 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: ' A FITS test' - 31.5 225. BC .000 1.00 - - - - - FITS test number 2 - ==================== - - - -AST_SHOW: - -REG_SINK: -COMMENT AST ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -AST -COMMENT AST Beginning of AST data for FrameSet object -AST -COMMENT AST ................................................................ -AST -COMMENT AST ................................................................ -AST -COMMENT AST End of AST data for FrameSet object -AST -COMMENT AST ---------------------------------------------------------------- - -Objects written: 1 - -Native Encoding: - -COMMENT AST ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ AST -COMMENT AST WCS information in AST format AST -COMMENT AST See http://www.starlink.ac.uk/ast/ AST -COMMENT AST Beginning of AST data for FrameSet object AST -COMMENT AST ................................................................ AST -BEGAST_A= 'FrameSet' / Set of inter-related coordinate systems -NFRAME_A= 2 / Number of Frames in FrameSet -CURRNT_A= 2 / Index of current Frame -NOD1_A = 2 / Frame 1 is associated with node 2 -NOD2_A = 1 / Frame 2 is associated with node 1 -LNK2_A = 1 / Node 2 is derived from node 1 -FRM1_A = ' ' / Frame number 1 -BEGAST_B= 'Frame ' / Coordinate system description -TITLE_A = 'Data grid indices; first pixel at (1&'/ Title of coordinate system -CONTINUE '",1) "' -NAXES_A = 2 / Number of coordinate axes -DOMAIN_A= 'GRID ' / Coordinate system domain -AX1_A = ' ' / Axis number 1 -BEGAST_C= 'Axis ' / Coordinate axis -LABEL_A = 'Data grid index 1' / Axis Label -SYMBOL_A= 'g1 ' / Axis symbol -UNIT_A = 'pixel ' / Axis units -FORMAT_A= '%3.1f ' / Format specifier -ENDAST_A= 'Axis ' / End of object definition -AX2_A = ' ' / Axis number 2 -BEGAST_D= 'Axis ' / Coordinate axis -LABEL_B = 'Data grid index 2' / Axis Label -SYMBOL_B= 'g2 ' / Axis symbol -UNIT_B = 'pixel ' / Axis units -FORMAT_B= '%3.1f ' / Format specifier -ENDAST_B= 'Axis ' / End of object definition -ENDAST_C= 'Frame ' / End of object definition -FRM2_A = ' ' / Frame number 2 -BEGAST_E= 'Frame ' / Coordinate system description -TITLE_B = 'Pixel coordinates; first pixel at (-&'/ Title of coordinate system -CONTINUE '100.5,-200.5)' -NAXES_B = 2 / Number of coordinate axes -DOMAIN_B= 'POLAR ' / Coordinate system domain -AX1_B = ' ' / Axis number 1 -BEGAST_F= 'Axis ' / Coordinate axis -LABEL_C = 'Pixel coordinate 1' / Axis Label -SYMBOL_C= 'p1 ' / Axis symbol -UNIT_C = 'pixel ' / Axis units -FORMAT_C= '%3.1f ' / Format specifier -ENDAST_D= 'Axis ' / End of object definition -AX2_B = ' ' / Axis number 2 -BEGAST_G= 'Axis ' / Coordinate axis -LABEL_D = 'Pixel coordinate 2' / Axis Label -SYMBOL_D= 'p2 ' / Axis symbol -UNIT_D = 'pixel ' / Axis units -FORMAT_D= '%3.1f ' / Format specifier -ENDAST_E= 'Axis ' / End of object definition -ENDAST_F= 'Frame ' / End of object definition -MAP2_A = ' ' / Mapping between nodes 1 and 2 -BEGAST_H= 'CmpMap ' / Compound Mapping -NIN_A = 2 / Number of input coordinates -ISA_A = 'Mapping ' / Mapping between coordinate systems -INVA_A = 1 / First Mapping used in inverse direction -INVB_A = 1 / Second Mapping used in inverse direction -MAPA_A = ' ' / First component Mapping -BEGAST_I= 'MathMap ' / Transformation using mathematical functions -NIN_B = 2 / Number of input coordinates -INVERT_A= 0 / Mapping not inverted -ISA_B = 'Mapping ' / Mapping between coordinate systems -FWD1_A = 'r=sqrt(x*x+y*y)' / Forward function 1 -FWD2_A = 'theta=atan2(y,x)' / Forward function 2 -INV1_A = 'x=r*cos(theta)' / Inverse function 1 -INV2_A = 'y=r*sin(theta)' / Inverse function 2 -SIMPFI_A= 1 / Forward-inverse pairs may simplify -SIMPIF_A= 1 / Inverse-forward pairs may simplify -ENDAST_G= 'MathMap ' / End of object definition -MAPB_A = ' ' / Second component Mapping -BEGAST_J= 'WinMap ' / Map one window on to another -NIN_C = 2 / Number of input coordinates -INVERT_B= 0 / Mapping not inverted -ISA_C = 'Mapping ' / Mapping between coordinate systems -SFT1_A = -101.5 / Shift for axis 1 -SFT2_A = -201.5 / Shift for axis 2 -ENDAST_H= 'WinMap ' / End of object definition -ENDAST_I= 'CmpMap ' / End of object definition -ENDAST_J= 'FrameSet' / End of object definition -COMMENT AST ................................................................ AST -COMMENT AST End of AST data for FrameSet object AST -COMMENT AST ---------------------------------------------------------------- AST - -ATTRIBUTES: - Colour(axis1) : 1 - Font(Stri) : 1 - Nout : 1 - Class : 4 - Tol : 0.100000E-01 - Gap(1) : 50.0000 - Border : 0 - Invert : 0 - TextLabGap : 0.100000E-01 - Nin : 2 - Current : 3 - Base : 1 - Nobject : 1 - RefCOUNT : 1 - -AST_GRID: -REG_LINE: 197 - 10.8 124. - 10.7 123. - 10.5 122. - 10.3 121. - 10.2 120. - 10.1 119. - 10.0 118. - 9.94 117. - 9.89 116. - 9.85 115. - 9.84 113. - 9.85 112. - 9.88 111. - 9.93 110. - 10.0 109. - 10.1 108. - 10.2 107. - 10.3 106. - 10.5 105. - 10.6 104. - 10.8 103. - 11.0 102. - 11.2 100. - 11.5 99.5 - 11.7 98.5 - 12.0 97.5 - 12.3 96.6 - 12.6 95.6 - 13.0 94.7 - 13.3 93.9 - 13.7 93.0 - 14.0 92.2 - 14.4 91.4 - 14.8 90.6 - 15.2 89.8 - 15.7 89.1 - 16.1 88.4 - 16.5 87.8 - 17.0 87.2 - 17.5 86.6 - 18.0 86.0 - 18.5 85.5 - 19.0 85.0 - 19.5 84.6 - 20.0 84.2 - 20.5 83.8 - 21.1 83.5 - 21.6 83.2 - 22.1 82.9 - 22.7 82.7 - 23.2 82.5 - 23.8 82.4 - 24.3 82.3 - 24.9 82.2 - 25.5 82.2 - 26.0 82.2 - 26.6 82.3 - 27.1 82.4 - 27.7 82.5 - 28.2 82.7 - 28.8 82.9 - 29.3 83.2 - 29.9 83.4 - 30.4 83.8 - 30.9 84.2 - 31.4 84.6 - 32.0 85.0 - 32.5 85.5 - 33.0 86.0 - 33.4 86.6 - 33.9 87.1 - 34.4 87.8 - 34.8 88.4 - 35.3 89.1 - 35.7 89.8 - 36.1 90.6 - 36.5 91.3 - 36.9 92.1 - 37.3 93.0 - 37.6 93.8 - 38.0 94.7 - 38.3 95.6 - 38.6 96.5 - 38.9 97.5 - 39.2 98.5 - 39.4 99.4 - 39.7 100. - 39.9 101. - 40.1 103. - 40.3 104. - 40.5 105. - 40.6 106. - 40.7 107. - 40.8 108. - 40.9 109. - 41.0 110. - 41.1 111. - 41.1 112. - 41.1 113. - 41.1 115. - 41.1 116. - 41.0 117. - 40.9 118. - 40.8 119. - 40.7 120. - 40.6 121. - 40.5 122. - 40.3 123. - 40.1 124. - 39.9 125. - 39.7 126. - 39.4 127. - 39.2 128. - 38.9 129. - 38.6 130. - 38.3 131. - 38.0 132. - 37.6 133. - 37.3 134. - 36.9 135. - 36.5 136. - 36.1 136. - 35.7 137. - 35.3 138. - 34.8 138. - 34.4 139. - 33.9 140. - 33.4 140. - 33.0 141. - 32.5 141. - 32.0 142. - 31.4 142. - 30.9 143. - 30.4 143. - 29.9 143. - 29.3 144. - 28.8 144. - 28.2 144. - 27.7 144. - 27.1 145. - 26.6 145. - 26.0 145. - 25.5 145. - 24.9 145. - 24.3 145. - 23.8 145. - 23.2 144. - 22.7 144. - 22.1 144. - 21.6 144. - 21.1 143. - 20.5 143. - 20.0 143. - 19.5 142. - 19.0 142. - 18.5 141. - 18.0 141. - 17.5 140. - 17.0 140. - 16.5 139. - 16.1 138. - 15.7 138. - 15.2 137. - 14.8 136. - 14.4 136. - 14.0 135. - 13.7 134. - 13.3 133. - 13.0 132. - 12.6 131. - 12.3 130. - 12.0 129. - 11.7 128. - 11.5 127. - 11.2 126. - 11.0 125. - 10.8 124. - 10.6 123. - 10.5 122. - 10.3 121. - 10.2 120. - 10.1 119. - 10.0 118. - 9.93 117. - 9.88 116. - 9.85 115. - 9.84 113. - 9.85 112. - 9.89 111. - 9.94 110. - 10.0 109. - 10.1 108. - 10.2 107. - 10.3 106. - 10.5 105. - 10.7 104. - 10.8 102. -REG_LINE: 197 - -3.80 135. - -4.17 133. - -4.50 131. - -4.80 129. - -5.06 127. - -5.28 125. - -5.46 122. - -5.60 120. - -5.70 118. - -5.76 116. - -5.78 114. - -5.76 111. - -5.70 109. - -5.61 107. - -5.47 105. - -5.29 102. - -5.07 100. - -4.82 98.1 - -4.53 95.9 - -4.19 93.8 - -3.82 91.7 - -3.42 89.6 - -2.97 87.5 - -2.49 85.5 - -1.97 83.5 - -1.42 81.6 - -.838 79.7 - -.219 77.8 - .433 76.0 - 1.12 74.3 - 1.83 72.6 - 2.58 70.9 - 3.35 69.3 - 4.15 67.7 - 4.98 66.2 - 5.84 64.8 - 6.72 63.4 - 7.62 62.1 - 8.55 60.9 - 9.50 59.7 - 10.5 58.6 - 11.5 57.6 - 12.5 56.6 - 13.5 55.7 - 14.5 54.9 - 15.6 54.2 - 16.6 53.5 - 17.7 52.9 - 18.8 52.4 - 19.9 51.9 - 21.0 51.6 - 22.1 51.3 - 23.2 51.1 - 24.3 51.0 - 25.4 50.9 - 26.6 51.0 - 27.7 51.1 - 28.8 51.3 - 29.9 51.6 - 31.0 51.9 - 32.1 52.4 - 33.2 52.9 - 34.3 53.5 - 35.3 54.1 - 36.4 54.9 - 37.4 55.7 - 38.4 56.6 - 39.4 57.5 - 40.4 58.6 - 41.4 59.7 - 42.4 60.8 - 43.3 62.1 - 44.2 63.4 - 45.1 64.8 - 45.9 66.2 - 46.8 67.7 - 47.6 69.2 - 48.3 70.8 - 49.1 72.5 - 49.8 74.2 - 50.5 76.0 - 51.1 77.8 - 51.8 79.6 - 52.3 81.5 - 52.9 83.5 - 53.4 85.5 - 53.9 87.5 - 54.3 89.5 - 54.7 91.6 - 55.1 93.7 - 55.5 95.8 - 55.7 98.0 - 56.0 100. - 56.2 102. - 56.4 105. - 56.5 107. - 56.6 109. - 56.7 111. - 56.7 113. - 56.7 116. - 56.6 118. - 56.5 120. - 56.4 122. - 56.2 125. - 56.0 127. - 55.7 129. - 55.5 131. - 55.1 133. - 54.7 135. - 54.3 137. - 53.9 139. - 53.4 141. - 52.9 143. - 52.3 145. - 51.8 147. - 51.1 149. - 50.5 151. - 49.8 153. - 49.1 154. - 48.3 156. - 47.6 158. - 46.8 159. - 45.9 161. - 45.1 162. - 44.2 163. - 43.3 165. - 42.4 166. - 41.4 167. - 40.4 168. - 39.4 169. - 38.4 170. - 37.4 171. - 36.4 172. - 35.3 173. - 34.3 173. - 33.2 174. - 32.1 175. - 31.0 175. - 29.9 175. - 28.8 176. - 27.7 176. - 26.6 176. - 25.4 176. - 24.3 176. - 23.2 176. - 22.1 176. - 21.0 175. - 19.9 175. - 18.8 174. - 17.7 174. - 16.6 173. - 15.6 173. - 14.5 172. - 13.5 171. - 12.5 170. - 11.5 169. - 10.5 168. - 9.50 167. - 8.55 166. - 7.62 165. - 6.72 163. - 5.84 162. - 4.98 161. - 4.15 159. - 3.35 158. - 2.58 156. - 1.83 154. - 1.12 153. - .433 151. - -.219 149. - -.838 147. - -1.42 145. - -1.97 143. - -2.49 141. - -2.97 139. - -3.42 137. - -3.82 135. - -4.19 133. - -4.53 131. - -4.82 129. - -5.07 127. - -5.29 124. - -5.47 122. - -5.61 120. - -5.70 118. - -5.76 116. - -5.78 113. - -5.76 111. - -5.70 109. - -5.60 107. - -5.46 104. - -5.28 102. - -5.06 100. - -4.80 97.9 - -4.50 95.7 - -4.17 93.6 - -3.80 91.5 -REG_LINE: 197 - -18.4 146. - -19.0 143. - -19.5 140. - -19.9 137. - -20.3 133. - -20.7 130. - -20.9 127. - -21.1 124. - -21.3 120. - -21.4 117. - -21.4 114. - -21.4 110. - -21.3 107. - -21.1 104. - -20.9 100. - -20.7 96.9 - -20.3 93.6 - -20.0 90.4 - -19.5 87.1 - -19.0 83.9 - -18.5 80.8 - -17.9 77.7 - -17.2 74.6 - -16.5 71.6 - -15.7 68.6 - -14.9 65.7 - -14.0 62.8 - -13.1 60.0 - -12.1 57.3 - -11.1 54.7 - -9.99 52.1 - -8.87 49.6 - -7.71 47.2 - -6.50 44.9 - -5.26 42.6 - -3.98 40.5 - -2.66 38.4 - -1.30 36.5 - 0.922E-01 34.6 - 1.52 32.9 - 2.97 31.2 - 4.45 29.6 - 5.96 28.2 - 7.50 26.9 - 9.05 25.6 - 10.6 24.5 - 12.2 23.5 - 13.8 22.6 - 15.5 21.8 - 17.1 21.2 - 18.8 20.7 - 20.4 20.2 - 22.1 19.9 - 23.8 19.7 - 25.4 19.7 - 27.1 19.7 - 28.8 19.9 - 30.5 20.2 - 32.1 20.6 - 33.8 21.2 - 35.4 21.8 - 37.0 22.6 - 38.7 23.5 - 40.2 24.5 - 41.8 25.6 - 43.4 26.8 - 44.9 28.1 - 46.4 29.6 - 47.9 31.1 - 49.4 32.8 - 50.8 34.5 - 52.2 36.4 - 53.5 38.4 - 54.9 40.4 - 56.2 42.6 - 57.4 44.8 - 58.6 47.1 - 59.8 49.5 - 60.9 52.0 - 62.0 54.6 - 63.0 57.2 - 64.0 60.0 - 64.9 62.7 - 65.8 65.6 - 66.6 68.5 - 67.4 71.5 - 68.1 74.5 - 68.8 77.5 - 69.4 80.7 - 69.9 83.8 - 70.4 87.0 - 70.9 90.2 - 71.3 93.5 - 71.6 96.8 - 71.9 100. - 72.1 103. - 72.2 107. - 72.3 110. - 72.3 113. - 72.3 117. - 72.2 120. - 72.1 123. - 71.9 127. - 71.6 130. - 71.3 133. - 70.9 137. - 70.4 140. - 69.9 143. - 69.4 146. - 68.8 149. - 68.1 152. - 67.4 155. - 66.6 158. - 65.8 161. - 64.9 164. - 64.0 167. - 63.0 170. - 62.0 172. - 60.9 175. - 59.8 177. - 58.6 180. - 57.4 182. - 56.2 184. - 54.9 186. - 53.5 189. - 52.2 190. - 50.8 192. - 49.4 194. - 47.9 196. - 46.4 197. - 44.9 199. - 43.4 200. - 41.8 201. - 40.2 202. - 38.7 203. - 37.0 204. - 35.4 205. - 33.8 206. - 32.1 206. - 30.5 207. - 28.8 207. - 27.1 207. - 25.4 207. - 23.8 207. - 22.1 207. - 20.4 207. - 18.8 206. - 17.1 206. - 15.5 205. - 13.8 204. - 12.2 203. - 10.6 202. - 9.05 201. - 7.50 200. - 5.96 199. - 4.45 197. - 2.97 196. - 1.52 194. - 0.922E-01 192. - -1.30 190. - -2.66 188. - -3.98 186. - -5.26 184. - -6.50 182. - -7.71 180. - -8.87 177. - -9.99 175. - -11.1 172. - -12.1 170. - -13.1 167. - -14.0 164. - -14.9 161. - -15.7 158. - -16.5 155. - -17.2 152. - -17.9 149. - -18.5 146. - -19.0 143. - -19.5 140. - -20.0 137. - -20.3 133. - -20.7 130. - -20.9 127. - -21.1 123. - -21.3 120. - -21.4 117. - -21.4 113. - -21.4 110. - -21.3 107. - -21.1 103. - -20.9 100. - -20.7 96.7 - -20.3 93.4 - -19.9 90.1 - -19.5 86.9 - -19.0 83.7 - -18.4 80.6 -REG_LINE: 197 - -33.1 157. - -33.8 153. - -34.5 149. - -35.1 145. - -35.6 140. - -36.0 136. - -36.4 131. - -36.7 127. - -36.9 123. - -37.0 118. - -37.0 114. - -37.0 109. - -36.9 105. - -36.7 100. - -36.4 95.8 - -36.1 91.4 - -35.6 87.0 - -35.1 82.7 - -34.5 78.4 - -33.9 74.1 - -33.1 69.9 - -32.3 65.7 - -31.4 61.6 - -30.5 57.6 - -29.4 53.6 - -28.3 49.8 - -27.1 46.0 - -25.9 42.3 - -24.6 38.6 - -23.2 35.1 - -21.8 31.7 - -20.3 28.3 - -18.8 25.1 - -17.2 22.0 - -15.5 19.0 - -13.8 16.2 - -12.0 13.4 - -10.2 10.8 - -8.37 8.34 - -6.47 5.99 - -4.53 3.78 - -2.55 1.71 - -.540 -.225 - 1.51 -2.01 - 3.58 -3.65 - 5.69 -5.14 - 7.82 -6.47 - 9.97 -7.66 - 12.1 -8.69 - 14.3 -9.56 - 16.5 -10.3 - 18.7 -10.8 - 21.0 -11.2 - 23.2 -11.5 - 25.4 -11.6 - 27.7 -11.5 - 29.9 -11.2 - 32.1 -10.9 - 34.3 -10.3 - 36.5 -9.59 - 38.7 -8.72 - 40.9 -7.70 - 43.0 -6.52 - 45.2 -5.19 - 47.3 -3.70 - 49.4 -2.07 - 51.4 -.290 - 53.4 1.63 - 55.4 3.70 - 57.3 5.91 - 59.2 8.25 - 61.1 10.7 - 62.9 13.3 - 64.7 16.1 - 66.4 18.9 - 68.0 21.9 - 69.6 25.0 - 71.2 28.2 - 72.7 31.6 - 74.1 35.0 - 75.5 38.5 - 76.8 42.1 - 78.0 45.8 - 79.2 49.6 - 80.3 53.5 - 81.4 57.5 - 82.3 61.5 - 83.2 65.6 - 84.0 69.7 - 84.8 73.9 - 85.4 78.2 - 86.0 82.5 - 86.5 86.9 - 87.0 91.2 - 87.3 95.6 - 87.6 100. - 87.8 105. - 87.9 109. - 88.0 113. - 87.9 118. - 87.8 122. - 87.6 127. - 87.3 131. - 87.0 136. - 86.5 140. - 86.0 144. - 85.4 149. - 84.8 153. - 84.0 157. - 83.2 161. - 82.3 165. - 81.4 169. - 80.3 173. - 79.2 177. - 78.0 181. - 76.8 185. - 75.5 188. - 74.1 192. - 72.7 195. - 71.2 199. - 69.6 202. - 68.0 205. - 66.4 208. - 64.7 211. - 62.9 214. - 61.1 216. - 59.2 219. - 57.3 221. - 55.4 223. - 53.4 225. - 51.4 227. - 49.4 229. - 47.3 231. - 45.2 232. - 43.0 233. - 40.9 235. - 38.7 236. - 36.5 236. - 34.3 237. - 32.1 238. - 29.9 238. - 27.7 238. - 25.4 238. - 23.2 238. - 21.0 238. - 18.7 238. - 16.5 237. - 14.3 236. - 12.1 236. - 9.97 235. - 7.82 233. - 5.69 232. - 3.58 231. - 1.51 229. - -.540 227. - -2.55 225. - -4.53 223. - -6.47 221. - -8.37 219. - -10.2 216. - -12.0 213. - -13.8 211. - -15.5 208. - -17.2 205. - -18.8 202. - -20.3 199. - -21.8 195. - -23.2 192. - -24.6 188. - -25.9 185. - -27.1 181. - -28.3 177. - -29.4 173. - -30.5 169. - -31.4 165. - -32.3 161. - -33.1 157. - -33.9 153. - -34.5 149. - -35.1 144. - -35.6 140. - -36.1 135. - -36.4 131. - -36.7 127. - -36.9 122. - -37.0 118. - -37.0 113. - -37.0 109. - -36.9 104. - -36.7 99.9 - -36.4 95.5 - -36.0 91.1 - -35.6 86.7 - -35.1 82.4 - -34.5 78.1 - -33.8 73.8 - -33.1 69.6 -REG_LINE: 197 - -47.7 168. - -48.6 163. - -49.5 158. - -50.2 152. - -50.8 147. - -51.4 141. - -51.8 136. - -52.2 130. - -52.4 125. - -52.6 119. - -52.7 114. - -52.6 108. - -52.5 102. - -52.2 96.9 - -51.9 91.4 - -51.4 85.9 - -50.9 80.4 - -50.3 75.0 - -49.5 69.6 - -48.7 64.3 - -47.8 59.0 - -46.7 53.8 - -45.6 48.7 - -44.4 43.6 - -43.1 38.7 - -41.8 33.8 - -40.3 29.1 - -38.8 24.5 - -37.1 19.9 - -35.4 15.5 - -33.6 11.2 - -31.8 7.08 - -29.8 3.06 - -27.8 -.822 - -25.7 -4.55 - -23.6 -8.14 - -21.4 -11.6 - -19.1 -14.8 - -16.8 -17.9 - -14.5 -20.9 - -12.0 -23.6 - -9.56 -26.2 - -7.04 -28.6 - -4.49 -30.9 - -1.89 -32.9 - .740 -34.8 - 3.40 -36.5 - 6.09 -37.9 - 8.81 -39.2 - 11.5 -40.3 - 14.3 -41.2 - 17.1 -41.9 - 19.8 -42.4 - 22.6 -42.7 - 25.4 -42.8 - 28.2 -42.7 - 31.0 -42.4 - 33.8 -41.9 - 36.5 -41.2 - 39.3 -40.3 - 42.0 -39.3 - 44.7 -38.0 - 47.4 -36.5 - 50.1 -34.8 - 52.7 -33.0 - 55.3 -30.9 - 57.9 -28.7 - 60.4 -26.3 - 62.9 -23.7 - 65.3 -21.0 - 67.7 -18.0 - 70.0 -14.9 - 72.3 -11.7 - 74.5 -8.26 - 76.6 -4.68 - 78.7 -.956 - 80.7 2.92 - 82.6 6.93 - 84.5 11.1 - 86.3 15.4 - 88.0 19.8 - 89.6 24.3 - 91.2 28.9 - 92.6 33.7 - 94.0 38.5 - 95.3 43.5 - 96.5 48.5 - 97.6 53.6 - 98.7 58.8 - 99.6 64.1 - 100. 69.4 - 101. 74.8 - 102. 80.2 - 102. 85.7 - 103. 91.2 - 103. 96.7 - 103. 102. - 104. 108. - 104. 113. - 104. 119. - 103. 125. - 103. 130. - 103. 136. - 102. 141. - 102. 147. - 101. 152. - 100. 157. - 99.6 163. - 98.7 168. - 97.6 173. - 96.5 178. - 95.3 183. - 94.0 188. - 92.6 193. - 91.2 198. - 89.6 203. - 88.0 207. - 86.3 212. - 84.5 216. - 82.6 220. - 80.7 224. - 78.7 228. - 76.6 232. - 74.5 235. - 72.3 239. - 70.0 242. - 67.7 245. - 65.3 248. - 62.9 251. - 60.4 253. - 57.9 256. - 55.3 258. - 52.7 260. - 50.1 262. - 47.4 263. - 44.7 265. - 42.0 266. - 39.3 267. - 36.5 268. - 33.8 269. - 31.0 269. - 28.2 270. - 25.4 270. - 22.6 270. - 19.8 269. - 17.1 269. - 14.3 268. - 11.5 267. - 8.81 266. - 6.09 265. - 3.40 263. - .740 262. - -1.89 260. - -4.49 258. - -7.04 256. - -9.56 253. - -12.0 251. - -14.5 248. - -16.8 245. - -19.1 242. - -21.4 238. - -23.6 235. - -25.7 231. - -27.8 228. - -29.8 224. - -31.8 220. - -33.6 216. - -35.4 211. - -37.1 207. - -38.8 202. - -40.3 198. - -41.8 193. - -43.1 188. - -44.4 183. - -45.6 178. - -46.7 173. - -47.8 168. - -48.7 163. - -49.5 157. - -50.3 152. - -50.9 146. - -51.4 141. - -51.9 135. - -52.2 130. - -52.5 124. - -52.6 119. - -52.7 113. - -52.6 108. - -52.4 102. - -52.2 96.5 - -51.8 91.0 - -51.4 85.5 - -50.8 80.0 - -50.2 74.6 - -49.5 69.2 - -48.6 63.9 - -47.7 58.6 -REG_LINE: 141 - -62.3 179. - -63.4 173. - -64.4 167. - -65.3 160. - -66.1 154. - -66.8 147. - -67.3 140. - -67.7 134. - -68.0 127. - -68.2 120. - -68.3 114. - -68.2 107. - -68.1 100. - -67.8 93.6 - -67.3 87.0 - -66.8 80.4 - -66.2 73.8 - -65.4 67.3 - -64.5 60.8 - -63.5 54.4 - -62.4 48.1 - -61.2 41.9 - -59.9 35.7 - -58.4 29.7 - -56.9 23.8 - -55.2 17.9 - -53.5 12.2 - -51.6 6.66 - -49.6 1.22 - -47.6 -4.07 - -45.4 -9.21 - -43.2 -14.2 - -40.9 -19.0 - -38.5 -23.7 - -36.0 -28.2 - -33.4 -32.5 - -30.8 -36.6 - -28.1 -40.5 - -25.3 -44.2 - -22.4 -47.7 - -19.5 -51.1 - -16.6 -54.2 - -13.5 -57.1 - -10.5 -59.7 - -7.36 -62.2 - -4.21 -64.4 - -1.01 -66.4 - 2.22 -68.2 - 5.47 -69.7 - 8.76 -71.1 - 12.1 -72.1 - 15.4 -73.0 - 18.7 -73.6 - 22.1 -73.9 - 25.4 -74.1 - 28.8 -73.9 - 32.1 -73.6 - 35.4 -73.0 - 38.8 -72.2 - 42.1 -71.1 - 45.3 -69.8 - 48.6 -68.3 - 51.8 -66.5 - 55.0 -64.5 - 58.2 -62.3 - 61.3 -59.8 - 64.4 -57.2 - 67.4 -54.3 - 70.4 -51.2 - 73.3 -47.9 - 76.1 -44.3 - 78.9 -40.6 - 81.6 -36.7 - 84.3 -32.6 - 86.8 -28.3 - 89.3 -23.8 - 91.7 -19.2 - 94.1 -14.4 - 96.3 -9.39 - 98.5 -4.25 - 101. 1.03 - 102. 6.46 - 104. 12.0 - 106. 17.7 - 108. 23.5 - 109. 29.5 - 111. 35.5 - 112. 41.7 - 113. 47.9 - 114. 54.2 - 115. 60.6 - 116. 67.0 - 117. 73.6 - 118. 80.1 - 118. 86.7 - 119. 93.4 - 119. 100. - 119. 107. - 119. 113. - 119. 120. - 119. 127. - 119. 133. - 118. 140. - 118. 147. - 117. 153. - 116. 160. - 115. 166. - 114. 173. - 113. 179. - 112. 185. - 111. 191. - 109. 197. - 108. 203. - 106. 209. - 104. 215. - 102. 220. - 101. 226. - 98.5 231. - 96.3 236. - 94.1 241. - 91.7 246. - 89.3 251. - 86.8 255. - 84.3 259. - 81.6 264. - 78.9 267. - 76.1 271. - 73.3 275. - 70.4 278. - 67.4 281. - 64.4 284. - 61.3 287. - 58.2 289. - 55.0 291. - 51.8 293. - 48.6 295. - 45.3 297. - 42.1 298. - 38.8 299. - 35.4 300. - 34.7 300. -REG_LINE: 53 - 16.2 300. - 15.4 300. - 12.1 299. - 8.76 298. - 5.47 297. - 2.22 295. - -1.01 293. - -4.21 291. - -7.36 289. - -10.5 287. - -13.5 284. - -16.6 281. - -19.5 278. - -22.4 275. - -25.3 271. - -28.1 267. - -30.8 263. - -33.4 259. - -36.0 255. - -38.5 251. - -40.9 246. - -43.2 241. - -45.4 236. - -47.6 231. - -49.6 226. - -51.6 220. - -53.5 215. - -55.2 209. - -56.9 203. - -58.4 197. - -59.9 191. - -61.2 185. - -62.4 179. - -63.5 172. - -64.5 166. - -65.4 160. - -66.2 153. - -66.8 147. - -67.3 140. - -67.8 133. - -68.1 127. - -68.2 120. - -68.3 113. - -68.2 107. - -68.0 99.8 - -67.7 93.2 - -67.3 86.5 - -66.8 79.9 - -66.1 73.3 - -65.3 66.8 - -64.4 60.4 - -63.4 54.0 - -62.3 47.7 -REG_LINE: 128 - -77.0 190. - -78.3 183. - -79.4 175. - -80.5 168. - -81.4 160. - -82.1 153. - -82.8 145. - -83.3 137. - -83.6 129. - -83.8 122. - -83.9 114. - -83.8 106. - -83.6 98.1 - -83.3 90.3 - -82.8 82.6 - -82.2 74.9 - -81.4 67.2 - -80.5 59.6 - -79.5 52.0 - -78.3 44.6 - -77.1 37.2 - -75.6 29.9 - -74.1 22.8 - -72.4 15.7 - -70.6 8.81 - -68.7 2.01 - -66.6 -4.64 - -64.4 -11.1 - -62.2 -17.5 - -59.8 -23.7 - -57.3 -29.7 - -54.7 -35.5 - -51.9 -41.1 - -49.1 -46.5 - -46.2 -51.8 - -43.2 -56.8 - -40.2 -61.6 - -37.0 -66.1 - -33.7 -70.5 - -30.4 -74.6 - -27.0 -78.5 - -23.6 -82.1 - -20.0 -85.5 - -16.5 -88.6 - -12.8 -91.5 - -9.15 -94.1 - -5.42 -96.4 - -1.66 -98.5 - 2.14 -100. - 5.97 -102. - 9.83 -103. - 13.7 -104. - 17.6 -105. - 21.5 -105. - 25.4 -105. - 29.3 -105. - 33.2 -105. - 37.1 -104. - 41.0 -103. - 44.8 -102. - 48.7 -100. - 52.5 -98.5 - 56.2 -96.5 - 60.0 -94.2 - 63.6 -91.6 - 67.3 -88.7 - 70.9 -85.6 - 74.4 -82.2 - 77.8 -78.6 - 81.2 -74.7 - 84.6 -70.6 - 87.8 -66.3 - 91.0 -61.7 - 94.1 -56.9 - 97.1 -51.9 - 100. -46.7 - 103. -41.3 - 105. -35.7 - 108. -29.9 - 111. -23.9 - 113. -17.7 - 115. -11.4 - 117. -4.87 - 120. 1.78 - 121. 8.56 - 123. 15.5 - 125. 22.5 - 127. 29.7 - 128. 37.0 - 129. 44.3 - 130. 51.8 - 131. 59.3 - 132. 66.9 - 133. 74.6 - 134. 82.3 - 134. 90.0 - 135. 97.8 - 135. 106. - 135. 113. - 135. 121. - 135. 129. - 134. 137. - 134. 145. - 133. 152. - 132. 160. - 131. 168. - 130. 175. - 129. 183. - 128. 190. - 127. 197. - 125. 204. - 123. 211. - 121. 218. - 120. 225. - 117. 232. - 115. 238. - 113. 245. - 111. 251. - 108. 257. - 105. 263. - 103. 268. - 100. 274. - 97.1 279. - 94.1 284. - 91.0 289. - 87.8 293. - 84.6 298. - 82.5 300. -REG_LINE: 40 - -31.6 300. - -33.7 297. - -37.0 293. - -40.2 288. - -43.2 284. - -46.2 279. - -49.1 273. - -51.9 268. - -54.7 262. - -57.3 257. - -59.8 251. - -62.2 244. - -64.4 238. - -66.6 232. - -68.7 225. - -70.6 218. - -72.4 211. - -74.1 204. - -75.6 197. - -77.1 190. - -78.3 182. - -79.5 175. - -80.5 167. - -81.4 160. - -82.2 152. - -82.8 144. - -83.3 137. - -83.6 129. - -83.8 121. - -83.9 113. - -83.8 105. - -83.6 97.5 - -83.3 89.8 - -82.8 82.0 - -82.1 74.3 - -81.4 66.7 - -80.5 59.0 - -79.4 51.5 - -78.3 44.1 - -77.0 36.7 -REG_LINE: 97 - -91.6 201. - -93.1 193. - -94.4 184. - -95.6 176. - -96.6 167. - -97.5 158. - -98.2 149. - -98.8 140. - -99.2 132. - -99.4 123. - -99.5 114. - -99.5 105. - -99.2 95.9 - -98.8 87.0 - -98.3 78.2 - -97.6 69.3 - -96.7 60.6 - -95.7 51.9 - -94.5 43.3 - -93.2 34.8 - -91.7 26.3 - -90.1 18.0 - -88.3 9.83 - -86.4 1.77 - -84.3 -6.14 - -82.1 -13.9 - -79.8 -21.5 - -77.3 -28.9 - -74.7 -36.2 - -71.9 -43.2 - -69.1 -50.1 - -66.1 -56.7 - -63.0 -63.2 - -59.8 -69.4 - -56.5 -75.3 - -53.1 -81.1 - -49.5 -86.6 - -45.9 -91.8 - -42.2 -96.8 - -38.4 -101. - -34.5 -106. - -30.6 -110. - -26.5 -114. - -22.5 -117. - -18.3 -121. - -14.1 -124. - -9.84 -126. - -5.53 -129. - -1.19 -131. - 3.19 -133. - 7.59 -134. - 12.0 -135. - 16.5 -136. - 20.9 -136. - 25.4 -137. - 29.9 -136. - 34.3 -136. - 38.8 -135. - 43.2 -134. - 47.6 -133. - 52.0 -131. - 56.3 -129. - 60.6 -126. - 64.9 -124. - 69.1 -121. - 73.2 -118. - 77.3 -114. - 81.4 -110. - 85.3 -106. - 89.2 -102. - 93.0 -96.9 - 96.7 -92.0 - 100. -86.8 - 104. -81.3 - 107. -75.6 - 111. -69.6 - 114. -63.4 - 117. -57.0 - 120. -50.3 - 123. -43.5 - 126. -36.4 - 128. -29.2 - 131. -21.8 - 133. -14.2 - 135. -6.42 - 137. 1.49 - 139. 9.54 - 141. 17.7 - 143. 26.0 - 144. 34.5 - 145. 43.0 - 147. 51.6 - 148. 60.3 - 148. 69.0 - 149. 77.8 - 150. 86.7 - 150. 92.2 -REG_LINE: 23 - 150. 135. - 150. 140. - 149. 149. - 148. 158. - 148. 167. - 147. 175. - 145. 184. - 144. 192. - 143. 201. - 141. 209. - 139. 217. - 137. 225. - 135. 233. - 133. 241. - 131. 249. - 128. 256. - 126. 263. - 123. 270. - 120. 277. - 117. 284. - 114. 290. - 111. 296. - 109. 300. -REG_LINE: 35 - -57.7 300. - -59.8 296. - -63.0 290. - -66.1 284. - -69.1 277. - -71.9 270. - -74.7 263. - -77.3 256. - -79.8 248. - -82.1 241. - -84.3 233. - -86.4 225. - -88.3 217. - -90.1 209. - -91.7 201. - -93.2 192. - -94.5 184. - -95.7 175. - -96.7 166. - -97.6 158. - -98.3 149. - -98.8 140. - -99.2 131. - -99.5 122. - -99.5 113. - -99.4 104. - -99.2 95.3 - -98.8 86.4 - -98.2 77.5 - -97.5 68.7 - -96.6 60.0 - -95.6 51.3 - -94.4 42.7 - -93.1 34.2 - -91.6 25.7 -REG_LINE: 63 - -100. -13.5 - -98.0 -21.1 - -95.5 -29.8 - -92.9 -38.4 - -90.1 -46.7 - -87.2 -54.9 - -84.1 -62.8 - -80.9 -70.5 - -77.5 -78.0 - -74.1 -85.2 - -70.5 -92.2 - -66.7 -98.9 - -62.9 -105. - -58.9 -112. - -54.8 -117. - -50.7 -123. - -46.4 -128. - -42.0 -133. - -37.6 -138. - -33.1 -142. - -28.4 -146. - -23.8 -150. - -19.0 -153. - -14.3 -156. - -9.41 -159. - -4.52 -161. - .403 -163. - 5.36 -165. - 10.3 -166. - 15.3 -167. - 20.4 -168. - 25.4 -168. - 30.4 -168. - 35.4 -167. - 40.4 -166. - 45.4 -165. - 50.4 -163. - 55.3 -161. - 60.2 -159. - 65.0 -156. - 69.8 -153. - 74.5 -150. - 79.2 -146. - 83.8 -142. - 88.4 -138. - 92.8 -133. - 97.2 -129. - 101. -123. - 106. -118. - 110. -112. - 114. -106. - 118. -99.2 - 121. -92.5 - 125. -85.5 - 128. -78.3 - 132. -70.8 - 135. -63.1 - 138. -55.2 - 141. -47.0 - 144. -38.7 - 146. -30.1 - 149. -21.4 - 150. -17.1 -REG_LINE: 9 - 150. 244. - 149. 248. - 146. 257. - 144. 266. - 141. 274. - 138. 282. - 135. 290. - 132. 298. - 131. 300. -REG_LINE: 9 - -79.7 300. - -80.9 297. - -84.1 290. - -87.2 282. - -90.1 274. - -92.9 265. - -95.5 257. - -98.0 248. - -100. 240. -REG_LINE: 54 - -100. -72.8 - -99.7 -73.6 - -96.3 -82.4 - -92.7 -91.0 - -89.0 -99.3 - -85.1 -107. - -81.1 -115. - -77.0 -123. - -72.7 -130. - -68.3 -137. - -63.8 -143. - -59.1 -149. - -54.4 -155. - -49.5 -161. - -44.6 -166. - -39.6 -171. - -34.4 -175. - -29.2 -179. - -24.0 -183. - -18.7 -186. - -13.3 -189. - -7.85 -192. - -2.38 -194. - 3.13 -196. - 8.66 -197. - 14.2 -198. - 19.8 -199. - 25.4 -199. - 30.9 -199. - 36.5 -198. - 42.1 -197. - 47.6 -196. - 53.1 -194. - 58.6 -192. - 64.0 -189. - 69.4 -186. - 74.7 -183. - 80.0 -179. - 85.2 -175. - 90.3 -171. - 95.3 -166. - 100. -161. - 105. -155. - 110. -150. - 115. -143. - 119. -137. - 123. -130. - 128. -123. - 132. -115. - 136. -108. - 140. -99.6 - 144. -91.3 - 147. -82.7 - 150. -75.3 -REG_LINE: 2 - -99.9 300. - -100. 300. -REG_LINE: 13 - -100. -121. - -96.2 -129. - -91.8 -138. - -87.2 -146. - -82.5 -154. - -77.7 -162. - -72.7 -169. - -67.6 -176. - -62.4 -182. - -57.0 -188. - -51.6 -194. - -46.1 -199. - -45.1 -200. -REG_LINE: 13 - 96.0 -200. - 96.8 -199. - 102. -194. - 108. -188. - 113. -182. - 118. -176. - 123. -169. - 128. -162. - 133. -154. - 138. -146. - 143. -138. - 147. -130. - 150. -123. -REG_LINE: 6 - -100. -165. - -97.4 -170. - -92.3 -178. - -87.0 -187. - -81.6 -194. - -77.4 -200. -REG_LINE: 6 - 128. -200. - 132. -195. - 138. -187. - 143. -179. - 148. -170. - 150. -167. -REG_LINE: 10 - 40.9 118. - 24.4 113. - 7.79 108. - -8.78 104. - -25.4 98.9 - -41.9 94.2 - -58.5 89.5 - -75.1 84.8 - -91.7 80.0 - -100. 77.7 -REG_LINE: 12 - 38.0 132. - 24.6 112. - 11.2 92.1 - -2.25 72.0 - -15.7 52.0 - -29.1 31.9 - -42.5 11.9 - -55.9 -8.13 - -69.3 -28.2 - -82.7 -48.2 - -96.1 -68.2 - -100. -74.0 -REG_LINE: 13 - 32.0 142. - 25.0 111. - 18.0 81.0 - 11.1 50.5 - 4.10 20.1 - -2.86 -10.4 - -9.83 -40.8 - -16.8 -71.3 - -23.8 -102. - -30.7 -132. - -37.7 -163. - -44.7 -193. - -46.3 -200. -REG_LINE: 12 - 24.4 145. - 25.5 111. - 26.7 77.8 - 27.9 44.4 - 29.1 11.0 - 30.3 -22.4 - 31.5 -55.8 - 32.7 -89.2 - 33.8 -123. - 35.0 -156. - 36.2 -189. - 36.6 -200. -REG_LINE: 14 - 17.0 140. - 26.1 112. - 35.1 83.4 - 44.2 55.2 - 53.2 27.0 - 62.3 -1.14 - 71.3 -29.3 - 80.3 -57.5 - 89.4 -85.7 - 98.4 -114. - 107. -142. - 117. -170. - 126. -198. - 126. -200. -REG_LINE: 11 - 11.8 128. - 26.4 112. - 41.1 96.3 - 55.8 80.3 - 70.5 64.2 - 85.2 48.2 - 99.9 32.1 - 115. 16.1 - 129. 0.199E-02 - 144. -16.1 - 150. -22.6 -REG_LINE: 10 - 9.84 113. - 26.6 113. - 43.3 113. - 60.1 113. - 76.8 113. - 93.5 113. - 110. 113. - 127. 113. - 144. 113. - 150. 113. -REG_LINE: 11 - 11.8 98.5 - 26.4 115. - 41.1 131. - 55.8 147. - 70.5 163. - 85.2 179. - 99.9 195. - 115. 211. - 129. 227. - 144. 243. - 150. 250. -REG_LINE: 9 - 17.0 87.1 - 26.1 115. - 35.1 143. - 44.2 172. - 53.2 200. - 62.3 228. - 71.3 256. - 80.3 284. - 85.4 300. -REG_LINE: 8 - 24.4 82.3 - 25.5 116. - 26.7 149. - 27.9 182. - 29.1 216. - 30.3 249. - 31.5 283. - 32.1 300. -REG_LINE: 9 - 32.0 85.0 - 25.0 115. - 18.0 146. - 11.1 176. - 4.10 207. - -2.86 237. - -9.83 268. - -16.8 298. - -17.2 300. -REG_LINE: 12 - 38.0 94.7 - 24.6 115. - 11.2 135. - -2.25 155. - -15.7 175. - -29.1 195. - -42.5 215. - -55.9 235. - -69.3 255. - -82.7 275. - -96.1 295. - -99.4 300. -REG_LINE: 10 - 40.9 109. - 24.4 114. - 7.79 118. - -8.78 123. - -25.4 128. - -41.9 133. - -58.5 137. - -75.1 142. - -91.7 147. - -100. 149. -REG_LINE: 2 - 18.7 134. - 17.7 133. -REG_LINE: 2 - 20.4 129. - 19.4 128. -REG_LINE: 2 - 22.1 124. - 21.1 123. -REG_LINE: 2 - 23.8 119. - 22.8 117. -REG_LINE: 2 - 27.2 108. - 28.2 110. -REG_LINE: 2 - 28.8 103. - 29.8 104. -REG_LINE: 2 - 30.5 97.7 - 31.5 99.1 -REG_LINE: 2 - 32.2 92.4 - 33.2 93.8 -REG_LINE: 2 - 35.6 81.9 - 36.6 83.3 -REG_LINE: 2 - 37.3 76.6 - 38.3 78.1 -REG_LINE: 2 - 39.0 71.4 - 40.0 72.8 -REG_LINE: 2 - 40.7 66.1 - 41.7 67.5 -REG_LINE: 2 - 44.0 55.6 - 45.0 57.0 -REG_LINE: 2 - 45.7 50.3 - 46.7 51.8 -REG_LINE: 2 - 47.4 45.1 - 48.4 46.5 -REG_LINE: 2 - 49.1 39.8 - 50.1 41.2 -REG_LINE: 2 - 52.5 29.3 - 53.5 30.7 -REG_LINE: 2 - 54.2 24.0 - 55.2 25.5 -REG_LINE: 2 - 55.9 18.8 - 56.9 20.2 -REG_LINE: 2 - 57.5 13.5 - 58.6 14.9 -REG_LINE: 2 - 60.9 2.99 - 61.9 4.43 -REG_LINE: 2 - 62.6 -2.26 - 63.6 -.831 -REG_LINE: 2 - 64.3 -7.52 - 65.3 -6.09 -REG_LINE: 2 - 66.0 -12.8 - 67.0 -11.3 -REG_LINE: 2 - 69.4 -23.3 - 70.4 -21.9 -REG_LINE: 2 - 71.1 -28.6 - 72.1 -27.1 -REG_LINE: 2 - 72.7 -33.8 - 73.7 -32.4 -REG_LINE: 2 - 74.4 -39.1 - 75.4 -37.6 -REG_LINE: 2 - 77.8 -49.6 - 78.8 -48.2 -REG_LINE: 2 - 79.5 -54.9 - 80.5 -53.4 -REG_LINE: 2 - 81.2 -60.1 - 82.2 -58.7 -REG_LINE: 2 - 82.9 -65.4 - 83.9 -63.9 -REG_LINE: 2 - 86.3 -75.9 - 87.3 -74.5 -REG_LINE: 2 - 87.9 -81.2 - 88.9 -79.7 -REG_LINE: 2 - 89.6 -86.4 - 90.6 -85.0 -REG_LINE: 2 - 91.3 -91.7 - 92.3 -90.2 -REG_LINE: 2 - 94.7 -102. - 95.7 -101. -REG_LINE: 2 - 96.4 -107. - 97.4 -106. -REG_LINE: 2 - 98.1 -113. - 99.1 -111. -REG_LINE: 2 - 99.8 -118. - 101. -117. -REG_LINE: 2 - 103. -128. - 104. -127. -REG_LINE: 2 - 105. -134. - 106. -132. -REG_LINE: 2 - 107. -139. - 108. -138. -REG_LINE: 2 - 108. -144. - 109. -143. -REG_LINE: 2 - 112. -155. - 113. -153. -REG_LINE: 2 - 113. -160. - 114. -159. -REG_LINE: 2 - 115. -165. - 116. -164. -REG_LINE: 2 - 117. -171. - 118. -169. -REG_LINE: 2 - 120. -181. - 121. -180. -REG_LINE: 2 - 122. -186. - 123. -185. -REG_LINE: 2 - 123. -192. - 124. -190. -REG_LINE: 2 - 125. -197. - 126. -195. -REG_LINE: 2 - -80.3 169. - -81.8 170. -REG_LINE: 2 - -82.5 148. - -84.2 148. -REG_LINE: 2 - -83.7 126. - -85.5 126. -REG_LINE: 2 - -83.8 104. - -85.6 104. -REG_LINE: 2 - -80.7 61.1 - -82.3 60.3 -REG_LINE: 2 - -77.6 40.2 - -79.0 39.1 -REG_LINE: 2 - -73.4 19.9 - -74.7 18.7 -REG_LINE: 2 - -68.3 .672 - -69.4 -.674 -REG_LINE: 2 - -55.2 -34.3 - -56.0 -35.9 -REG_LINE: 2 - -47.4 -49.7 - -48.1 -51.3 -REG_LINE: 2 - -38.9 -63.4 - -39.5 -65.1 -REG_LINE: 2 - -29.7 -75.4 - -30.2 -77.1 -REG_LINE: 2 - -9.89 -93.6 - -10.2 -95.3 -REG_LINE: 2 - .619 -99.6 - .416 -101. -REG_LINE: 2 - 11.4 -103. - 11.3 -105. -REG_LINE: 2 - 22.3 -105. - 22.2 -107. -REG_LINE: 2 - 44.1 -102. - 44.2 -104. -REG_LINE: 2 - 54.7 -97.3 - 55.0 -99.1 -REG_LINE: 2 - 65.1 -90.4 - 65.4 -92.2 -REG_LINE: 2 - 75.1 -81.5 - 75.5 -83.2 -REG_LINE: 2 - 93.5 -57.9 - 94.1 -59.5 -REG_LINE: 2 - 102. -43.5 - 102. -45.1 -REG_LINE: 2 - 109. -27.5 - 110. -29.0 -REG_LINE: 2 - 116. -10.1 - 117. -11.5 -REG_LINE: 2 - 126. 28.3 - 128. 27.1 -REG_LINE: 2 - 130. 48.8 - 131. 47.9 -REG_LINE: 2 - 133. 70.0 - 134. 69.3 -REG_LINE: 2 - 134. 91.6 - 136. 91.3 -REG_LINE: 2 - 134. 135. - 136. 136. -REG_LINE: 2 - 133. 157. - 134. 158. -REG_LINE: 2 - 130. 178. - 131. 179. -REG_LINE: 2 - 126. 199. - 128. 200. -REG_LINE: 2 - 116. 237. - 117. 238. -REG_LINE: 2 - 109. 254. - 110. 256. -REG_LINE: 2 - 102. 270. - 102. 272. -REG_LINE: 2 - 93.5 285. - 94.1 286. -REG_LINE: 2 - -38.9 290. - -39.5 292. -REG_LINE: 2 - -47.4 277. - -48.1 278. -REG_LINE: 2 - -55.2 261. - -56.0 263. -REG_LINE: 2 - -68.3 226. - -69.4 228. -REG_LINE: 2 - -73.4 207. - -74.7 208. -REG_LINE: 2 - -77.6 187. - -79.0 188. -REG_LINE: 2 - -80.7 166. - -82.3 167. -REG_LINE: 2 - -83.8 123. - -85.6 123. -REG_LINE: 2 - -83.7 101. - -85.5 100. -REG_LINE: 2 - -82.5 78.9 - -84.2 78.4 -REG_LINE: 2 - -80.3 57.5 - -81.8 56.7 -REG_LINE: 15 - 25.5 113. - 24.9 115. - 24.3 117. - 23.7 119. - 23.1 121. - 22.5 123. - 21.9 125. - 21.2 127. - 20.6 128. - 20.0 130. - 19.4 132. - 18.8 134. - 18.2 136. - 17.6 138. - 17.0 140. -REG_LINE: 15 - 25.5 113. - 26.1 112. - 26.7 110. - 27.3 108. - 27.9 106. - 28.5 104. - 29.1 102. - 29.7 100. - 30.3 98.4 - 30.9 96.5 - 31.5 94.7 - 32.1 92.8 - 32.7 90.9 - 33.3 89.0 - 33.9 87.1 -REG_LINE: 15 - 33.9 87.1 - 34.5 85.3 - 35.1 83.4 - 35.7 81.5 - 36.3 79.6 - 36.9 77.8 - 37.5 75.9 - 38.1 74.0 - 38.7 72.1 - 39.3 70.2 - 39.9 68.4 - 40.5 66.5 - 41.1 64.6 - 41.8 62.7 - 42.4 60.8 -REG_LINE: 15 - 42.4 60.8 - 43.0 59.0 - 43.6 57.1 - 44.2 55.2 - 44.8 53.3 - 45.4 51.5 - 46.0 49.6 - 46.6 47.7 - 47.2 45.8 - 47.8 43.9 - 48.4 42.1 - 49.0 40.2 - 49.6 38.3 - 50.2 36.4 - 50.8 34.5 -REG_LINE: 15 - 50.8 34.5 - 51.4 32.7 - 52.0 30.8 - 52.6 28.9 - 53.2 27.0 - 53.8 25.2 - 54.4 23.3 - 55.0 21.4 - 55.6 19.5 - 56.2 17.6 - 56.8 15.8 - 57.4 13.9 - 58.0 12.0 - 58.6 10.1 - 59.2 8.25 -REG_LINE: 15 - 59.2 8.25 - 59.8 6.38 - 60.4 4.50 - 61.0 2.62 - 61.6 .740 - 62.3 -1.14 - 62.9 -3.02 - 63.5 -4.89 - 64.1 -6.77 - 64.7 -8.65 - 65.3 -10.5 - 65.9 -12.4 - 66.5 -14.3 - 67.1 -16.2 - 67.7 -18.0 -REG_LINE: 15 - 67.7 -18.0 - 68.3 -19.9 - 68.9 -21.8 - 69.5 -23.7 - 70.1 -25.6 - 70.7 -27.4 - 71.3 -29.3 - 71.9 -31.2 - 72.5 -33.1 - 73.1 -34.9 - 73.7 -36.8 - 74.3 -38.7 - 74.9 -40.6 - 75.5 -42.5 - 76.1 -44.3 -REG_LINE: 15 - 76.1 -44.3 - 76.7 -46.2 - 77.3 -48.1 - 77.9 -50.0 - 78.5 -51.9 - 79.1 -53.7 - 79.7 -55.6 - 80.3 -57.5 - 80.9 -59.4 - 81.5 -61.2 - 82.2 -63.1 - 82.8 -65.0 - 83.4 -66.9 - 84.0 -68.8 - 84.6 -70.6 -REG_LINE: 15 - 84.6 -70.6 - 85.2 -72.5 - 85.8 -74.4 - 86.4 -76.3 - 87.0 -78.1 - 87.6 -80.0 - 88.2 -81.9 - 88.8 -83.8 - 89.4 -85.7 - 90.0 -87.5 - 90.6 -89.4 - 91.2 -91.3 - 91.8 -93.2 - 92.4 -95.1 - 93.0 -96.9 -REG_LINE: 15 - 93.0 -96.9 - 93.6 -98.8 - 94.2 -101. - 94.8 -103. - 95.4 -104. - 96.0 -106. - 96.6 -108. - 97.2 -110. - 97.8 -112. - 98.4 -114. - 99.0 -116. - 99.6 -118. - 100. -119. - 101. -121. - 101. -123. -REG_LINE: 15 - 101. -123. - 102. -125. - 103. -127. - 103. -129. - 104. -131. - 104. -133. - 105. -134. - 106. -136. - 106. -138. - 107. -140. - 107. -142. - 108. -144. - 109. -146. - 109. -148. - 110. -150. -REG_LINE: 15 - 110. -150. - 110. -151. - 111. -153. - 112. -155. - 112. -157. - 113. -159. - 114. -161. - 114. -163. - 115. -165. - 115. -166. - 116. -168. - 117. -170. - 117. -172. - 118. -174. - 118. -176. -REG_LINE: 14 - 118. -176. - 119. -178. - 120. -180. - 120. -181. - 121. -183. - 121. -185. - 122. -187. - 123. -189. - 123. -191. - 124. -193. - 124. -195. - 125. -196. - 126. -198. - 126. -200. -REG_LINE: 15 - -82.8 82.6 - -83.3 90.3 - -83.6 98.1 - -83.8 106. - -83.9 114. - -83.8 122. - -83.6 129. - -83.3 137. - -82.8 145. - -82.1 153. - -81.4 160. - -80.5 168. - -79.4 175. - -78.3 183. - -77.0 190. -REG_LINE: 15 - -82.8 82.6 - -82.2 74.9 - -81.4 67.2 - -80.5 59.6 - -79.5 52.0 - -78.3 44.6 - -77.1 37.2 - -75.6 29.9 - -74.1 22.8 - -72.4 15.7 - -70.6 8.81 - -68.7 2.01 - -66.6 -4.64 - -64.4 -11.1 - -62.2 -17.5 -REG_LINE: 15 - -62.2 -17.5 - -59.8 -23.7 - -57.3 -29.7 - -54.7 -35.5 - -51.9 -41.1 - -49.1 -46.5 - -46.2 -51.8 - -43.2 -56.8 - -40.2 -61.6 - -37.0 -66.1 - -33.7 -70.5 - -30.4 -74.6 - -27.0 -78.5 - -23.6 -82.1 - -20.0 -85.5 -REG_LINE: 15 - -20.0 -85.5 - -16.5 -88.6 - -12.8 -91.5 - -9.15 -94.1 - -5.42 -96.4 - -1.66 -98.5 - 2.14 -100. - 5.97 -102. - 9.83 -103. - 13.7 -104. - 17.6 -105. - 21.5 -105. - 25.4 -105. - 29.3 -105. - 33.2 -105. -REG_LINE: 15 - 33.2 -105. - 37.1 -104. - 41.0 -103. - 44.8 -102. - 48.7 -100. - 52.5 -98.5 - 56.2 -96.5 - 60.0 -94.2 - 63.6 -91.6 - 67.3 -88.7 - 70.9 -85.6 - 74.4 -82.2 - 77.8 -78.6 - 81.2 -74.7 - 84.6 -70.6 -REG_LINE: 15 - 84.6 -70.6 - 87.8 -66.3 - 91.0 -61.7 - 94.1 -56.9 - 97.1 -51.9 - 100. -46.7 - 103. -41.3 - 105. -35.7 - 108. -29.9 - 111. -23.9 - 113. -17.7 - 115. -11.4 - 117. -4.87 - 120. 1.78 - 121. 8.56 -REG_LINE: 15 - 121. 8.56 - 123. 15.5 - 125. 22.5 - 127. 29.7 - 128. 37.0 - 129. 44.3 - 130. 51.8 - 131. 59.3 - 132. 66.9 - 133. 74.6 - 134. 82.3 - 134. 90.0 - 135. 97.8 - 135. 106. - 135. 113. -REG_LINE: 15 - 135. 113. - 135. 121. - 135. 129. - 134. 137. - 134. 145. - 133. 152. - 132. 160. - 131. 168. - 130. 175. - 129. 183. - 128. 190. - 127. 197. - 125. 204. - 123. 211. - 121. 218. -REG_LINE: 15 - 121. 218. - 120. 225. - 117. 232. - 115. 238. - 113. 245. - 111. 251. - 108. 257. - 105. 263. - 103. 268. - 100. 274. - 97.1 279. - 94.1 284. - 91.0 289. - 87.8 293. - 84.6 298. -REG_LINE: 2 - 84.6 298. - 82.5 300. -REG_LINE: 12 - -31.6 300. - -33.7 297. - -37.0 293. - -40.2 288. - -43.2 284. - -46.2 279. - -49.1 273. - -51.9 268. - -54.7 262. - -57.3 257. - -59.8 251. - -62.2 244. -REG_LINE: 15 - -62.2 244. - -64.4 238. - -66.6 232. - -68.7 225. - -70.6 218. - -72.4 211. - -74.1 204. - -75.6 197. - -77.1 190. - -78.3 182. - -79.5 175. - -80.5 167. - -81.4 160. - -82.2 152. - -82.8 144. -REG_LINE: 15 - -82.8 144. - -83.3 137. - -83.6 129. - -83.8 121. - -83.9 113. - -83.8 105. - -83.6 97.5 - -83.3 89.8 - -82.8 82.0 - -82.1 74.3 - -81.4 66.7 - -80.5 59.0 - -79.4 51.5 - -78.3 44.1 - -77.0 36.7 -REG_LINE: 15 - -82.8 144. - -83.3 137. - -83.6 129. - -83.8 121. - -83.9 113. - -83.8 105. - -83.6 97.5 - -83.3 89.8 - -82.8 82.0 - -82.1 74.3 - -81.4 66.7 - -80.5 59.0 - -79.4 51.5 - -78.3 44.1 - -77.0 36.7 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '0.0' - 27.8 114. BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '50.0' - 36.3 87.9 BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '100.0' - 44.7 61.6 BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '150.0' - 53.2 35.3 BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '200.0' - 61.6 9.02 BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '250.0' - 70.1 -17.3 BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '300.0' - 78.5 -43.6 BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '350.0' - 86.9 -69.9 BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '400.0' - 95.4 -96.2 BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '450.0' - 104. -122. BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '500.0' - 112. -149. BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '550.0' - 121. -175. BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-3.0' - -80.3 82.7 BC .997 0.724E-01 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-2.5' - -59.8 -16.6 BC .936 .352 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-2.0' - -18.4 -83.6 BC .673 .740 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-1.5' -Symbol = "p1" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Pixel coordinate 2" # Axis Label - Symbol = "p2" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - End Frame - Map2 = # Mapping between nodes 1 and 2 - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - InvB = 1 # Second Mapping used in inverse direction - MapA = # First component Mapping - Begin MathMap # Transformation using mathematical functions - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Fwd1 = "r=sqrt(x*x+y*y)" # Forward function 1 - Fwd2 = "theta=atan2(y,x)" # Forward function 2 - Inv1 = "x=r*cos(theta)" # Inverse function 1 - Inv2 = "y=r*sin(theta)" # Inverse function 2 - SimpFI = 1 # Forward-inverse pairs may simplify - SimpIF = 1 # Inverse-forward pairs may simplify - End MathMap - MapB = # Second component Mapping - Begin WinMap # Map one window on to another - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = -101.5 # Shift for axis 1 - Sft2 = -201.5 # Shift for axis 2 - End WinMap - End CmpMap - End FrameSet - Begin FrameSet # Set of inter-related coordinate systems -# Title = "FK5 equatorial coordinates; mean equinox J2000.0; gnomonic projection" # Title of coordinate system -# Naxes = 2 # Number of coordinate axes -# Domain = "SKY" # Coordinate system domain -# Epoch = 1977.77512999212 # Besselian epoch of observation -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 -# System = "FK5" # Coordinate system type -# Uni1 = "hh:mm:ss.s" # Units for axis 1 -# Uni2 = "ddd:mm:ss" # Units for axis 2 -# Dir1 = 0 # Plot axis 1 in reverse direction -# Bot2 = -1.5707963267949 # Lowest legal axis value -# Top2 = 1.5707963267949 # Highest legal axis value - IsA Frame # Coordinate system description - Nframe = 2 # Number of Frames in FrameSet - Base = 1 # Index of base Frame - Currnt = 2 # Index of current Frame - Lnk2 = 1 # Node 2 is derived from node 1 - Frm1 = # Frame number 1 - Begin Frame # Coordinate system description - Title = "Pixel Coordinates" # Title of coordinate system - Naxes = 2 # Number of coordinate axes - Domain = "GRID" # Coordinate system domain -# Lbl1 = "Pixel axis 1" # Label for axis 1 -# Lbl2 = "Pixel axis 2" # Label for axis 2 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Pixel axis 1" # Axis Label - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Pixel axis 2" # Axis Label - End Axis - End Frame - Frm2 = # Frame number 2 - Begin SkyFrame # Description of celestial coordinate system - Ident = " " # Permanent Object identification string - IsA Object # AST Object -# Title = "FK5 equatorial coordinates; mean equinox J2000.0; gnomonic projection" # Title of coordinate system - Naxes = 2 # Number of coordinate axes -# Domain = "SKY" # Coordinate system domain - Epoch = 1977.77512999212 # Besselian epoch of observation -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 - System = "FK5" # Coordinate system type -# Uni1 = "hh:mm:ss.s" # Units for axis 1 -# Uni2 = "ddd:mm:ss" # Units for axis 2 -# Dir1 = 0 # Plot axis 1 in reverse direction -# Bot2 = -1.5707963267949 # Lowest legal axis value -# Top2 = 1.5707963267949 # Highest legal axis value - Ax1 = # Axis number 1 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - Ax2 = # Axis number 2 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - IsA Frame # Coordinate system description - Proj = "gnomonic" # Description of sky projection - Eqnox = 2000 # Julian epoch of mean equinox - SRefIs = "Ignored" # Not rotated (ref. pos. is ignored) - SRef1 = 0 # Ref. pos. RA 0:00:00.0 - SRef2 = -1.57079633000002 # Ref. pos. Dec -90:00:00 - End SkyFrame - Map2 = # Mapping between nodes 1 and 2 - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = -893.6318379289 # Shift for axis 1 - Sft2 = -223.8380193875 # Shift for axis 2 - End WinMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = -3.25441534352674e-06 # Forward matrix value - M1 = -1.60367292352974e-08 # Forward matrix value - M2 = -1.812057487023e-08 # Forward matrix value - M3 = 3.25725533992408e-06 # Forward matrix value - Form = "Full" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin WcsMap # FITS-WCS sky projection - Nin = 2 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - Type = "TAN" # Gnomonic projection - End WcsMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = 0 # Polar longit 32.8 -102. BC -.145 .989 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-0.5' - 119. 9.22 BC -.965 .262 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '0.0' - 132. 113. BC -1.00 0.125E-02 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '0.5' - 119. 218. TC .964 .265 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '1.0' - 82.6 296. TC .787 .617 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '2.5' - -59.8 243. TC -.936 .352 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '3.0' - -80.3 144. TC -.997 0.724E-01 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 1 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: ' A FITS test' - 31.0 313. BC .000 1.00 - - - - - FITS test number 3 - ==================== - - - -AST_SHOW: - -REG_SINK: -SIMPLE = T / file does conform to FITS standard -BITPIX = 16 / number of bits per data pixel -NAXIS = 2 / number of data axes -NAXIS1 = 1787 / length of data axis 1 -NAXIS2 = 447 / length of data axis 2 -EXTEND = T / FITS dataset may contain extensions -COMMENT FITS (Flexible Image Transport System) format defined in Astronomy and -COMMENT Astrophysics Supplement Series v44/p363, v44/p371, v73/p359, v73/p365. -COMMENT Contact the NASA Science Office of Standards and Technology for the -COMMENT FITS Definition document #100 and other FITS information. -PLATENUM= '3665 ' / Plate number -EMULSION= 'IIIaJ ' / Kodak emulsion type -FILTER = 'GG395 ' / Schott glass filter type -PLTSCALE= '67.14 ' / [arcsec/mm] plate scale -FIELDNUM= '1 ' / Sky survey field number -TELESCOP= 'UKST ' / Telescope on which the plate was taken -TELETYPE= 'SCHM ' / Type of telescope -SITELAT = -0.5458410576565 / [radians] latitude of telescope -SITELONG= 2.601766194458 / [radians] longitude of telescope -LST = '00:20 ' / [hh:mm] local sidereal time at start of obs -INSTRUME= 'SuperCOSMOS I' / Measuring machine -DATE-MES= '2000-11-04' / [yyyy-mm-dd] Date of this plate measurement -NHKLINES= 146 / Number of lines from house-keeping file -HKLIN001= 'JOB.JOBNO UKJ001' -HKLIN002= 'JOB.DATE-MES 2000:11:04' -HKLIN003= 'JOB.TIME 12:51:09' -HKLIN004= 'JOB.INSTRUME SuperCOSMOS I' -HKLIN005= 'JOB.ORIGIN Royal Observatory Edinburgh' -HKLIN006= 'JOB.SOFTWARE /home/scosdev/v033' -HKLIN007= 'JOB.OPERATOR ebt' -HKLIN008= 'JOB.USER htm' -HKLIN009= 'JOB.USERREF NONE' -HKLIN010= 'JOB.UORIGIN ROE' -HKLIN011= 'JOB.UCOUNTRY uk' -HKLIN012= 'JOB.COMMENT Digital catalogue of the Sky' -HKLIN013= 'JOB.IAM_FILE iam.srt'/ / ' / -HKLIN014= 'PLATE.TELESCOP UKST' -HKLIN015= 'PLATE.TELTYPE SCHM' -HKLIN016= 'PLATE.PLATE 3665' -HKLIN017= 'PLATE.MATERIAL 3mm glass' -HKLIN018= 'PLATE.EMULSION IIIaJ' -HKLIN019= 'PLATE.FILTER GG395' -HKLIN020= 'PLATE.PSCALE 67.14' -HKLIN021= 'PLATE.FIELD 1' -HKLIN022= 'PLATE.RA_PNT 0' -HKLIN023= 'PLATE.DEC_PNT -90' -HKLIN024= 'PLATE.RADECSYS FK4' -HKLIN025= 'PLATE.EQUINOX 1950' -HKLIN026= 'PLATE.TIMESYS BESSELIAN' -HKLIN027= 'PLATE.EPOCH 1977.78'/ / ' / -HKLIN028= 'PLATE.EXPOSURE 75' -HKLIN029= 'PLATE.UTDATE 771011' -HKLIN030= 'PLATE.LST 0020' -HKLIN031= 'PLATE.MJD 43426.573008796' -HKLIN032= 'PLATE.TELLAT -0.54584105765654' -HKLIN033= 'PLATE.TELLONG 2.6017661944583' -HKLIN034= 'PLATE.TELHT 1145' -HKLIN035= 'PLATE.TEMP 273.155'/ / ' / -HKLIN036= 'PLATE.ATMOSP 1013.25'/ / ' / -HKLIN037= 'PLATE.HUMID 0.5' -HKLIN038= 'PLATE.WAVE 4500' -HKLIN039= 'PLATE.TROPL 0.0065' -HKLIN040= 'CALIBRATION.CALTYPE SPLINE' -HKLIN041= 'CALIBRATION.STEPWEDG KPNO' -HKLIN042= 'CALIBRATION.NSTEPS 8' -HKLIN043= 'MEASUREMENT.ORIENTAT news' -HKLIN044= 'MEASUREMENT.EMULPOS UP' -HKLIN045= 'MEASUREMENT.SCANFILT 14' -HKLIN046= 'MEASUREMENT.SOSP 552' -HKLIN047= 'MEASUREMENT.STEPSIZE 10' -HKLIN048= 'MEASUREMENT.SCANLEN 1152' -HKLIN049= 'MEASUREMENT.A-XMIN 1622000'/ / ' / -HKLIN050= 'MEASUREMENT.A-YMIN 1622000'/ / ' / -HKLIN051= 'MEASUREMENT.A-XMAX 33878000' -HKLIN052= 'MEASUREMENT.A-YMAX 33878000' -HKLIN053= 'MEASUREMENT.X_PNT 17500000' -HKLIN054= 'MEASUREMENT.Y_PNT 18000000' -HKLIN055= 'ANALYSIS.NPARAMS 32' -HKLIN056= 'ANALYSIS.AREACUT 8' -HKLIN057= 'ANALYSIS.AP-PARAM 1.07' -HKLIN058= 'DEBLEND.DB-PARAM 1.05' -HKLIN059= 'DEBLEND.DB-AMIN 16' -HKLIN060= 'DEBLEND.DB-AMAX 100000' -HKLIN061= 'DEBLEND.DB-ACUT 8' -HKLIN062= 'DEBLEND.DB-LEVEL 16' -HKLIN063= 'DEBLEND.SELECT PARENT+CHILD' -HKLIN064= 'SKY.SKYSQUAR 64' -HKLIN065= 'SKY.SKYDEFN MEDIAN' -HKLIN066= 'SKY.SKYFILTR bdkjunk'/ / ' / -HKLIN067= 'SKY.F-THRESH 8' -HKLIN068= 'SKY.F-SCLEN 4' -HKLIN069= 'THRESHOLDING.PCUT 10' -HKLIN070= 'IAMQC.AREAMIN 8' -HKLIN071= 'IAMQC.AREAMAX 77346' -HKLIN072= 'IAMQC.MINMAG -30515' -HKLIN073= 'IAMQC.MAXMAG -17954' -HKLIN074= 'IAMQC.MINELL 0.0004156232' -HKLIN075= 'IAMQC.MAXELL 1' -HKLIN076= 'IAMQC.MODELL 0.14' -HKLIN077= 'IAMQC.MODOR 91' -HKLIN078= 'IAMQC.MIDELL 0.21' -HKLIN079= 'IAMQC.MIDOR 93' -HKLIN080= 'IAMQC.MEANELL 0.2467037' -HKLIN081= 'IAMQC.MEANOR 91.63474' -HKLIN082= 'IAMQC.NUMOBJ 556985' -HKLIN083= 'IAMQC.PARENTS 486656' -HKLIN084= 'IAMQC.RANGING TRUE' -HKLIN085= 'IAMQC.LANE_1 15571' -HKLIN086= 'IAMQC.LANE_2 33207' -HKLIN087= 'IAMQC.LANE_3 51478' -HKLIN088= 'IAMQC.LANE_4 69944' -HKLIN089= 'IAMQC.LANE_5 89236' -HKLIN090= 'IAMQC.LANE_6 108416' -HKLIN091= 'IAMQC.LANE_7 127481' -HKLIN092= 'IAMQC.LANE_8 146699' -HKLIN093= 'IAMQC.LANE_9 166380' -HKLIN094= 'IAMQC.LANE_10 186126' -HKLIN095= 'IAMQC.LANE_11 205946' -HKLIN096= 'IAMQC.LANE_12 225915' -HKLIN097= 'IAMQC.LANE_13 245926' -HKLIN098= 'IAMQC.LANE_14 266574' -HKLIN099= 'IAMQC.LANE_15 287150' -HKLIN100= 'IAMQC.LANE_16 308087' -HKLIN101= 'IAMQC.LANE_17 328830' -HKLIN102= 'IAMQC.LANE_18 350253' -HKLIN103= 'IAMQC.LANE_19 370738' -HKLIN104= 'IAMQC.LANE_20 391722' -HKLIN105= 'IAMQC.LANE_21 412801' -HKLIN106= 'IAMQC.LANE_22 433795' -HKLIN107= 'IAMQC.LANE_23 454383' -HKLIN108= 'IAMQC.LANE_24 474711' -HKLIN109= 'IAMQC.LANE_25 495108' -HKLIN110= 'IAMQC.LANE_26 515755' -HKLIN111= 'IAMQC.LANE_27 536499' -HKLIN112= 'IAMQC.LANE_28 556985' -HKLIN113= 'XYTORADEC.STARCAT /sdata/scos/refcats/tycho2.FIT' -HKLIN114= 'XYTORADEC.BRIGHTLIM 9' -HKLIN115= 'XYTORADEC.C-EQUIN 2000' -HKLIN116= 'XYTORADEC.C-EQTSYS JULIAN' -HKLIN117= 'XYTORADEC.C-EPOCH 2000' -HKLIN118= 'XYTORADEC.C-EPTSYS JULIAN' -HKLIN119= 'XYTORADEC.R-EQUIN 2000' -HKLIN120= 'XYTORADEC.R-TSYS JULIAN' -HKLIN121= 'XYTORADEC.MAXITER 5000' -HKLIN122= 'XYTORADEC.RCRITINI 500000' -HKLIN123= 'XYTORADEC.RCRITABS 50000' -HKLIN124= 'XYTORADEC.RCRITREL 1' -HKLIN125= 'XYTORADEC.RCRITFIN 3' -HKLIN126= 'XYTORADEC.HARDCOPY /scos1/scos/UKJ001/UKJ001.ps' -HKLIN127= 'XYTORADEC.REFSMULT 5' -HKLIN128= 'XYTORADEC.RESDMULT 1000' -HKLIN129= 'XYTORADEC.RACOL RA' -HKLIN130= 'XYTORADEC.DECOL DEC' -HKLIN131= 'XYTORADEC.RAPMCOL PMRA' -HKLIN132= 'XYTORADEC.DECPMCOL PMDE' -HKLIN133= 'XYTORADEC.PLXCOL NONE' -HKLIN134= 'XYTORADEC.RVCOL NONE' -HKLIN135= 'XYTORADEC.MAGCOL VT' -HKLIN136= 'XYTORADEC.STARSC 2374' -HKLIN137= 'XYTORADEC.STARSU 1727' -HKLIN138= 'XYTORADEC.COEFFS_1 17.640343856524' -HKLIN139= 'XYTORADEC.COEFFS_2 -260.44151995641' -HKLIN140= 'XYTORADEC.COEFFS_3 -163.09155572601' -HKLIN141= 'XYTORADEC.COEFFS_4 17.504230442205' -HKLIN142= 'XYTORADEC.COEFFS_5 -163.08676953832' -HKLIN143= 'XYTORADEC.COEFFS_6 260.48817907668' -HKLIN144= 'XYTORADEC.DISTR -0.33333333333333' -HKLIN145= 'XYTORADEC.RA_PNT 0.54924996662137' -HKLIN146= 'XYTORADEC.DEC_PNT -1.5684931501781' -HISTORY = 'SuperCOSMOS image analysis and mapping mode (IAM and MM)' / -HISTORY = 'data written by xydcomp_ss.' / -HISTORY = 'Any questions/comments/suggestions/bug reports should be sent' / -HISTORY = 'to N.Hambly@roe.ac.uk' / -ASTSIGX = 0.37 / [arcsec] std. dev. of astrometric fit in X -ASTSIGY = 0.38 / [arcsec] std. dev. of astrometric fit in Y -PC001001= 1.0 / DEPRECATED - Axis rotation matrix -PC001002= 0.004927623810613 / DEPRECATED - Axis rotation matrix -PC002001= -0.005563056187788 / DEPRECATED - Axis rotation matrix -PC002002= 1.0 / DEPRECATED - Axis rotation matrix -CROTA2 = 0.3005532298491 / DEPRECATED - rotation of axis 2 -DATATYPE= 'INTEGER*2' / Type of data -DATUNITS= 'DENSITY ' / Units: transmission, density or intensity -XPIXELSZ= 9.997114974 / [microns] X pixel size -YPIXELSZ= 10.0 / [microns] Y pixel size -OBJCTRA = ' 0 0 0.000' / Centre Right Ascension (J2000) -OBJCTDEC= '-90 0 0.00' / Centre Declination (J2000) -OBJCTX = 16368.63183793 / [pixels] Centre X on plate -OBJCTY = 14740.83801939 / [pixels] Centre Y on plate - -Objects written: 1 - -Native Encoding: - -COMMENT AST ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ AST -COMMENT AST WCS information in AST format AST -COMMENT AST See http://www.starlink.ac.uk/ast/ AST -COMMENT AST Beginning of AST data for FrameSet object AST -COMMENT AST ................................................................ AST -BEGAST_A= 'FrameSet' / Set of inter-related coordinate systems -NFRAME_A= 2 / Number of Frames in FrameSet -BASE_A = 1 / Index of base Frame -CURRNT_A= 2 / Index of current Frame -LNK2_A = 1 / Node 2 is derived from node 1 -FRM1_A = ' ' / Frame number 1 -BEGAST_B= 'Frame ' / Coordinate system description -TITLE_A = 'Pixel Coordinates' / Title of coordinate system -NAXES_A = 2 / Number of coordinate axes -DOMAIN_A= 'GRID ' / Coordinate system domain -AX1_A = ' ' / Axis number 1 -BEGAST_C= 'Axis ' / Coordinate axis -LABEL_A = 'Pixel axis 1' / Axis Label -ENDAST_A= 'Axis ' / End of object definition -AX2_A = ' ' / Axis number 2 -BEGAST_D= 'Axis ' / Coordinate axis -LABEL_B = 'Pixel axis 2' / Axis Label -ENDAST_B= 'Axis ' / End of object definition -ENDAST_C= 'Frame ' / End of object definition -FRM2_A = ' ' / Frame number 2 -BEGAST_E= 'SkyFrame' / Description of celestial coordinate system -IDENT_A = '" " ' / Permanent Object identification string -ISA_A = 'Object ' / AST Object -NAXES_B = 2 / Number of coordinate axes -EPOCH_A = 1977.77512999212 / Besselian epoch of observation -SYSTEM_A= 'FK5 ' / Coordinate system type -AX1_B = ' ' / Axis number 1 -BEGAST_F= 'SkyAxis ' / Celestial coordinate axis -ENDAST_D= 'SkyAxis ' / End of object definition -AX2_B = ' ' / Axis number 2 -BEGAST_G= 'SkyAxis ' / Celestial coordinate axis -ENDAST_E= 'SkyAxis ' / End of object definition -ISA_B = 'Frame ' / Coordinate system description -PROJ_A = 'gnomonic' / Description of sky projection -EQNOX_A = 2000.0 / Julian epoch of mean equinox -SREFIS_A= 'Ignored ' / Not rotated (ref. pos. is ignored) -SREF1_A = 0.0 / Ref. pos. RA 0:00:00.0 -SREF2_A = -1.57079633 / Ref. pos. Dec -90:00:00 -ENDAST_F= 'SkyFrame' / End of object definition -MAP2_A = ' ' / Mapping between nodes 1 and 2 -BEGAST_H= 'CmpMap ' / Compound Mapping -NIN_A = 2 / Number of input coordinates -ISSIMP_A= 1 / Mapping has been simplified -ISA_C = 'Mapping ' / Mapping between coordinate systems -MAPA_A = ' ' / First component Mapping -BEGAST_I= 'WinMap ' / Map one window on to another -NIN_B = 2 / Number of input coordinates -INVERT_A= 0 / Mapping not inverted -ISA_D = 'Mapping ' / Mapping between coordinate systems -SFT1_A = -893.6318379289 / Shift for axis 1 -SFT2_A = -223.8380193875 / Shift for axis 2 -ENDAST_G= 'WinMap ' / End of object definition -MAPB_A = ' ' / Second component Mapping -BEGAST_J= 'CmpMap ' / Compound Mapping -NIN_C = 2 / Number of input coordinates -ISA_E = 'Mapping ' / Mapping between coordinate systems -MAPA_B = ' ' / First component Mapping -BEGAST_K= 'MatrixMap' / Matrix transformation -NIN_D = 2 / Number of input coordinates -INVERT_B= 0 / Mapping not inverted -ISA_F = 'Mapping ' / Mapping between coordinate systems -M0_A = -3.25441534352674E-6/ Forward matrix value -M1_A = -1.60367292352974E-8/ Forward matrix value -M2_A = -1.812057487023E-8 / Forward matrix value -M3_A = 3.25725533992408E-6 / Forward matrix value -FORM_A = 'Full ' / Matrix storage form -ENDAST_H= 'MatrixMap' / End of object definition -MAPB_B = ' ' / Second component Mapping -BEGAST_L= 'CmpMap ' / Compound Mapping -NIN_E = 2 / Number of input coordinates -ISA_G = 'Mapping ' / Mapping between coordinate systems -INVA_A = 1 / First Mapping used in inverse direction -MAPA_C = ' ' / First component Mapping -BEGAST_M= 'WcsMap ' / FITS-WCS sky projection -NIN_F = 2 / Number of input coordinates -INVERT_C= 1 / Mapping inverted -ISA_H = 'Mapping ' / Mapping between coordinate systems -TYPE_A = 'TAN ' / Gnomonic projection -ENDAST_I= 'WcsMap ' / End of object definition -MAPB_C = ' ' / Second component Mapping -BEGAST_N= 'CmpMap ' / Compound Mapping -NIN_G = 2 / Number of input coordinates -ISA_I = 'Mapping ' / Mapping between coordinate systems -INVA_B = 1 / First Mapping used in inverse direction -MAPA_D = ' ' / First component Mapping -BEGAST_O= 'SphMap ' / Cartesian to Spherical mapping -NIN_H = 3 / Number of input coordinates -NOUT_A = 2 / Number of output coordinates -INVERT_D= 1 / Mapping inverted -ISA_J = 'Mapping ' / Mapping between coordinate systems -UNTRD_A = 1 / All input vectors have unit length -PLRLG_A = 0.0 / Polar longitude (rad.s) -ENDAST_J= 'SphMap ' / End of object definition -MAPB_D = ' ' / Second component Mapping -BEGAST_P= 'CmpMap ' / Compound Mapping -NIN_I = 3 / Number of input coordinates -NOUT_B = 2 / Number of output coordinates -ISA_K = 'Mapping ' / Mapping between coordinate systems -MAPA_E = ' ' / First component Mapping -BEGAST_Q= 'MatrixMap' / Matrix transformation -NIN_J = 3 / Number of input coordinates -INVERT_E= 0 / Mapping not inverted -ISA_L = 'Mapping ' / Mapping between coordinate systems -M0_B = -1.0 / Forward matrix value -M1_B = 1.0 / Forward matrix value -M2_B = -1.0 / Forward matrix value -FORM_B = 'Diagonal' / Matrix storage form -ENDAST_K= 'MatrixMap' / End of object definition -MAPB_E = ' ' / Second component Mapping -BEGAST_R= 'SphMap ' / Cartesian to Spherical mapping -NIN_K = 3 / Number of input coordinates -NOUT_C = 2 / Number of output coordinates -INVERT_F= 0 / Mapping not inverted -ISA_M = 'Mapping ' / Mapping between coordinate systems -UNTRD_B = 1 / All input vectors have unit length -PLRLG_B = 0.0 / Polar longitude (rad.s) -ENDAST_L= 'SphMap ' / End of object definition -ENDAST_M= 'CmpMap ' / End of object definition -ENDAST_N= 'CmpMap ' / End of object definition -ENDAST_O= 'CmpMap ' / End of object definition -ENDAST_P= 'CmpMap ' / End of object definition -ENDAST_Q= 'CmpMap ' / End of object definition -ENDAST_R= 'FrameSet' / End of object definition -COMMENT AST ................................................................ AST -COMMENT AST End of AST data for FrameSet object AST -COMMENT AST ---------------------------------------------------------------- AST - -ATTRIBUTES: - Colour(axis1) : 1 - Font(Stri) : 1 - Nout : 1 - Class : 4 - Tol : 0.100000E-01 - Gap(1) : .523599 - Border : 0 - Invert : 0 - TextLabGap : 0.100000E-01 - Nin : 2 - Current : 3 - Base : 1 - Nobject : 1 - RefCOUNT : 1 - -AST_GRID: -REG_LINE: 2 - 15.5 -136. - 15.4 -137. -REG_LINE: 2 - 18.6 -144. - 18.5 -146. -REG_LINE: 2 - 21.8 -149. - 21.8 -151. -REG_LINE: 2 - 25.1 -150. - 25.1 -154. -REG_LINE: 2 - 28.3 -149. - 28.4 -150. -REG_LINE: 2 - 31.5 -143. - 31.6 -145. -REG_LINE: 2 - 34.6 -135. - 34.7 -136. -REG_LINE: 2 - 37.6 -123. - 37.8 -127. -REG_LINE: 2 - 40.3 -108. - 40.4 -110. -REG_LINE: 2 - 42.7 -91.0 - 42.9 -92.7 -REG_LINE: 2 - 44.9 -71.2 - 45.2 -72.9 -REG_LINE: 2 - 46.7 -49.3 - 47.5 -53.0 -REG_LINE: 2 - 48.1 -25.8 - 48.6 -27.4 -REG_LINE: 2 - 49.2 -.928 - 49.9 -2.51 -REG_LINE: 2 - 49.8 24.8 - 51.0 23.5 -REG_LINE: 2 - 50.0 50.9 - 53.7 51.1 -REG_LINE: 2 - 49.7 77.1 - 50.9 78.4 -REG_LINE: 2 - 49.1 103. - 49.8 104. -REG_LINE: 2 - 48.0 127. - 48.5 129. -REG_LINE: 2 - 46.6 151. - 47.3 155. -REG_LINE: 2 - 44.7 173. - 45.0 174. -REG_LINE: 2 - 42.6 192. - 42.8 194. -REG_LINE: 2 - 40.1 209. - 40.2 211. -REG_LINE: 2 - 37.4 224. - 37.6 228. -REG_LINE: 2 - 34.4 235. - 34.5 237. -REG_LINE: 2 - 31.3 244. - 31.4 245. -REG_LINE: 2 - 28.1 248. - 28.1 250. -REG_LINE: 2 - 24.8 250. - 24.8 254. -REG_LINE: 2 - 21.6 248. - 21.5 250. -REG_LINE: 2 - 18.4 243. - 18.3 245. -REG_LINE: 2 - 15.3 234. - 15.2 236. -REG_LINE: 2 - 12.3 223. - 12.1 226. -REG_LINE: 2 - 9.62 208. - 9.45 210. -REG_LINE: 2 - 7.17 191. - 6.95 192. -REG_LINE: 2 - 5.02 171. - 4.74 173. -REG_LINE: 2 - 3.22 149. - 2.41 153. -REG_LINE: 2 - 1.78 125. - 1.27 127. -REG_LINE: 2 - .747 101. - -0.657E-02 102. -REG_LINE: 2 - .124 74.8 - -1.11 76.1 -REG_LINE: 2 - -0.740E-01 48.7 - -3.82 48.5 -REG_LINE: 2 - .156 22.6 - -1.02 21.3 -REG_LINE: 2 - .811 -3.08 - 0.841E-01 -4.67 -REG_LINE: 2 - 1.88 -27.8 - 1.38 -29.5 -REG_LINE: 2 - 3.34 -51.3 - 2.56 -54.9 -REG_LINE: 2 - 5.17 -73.0 - 4.89 -74.7 -REG_LINE: 2 - 7.34 -92.6 - 7.13 -94.3 -REG_LINE: 2 - 9.81 -110. - 9.65 -111. -REG_LINE: 2 - 12.5 -124. - 12.3 -128. -REG_LINE: 2 - 15.5 -136. - 15.4 -137. -REG_LINE: 2 - 18.6 -144. - 18.5 -146. -REG_LINE: 2 - 21.8 -149. - 21.8 -151. -REG_LINE: 2 - 25.1 -150. - 25.1 -154. -REG_LINE: 2 - 28.3 -149. - 28.4 -150. -REG_LINE: 2 - 31.5 -143. - 31.6 -145. -REG_LINE: 2 - 34.6 -135. - 34.7 -136. -REG_LINE: 2 - 24.9 74.8 - 26.5 75.6 -REG_LINE: 2 - 24.9 99.9 - 26.5 101. -REG_LINE: 2 - 24.9 125. - 26.5 126. -REG_LINE: 2 - 24.9 150. - 28.3 152. -REG_LINE: 2 - 24.9 175. - 26.5 176. -REG_LINE: 2 - 24.9 200. - 26.4 201. -REG_LINE: 2 - 24.8 225. - 26.4 226. -REG_LINE: 2 - 24.8 250. - 28.2 252. -REG_LINE: 2 - 24.8 275. - 26.4 276. -REG_LINE: 15 - 25.1 -150. - 24.1 -150. - 23.2 -150. - 22.3 -149. - 21.3 -148. - 20.4 -147. - 19.5 -146. - 18.6 -144. - 17.7 -142. - 16.8 -140. - 15.9 -137. - 15.1 -134. - 14.2 -131. - 13.4 -128. - 12.5 -124. -REG_LINE: 15 - 25.1 -150. - 26.0 -150. - 26.9 -150. - 27.9 -149. - 28.8 -148. - 29.7 -147. - 30.6 -145. - 31.5 -143. - 32.4 -141. - 33.3 -139. - 34.2 -136. - 35.1 -133. - 35.9 -130. - 36.7 -127. - 37.6 -123. -REG_LINE: 15 - 37.6 -123. - 38.4 -119. - 39.1 -115. - 39.9 -111. - 40.6 -106. - 41.4 -101. - 42.1 -96.2 - 42.7 -91.0 - 43.4 -85.6 - 44.0 -79.9 - 44.6 -74.2 - 45.2 -68.2 - 45.7 -62.1 - 46.2 -55.8 - 46.7 -49.3 -REG_LINE: 15 - 46.7 -49.3 - 47.1 -42.8 - 47.5 -36.1 - 47.9 -29.2 - 48.3 -22.3 - 48.6 -15.3 - 48.9 -8.13 - 49.2 -.928 - 49.4 6.35 - 49.6 13.7 - 49.7 21.1 - 49.8 28.5 - 49.9 36.0 - 50.0 43.4 - 50.0 50.9 -REG_LINE: 15 - 50.0 50.9 - 49.9 58.4 - 49.9 65.9 - 49.8 73.3 - 49.7 80.8 - 49.5 88.1 - 49.3 95.5 - 49.1 103. - 48.8 110. - 48.5 117. - 48.2 124. - 47.8 131. - 47.4 138. - 47.0 144. - 46.6 151. -REG_LINE: 15 - 46.6 151. - 46.1 157. - 45.6 164. - 45.0 170. - 44.4 176. - 43.8 181. - 43.2 187. - 42.6 192. - 41.9 197. - 41.2 202. - 40.5 207. - 39.7 212. - 38.9 216. - 38.2 220. - 37.4 224. -REG_LINE: 15 - 37.4 224. - 36.5 227. - 35.7 231. - 34.8 234. - 34.0 237. - 33.1 239. - 32.2 241. - 31.3 244. - 30.4 245. - 29.5 247. - 28.6 248. - 27.6 249. - 26.7 250. - 25.8 250. - 24.8 250. -REG_LINE: 15 - 24.8 250. - 23.9 250. - 23.0 249. - 22.0 249. - 21.1 248. - 20.2 246. - 19.3 245. - 18.4 243. - 17.5 241. - 16.6 238. - 15.7 236. - 14.8 233. - 14.0 230. - 13.1 226. - 12.3 223. -REG_LINE: 15 - 12.3 223. - 11.5 219. - 10.8 215. - 9.99 210. - 9.25 206. - 8.53 201. - 7.84 196. - 7.17 191. - 6.52 185. - 5.90 180. - 5.31 174. - 4.74 168. - 4.20 162. - 3.70 155. - 3.22 149. -REG_LINE: 15 - 3.22 149. - 2.77 142. - 2.35 136. - 1.96 129. - 1.61 122. - 1.29 115. - 1.00 108. - .747 101. - .526 93.3 - .339 85.9 - .187 78.6 - 0.696E-01 71.1 - -0.132E-01 63.7 - -0.611E-01 56.2 - -0.740E-01 48.7 -REG_LINE: 15 - -0.740E-01 48.7 - -0.519E-01 41.2 - 0.519E-02 33.7 - 0.971E-01 26.3 - .224 18.9 - .385 11.5 - .581 4.18 - .811 -3.08 - 1.07 -10.3 - 1.37 -17.4 - 1.70 -24.4 - 2.06 -31.3 - 2.46 -38.1 - 2.88 -44.7 - 3.34 -51.3 -REG_LINE: 15 - 3.34 -51.3 - 3.83 -57.7 - 4.34 -63.9 - 4.89 -70.0 - 5.46 -75.9 - 6.06 -81.6 - 6.69 -87.2 - 7.34 -92.6 - 8.02 -97.7 - 8.72 -103. - 9.44 -107. - 10.2 -112. - 11.0 -116. - 11.7 -120. - 12.5 -124. -REG_LINE: 15 - 12.5 -124. - 13.4 -128. - 14.2 -131. - 15.1 -134. - 15.9 -137. - 16.8 -140. - 17.7 -142. - 18.6 -144. - 19.5 -146. - 20.4 -147. - 21.3 -148. - 22.3 -149. - 23.2 -150. - 24.1 -150. - 25.1 -150. -REG_LINE: 15 - 25.1 -150. - 26.0 -150. - 26.9 -150. - 27.9 -149. - 28.8 -148. - 29.7 -147. - 30.6 -145. - 31.5 -143. - 32.4 -141. - 33.3 -139. - 34.2 -136. - 35.1 -133. - 35.9 -130. - 36.7 -127. - 37.6 -123. -REG_LINE: 15 - 25.1 -150. - 26.0 -150. - 26.9 -150. - 27.9 -149. - 28.8 -148. - 29.7 -147. - 30.6 -145. - 31.5 -143. - 32.4 -141. - 33.3 -139. - 34.2 -136. - 35.1 -133. - 35.9 -130. - 36.7 -127. - 37.6 -123. -REG_LINE: 15 - 24.9 49.8 - 24.9 57.0 - 24.9 64.1 - 24.9 71.3 - 24.9 78.4 - 24.9 85.6 - 24.9 92.7 - 24.9 99.9 - 24.9 107. - 24.9 114. - 24.9 121. - 24.9 128. - 24.9 136. - 24.9 143. - 24.9 150. -REG_LINE: 15 - 24.9 150. - 24.9 157. - 24.9 164. - 24.9 171. - 24.9 179. - 24.9 186. - 24.9 193. - 24.9 200. - 24.9 207. - 24.8 214. - 24.8 221. - 24.8 229. - 24.8 236. - 24.8 243. - 24.8 250. -REG_LINE: 8 - 24.8 250. - 24.8 257. - 24.8 264. - 24.8 272. - 24.8 279. - 24.8 286. - 24.8 293. - 24.8 300. -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '12' - 24.9 -148. BC -0.654E-01 .998 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '14' - 35.1 -123. BC -.978 .210 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '16' - 44.2 -49.2 BC -.997 0.716E-01 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '18' - 47.5 50.9 BC -1.00 -0.942E-03 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '20' - 44.1 151. TC .997 0.732E-01 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '22' - 34.9 223. TC .977 .213 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '0' - 24.9 248. TC -0.236E-01 1.00 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '2' - 14.8 222. TC -.978 .210 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '4' - 5.71 149. TC -.997 0.716E-01 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '6' - 2.43 48.7 BC 1.00 0.288E-03 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '8' - 5.83 -51.1 BC .997 0.732E-01 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '10' - 15.0 -124. BC .977 .215 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-90:00' - 22.4 49.8 BC -1.00 -0.615E-03 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '59' - 22.4 150. BC -1.00 -0.615E-03 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-89:58' - 22.3 250. BC -1.00 -0.615E-03 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 1 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: ' A FITS test' - 30.9 313. BC .000 1.00 -ude (rad.s) - End SphMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = -1 # Forward matrix value - M1 = 1 # Forward matrix value - M2 = -1 # Forward matrix value - Form = "Diagonal" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = 0 # Polar longitude (rad.s) - End SphMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End FrameSet diff --git a/ast/ast_tester/regression.f b/ast/ast_tester/regression.f deleted file mode 100644 index e9ca32e..0000000 --- a/ast/ast_tester/regression.f +++ /dev/null @@ -1,1515 +0,0 @@ - PROGRAM REGRESSION -*+ -* Name: -* REGRESSION - -* Purpose: -* Tests many aspects of the AST library (Fortran interface). - -* Language: -* Starlink Fortran 77 - -* Type of Module: -* Fortran program - -* Invocation: -* regression - -* Description: -* This application utilizes many aspects of the AST library, producing -* textual output on standard output. The output should be redirected -* to a text file and compared to the output from previous runs to -* detect any changes in functionality. - -* Authors: -* DSB: David Berry (STARLINK) -* {enter_new_authors_here} - -* History: -* 29-JAN-2002 (DSB): -* Original version. -* {enter_further_changes_here} - -*- - -* Type Definitions: - IMPLICIT NONE ! No implicit typing - -* Global Variables: - INTEGER CMN_FTEST ! Which FITS test are we doing? - INTEGER CMN_LINE ! The index of the next header to read - COMMON /REG/ CMN_FTEST, CMN_LINE - -* Global Constants: - INCLUDE 'SAE_PAR' ! Standard SAE constants - INCLUDE 'AST_PAR' ! AST constants and declarations - -* Status: - INTEGER STATUS ! Global status - -* External References: - INTEGER CHR_LEN - - EXTERNAL REG_SOURCE - EXTERNAL REG_SINK - - EXTERNAL REG_ATTR - EXTERNAL REG_FLUSH - EXTERNAL REG_LINE - EXTERNAL REG_MARK - EXTERNAL REG_TEXT - EXTERNAL REG_TXEXT - EXTERNAL REG_CAP - EXTERNAL REG_QCH - EXTERNAL REG_SCALES - -* Local Constants: - INTEGER NFITS_TESTS ! How many FITS tests? - PARAMETER ( NFITS_TESTS = 3 ) - - INTEGER NCAT, NRAT, NLAT, NDAT, NIAT ! Numbers of Attributes of each type - PARAMETER ( NCAT = 4, - : NRAT = 2, - : NLAT = 2, - : NDAT = 1, - : NIAT = 5 ) - -* Local Variables: - CHARACTER ATTRS( NFITS_TESTS )*255 ! Plot attributes for each FITS test - CHARACTER CARDS*(7*80) ! Used fot testing ast_putcards - INTEGER FC, FS, PLOT, I, J, OC - - REAL GBOX( 4 ) ! Area of graphics coords to use - DOUBLE PRECISION BBOX( 4, NFITS_TESTS ) ! Base Frame area to be - ! mapped onto GBOX for each FITS test - - CHARACTER*20 CAT(NCAT), RAT(NRAT), LAT(NLAT), DAT(NDAT), IAT(NIAT) - CHARACTER CV*50 - REAL RV - LOGICAL LV - DOUBLE PRECISION DV - INTEGER IV, VERS, MAJ, MIN, REV - -* Data initialization: - DATA CAT / 'Colour(axis1)', 'Font(Stri)', 'Nout', 'Class' / - DATA RAT / 'Tol', 'Gap(1)' / - DATA LAT / 'Border', 'Invert' / - DATA DAT / 'TextLabGap' / - DATA IAT / 'Nin', 'Current', 'Base', 'Nobject', 'RefCOUNT' / - DATA GBOX /-100.0, -200.0, 150.0, 300.0/ - - - - DATA BBOX / 10.0, -10.0, 290.0, 300.0, - : -300.0, -300.0, 500.0, 500.0, - : 1.0, 1.0, 1787.0, 447.0 / - - - - DATA ATTRS/ 'Grid=1,tickall=0', - : 'Grid=1,labelling=interior', - : 'Grid=0' / - - -*. - -* Initialize inherited global status. - STATUS = SAI__OK - -* Use object caching to minimise allocation of new memory - OC = AST_TUNE( 'ObjectCaching', 1, STATUS ) - IF( OC .NE. 0 ) THEN - WRITE(*,'(A,I2)') 'Default ObjectCaching VALUE is ',OC - END IF - - IF( AST_TUNE( 'ObjectCaching', AST__TUNULL, STATUS ) .NE. 1 ) THEN - WRITE(*,'(A,I2)') 'Set ObjectCaching VALUE is ',OC - END IF - -* Display the AST version number. - VERS = AST_VERSION() - MAJ = VERS/1000000 - VERS = VERS - 1000000*MAJ - MIN = VERS/1000 - REV = VERS - 1000*MIN - WRITE(*,'(A,I2,A,I1,A,I2)') 'AST version ',MAJ,'.',MIN,'-',REV - -* First do a test of the AST_PUTCARDS routine. - FC = AST_FITSCHAN( AST_NULL, AST_NULL, ' ', STATUS ) - - CARDS = 'NAXIS = 1' - CARDS( 81: ) = 'NAXIS1 = 100' - CARDS( 2*80 + 1: ) = 'CTYPE1 = ''fred''' - CARDS( 3*80 + 1: ) = 'CDELT1 = 0.0' - CARDS( 4*80 + 1: ) = 'CRPIX1 = 50' - CARDS( 5*80 + 1: ) = 'CUNIT1 = ''GHz''' - - CALL AST_PUTCARDS( FC, CARDS, STATUS ) - WRITE(*,'(A,I2)') 'PutCards Ncards = ',AST_GETI( FC, 'NCARD', - : STATUS ) - WRITE(*,'(A,I2)') 'PutCards Card = ',AST_GETI( FC, 'CARD', - : STATUS ) - - CALL AST_SETI( FC, 'CARD', 10, STATUS ) - WRITE(*,'(A,I2)') 'PutCards Card = ',AST_GETI( FC, 'CARD', - : STATUS ) - - CALL AST_PUTCARDS( FC, CARDS, STATUS ) - WRITE(*,'(A,I2)') 'PutCards Ncards = ',AST_GETI( FC, 'NCARD', - : STATUS ) - WRITE(*,'(A,I2)') 'PutCards Card = ',AST_GETI( FC, 'CARD', - : STATUS ) - CALL AST_SHOW( FC, STATUS ) - -* We loop round testing several sorts of FITS Headers. - DO I = 1, NFITS_TESTS - IF ( STATUS .NE. SAI__OK ) GO TO 999 - -* Tell the REG_SOURCE function which FITS header to load. - CMN_FTEST = I - CMN_LINE = 1 - - WRITE(*,'(A)') ' ' - WRITE(*,'(A)') ' ' - WRITE(*,'(A)') ' ' - WRITE(*,'(A)') ' ' - WRITE(*,'(A,I2)') ' FITS test number ',I - WRITE(*,'(A)') ' ====================' - WRITE(*,'(A)') ' ' - WRITE(*,'(A)') ' ' - -* Create a FitsChan, read an Object from it, and dump the Object -* to standard output. The Object should be a FrameSet if all is OK. - FC = AST_FITSCHAN( REG_SOURCE, REG_SINK, ' ', STATUS ) - FS = AST_READ( FC, STATUS ) - WRITE(*,'(A)') ' ' - WRITE(*,'(A)') 'AST_SHOW:' - CALL AST_SHOW( FS, STATUS ) - -* Annul the FitsChan. This will cause the unused contents (if any) to -* be written out using REG_SINK. - WRITE(*,'(A)') ' ' - WRITE(*,'(A)') 'REG_SINK:' - CALL AST_ANNUL( FC, STATUS ) - -* Create another FrameSet with Native encoding. Write the FrameSet to -* it, and then annul the FitsChan (this will cause the FITS cards to be -* written to stdout). - FC = AST_FITSCHAN( AST_NULL, REG_SINK, 'Encoding=native', - : STATUS ) - WRITE(*,'(A)') ' ' - WRITE(*,'(A,I2)') 'Objects written: ', AST_WRITE( FC, FS, - : STATUS ) - WRITE(*,'(A)') ' ' - WRITE(*,'(A)') 'Native Encoding:' - CALL AST_ANNUL( FC, STATUS ) - -* Create a Plot which maps the area specified by BBOX the Base Frame -* of the FrameSet onto the GBOX area in graphics coords. - PLOT = AST_PLOT( FS, GBOX, BBOX( 1, I), ' grf = 1 , '// - : 'title = A FITS test', STATUS ) - -* Annul the FrameSet. - CALL AST_ANNUL( FS, STATUS ) - -* Tell the Plot to use the REG_... routines included in this file to -* do the drawing. - CALL AST_GRFSET( PLOT, 'Attr', REG_ATTR, STATUS ) - CALL AST_GRFSET( PLOT, 'Flush', REG_FLUSH, STATUS ) - CALL AST_GRFSET( PLOT, 'Line', REG_LINE, STATUS ) - CALL AST_GRFSET( PLOT, 'Mark', REG_MARK, STATUS ) - CALL AST_GRFSET( PLOT, 'Text', REG_TEXT, STATUS ) - CALL AST_GRFSET( PLOT, 'TxExt', REG_TXEXT, STATUS ) - CALL AST_GRFSET( PLOT, 'Scales', REG_SCALES, STATUS ) - CALL AST_GRFSET( PLOT, 'Cap', REG_CAP, STATUS ) - CALL AST_GRFSET( PLOT, 'Qch', REG_QCH, STATUS ) - -* Set some attributes. - CALL AST_SET( PLOT, ATTRS( I ), STATUS ) - -* Get some attributes (separate the AST_GET calls and the WRITEs in order -* to avoid recursive I/O due to the REG_xxx routines trying to write to -* standard output). - WRITE(*,'(A)') ' ' - WRITE(*,'(A)') 'ATTRIBUTES:' - - DO J = 1, NCAT - CV = AST_GETC( PLOT, CAT(J), STATUS ) - WRITE(*,'(A,I10)') ' '//CAT(J)//': ',CHR_LEN(CV) - END DO - - DO J = 1, NRAT - RV = AST_GETR( PLOT, RAT(J), STATUS ) - WRITE(*,'(A,G13.6)') ' '//RAT(J)//': ',RV - END DO - - DO J = 1, NLAT - LV = AST_GETL( PLOT, LAT(J), STATUS ) - IF( LV ) THEN - IV = 1 - ELSE - IV = 0 - END IF - WRITE(*,'(A,I1)') ' '//LAT(J)//': ',IV - END DO - - DO J = 1, NDAT - DV = AST_GETD( PLOT, DAT(J), STATUS ) - WRITE(*,'(A,G13.6)') ' '//DAT(J)//': ',DV - END DO - - DO J = 1, NIAT - IV = AST_GETI( PLOT, IAT(J), STATUS ) - WRITE(*,'(A,I4)') ' '//IAT(J)//': ',IV - END DO - - -* Draw a grid. - WRITE(*,'(A)') ' ' - WRITE(*,'(A)') 'AST_GRID:' - CALL AST_GRID( PLOT, STATUS ) - -* Annul the Plot. - CALL AST_ANNUL( PLOT, STATUS ) - - END DO - - 999 CONTINUE - - END - - - - - -* Grf plotting routines for the Plot tests. These are used in preference -* to the grf routines specified at link time. -* ====================================================================== - -* Flush graphics. -* --------------- - INTEGER FUNCTION REG_FLUSH() - WRITE(*,'(A)') 'REG_FLUSH:' - REG_FLUSH = 1 - END - -* Set or get a Plot graphics attribute. -* ------------------------------------- - INTEGER FUNCTION REG_ATTR( ATT, VAL, OLDVAL, PRIM ) - IMPLICIT NONE - -* Includes: - INCLUDE 'AST_PAR' - INCLUDE 'GRF_PAR' - -* Arguments: - INTEGER ATT - DOUBLE PRECISION VAL - INTEGER PRIM - DOUBLE PRECISION OLDVAL - -* Local Variables: - INTEGER I, J - DOUBLE PRECISION ATTRS( 5, 3 ) - -* Initialization: - DATA ATTRS /15*0.0D0/ - -* Log this call. - WRITE(*,'(I4,1X,G10.3,1X,I4)') 'REG_GATTR: ', ATT, VAL, PRIM - -* Identify the required element. - IF( ATT .EQ. GRF__STYLE ) THEN - I = 1 - ELSE IF( ATT .EQ. GRF__WIDTH ) THEN - I = 2 - ELSE IF( ATT .EQ. GRF__SIZE ) THEN - I = 3 - ELSE IF( ATT .EQ. GRF__FONT ) THEN - I = 4 - ELSE IF( ATT .EQ. GRF__COLOUR ) THEN - I = 5 - ELSE - WRITE(*,'(A,I2)') 'Bad ATT value: ', ATT - END IF - - IF( PRIM .EQ. GRF__LINE ) THEN - J = 1 - ELSE IF( PRIM .EQ. GRF__MARK ) THEN - J = 2 - ELSE IF( PRIM .EQ. GRF__TEXT ) THEN - J = 3 - ELSE - WRITE(*,'(A,I2)') 'Bad PRIM value: ', PRIM - END IF - -* Return the old value. - OLDVAL = ATTRS( I, J ) - -* Store the new value if not bad. - IF( VAL .NE. AST__BAD ) ATTRS( I, J ) = VAL - -* Initialize the returned value to indicate success. - REG_ATTR = 1 - - END - - -* Draw a polyline. -* ---------------- - INTEGER FUNCTION REG_LINE( N, X, Y ) - IMPLICIT NONE - - INTEGER N - REAL X( N ) - REAL Y( N ) - INTEGER I - - WRITE(*,'(A,I4)') 'REG_LINE: ',N - DO I = 1, N - WRITE(*,'(3X,G10.3,1X,G10.3)') X(I),Y(I) - END DO - - REG_LINE = 1 - END - -* Draw a set of markers. -* ---------------------- - INTEGER FUNCTION REG_MARK( N, X, Y, TYPE ) - IMPLICIT NONE - - INTEGER N, TYPE - REAL X( N ) - REAL Y( N ) - INTEGER I - - WRITE(*,'(A,I4,I2)') 'REG_MARK: ', N, TYPE - DO I = 1, N - WRITE(*,'(3X,G10.3,1X,G10.3)') X(I),Y(I) - END DO - - REG_MARK = 1 - END - -* Draw a text string. -* ------------------- - INTEGER FUNCTION REG_TEXT( TEXT, X, Y, JUST, UPX, UPY ) - IMPLICIT NONE - - CHARACTER TEXT*(*), JUST*(*) - REAL X, Y, UPX, UPY - - WRITE(*,'(A,A,A)') 'REG_TEXT: ''', TEXT,'''' - WRITE(*,'(3X,G10.3,1X,G10.3,1X,A,1X,G10.3,1X,G10.3)') - : X, Y, JUST, UPX, UPY - - REG_TEXT = 1 - END - -* Return the extent of a text string. -* -* For some reason, the arguments to this function seem particularly -* prone to random rounding errors, resulting in the regression test -* always failing when run twice in succession, even if not changes -* have been made to the code in plot.c. For this reason this function -* does not write out its argument to standard output. -* -------------------------------------------------------------------- - INTEGER FUNCTION REG_TXEXT( TEXT, X, Y, JUST, UPX, UPY, XB, YB ) - IMPLICIT NONE - - CHARACTER TEXT*(*), JUST*(*) - REAL X, Y, UPX, UPY, XB(4), YB(4) - -c WRITE(*,*) 'REG_TXEXT: ''', TEXT,'''' -c WRITE(*,*) ' ', X, Y, ' ''', JUST,''' ', UPX, UPY - - XB( 1 ) = X - LEN( TEXT )*0.5 - XB( 2 ) = X + LEN( TEXT )*0.5 - XB( 3 ) = XB( 2 ) - XB( 4 ) = XB( 1 ) - - YB( 1 ) = Y - 0.5 - YB( 2 ) = YB( 1 ) - YB( 3 ) = Y + 0.5 - YB( 4 ) = YB( 3 ) - - REG_TXEXT = 1 - END - -* Inquire a capability -* --------------------- - INTEGER FUNCTION REG_CAP( CAP, VALUE ) - IMPLICIT NONE - - INCLUDE 'GRF_PAR' - - INTEGER CAP, VALUE - - WRITE(*,'(A,I2)') 'REG_CAP: ', CAP - - REG_CAP = 0 - IF( CAP .EQ. GRF__SCALES ) REG_CAP = 1 - - END - -* Inquire axis scales -* --------------------- - INTEGER FUNCTION REG_SCALES( ALPHA, BETA ) - IMPLICIT NONE - REAL ALPHA, BETA - - WRITE(*,'(A)') 'REG_SCALES: ' - - ALPHA = 1.0 - BETA = 1.0 - - REG_SCALES = 1 - - END - -* Inquire character size -* ---------------------- - INTEGER FUNCTION REG_QCH( CHV, CHH ) - IMPLICIT NONE - REAL CHV, CHH - - WRITE(*,'(A)') 'REG_QCH: ' - - CHV = 0.01 - CHH = 0.01 - - REG_QCH = 1 - - END - - - -* A Sink funtion for use with the FitsChan class. It writes the FitsChan -* contents to standard output. -* ====================================================================== - SUBROUTINE REG_SINK( CARD, STATUS ) - IMPLICIT NONE - CHARACTER CARD*80 - INTEGER STATUS - WRITE(*,'(A)') CARD - END - - - -* A Source funtion for use with the FitsChan class. It returns a different -* header for each value of REG_FTEST. -* ====================================================================== - INTEGER FUNCTION REG_SOURCE( CARD, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - - INTEGER CMN_FTEST ! Which FITS test are we doing? - INTEGER CMN_LINE ! The index of the next header to read - COMMON /REG/ CMN_FTEST, CMN_LINE - - CHARACTER CARD*80 - INTEGER STATUS - -* Check the inherited status - REG_SOURCE = 0 - IF( STATUS .NE. SAI__OK ) RETURN - -* Assume more cards will be returned. - REG_SOURCE = 1 - -* The following code defines the FITS headers and is generated automatically -* from FITS header files using script make_regtest (in the AST development -* system).... - - -* FITS headers from cobe.head (Tue Jan 29 13:37:07 2002) - IF( CMN_FTEST .EQ. 1 ) THEN - IF( CMN_LINE .EQ. 1 ) THEN - CARD = 'SIMPLE = T / Written by I'// - : 'DL: 30-Jul-1997 05:35:42.00' - ELSE IF( CMN_LINE .EQ. 2 ) THEN - CARD = 'BITPIX = -32 / Bits per pix'// - : 'el.' - ELSE IF( CMN_LINE .EQ. 3 ) THEN - CARD = 'NAXIS = 2 / Number of di'// - : 'mensions' - ELSE IF( CMN_LINE .EQ. 4 ) THEN - CARD = 'NAXIS1 = 300 / Length of x '// - : 'axis.' - ELSE IF( CMN_LINE .EQ. 5 ) THEN - CARD = 'NAXIS2 = 300 / Length of y '// - : 'axis.' - ELSE IF( CMN_LINE .EQ. 6 ) THEN - CARD = 'CTYPE1 = ''GLON-ZEA'' / X-axis typ'// - : 'e' - ELSE IF( CMN_LINE .EQ. 7 ) THEN - CARD = 'CTYPE2 = ''GLAT-ZEA'' / Y-axis typ'// - : 'e' - ELSE IF( CMN_LINE .EQ. 8 ) THEN - CARD = 'CRVAL1 = -149.56866 / Reference pi'// - : 'xel value' - ELSE IF( CMN_LINE .EQ. 9 ) THEN - CARD = 'CRVAL2 = -19.758201 / Reference pi'// - : 'xel value' - ELSE IF( CMN_LINE .EQ. 10 ) THEN - CARD = 'CRPIX1 = 150.500 / Reference pi'// - : 'xel' - ELSE IF( CMN_LINE .EQ. 11 ) THEN - CARD = 'CRPIX2 = 150.500 / Reference pi'// - : 'xel' - ELSE IF( CMN_LINE .EQ. 12 ) THEN - CARD = 'CDELT1 = -1.20000 / Degrees/pixe'// - : 'l' - ELSE IF( CMN_LINE .EQ. 13 ) THEN - CARD = 'CDELT2 = 1.20000 / Degrees/pixe'// - : 'l' - ELSE IF( CMN_LINE .EQ. 14 ) THEN - CARD = 'CROTA1 = 0.00000 / Rotation in '// - : 'degrees.' - ELSE IF( CMN_LINE .EQ. 15 ) THEN - CARD = 'COMMENT' - ELSE IF( CMN_LINE .EQ. 16 ) THEN - CARD = 'COMMENT This file was produced by the SkyView'// - : ' survey analysis system from' - ELSE IF( CMN_LINE .EQ. 17 ) THEN - CARD = 'COMMENT available astronomical surveys. The '// - : 'data are formatted' - ELSE IF( CMN_LINE .EQ. 18 ) THEN - CARD = 'COMMENT as a simple two-dimensional FITS imag'// - : 'e with the same units as' - ELSE IF( CMN_LINE .EQ. 19 ) THEN - CARD = 'COMMENT the orginal survey. A single ASCII t'// - : 'able extension may be present' - ELSE IF( CMN_LINE .EQ. 20 ) THEN - CARD = 'COMMENT which describes catalog objects found'// - : ' within the field of view.' - ELSE IF( CMN_LINE .EQ. 21 ) THEN - CARD = 'COMMENT Copies of relevant copyright notices '// - : 'are included in this file.' - ELSE IF( CMN_LINE .EQ. 22 ) THEN - CARD = 'COMMENT' - ELSE IF( CMN_LINE .EQ. 23 ) THEN - CARD = 'COMMENT Questions should be directed to:' - ELSE IF( CMN_LINE .EQ. 24 ) THEN - CARD = 'COMMENT' - ELSE IF( CMN_LINE .EQ. 25 ) THEN - CARD = 'COMMENT scollick@skyview.gsfc.nasa.gov' - ELSE IF( CMN_LINE .EQ. 26 ) THEN - CARD = 'COMMENT or' - ELSE IF( CMN_LINE .EQ. 27 ) THEN - CARD = 'COMMENT mcglynn@grossc.gsfc.nasa.gov' - ELSE IF( CMN_LINE .EQ. 28 ) THEN - CARD = 'COMMENT' - ELSE IF( CMN_LINE .EQ. 29 ) THEN - CARD = 'COMMENT SkyView' - ELSE IF( CMN_LINE .EQ. 30 ) THEN - CARD = 'COMMENT Code 668.1' - ELSE IF( CMN_LINE .EQ. 31 ) THEN - CARD = 'COMMENT Goddard Space Flight Center, Gree'// - : 'nbelt, MD 20771' - ELSE IF( CMN_LINE .EQ. 32 ) THEN - CARD = 'COMMENT 301-286-7780' - ELSE IF( CMN_LINE .EQ. 33 ) THEN - CARD = 'COMMENT' - ELSE IF( CMN_LINE .EQ. 34 ) THEN - CARD = 'COMMENT SkyView is supported by NASA ADP gran'// - : 't NAS 5-32068.' - ELSE IF( CMN_LINE .EQ. 35 ) THEN - CARD = 'COMMENT' - ELSE IF( CMN_LINE .EQ. 36 ) THEN - CARD = 'SURVEY = ''COBE DIRBE''' - ELSE IF( CMN_LINE .EQ. 37 ) THEN - CARD = 'BUNITS = ''MJy/sr '' /' - ELSE IF( CMN_LINE .EQ. 38 ) THEN - CARD = 'ORIGIN = ''CDAC '' / Cosmology '// - : 'Data Analysis Center' - ELSE IF( CMN_LINE .EQ. 39 ) THEN - CARD = 'TELESCOP= ''COBE '' / COsmic Bac'// - : 'kground Explorer satellite' - ELSE IF( CMN_LINE .EQ. 40 ) THEN - CARD = 'INSTRUME= ''DIRBE '' / COBE instr'// - : 'ument [DIRBE, DMR, FIRAS]' - ELSE IF( CMN_LINE .EQ. 41 ) THEN - CARD = 'PIXRESOL= 9 / Quad tree pi'// - : 'xel resolution [6, 9]' - ELSE IF( CMN_LINE .EQ. 42 ) THEN - CARD = 'DATE = ''27/09/94'' / FITS file '// - : 'creation date (dd/mm/yy)' - ELSE IF( CMN_LINE .EQ. 43 ) THEN - CARD = 'DATE-MAP= ''16/09/94'' / Date of or'// - : 'iginal file creation (dd/mm/yy)' - ELSE IF( CMN_LINE .EQ. 44 ) THEN - CARD = 'COMMENT COBE specific keywords' - ELSE IF( CMN_LINE .EQ. 45 ) THEN - CARD = 'DATE-BEG= ''08/12/89'' / date of in'// - : 'itial data represented (dd/mm/yy)' - ELSE IF( CMN_LINE .EQ. 46 ) THEN - CARD = 'DATE-END= ''25/09/90'' / date of fi'// - : 'nal data represented (dd/mm/yy)' - ELSE IF( CMN_LINE .EQ. 47 ) THEN - CARD = 'COMMENT' - ELSE IF( CMN_LINE .EQ. 48 ) THEN - CARD = 'COMMENT THE COBE DIRBE map is a combination o'// - : 'f the original ten' - ELSE IF( CMN_LINE .EQ. 49 ) THEN - CARD = 'COMMENT band passes with the following wavele'// - : 'ngths:' - ELSE IF( CMN_LINE .EQ. 50 ) THEN - CARD = 'COMMENT Band 1 - 1.25 microns' - ELSE IF( CMN_LINE .EQ. 51 ) THEN - CARD = 'COMMENT Band 2 - 2.2 microns' - ELSE IF( CMN_LINE .EQ. 52 ) THEN - CARD = 'COMMENT Band 3 - 3.5 microns' - ELSE IF( CMN_LINE .EQ. 53 ) THEN - CARD = 'COMMENT Band 4 - 4.9 microns' - ELSE IF( CMN_LINE .EQ. 54 ) THEN - CARD = 'COMMENT Band 5 - 12 microns' - ELSE IF( CMN_LINE .EQ. 55 ) THEN - CARD = 'COMMENT Band 6 - 25 microns' - ELSE IF( CMN_LINE .EQ. 56 ) THEN - CARD = 'COMMENT Band 7 - 60 microns' - ELSE IF( CMN_LINE .EQ. 57 ) THEN - CARD = 'COMMENT Band 8 - 100 microns' - ELSE IF( CMN_LINE .EQ. 58 ) THEN - CARD = 'COMMENT Band 9 - 140 microns' - ELSE IF( CMN_LINE .EQ. 59 ) THEN - CARD = 'COMMENT Band 10 - 240 microns' - ELSE IF( CMN_LINE .EQ. 60 ) THEN - CARD = 'COMMENT' - ELSE IF( CMN_LINE .EQ. 61 ) THEN - CARD = 'END' - REG_SOURCE = 0 - ELSE - REG_SOURCE = 0 - END IF - -* FITS headers from polco.head (Tue Jan 29 15:06:35 2002) - ELSE IF( CMN_FTEST .EQ. 2 ) THEN - IF( CMN_LINE .EQ. 1 ) THEN - CARD = 'COMMENT AST +++++++++++++++++++++++++++++++++'// - : '+++++++++++++++++++++++++++++++' - ELSE IF( CMN_LINE .EQ. 2 ) THEN - CARD = 'AST' - ELSE IF( CMN_LINE .EQ. 3 ) THEN - CARD = 'COMMENT AST Beginning of AST data '// - : 'for FrameSet object' - ELSE IF( CMN_LINE .EQ. 4 ) THEN - CARD = 'AST' - ELSE IF( CMN_LINE .EQ. 5 ) THEN - CARD = 'COMMENT AST .................................'// - : '...............................' - ELSE IF( CMN_LINE .EQ. 6 ) THEN - CARD = 'AST' - ELSE IF( CMN_LINE .EQ. 7 ) THEN - CARD = 'BEGAST_A= ''FrameSet'' / Set of int'// - : 'er-related coordinate systems' - ELSE IF( CMN_LINE .EQ. 8 ) THEN - CARD = 'NFRAME_A= 2 / Number of Fr'// - : 'ames in FrameSet' - ELSE IF( CMN_LINE .EQ. 9 ) THEN - CARD = 'CURRNT_A= 2 / Index of cur'// - : 'rent Frame' - ELSE IF( CMN_LINE .EQ. 10 ) THEN - CARD = 'NOD1_A = 2 / Frame 1 is a'// - : 'ssociated with node 2' - ELSE IF( CMN_LINE .EQ. 11 ) THEN - CARD = 'NOD2_A = 1 / Frame 2 is a'// - : 'ssociated with node 1' - ELSE IF( CMN_LINE .EQ. 12 ) THEN - CARD = 'LNK2_A = 1 / Node 2 is de'// - : 'rived from node 1' - ELSE IF( CMN_LINE .EQ. 13 ) THEN - CARD = 'FRM1_A = '' '' / Frame numb'// - : 'er 1' - ELSE IF( CMN_LINE .EQ. 14 ) THEN - CARD = 'BEGAST_B= ''Frame '' / Coordinate'// - : ' system description' - ELSE IF( CMN_LINE .EQ. 15 ) THEN - CARD = 'TITLE_A = ''Data grid indices; first pixel at'// - : ' (1&''/ Title of coordinate system' - ELSE IF( CMN_LINE .EQ. 16 ) THEN - CARD = 'CONTINUE '',1) ''' - ELSE IF( CMN_LINE .EQ. 17 ) THEN - CARD = 'NAXES_A = 2 / Number of co'// - : 'ordinate axes' - ELSE IF( CMN_LINE .EQ. 18 ) THEN - CARD = 'DOMAIN_A= ''GRID '' / Coordinate'// - : ' system domain' - ELSE IF( CMN_LINE .EQ. 19 ) THEN - CARD = 'AX1_A = '' '' / Axis numbe'// - : 'r 1' - ELSE IF( CMN_LINE .EQ. 20 ) THEN - CARD = 'BEGAST_C= ''Axis '' / Coordinate'// - : ' axis' - ELSE IF( CMN_LINE .EQ. 21 ) THEN - CARD = 'LABEL_A = ''Data grid index 1'' / Axis Label' - ELSE IF( CMN_LINE .EQ. 22 ) THEN - CARD = 'SYMBOL_A= ''g1 '' / Axis symbo'// - : 'l' - ELSE IF( CMN_LINE .EQ. 23 ) THEN - CARD = 'UNIT_A = ''pixel '' / Axis units' - ELSE IF( CMN_LINE .EQ. 24 ) THEN - CARD = 'FORMAT_A= ''%3.1f '' / Format spe'// - : 'cifier' - ELSE IF( CMN_LINE .EQ. 25 ) THEN - CARD = 'ENDAST_A= ''Axis '' / End of obj'// - : 'ect definition' - ELSE IF( CMN_LINE .EQ. 26 ) THEN - CARD = 'AX2_A = '' '' / Axis numbe'// - : 'r 2' - ELSE IF( CMN_LINE .EQ. 27 ) THEN - CARD = 'BEGAST_D= ''Axis '' / Coordinate'// - : ' axis' - ELSE IF( CMN_LINE .EQ. 28 ) THEN - CARD = 'LABEL_B = ''Data grid index 2'' / Axis Label' - ELSE IF( CMN_LINE .EQ. 29 ) THEN - CARD = 'SYMBOL_B= ''g2 '' / Axis symbo'// - : 'l' - ELSE IF( CMN_LINE .EQ. 30 ) THEN - CARD = 'UNIT_B = ''pixel '' / Axis units' - ELSE IF( CMN_LINE .EQ. 31 ) THEN - CARD = 'FORMAT_B= ''%3.1f '' / Format spe'// - : 'cifier' - ELSE IF( CMN_LINE .EQ. 32 ) THEN - CARD = 'ENDAST_B= ''Axis '' / End of obj'// - : 'ect definition' - ELSE IF( CMN_LINE .EQ. 33 ) THEN - CARD = 'ENDAST_C= ''Frame '' / End of obj'// - : 'ect definition' - ELSE IF( CMN_LINE .EQ. 34 ) THEN - CARD = 'FRM2_A = '' '' / Frame numb'// - : 'er 2' - ELSE IF( CMN_LINE .EQ. 35 ) THEN - CARD = 'BEGAST_E= ''Frame '' / Coordinate'// - : ' system description' - ELSE IF( CMN_LINE .EQ. 36 ) THEN - CARD = 'TITLE_B = ''Pixel coordinates; first pixel at'// - : ' (-&''/ Title of coordinate system' - ELSE IF( CMN_LINE .EQ. 37 ) THEN - CARD = 'CONTINUE ''100.5,-200.5)''' - ELSE IF( CMN_LINE .EQ. 38 ) THEN - CARD = 'NAXES_B = 2 / Number of co'// - : 'ordinate axes' - ELSE IF( CMN_LINE .EQ. 39 ) THEN - CARD = 'DOMAIN_B= ''POLAR '' / Coordinate'// - : ' system domain' - ELSE IF( CMN_LINE .EQ. 40 ) THEN - CARD = 'AX1_B = '' '' / Axis numbe'// - : 'r 1' - ELSE IF( CMN_LINE .EQ. 41 ) THEN - CARD = 'BEGAST_F= ''Axis '' / Coordinate'// - : ' axis' - ELSE IF( CMN_LINE .EQ. 42 ) THEN - CARD = 'LABEL_C = ''Pixel coordinate 1'' / Axis Label' - ELSE IF( CMN_LINE .EQ. 43 ) THEN - CARD = 'SYMBOL_C= ''p1 '' / Axis symbo'// - : 'l' - ELSE IF( CMN_LINE .EQ. 44 ) THEN - CARD = 'UNIT_C = ''pixel '' / Axis units' - ELSE IF( CMN_LINE .EQ. 45 ) THEN - CARD = 'FORMAT_C= ''%3.1f '' / Format spe'// - : 'cifier' - ELSE IF( CMN_LINE .EQ. 46 ) THEN - CARD = 'ENDAST_D= ''Axis '' / End of obj'// - : 'ect definition' - ELSE IF( CMN_LINE .EQ. 47 ) THEN - CARD = 'AX2_B = '' '' / Axis numbe'// - : 'r 2' - ELSE IF( CMN_LINE .EQ. 48 ) THEN - CARD = 'BEGAST_G= ''Axis '' / Coordinate'// - : ' axis' - ELSE IF( CMN_LINE .EQ. 49 ) THEN - CARD = 'LABEL_D = ''Pixel coordinate 2'' / Axis Label' - ELSE IF( CMN_LINE .EQ. 50 ) THEN - CARD = 'SYMBOL_D= ''p2 '' / Axis symbo'// - : 'l' - ELSE IF( CMN_LINE .EQ. 51 ) THEN - CARD = 'UNIT_D = ''pixel '' / Axis units' - ELSE IF( CMN_LINE .EQ. 52 ) THEN - CARD = 'FORMAT_D= ''%3.1f '' / Format spe'// - : 'cifier' - ELSE IF( CMN_LINE .EQ. 53 ) THEN - CARD = 'ENDAST_E= ''Axis '' / End of obj'// - : 'ect definition' - ELSE IF( CMN_LINE .EQ. 54 ) THEN - CARD = 'ENDAST_F= ''Frame '' / End of obj'// - : 'ect definition' - ELSE IF( CMN_LINE .EQ. 55 ) THEN - CARD = 'MAP2_A = '' '' / Mapping be'// - : 'tween nodes 1 and 2' - ELSE IF( CMN_LINE .EQ. 56 ) THEN - CARD = 'BEGAST_H= ''CmpMap '' / Compound M'// - : 'apping' - ELSE IF( CMN_LINE .EQ. 57 ) THEN - CARD = 'NIN_A = 2 / Number of in'// - : 'put coordinates' - ELSE IF( CMN_LINE .EQ. 58 ) THEN - CARD = 'ISA_A = ''Mapping '' / Mapping be'// - : 'tween coordinate systems' - ELSE IF( CMN_LINE .EQ. 59 ) THEN - CARD = 'INVA_A = 1 / First Mappin'// - : 'g used in inverse direction' - ELSE IF( CMN_LINE .EQ. 60 ) THEN - CARD = 'INVB_A = 1 / Second Mappi'// - : 'ng used in inverse direction' - ELSE IF( CMN_LINE .EQ. 61 ) THEN - CARD = 'MAPA_A = '' '' / First comp'// - : 'onent Mapping' - ELSE IF( CMN_LINE .EQ. 62 ) THEN - CARD = 'BEGAST_I= ''MathMap '' / Transforma'// - : 'tion using mathematical functions' - ELSE IF( CMN_LINE .EQ. 63 ) THEN - CARD = 'NIN_B = 2 / Number of in'// - : 'put coordinates' - ELSE IF( CMN_LINE .EQ. 64 ) THEN - CARD = 'INVERT_A= 0 / Mapping not '// - : 'inverted' - ELSE IF( CMN_LINE .EQ. 65 ) THEN - CARD = 'ISA_B = ''Mapping '' / Mapping be'// - : 'tween coordinate systems' - ELSE IF( CMN_LINE .EQ. 66 ) THEN - CARD = 'FWD1_A = ''r=sqrt(x*x+y*y)'' / Forward fu'// - : 'nction 1' - ELSE IF( CMN_LINE .EQ. 67 ) THEN - CARD = 'FWD2_A = ''theta=atan2(y,x)'' / Forward fu'// - : 'nction 2' - ELSE IF( CMN_LINE .EQ. 68 ) THEN - CARD = 'INV1_A = ''x=r*cos(theta)'' / Inverse fu'// - : 'nction 1' - ELSE IF( CMN_LINE .EQ. 69 ) THEN - CARD = 'INV2_A = ''y=r*sin(theta)'' / Inverse fu'// - : 'nction 2' - ELSE IF( CMN_LINE .EQ. 70 ) THEN - CARD = 'SIMPFI_A= 1 / Forward-inve'// - : 'rse pairs may simplify' - ELSE IF( CMN_LINE .EQ. 71 ) THEN - CARD = 'SIMPIF_A= 1 / Inverse-forw'// - : 'ard pairs may simplify' - ELSE IF( CMN_LINE .EQ. 72 ) THEN - CARD = 'ENDAST_G= ''MathMap '' / End of obj'// - : 'ect definition' - ELSE IF( CMN_LINE .EQ. 73 ) THEN - CARD = 'MAPB_A = '' '' / Second com'// - : 'ponent Mapping' - ELSE IF( CMN_LINE .EQ. 74 ) THEN - CARD = 'BEGAST_J= ''WinMap '' / Map one wi'// - : 'ndow on to another' - ELSE IF( CMN_LINE .EQ. 75 ) THEN - CARD = 'NIN_C = 2 / Number of in'// - : 'put coordinates' - ELSE IF( CMN_LINE .EQ. 76 ) THEN - CARD = 'INVERT_B= 0 / Mapping not '// - : 'inverted' - ELSE IF( CMN_LINE .EQ. 77 ) THEN - CARD = 'ISA_C = ''Mapping '' / Mapping be'// - : 'tween coordinate systems' - ELSE IF( CMN_LINE .EQ. 78 ) THEN - CARD = 'SFT1_A = -101.5 / Shift for ax'// - : 'is 1' - ELSE IF( CMN_LINE .EQ. 79 ) THEN - CARD = 'SFT2_A = -201.5 / Shift for ax'// - : 'is 2' - ELSE IF( CMN_LINE .EQ. 80 ) THEN - CARD = 'ENDAST_H= ''WinMap '' / End of obj'// - : 'ect definition' - ELSE IF( CMN_LINE .EQ. 81 ) THEN - CARD = 'ENDAST_I= ''CmpMap '' / End of obj'// - : 'ect definition' - ELSE IF( CMN_LINE .EQ. 82 ) THEN - CARD = 'ENDAST_J= ''FrameSet'' / End of obj'// - : 'ect definition' - ELSE IF( CMN_LINE .EQ. 83 ) THEN - CARD = 'COMMENT AST .................................'// - : '...............................' - ELSE IF( CMN_LINE .EQ. 84 ) THEN - CARD = 'AST' - ELSE IF( CMN_LINE .EQ. 85 ) THEN - CARD = 'COMMENT AST End of AST data for'// - : ' FrameSet object' - ELSE IF( CMN_LINE .EQ. 86 ) THEN - CARD = 'AST' - ELSE IF( CMN_LINE .EQ. 87 ) THEN - CARD = 'COMMENT AST ---------------------------------'// - : '-------------------------------' - ELSE IF( CMN_LINE .EQ. 88 ) THEN - CARD = 'AST' - REG_SOURCE = 0 - ELSE - REG_SOURCE = 0 - END IF - - -* FITS headers from scp.head (Tue Jan 29 15:17:50 2002) - ELSE IF( CMN_FTEST .EQ. 3 ) THEN - IF( CMN_LINE .EQ. 1 ) THEN - CARD = 'SIMPLE = T / file does co'// - : 'nform to FITS standard' - ELSE IF( CMN_LINE .EQ. 2 ) THEN - CARD = 'BITPIX = 16 / number of bi'// - : 'ts per data pixel' - ELSE IF( CMN_LINE .EQ. 3 ) THEN - CARD = 'NAXIS = 2 / number of da'// - : 'ta axes' - ELSE IF( CMN_LINE .EQ. 4 ) THEN - CARD = 'NAXIS1 = 1787 / length of da'// - : 'ta axis 1' - ELSE IF( CMN_LINE .EQ. 5 ) THEN - CARD = 'NAXIS2 = 447 / length of da'// - : 'ta axis 2' - ELSE IF( CMN_LINE .EQ. 6 ) THEN - CARD = 'EXTEND = T / FITS dataset'// - : ' may contain extensions' - ELSE IF( CMN_LINE .EQ. 7 ) THEN - CARD = 'COMMENT FITS (Flexible Image Transport Syst'// - : 'em) format defined in Astronomy and' - ELSE IF( CMN_LINE .EQ. 8 ) THEN - CARD = 'COMMENT Astrophysics Supplement Series v44/'// - : 'p363, v44/p371, v73/p359, v73/p365.' - ELSE IF( CMN_LINE .EQ. 9 ) THEN - CARD = 'COMMENT Contact the NASA Science Office of '// - : 'Standards and Technology for the' - ELSE IF( CMN_LINE .EQ. 10 ) THEN - CARD = 'COMMENT FITS Definition document #100 and o'// - : 'ther FITS information.' - ELSE IF( CMN_LINE .EQ. 11 ) THEN - CARD = 'PLATENUM= ''3665 '' / Plate numb'// - : 'er' - ELSE IF( CMN_LINE .EQ. 12 ) THEN - CARD = 'EMULSION= ''IIIaJ '' / Kodak emul'// - : 'sion type' - ELSE IF( CMN_LINE .EQ. 13 ) THEN - CARD = 'FILTER = ''GG395 '' / Schott gla'// - : 'ss filter type' - ELSE IF( CMN_LINE .EQ. 14 ) THEN - CARD = 'PLTSCALE= ''67.14 '' / [arcsec/mm'// - : '] plate scale' - ELSE IF( CMN_LINE .EQ. 15 ) THEN - CARD = 'FIELDNUM= ''1 '' / Sky survey'// - : ' field number' - ELSE IF( CMN_LINE .EQ. 16 ) THEN - CARD = 'EPOCH = 1.977780E+03 / Epoch of obs'// - : 'ervation' - ELSE IF( CMN_LINE .EQ. 17 ) THEN - CARD = 'DATE-OBS= ''1977-10-11'' / [yyyy-mm-d'// - : 'd] UT date of observation' - ELSE IF( CMN_LINE .EQ. 18 ) THEN - CARD = 'TELESCOP= ''UKST '' / Telescope '// - : 'on which the plate was taken' - ELSE IF( CMN_LINE .EQ. 19 ) THEN - CARD = 'TELETYPE= ''SCHM '' / Type of te'// - : 'lescope' - ELSE IF( CMN_LINE .EQ. 20 ) THEN - CARD = 'SITELAT = -5.458410576565E-01 / [radians] la'// - : 'titude of telescope' - ELSE IF( CMN_LINE .EQ. 21 ) THEN - CARD = 'SITELONG= 2.601766194458E+00 / [radians] lo'// - : 'ngitude of telescope' - ELSE IF( CMN_LINE .EQ. 22 ) THEN - CARD = 'LST = ''00:20 '' / [hh:mm] lo'// - : 'cal sidereal time at start of obs' - ELSE IF( CMN_LINE .EQ. 23 ) THEN - CARD = 'MJD-OBS = 4.342657300880E+04 / Modified Jul'// - : 'ian Date of observation' - ELSE IF( CMN_LINE .EQ. 24 ) THEN - CARD = 'INSTRUME= ''SuperCOSMOS I'' / Measuring '// - : 'machine' - ELSE IF( CMN_LINE .EQ. 25 ) THEN - CARD = 'DATE-MES= ''2000-11-04'' / [yyyy-mm-d'// - : 'd] Date of this plate measurement' - ELSE IF( CMN_LINE .EQ. 26 ) THEN - CARD = 'RADECSYS= ''FK5 '' / Reference '// - : 'frame for RA/DEC in original file' - ELSE IF( CMN_LINE .EQ. 27 ) THEN - CARD = 'NHKLINES= 146 / Number of li'// - : 'nes from house-keeping file' - ELSE IF( CMN_LINE .EQ. 28 ) THEN - CARD = 'HKLIN001= ''JOB.JOBNO UKJ001'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 29 ) THEN - CARD = 'HKLIN002= ''JOB.DATE-MES 2000:11:'// - : '04'' /' - ELSE IF( CMN_LINE .EQ. 30 ) THEN - CARD = 'HKLIN003= ''JOB.TIME 12:51:09'// - : ''' /' - ELSE IF( CMN_LINE .EQ. 31 ) THEN - CARD = 'HKLIN004= ''JOB.INSTRUME SuperCOS'// - : 'MOS I'' /' - ELSE IF( CMN_LINE .EQ. 32 ) THEN - CARD = 'HKLIN005= ''JOB.ORIGIN Royal Ob'// - : 'servatory Edinburgh'' /' - ELSE IF( CMN_LINE .EQ. 33 ) THEN - CARD = 'HKLIN006= ''JOB.SOFTWARE /home/sc'// - : 'osdev/v033'' /' - ELSE IF( CMN_LINE .EQ. 34 ) THEN - CARD = 'HKLIN007= ''JOB.OPERATOR ebt'' /' - ELSE IF( CMN_LINE .EQ. 35 ) THEN - CARD = 'HKLIN008= ''JOB.USER htm'' /' - ELSE IF( CMN_LINE .EQ. 36 ) THEN - CARD = 'HKLIN009= ''JOB.USERREF NONE'' /' - ELSE IF( CMN_LINE .EQ. 37 ) THEN - CARD = 'HKLIN010= ''JOB.UORIGIN ROE'' /' - ELSE IF( CMN_LINE .EQ. 38 ) THEN - CARD = 'HKLIN011= ''JOB.UCOUNTRY uk'' /' - ELSE IF( CMN_LINE .EQ. 39 ) THEN - CARD = 'HKLIN012= ''JOB.COMMENT Digital '// - : 'catalogue of the Sky'' /' - ELSE IF( CMN_LINE .EQ. 40 ) THEN - CARD = 'HKLIN013= ''JOB.IAM_FILE iam.srt''// - : '' /' - ELSE IF( CMN_LINE .EQ. 41 ) THEN - CARD = 'HKLIN014= ''PLATE.TELESCOP UKST'' /' - ELSE IF( CMN_LINE .EQ. 42 ) THEN - CARD = 'HKLIN015= ''PLATE.TELTYPE SCHM'' /' - ELSE IF( CMN_LINE .EQ. 43 ) THEN - CARD = 'HKLIN016= ''PLATE.PLATE 3665'' /' - ELSE IF( CMN_LINE .EQ. 44 ) THEN - CARD = 'HKLIN017= ''PLATE.MATERIAL 3mm glas'// - : 's'' /' - ELSE IF( CMN_LINE .EQ. 45 ) THEN - CARD = 'HKLIN018= ''PLATE.EMULSION IIIaJ'' '// - : '/' - ELSE IF( CMN_LINE .EQ. 46 ) THEN - CARD = 'HKLIN019= ''PLATE.FILTER GG395'' '// - : '/' - ELSE IF( CMN_LINE .EQ. 47 ) THEN - CARD = 'HKLIN020= ''PLATE.PSCALE 67.14'' '// - : '/' - ELSE IF( CMN_LINE .EQ. 48 ) THEN - CARD = 'HKLIN021= ''PLATE.FIELD 1'' /' - ELSE IF( CMN_LINE .EQ. 49 ) THEN - CARD = 'HKLIN022= ''PLATE.RA_PNT 0'' /' - ELSE IF( CMN_LINE .EQ. 50 ) THEN - CARD = 'HKLIN023= ''PLATE.DEC_PNT -90'' /' - ELSE IF( CMN_LINE .EQ. 51 ) THEN - CARD = 'HKLIN024= ''PLATE.RADECSYS FK4'' /' - ELSE IF( CMN_LINE .EQ. 52 ) THEN - CARD = 'HKLIN025= ''PLATE.EQUINOX 1950'' /' - ELSE IF( CMN_LINE .EQ. 53 ) THEN - CARD = 'HKLIN026= ''PLATE.TIMESYS BESSELIA'// - : 'N'' /' - ELSE IF( CMN_LINE .EQ. 54 ) THEN - CARD = 'HKLIN027= ''PLATE.EPOCH 1977.78''// - : '' /' - ELSE IF( CMN_LINE .EQ. 55 ) THEN - CARD = 'HKLIN028= ''PLATE.EXPOSURE 75'' /' - ELSE IF( CMN_LINE .EQ. 56 ) THEN - CARD = 'HKLIN029= ''PLATE.UTDATE 771011'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 57 ) THEN - CARD = 'HKLIN030= ''PLATE.LST 0020'' /' - ELSE IF( CMN_LINE .EQ. 58 ) THEN - CARD = 'HKLIN031= ''PLATE.MJD 43426.57'// - : '3008796'' /' - ELSE IF( CMN_LINE .EQ. 59 ) THEN - CARD = 'HKLIN032= ''PLATE.TELLAT -0.54584'// - : '105765654'' /' - ELSE IF( CMN_LINE .EQ. 60 ) THEN - CARD = 'HKLIN033= ''PLATE.TELLONG 2.601766'// - : '1944583'' /' - ELSE IF( CMN_LINE .EQ. 61 ) THEN - CARD = 'HKLIN034= ''PLATE.TELHT 1145'' /' - ELSE IF( CMN_LINE .EQ. 62 ) THEN - CARD = 'HKLIN035= ''PLATE.TEMP 273.155''// - : '' /' - ELSE IF( CMN_LINE .EQ. 63 ) THEN - CARD = 'HKLIN036= ''PLATE.ATMOSP 1013.25''// - : '' /' - ELSE IF( CMN_LINE .EQ. 64 ) THEN - CARD = 'HKLIN037= ''PLATE.HUMID 0.5'' /' - ELSE IF( CMN_LINE .EQ. 65 ) THEN - CARD = 'HKLIN038= ''PLATE.WAVE 4500'' /' - ELSE IF( CMN_LINE .EQ. 66 ) THEN - CARD = 'HKLIN039= ''PLATE.TROPL 0.0065'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 67 ) THEN - CARD = 'HKLIN040= ''CALIBRATION.CALTYPE SPLINE'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 68 ) THEN - CARD = 'HKLIN041= ''CALIBRATION.STEPWEDG KPNO'' /' - ELSE IF( CMN_LINE .EQ. 69 ) THEN - CARD = 'HKLIN042= ''CALIBRATION.NSTEPS 8'' /' - ELSE IF( CMN_LINE .EQ. 70 ) THEN - CARD = 'HKLIN043= ''MEASUREMENT.ORIENTAT news'' /' - ELSE IF( CMN_LINE .EQ. 71 ) THEN - CARD = 'HKLIN044= ''MEASUREMENT.EMULPOS UP'' /' - ELSE IF( CMN_LINE .EQ. 72 ) THEN - CARD = 'HKLIN045= ''MEASUREMENT.SCANFILT 14'' /' - ELSE IF( CMN_LINE .EQ. 73 ) THEN - CARD = 'HKLIN046= ''MEASUREMENT.SOSP 552'' /' - ELSE IF( CMN_LINE .EQ. 74 ) THEN - CARD = 'HKLIN047= ''MEASUREMENT.STEPSIZE 10'' /' - ELSE IF( CMN_LINE .EQ. 75 ) THEN - CARD = 'HKLIN048= ''MEASUREMENT.SCANLEN 1152'' /' - ELSE IF( CMN_LINE .EQ. 76 ) THEN - CARD = 'HKLIN049= ''MEASUREMENT.A-XMIN 1622000''// - : '' /' - ELSE IF( CMN_LINE .EQ. 77 ) THEN - CARD = 'HKLIN050= ''MEASUREMENT.A-YMIN 1622000''// - : '' /' - ELSE IF( CMN_LINE .EQ. 78 ) THEN - CARD = 'HKLIN051= ''MEASUREMENT.A-XMAX 33878000'// - : ''' /' - ELSE IF( CMN_LINE .EQ. 79 ) THEN - CARD = 'HKLIN052= ''MEASUREMENT.A-YMAX 33878000'// - : ''' /' - ELSE IF( CMN_LINE .EQ. 80 ) THEN - CARD = 'HKLIN053= ''MEASUREMENT.X_PNT 17500000'// - : ''' /' - ELSE IF( CMN_LINE .EQ. 81 ) THEN - CARD = 'HKLIN054= ''MEASUREMENT.Y_PNT 18000000'// - : ''' /' - ELSE IF( CMN_LINE .EQ. 82 ) THEN - CARD = 'HKLIN055= ''ANALYSIS.NPARAMS 32'' /' - ELSE IF( CMN_LINE .EQ. 83 ) THEN - CARD = 'HKLIN056= ''ANALYSIS.AREACUT 8'' /' - ELSE IF( CMN_LINE .EQ. 84 ) THEN - CARD = 'HKLIN057= ''ANALYSIS.AP-PARAM 1.07'' /' - ELSE IF( CMN_LINE .EQ. 85 ) THEN - CARD = 'HKLIN058= ''DEBLEND.DB-PARAM 1.05'' /' - ELSE IF( CMN_LINE .EQ. 86 ) THEN - CARD = 'HKLIN059= ''DEBLEND.DB-AMIN 16'' /' - ELSE IF( CMN_LINE .EQ. 87 ) THEN - CARD = 'HKLIN060= ''DEBLEND.DB-AMAX 100000'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 88 ) THEN - CARD = 'HKLIN061= ''DEBLEND.DB-ACUT 8'' /' - ELSE IF( CMN_LINE .EQ. 89 ) THEN - CARD = 'HKLIN062= ''DEBLEND.DB-LEVEL 16'' /' - ELSE IF( CMN_LINE .EQ. 90 ) THEN - CARD = 'HKLIN063= ''DEBLEND.SELECT PARENT+C'// - : 'HILD'' /' - ELSE IF( CMN_LINE .EQ. 91 ) THEN - CARD = 'HKLIN064= ''SKY.SKYSQUAR 64'' /' - ELSE IF( CMN_LINE .EQ. 92 ) THEN - CARD = 'HKLIN065= ''SKY.SKYDEFN MEDIAN'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 93 ) THEN - CARD = 'HKLIN066= ''SKY.SKYFILTR bdkjunk''// - : '' /' - ELSE IF( CMN_LINE .EQ. 94 ) THEN - CARD = 'HKLIN067= ''SKY.F-THRESH 8'' /' - ELSE IF( CMN_LINE .EQ. 95 ) THEN - CARD = 'HKLIN068= ''SKY.F-SCLEN 4'' /' - ELSE IF( CMN_LINE .EQ. 96 ) THEN - CARD = 'HKLIN069= ''THRESHOLDING.PCUT 10'' /' - ELSE IF( CMN_LINE .EQ. 97 ) THEN - CARD = 'HKLIN070= ''IAMQC.AREAMIN 8'' /' - ELSE IF( CMN_LINE .EQ. 98 ) THEN - CARD = 'HKLIN071= ''IAMQC.AREAMAX 77346'' '// - : '/' - ELSE IF( CMN_LINE .EQ. 99 ) THEN - CARD = 'HKLIN072= ''IAMQC.MINMAG -30515'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 100 ) THEN - CARD = 'HKLIN073= ''IAMQC.MAXMAG -17954'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 101 ) THEN - CARD = 'HKLIN074= ''IAMQC.MINELL 0.000415'// - : '6232'' /' - ELSE IF( CMN_LINE .EQ. 102 ) THEN - CARD = 'HKLIN075= ''IAMQC.MAXELL 1'' /' - ELSE IF( CMN_LINE .EQ. 103 ) THEN - CARD = 'HKLIN076= ''IAMQC.MODELL 0.14'' /' - ELSE IF( CMN_LINE .EQ. 104 ) THEN - CARD = 'HKLIN077= ''IAMQC.MODOR 91'' /' - ELSE IF( CMN_LINE .EQ. 105 ) THEN - CARD = 'HKLIN078= ''IAMQC.MIDELL 0.21'' /' - ELSE IF( CMN_LINE .EQ. 106 ) THEN - CARD = 'HKLIN079= ''IAMQC.MIDOR 93'' /' - ELSE IF( CMN_LINE .EQ. 107 ) THEN - CARD = 'HKLIN080= ''IAMQC.MEANELL 0.246703'// - : '7'' /' - ELSE IF( CMN_LINE .EQ. 108 ) THEN - CARD = 'HKLIN081= ''IAMQC.MEANOR 91.63474'// - : ''' /' - ELSE IF( CMN_LINE .EQ. 109 ) THEN - CARD = 'HKLIN082= ''IAMQC.NUMOBJ 556985'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 110 ) THEN - CARD = 'HKLIN083= ''IAMQC.PARENTS 486656'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 111 ) THEN - CARD = 'HKLIN084= ''IAMQC.RANGING TRUE'' /' - ELSE IF( CMN_LINE .EQ. 112 ) THEN - CARD = 'HKLIN085= ''IAMQC.LANE_1 15571'' '// - : '/' - ELSE IF( CMN_LINE .EQ. 113 ) THEN - CARD = 'HKLIN086= ''IAMQC.LANE_2 33207'' '// - : '/' - ELSE IF( CMN_LINE .EQ. 114 ) THEN - CARD = 'HKLIN087= ''IAMQC.LANE_3 51478'' '// - : '/' - ELSE IF( CMN_LINE .EQ. 115 ) THEN - CARD = 'HKLIN088= ''IAMQC.LANE_4 69944'' '// - : '/' - ELSE IF( CMN_LINE .EQ. 116 ) THEN - CARD = 'HKLIN089= ''IAMQC.LANE_5 89236'' '// - : '/' - ELSE IF( CMN_LINE .EQ. 117 ) THEN - CARD = 'HKLIN090= ''IAMQC.LANE_6 108416'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 118 ) THEN - CARD = 'HKLIN091= ''IAMQC.LANE_7 127481'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 119 ) THEN - CARD = 'HKLIN092= ''IAMQC.LANE_8 146699'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 120 ) THEN - CARD = 'HKLIN093= ''IAMQC.LANE_9 166380'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 121 ) THEN - CARD = 'HKLIN094= ''IAMQC.LANE_10 186126'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 122 ) THEN - CARD = 'HKLIN095= ''IAMQC.LANE_11 205946'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 123 ) THEN - CARD = 'HKLIN096= ''IAMQC.LANE_12 225915'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 124 ) THEN - CARD = 'HKLIN097= ''IAMQC.LANE_13 245926'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 125 ) THEN - CARD = 'HKLIN098= ''IAMQC.LANE_14 266574'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 126 ) THEN - CARD = 'HKLIN099= ''IAMQC.LANE_15 287150'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 127 ) THEN - CARD = 'HKLIN100= ''IAMQC.LANE_16 308087'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 128 ) THEN - CARD = 'HKLIN101= ''IAMQC.LANE_17 328830'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 129 ) THEN - CARD = 'HKLIN102= ''IAMQC.LANE_18 350253'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 130 ) THEN - CARD = 'HKLIN103= ''IAMQC.LANE_19 370738'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 131 ) THEN - CARD = 'HKLIN104= ''IAMQC.LANE_20 391722'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 132 ) THEN - CARD = 'HKLIN105= ''IAMQC.LANE_21 412801'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 133 ) THEN - CARD = 'HKLIN106= ''IAMQC.LANE_22 433795'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 134 ) THEN - CARD = 'HKLIN107= ''IAMQC.LANE_23 454383'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 135 ) THEN - CARD = 'HKLIN108= ''IAMQC.LANE_24 474711'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 136 ) THEN - CARD = 'HKLIN109= ''IAMQC.LANE_25 495108'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 137 ) THEN - CARD = 'HKLIN110= ''IAMQC.LANE_26 515755'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 138 ) THEN - CARD = 'HKLIN111= ''IAMQC.LANE_27 536499'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 139 ) THEN - CARD = 'HKLIN112= ''IAMQC.LANE_28 556985'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 140 ) THEN - CARD = 'HKLIN113= ''XYTORADEC.STARCAT /sdata/s'// - : 'cos/refcats/tycho2.FIT'' /' - ELSE IF( CMN_LINE .EQ. 141 ) THEN - CARD = 'HKLIN114= ''XYTORADEC.BRIGHTLIM 9'' /' - ELSE IF( CMN_LINE .EQ. 142 ) THEN - CARD = 'HKLIN115= ''XYTORADEC.C-EQUIN 2000'' /' - ELSE IF( CMN_LINE .EQ. 143 ) THEN - CARD = 'HKLIN116= ''XYTORADEC.C-EQTSYS JULIAN'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 144 ) THEN - CARD = 'HKLIN117= ''XYTORADEC.C-EPOCH 2000'' /' - ELSE IF( CMN_LINE .EQ. 145 ) THEN - CARD = 'HKLIN118= ''XYTORADEC.C-EPTSYS JULIAN'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 146 ) THEN - CARD = 'HKLIN119= ''XYTORADEC.R-EQUIN 2000'' /' - ELSE IF( CMN_LINE .EQ. 147 ) THEN - CARD = 'HKLIN120= ''XYTORADEC.R-TSYS JULIAN'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 148 ) THEN - CARD = 'HKLIN121= ''XYTORADEC.MAXITER 5000'' /' - ELSE IF( CMN_LINE .EQ. 149 ) THEN - CARD = 'HKLIN122= ''XYTORADEC.RCRITINI 500000'''// - : ' /' - ELSE IF( CMN_LINE .EQ. 150 ) THEN - CARD = 'HKLIN123= ''XYTORADEC.RCRITABS 50000'' '// - : '/' - ELSE IF( CMN_LINE .EQ. 151 ) THEN - CARD = 'HKLIN124= ''XYTORADEC.RCRITREL 1'' /' - ELSE IF( CMN_LINE .EQ. 152 ) THEN - CARD = 'HKLIN125= ''XYTORADEC.RCRITFIN 3'' /' - ELSE IF( CMN_LINE .EQ. 153 ) THEN - CARD = 'HKLIN126= ''XYTORADEC.HARDCOPY /scos1/s'// - : 'cos/UKJ001/UKJ001.ps'' /' - ELSE IF( CMN_LINE .EQ. 154 ) THEN - CARD = 'HKLIN127= ''XYTORADEC.REFSMULT 5'' /' - ELSE IF( CMN_LINE .EQ. 155 ) THEN - CARD = 'HKLIN128= ''XYTORADEC.RESDMULT 1000'' /' - ELSE IF( CMN_LINE .EQ. 156 ) THEN - CARD = 'HKLIN129= ''XYTORADEC.RACOL RA'' /' - ELSE IF( CMN_LINE .EQ. 157 ) THEN - CARD = 'HKLIN130= ''XYTORADEC.DECOL DEC'' /' - ELSE IF( CMN_LINE .EQ. 158 ) THEN - CARD = 'HKLIN131= ''XYTORADEC.RAPMCOL PMRA'' /' - ELSE IF( CMN_LINE .EQ. 159 ) THEN - CARD = 'HKLIN132= ''XYTORADEC.DECPMCOL PMDE'' /' - ELSE IF( CMN_LINE .EQ. 160 ) THEN - CARD = 'HKLIN133= ''XYTORADEC.PLXCOL NONE'' /' - ELSE IF( CMN_LINE .EQ. 161 ) THEN - CARD = 'HKLIN134= ''XYTORADEC.RVCOL NONE'' /' - ELSE IF( CMN_LINE .EQ. 162 ) THEN - CARD = 'HKLIN135= ''XYTORADEC.MAGCOL VT'' /' - ELSE IF( CMN_LINE .EQ. 163 ) THEN - CARD = 'HKLIN136= ''XYTORADEC.STARSC 2374'' /' - ELSE IF( CMN_LINE .EQ. 164 ) THEN - CARD = 'HKLIN137= ''XYTORADEC.STARSU 1727'' /' - ELSE IF( CMN_LINE .EQ. 165 ) THEN - CARD = 'HKLIN138= ''XYTORADEC.COEFFS_1 17.64034'// - : '3856524'' /' - ELSE IF( CMN_LINE .EQ. 166 ) THEN - CARD = 'HKLIN139= ''XYTORADEC.COEFFS_2 -260.441'// - : '51995641'' /' - ELSE IF( CMN_LINE .EQ. 167 ) THEN - CARD = 'HKLIN140= ''XYTORADEC.COEFFS_3 -163.091'// - : '55572601'' /' - ELSE IF( CMN_LINE .EQ. 168 ) THEN - CARD = 'HKLIN141= ''XYTORADEC.COEFFS_4 17.50423'// - : '0442205'' /' - ELSE IF( CMN_LINE .EQ. 169 ) THEN - CARD = 'HKLIN142= ''XYTORADEC.COEFFS_5 -163.086'// - : '76953832'' /' - ELSE IF( CMN_LINE .EQ. 170 ) THEN - CARD = 'HKLIN143= ''XYTORADEC.COEFFS_6 260.4881'// - : '7907668'' /' - ELSE IF( CMN_LINE .EQ. 171 ) THEN - CARD = 'HKLIN144= ''XYTORADEC.DISTR -0.33333'// - : '333333333'' /' - ELSE IF( CMN_LINE .EQ. 172 ) THEN - CARD = 'HKLIN145= ''XYTORADEC.RA_PNT 0.549249'// - : '96662137'' /' - ELSE IF( CMN_LINE .EQ. 173 ) THEN - CARD = 'HKLIN146= ''XYTORADEC.DEC_PNT -1.56849'// - : '31501781'' /' - ELSE IF( CMN_LINE .EQ. 174 ) THEN - CARD = 'HISTORY = ''SuperCOSMOS image analysis and ma'// - : 'pping mode (IAM and MM)'' /' - ELSE IF( CMN_LINE .EQ. 175 ) THEN - CARD = 'HISTORY = ''data written by xydcomp_ss.'' /' - ELSE IF( CMN_LINE .EQ. 176 ) THEN - CARD = 'HISTORY = ''Any questions/comments/suggestion'// - : 's/bug reports should be sent'' /' - ELSE IF( CMN_LINE .EQ. 177 ) THEN - CARD = 'HISTORY = ''to N.Hambly@roe.ac.uk'' /' - ELSE IF( CMN_LINE .EQ. 178 ) THEN - CARD = 'ASTSIGX = 3.700000E-01 / [arcsec] std'// - : '. dev. of astrometric fit in X' - ELSE IF( CMN_LINE .EQ. 179 ) THEN - CARD = 'ASTSIGY = 3.800000E-01 / [arcsec] std'// - : '. dev. of astrometric fit in Y' - ELSE IF( CMN_LINE .EQ. 180 ) THEN - CARD = 'CRVAL1 = 0.000000000000E+00 / Axis 1 refer'// - : 'ence value' - ELSE IF( CMN_LINE .EQ. 181 ) THEN - CARD = 'CRPIX1 = 8.936318379289E+02 / Axis 1 pixel'// - : ' value' - ELSE IF( CMN_LINE .EQ. 182 ) THEN - CARD = 'CTYPE1 = ''RA---TAN'' / Quantity r'// - : 'epresented by axis 1' - ELSE IF( CMN_LINE .EQ. 183 ) THEN - CARD = 'CRVAL2 = -9.000000018364E+01 / Axis 2 refer'// - : 'ence value' - ELSE IF( CMN_LINE .EQ. 184 ) THEN - CARD = 'CRPIX2 = 2.238380193875E+02 / Axis 2 pixel'// - : ' value' - ELSE IF( CMN_LINE .EQ. 185 ) THEN - CARD = 'CTYPE2 = ''DEC--TAN'' / Quantity r'// - : 'epresented by axis 2' - ELSE IF( CMN_LINE .EQ. 186 ) THEN - CARD = 'CD1_1 = -1.864642639667E-04 / Co-ordinate '// - : 'transformation matrix' - ELSE IF( CMN_LINE .EQ. 187 ) THEN - CARD = 'CD1_2 = -9.188369023766E-07 / Co-ordinate '// - : 'transformation matrix' - ELSE IF( CMN_LINE .EQ. 188 ) THEN - CARD = 'CD2_1 = -1.038232462415E-06 / Co-ordinate '// - : 'transformation matrix' - ELSE IF( CMN_LINE .EQ. 189 ) THEN - CARD = 'CD2_2 = 1.866269837741E-04 / Co-ordinate '// - : 'transformation matrix' - ELSE IF( CMN_LINE .EQ. 190 ) THEN - CARD = 'CDELT1 = -1.864665278217E-04 / DEPRECATED -'// - : ' Increment per pixel on axis 1' - ELSE IF( CMN_LINE .EQ. 191 ) THEN - CARD = 'CDELT2 = 1.866298716692E-04 / DEPRECATED -'// - : ' Increment per pixel on axis 2' - ELSE IF( CMN_LINE .EQ. 192 ) THEN - CARD = 'PC001001= 9.999878591881E-01 / DEPRECATED -'// - : ' Axis rotation matrix' - ELSE IF( CMN_LINE .EQ. 193 ) THEN - CARD = 'PC001002= 4.927623810613E-03 / DEPRECATED -'// - : ' Axis rotation matrix' - ELSE IF( CMN_LINE .EQ. 194 ) THEN - CARD = 'PC002001= -5.563056187788E-03 / DEPRECATED -'// - : ' Axis rotation matrix' - ELSE IF( CMN_LINE .EQ. 195 ) THEN - CARD = 'PC002002= 9.999845260832E-01 / DEPRECATED -'// - : ' Axis rotation matrix' - ELSE IF( CMN_LINE .EQ. 196 ) THEN - CARD = 'CROTA2 = 3.005532298491E-01 / DEPRECATED -'// - : ' rotation of axis 2' - ELSE IF( CMN_LINE .EQ. 197 ) THEN - CARD = 'EQUINOX = 2.000000E+03 / Julian refer'// - : 'ence frame equinox' - ELSE IF( CMN_LINE .EQ. 198 ) THEN - CARD = 'DATATYPE= ''INTEGER*2'' / Type of da'// - : 'ta' - ELSE IF( CMN_LINE .EQ. 199 ) THEN - CARD = 'DATUNITS= ''DENSITY '' / Units: tra'// - : 'nsmission, density or intensity' - ELSE IF( CMN_LINE .EQ. 200 ) THEN - CARD = 'XPIXELSZ= 9.997114974000E+00 / [microns] X '// - : 'pixel size' - ELSE IF( CMN_LINE .EQ. 201 ) THEN - CARD = 'YPIXELSZ= 1.000000000000E+01 / [microns] Y '// - : 'pixel size' - ELSE IF( CMN_LINE .EQ. 202 ) THEN - CARD = 'OBJCTRA = '' 0 0 0.000'' / Centre Rig'// - : 'ht Ascension (J2000)' - ELSE IF( CMN_LINE .EQ. 203 ) THEN - CARD = 'OBJCTDEC= ''-90 0 0.00'' / Centre Dec'// - : 'lination (J2000)' - ELSE IF( CMN_LINE .EQ. 204 ) THEN - CARD = 'OBJCTX = 1.636863183793E+04 / [pixels] Cen'// - : 'tre X on plate' - ELSE IF( CMN_LINE .EQ. 205 ) THEN - CARD = 'OBJCTY = 1.474083801939E+04 / [pixels] Cen'// - : 'tre Y on plate' - ELSE IF( CMN_LINE .EQ. 206 ) THEN - CARD = 'END' - REG_SOURCE = 0 - ELSE - REG_SOURCE = 0 - END IF - - -* Insert new header code here.... (create new header code using script -* "make_regtest" in the AST development archive). - ELSE - REG_SOURCE = 0 - STATUS = SAI__ERROR - WRITE(*,'(A,I2)') 'REG_SOURCE: No such test: ',CMN_FTEST - END IF - - CMN_LINE = CMN_LINE + 1 - - END - - diff --git a/ast/ast_tester/regression.out b/ast/ast_tester/regression.out deleted file mode 100644 index 7fcaa9c..0000000 --- a/ast/ast_tester/regression.out +++ /dev/null @@ -1,7630 +0,0 @@ - Begin FitsChan # I/O channels to FITS files - Card = 1 # Index of current card -# Encod = "NATIVE" # Encoding system -# FitsDg = 15 # No. of digits for floating point values -# DfB1950 = 1 # Default to FK4 B1950 -# CdMat = 0 # Use PC matrix -# CarLin = 0 # Use full FITS-WCS CAR projections -# Iwc = 0 # Do not include an IWC Frame -# Warn = "Tnx Zpx BadCel BadMat BadCTYPE" # Warnings to be reported - Nm1 = "NAXIS" # FITS keyword name - Ty1 = "integer" # FITS keyword data type - Dt1 = 1 # FITS keyword value - Nm2 = "NAXIS1" # FITS keyword name - Ty2 = "integer" # FITS keyword data type - Dt2 = 100 # FITS keyword value - Nm3 = "CTYPE1" # FITS keyword name - Ty3 = "string" # FITS keyword data type - Dt3 = "fred" # FITS keyword value - Nm4 = "CDELT1" # FITS keyword name - Ty4 = "floating point" # FITS keyword data type - Dt4 = 0 # FITS keyword value - Nm5 = "CRPIX1" # FITS keyword name - Ty5 = "integer" # FITS keyword data type - Dt5 = 50 # FITS keyword value - Nm6 = "CUNIT1" # FITS keyword name - Ty6 = "string" # FITS keyword data type - Dt6 = "GHz" # FITS keyword value - Nm7 = " " # FITS keyword name - Ty7 = "comment" # FITS keyword data type - End FitsChan - Begin FrameSet # Set of inter-related coordinate systems -# Title = "IAU (1958) galactic coordinates; zenithal equal area projection" # Title of coordinate system -# Naxes = 2 # Number of coordinate axes -# Domain = "SKY" # Coordinate system domain -# Epoch = 1950 # Besselian epoch of observation -# Lbl1 = "Galactic longitude" # Label for axis 1 -# Lbl2 = "Galactic latitude" # Label for axis 2 -# System = "GALACTIC" # Coordinate system type -# Uni1 = "degrees" # Units for axis 1 -# Uni2 = "degrees" # Units for axis 2 -# Bot2 = -1.5707963267949 # Lowest legal axis value -# Top2 = 1.5707963267949 # Highest legal axis value - IsA Frame # Coordinate system description - Nframe = 2 # Number of Frames in FrameSet - Base = 1 # Index of base Frame - Currnt = 2 # Index of current Frame - Lnk2 = 1 # Node 2 is derived from node 1 - Frm1 = # Frame number 1 - Begin Frame # Coordinate system description - Title = "Pixel Coordinates" # Title of coordinate system - Naxes = 2 # Number of coordinate axes - Domain = "GRID" # Coordinate system domain -# Lbl1 = "Pixel axis 1" # Label for axis 1 -# Lbl2 = "Pixel axis 2" # Label for axis 2 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Pixel axis 1" # Axis Label - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Pixel axis 2" # Axis Label - End Axis - End Frame - Frm2 = # Frame number 2 - Begin SkyFrame # Description of celestial coordinate system - Ident = " " # Permanent Object identification string - IsA Object # AST Object -# Title = "IAU (1958) galactic coordinates; zenithal equal area projection" # Title of coordinate system - Naxes = 2 # Number of coordinate axes -# Domain = "SKY" # Coordinate system domain - Epoch = 1950 # Besselian epoch of observation -# Lbl1 = "Galactic longitude" # Label for axis 1 -# Lbl2 = "Galactic latitude" # Label for axis 2 - System = "GALACTIC" # Coordinate system type -# Uni1 = "degrees" # Units for axis 1 -# Uni2 = "degrees" # Units for axis 2 -# Bot2 = -1.5707963267949 # Lowest legal axis value -# Top2 = 1.5707963267949 # Highest legal axis value - Ax1 = # Axis number 1 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - Ax2 = # Axis number 2 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - IsA Frame # Coordinate system description - Proj = "zenithal equal area" # Description of sky projection - SRefIs = "Ignored" # Not rotated (ref. pos. is ignored) - SRef1 = -2.61046557479594 # Ref. pos. l -149.5687 - SRef2 = -0.344845661720836 # Ref. pos. b -19.7582 - End SkyFrame - Map2 = # Mapping between nodes 1 and 2 - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = -150.5 # Shift for axis 1 - Sft2 = -150.5 # Shift for axis 2 - End WinMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = -0.020943951023932 # Forward matrix value - M1 = 0.020943951023932 # Forward matrix value - Form = "Diagonal" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin WcsMap # FITS-WCS sky projection - Nin = 2 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - Type = "ZEA" # Zenithal equal area projection - End WcsMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = 0 # Polar longitude (rad.s) - End SphMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = 0.291480364581799 # Forward matrix value - M1 = 0.506505471460186 # AST version 4.3- 0 -PutCards Ncards = 7 -PutCards Card = 1 -PutCards Card = 8 -PutCards Ncards = 7 -PutCards Card = 1 - - - - - FITS test number 1 - ==================== - - - -AST_SHOW: - -REG_SINK: -SIMPLE = T / Written by IDL: 30-Jul-1997 05:35:42.00 -BITPIX = -32 / Bits per pixel. -NAXIS = 2 / Number of dimensions -NAXIS1 = 300 / Length of x axis. -NAXIS2 = 300 / Length of y axis. -COMMENT -COMMENT This file was produced by the SkyView survey analysis system from -COMMENT available astronomical surveys. The data are formatted -COMMENT as a simple two-dimensional FITS image with the same units as -COMMENT the orginal survey. A single ASCII table extension may be present -COMMENT which describes catalog objects found within the field of view. -COMMENT Copies of relevant copyright notices are included in this file. -COMMENT -COMMENT Questions should be directed to: -COMMENT -COMMENT scollick@skyview.gsfc.nasa.gov -COMMENT or -COMMENT mcglynn@grossc.gsfc.nasa.gov -COMMENT -COMMENT SkyView -COMMENT Code 668.1 -COMMENT Goddard Space Flight Center, Greenbelt, MD 20771 -COMMENT 301-286-7780 -COMMENT -COMMENT SkyView is supported by NASA ADP grant NAS 5-32068. -COMMENT -SURVEY = 'COBE DIRBE' -BUNITS = 'MJy/sr ' -ORIGIN = 'CDAC ' / Cosmology Data Analysis Center -TELESCOP= 'COBE ' / COsmic Background Explorer satellite -INSTRUME= 'DIRBE ' / COBE instrument [DIRBE, DMR, FIRAS] -PIXRESOL= 9 / Quad tree pixel resolution [6, 9] -DATE = '27/09/94' / FITS file creation date (dd/mm/yy) -DATE-MAP= '16/09/94' / Date of original file creation (dd/mm/yy) -COMMENT COBE specific keywords -DATE-BEG= '08/12/89' / date of initial data represented (dd/mm/yy) -DATE-END= '25/09/90' / date of final data represented (dd/mm/yy) -COMMENT -COMMENT THE COBE DIRBE map is a combination of the original ten -COMMENT band passes with the following wavelengths: -COMMENT Band 1 - 1.25 microns -COMMENT Band 2 - 2.2 microns -COMMENT Band 3 - 3.5 microns -COMMENT Band 4 - 4.9 microns -COMMENT Band 5 - 12 microns -COMMENT Band 6 - 25 microns -COMMENT Band 7 - 60 microns -COMMENT Band 8 - 100 microns -COMMENT Band 9 - 140 microns -COMMENT Band 10 - 240 microns -COMMENT - -Objects written: 1 - -Native Encoding: - -COMMENT AST ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ AST -COMMENT AST WCS information in AST format AST -COMMENT AST See http://www.starlink.ac.uk/ast/ AST -COMMENT AST Beginning of AST data for FrameSet object AST -COMMENT AST ................................................................ AST -BEGAST_A= 'FrameSet' / Set of inter-related coordinate systems -NFRAME_A= 2 / Number of Frames in FrameSet -BASE_A = 1 / Index of base Frame -CURRNT_A= 2 / Index of current Frame -LNK2_A = 1 / Node 2 is derived from node 1 -FRM1_A = ' ' / Frame number 1 -BEGAST_B= 'Frame ' / Coordinate system description -TITLE_A = 'Pixel Coordinates' / Title of coordinate system -NAXES_A = 2 / Number of coordinate axes -DOMAIN_A= 'GRID ' / Coordinate system domain -AX1_A = ' ' / Axis number 1 -BEGAST_C= 'Axis ' / Coordinate axis -LABEL_A = 'Pixel axis 1' / Axis Label -ENDAST_A= 'Axis ' / End of object definition -AX2_A = ' ' / Axis number 2 -BEGAST_D= 'Axis ' / Coordinate axis -LABEL_B = 'Pixel axis 2' / Axis Label -ENDAST_B= 'Axis ' / End of object definition -ENDAST_C= 'Frame ' / End of object definition -FRM2_A = ' ' / Frame number 2 -BEGAST_E= 'SkyFrame' / Description of celestial coordinate system -IDENT_A = '" " ' / Permanent Object identification string -ISA_A = 'Object ' / AST Object -NAXES_B = 2 / Number of coordinate axes -EPOCH_A = 1950.0 / Besselian epoch of observation -SYSTEM_A= 'GALACTIC' / Coordinate system type -AX1_B = ' ' / Axis number 1 -BEGAST_F= 'SkyAxis ' / Celestial coordinate axis -ENDAST_D= 'SkyAxis ' / End of object definition -AX2_B = ' ' / Axis number 2 -BEGAST_G= 'SkyAxis ' / Celestial coordinate axis -ENDAST_E= 'SkyAxis ' / End of object definition -ISA_B = 'Frame ' / Coordinate system description -PROJ_A = 'zenithal equal area'/ Description of sky projection -SREFIS_A= 'Ignored ' / Not rotated (ref. pos. is ignored) -SREF1_A = -2.61046557479594 / Ref. pos. l -149.5687 -SREF2_A = -0.344845661720836 / Ref. pos. b -19.7582 -ENDAST_F= 'SkyFrame' / End of object definition -MAP2_A = ' ' / Mapping between nodes 1 and 2 -BEGAST_H= 'CmpMap ' / Compound Mapping -NIN_A = 2 / Number of input coordinates -ISSIMP_A= 1 / Mapping has been simplified -ISA_C = 'Mapping ' / Mapping between coordinate systems -MAPA_A = ' ' / First component Mapping -BEGAST_I= 'WinMap ' / Map one window on to another -NIN_B = 2 / Number of input coordinates -INVERT_A= 0 / Mapping not inverted -ISA_D = 'Mapping ' / Mapping between coordinate systems -SFT1_A = -150.5 / Shift for axis 1 -SFT2_A = -150.5 / Shift for axis 2 -ENDAST_G= 'WinMap ' / End of object definition -MAPB_A = ' ' / Second component Mapping -BEGAST_J= 'CmpMap ' / Compound Mapping -NIN_C = 2 / Number of input coordinates -ISA_E = 'Mapping ' / Mapping between coordinate systems -MAPA_B = ' ' / First component Mapping -BEGAST_K= 'MatrixMap' / Matrix transformation -NIN_D = 2 / Number of input coordinates -INVERT_B= 0 / Mapping not inverted -ISA_F = 'Mapping ' / Mapping between coordinate systems -M0_A = -0.020943951023932 / Forward matrix value -M1_A = 0.020943951023932 / Forward matrix value -FORM_A = 'Diagonal' / Matrix storage form -ENDAST_H= 'MatrixMap' / End of object definition -MAPB_B = ' ' / Second component Mapping -BEGAST_L= 'CmpMap ' / Compound Mapping -NIN_E = 2 / Number of input coordinates -ISA_G = 'Mapping ' / Mapping between coordinate systems -INVA_A = 1 / First Mapping used in inverse direction -MAPA_C = ' ' / First component Mapping -BEGAST_M= 'WcsMap ' / FITS-WCS sky projection -NIN_F = 2 / Number of input coordinates -INVERT_C= 1 / Mapping inverted -ISA_H = 'Mapping ' / Mapping between coordinate systems -TYPE_A = 'ZEA ' / Zenithal equal area projection -ENDAST_I= 'WcsMap ' / End of object definition -MAPB_C = ' ' / Second component Mapping -BEGAST_N= 'CmpMap ' / Compound Mapping -NIN_G = 2 / Number of input coordinates -ISA_I = 'Mapping ' / Mapping between coordinate systems -INVA_B = 1 / First Mapping used in inverse direction -MAPA_D = ' ' / First component Mapping -BEGAST_O= 'SphMap ' / Cartesian to Spherical mapping -NIN_H = 3 / Number of input coordinates -NOUT_A = 2 / Number of output coordinates -INVERT_D= 1 / Mapping inverted -ISA_J = 'Mapping ' / Mapping between coordinate systems -UNTRD_A = 1 / All input vectors have unit length -PLRLG_A = 0.0 / Polar longitude (rad.s) -ENDAST_J= 'SphMap ' / End of object definition -MAPB_D = ' ' / Second component Mapping -BEGAST_P= 'CmpMap ' / Compound Mapping -NIN_I = 3 / Number of input coordinates -NOUT_B = 2 / Number of output coordinates -ISA_K = 'Mapping ' / Mapping between coordinate systems -MAPA_E = ' ' / First component Mapping -BEGAST_Q= 'MatrixMap' / Matrix transformation -NIN_J = 3 / Number of input coordinates -INVERT_E= 0 / Mapping not inverted -ISA_L = 'Mapping ' / Mapping between coordinate systems -M0_B = 0.291480364581799 / Forward matrix value -M1_B = 0.506505471460186 / Forward matrix value -M2_A = -0.811474832908671 / Forward matrix value -M3_A = 0.171224898552328 / Forward matrix value -M4_A = -0.862236746712233 / Forward matrix value -M5_A = -0.476686298035564 / Forward matrix value -M6_A = -0.941127638091139 / Forward matrix value -M7_A = 0.0 / Forward matrix value -M8_A = -0.338051429254475 / Forward matrix value -FORM_B = 'Full ' / Matrix storage form -ENDAST_K= 'MatrixMap' / End of object definition -MAPB_E = ' ' / Second component Mapping -BEGAST_R= 'SphMap ' / Cartesian to Spherical mapping -NIN_K = 3 / Number of input coordinates -NOUT_C = 2 / Number of output coordinates -INVERT_F= 0 / Mapping not inverted -ISA_M = 'Mapping ' / Mapping between coordinate systems -UNTRD_B = 1 / All input vectors have unit length -PLRLG_B = -2.61046557479594 / Polar longitude (rad.s) -ENDAST_L= 'SphMap ' / End of object definition -ENDAST_M= 'CmpMap ' / End of object definition -ENDAST_N= 'CmpMap ' / End of object definition -ENDAST_O= 'CmpMap ' / End of object definition -ENDAST_P= 'CmpMap ' / End of object definition -ENDAST_Q= 'CmpMap ' / End of object definition -ENDAST_R= 'FrameSet' / End of object definition -COMMENT AST ................................................................ AST -COMMENT AST End of AST data for FrameSet object AST -COMMENT AST ---------------------------------------------------------------- AST - -ATTRIBUTES: - Colour(axis1) : 1 - Font(Stri) : 1 - Nout : 1 - Class : 4 - Tol : 0.100000E-01 - Gap(1) : 1.04720 - Border : 0 - Invert : 0 - TextLabGap : 0.100000E-01 - Nin : 2 - Current : 3 - Base : 1 - Nobject : 1 - RefCOUNT : 1 - -AST_GRID: -REG_LINE: 15 - 25.4 -29.7 - 31.0 -16.7 - 35.7 -2.18 - 39.8 13.5 - 43.0 30.1 - 45.5 47.3 - 47.2 64.8 - 48.1 82.5 - 48.2 99.9 - 47.3 117. - 45.5 133. - 42.5 149. - 38.4 163. - 32.8 175. - 25.4 185. -REG_LINE: 15 - 25.4 -29.7 - 20.1 -16.6 - 15.4 -2.03 - 11.5 13.7 - 8.35 30.3 - 5.92 47.5 - 4.25 65.0 - 3.39 82.6 - 3.35 100. - 4.19 117. - 5.99 133. - 8.83 149. - 12.9 163. - 18.3 175. - 25.4 185. -REG_LINE: 119 - 25.4 -29.7 - 24.6 -29.7 - 23.8 -29.7 - 22.9 -29.6 - 22.1 -29.5 - 21.3 -29.5 - 20.4 -29.3 - 19.6 -29.2 - 18.8 -29.0 - 17.9 -28.9 - 17.1 -28.7 - 16.3 -28.5 - 15.5 -28.2 - 14.6 -28.0 - 13.8 -27.7 - 13.0 -27.4 - 12.2 -27.1 - 11.4 -26.7 - 10.6 -26.4 - 9.74 -26.0 - 8.93 -25.6 - 8.12 -25.2 - 7.32 -24.8 - 6.52 -24.3 - 5.73 -23.9 - 4.93 -23.4 - 4.14 -22.9 - 3.35 -22.3 - 2.57 -21.8 - 1.79 -21.2 - 1.02 -20.6 - .247 -20.0 - -.520 -19.4 - -1.28 -18.8 - -2.04 -18.1 - -2.79 -17.4 - -3.54 -16.7 - -4.29 -16.0 - -5.02 -15.3 - -5.76 -14.5 - -6.49 -13.7 - -7.21 -12.9 - -7.92 -12.1 - -17.3 1.12 - -25.1 17.7 - -31.1 37.2 - -34.6 59.1 - -35.4 82.8 - -33.1 107. - -32.8 109. - -32.5 111. - -32.2 112. - -31.9 114. - -31.5 116. - -31.1 117. - -30.7 119. - -30.3 121. - -29.9 123. - -29.4 124. - -28.9 126. - -28.5 128. - -27.9 129. - -27.4 131. - -26.9 132. - -26.3 134. - -25.7 136. - -25.2 137. - -24.5 139. - -23.9 140. - -23.3 142. - -22.6 143. - -21.9 145. - -21.2 146. - -20.5 148. - -19.8 149. - -19.0 151. - -18.2 152. - -17.5 154. - -16.7 155. - -15.8 156. - -15.0 158. - -14.2 159. - -13.3 160. - -12.4 162. - -11.5 163. - -10.6 164. - -9.69 165. - -8.75 166. - -7.80 167. - -6.83 168. - -5.85 170. - -4.86 171. - -3.85 172. - -2.83 172. - -1.80 173. - -.761 174. - .293 175. - 1.36 176. - 2.43 177. - 3.52 178. - 4.61 178. - 5.72 179. - 6.83 180. - 7.95 180. - 9.08 181. - 10.2 181. - 11.4 182. - 12.5 182. - 13.7 183. - 14.8 183. - 16.0 184. - 17.2 184. - 18.3 184. - 19.5 184. - 20.7 185. - 21.9 185. - 23.1 185. - 24.3 185. - 25.4 185. -REG_LINE: 171 - 25.4 -29.7 - 19.1 -40.9 - 11.9 -49.9 - 11.3 -50.4 - 10.8 -50.9 - 10.2 -51.4 - 9.62 -51.9 - 9.04 -52.4 - 8.46 -52.8 - 7.87 -53.3 - 7.28 -53.7 - 6.68 -54.1 - 6.07 -54.5 - 5.46 -54.9 - 4.84 -55.2 - 4.21 -55.6 - 3.58 -55.9 - 2.95 -56.2 - 2.30 -56.5 - 1.65 -56.7 - .990 -56.9 - .325 -57.2 - -.348 -57.3 - -1.03 -57.5 - -1.71 -57.7 - -2.41 -57.8 - -3.11 -57.9 - -3.82 -57.9 - -4.54 -58.0 - -5.27 -58.0 - -6.00 -58.0 - -6.74 -58.0 - -7.50 -57.9 - -8.26 -57.8 - -9.03 -57.7 - -9.80 -57.5 - -10.6 -57.3 - -11.4 -57.1 - -12.2 -56.8 - -13.0 -56.5 - -13.8 -56.2 - -14.7 -55.8 - -15.5 -55.4 - -16.4 -55.0 - -17.2 -54.5 - -18.1 -53.9 - -19.0 -53.4 - -19.9 -52.7 - -20.8 -52.0 - -21.7 -51.3 - -22.6 -50.5 - -23.6 -49.7 - -24.5 -48.8 - -25.5 -47.8 - -26.4 -46.8 - -27.4 -45.7 - -28.4 -44.5 - -29.4 -43.3 - -30.4 -42.0 - -31.4 -40.6 - -32.4 -39.1 - -33.5 -37.6 - -34.5 -36.0 - -35.5 -34.3 - -36.6 -32.5 - -37.6 -30.5 - -38.7 -28.5 - -39.7 -26.4 - -40.8 -24.2 - -41.8 -21.9 - -42.8 -19.5 - -43.9 -16.9 - -44.9 -14.2 - -45.9 -11.4 - -46.9 -8.53 - -47.8 -5.48 - -48.8 -2.30 - -49.7 1.01 - -50.6 4.45 - -51.4 8.02 - -52.2 11.7 - -53.0 15.6 - -53.7 19.5 - -54.4 23.6 - -55.0 27.8 - -55.5 32.2 - -56.0 36.6 - -56.4 41.1 - -56.7 45.8 - -56.9 50.5 - -57.1 55.3 - -57.1 60.1 - -57.1 65.1 - -56.9 70.0 - -56.7 74.9 - -56.4 79.9 - -55.9 84.9 - -55.4 89.8 - -54.8 94.7 - -54.1 99.5 - -53.3 104. - -52.4 109. - -51.4 114. - -50.3 118. - -49.2 122. - -48.0 127. - -46.7 131. - -45.4 135. - -44.1 138. - -42.7 142. - -41.2 146. - -39.8 149. - -38.3 152. - -36.8 155. - -35.2 158. - -33.7 161. - -32.2 164. - -30.6 166. - -29.1 168. - -27.5 171. - -26.0 173. - -24.5 175. - -23.0 176. - -21.5 178. - -20.0 180. - -18.5 181. - -17.1 182. - -15.7 184. - -14.3 185. - -12.9 186. - -11.5 187. - -10.2 188. - -8.92 188. - -7.64 189. - -6.38 190. - -5.15 190. - -3.94 191. - -2.75 191. - -1.59 192. - -.448 192. - .669 193. - 1.76 193. - 2.83 193. - 3.88 193. - 4.91 193. - 5.92 193. - 6.91 193. - 7.88 193. - 8.82 193. - 9.75 193. - 10.7 193. - 11.6 193. - 12.4 193. - 13.3 192. - 14.1 192. - 14.9 192. - 15.7 192. - 16.5 191. - 17.3 191. - 18.1 190. - 18.8 190. - 19.5 190. - 20.2 189. - 20.9 189. - 21.6 188. - 22.3 188. - 22.9 187. - 23.6 187. - 24.2 186. - 24.8 185. - 25.4 185. -REG_LINE: 171 - 25.4 -29.7 - 31.6 -41.1 - 38.7 -50.2 - 39.2 -50.7 - 39.8 -51.2 - 40.3 -51.8 - 40.9 -52.3 - 41.5 -52.8 - 42.0 -53.2 - 42.6 -53.7 - 43.2 -54.1 - 43.8 -54.6 - 44.4 -55.0 - 45.0 -55.4 - 45.6 -55.7 - 46.2 -56.1 - 46.8 -56.4 - 47.4 -56.7 - 48.1 -57.0 - 48.7 -57.3 - 49.4 -57.6 - 50.0 -57.8 - 50.7 -58.0 - 51.3 -58.2 - 52.0 -58.4 - 52.7 -58.5 - 53.4 -58.6 - 54.1 -58.7 - 54.8 -58.8 - 55.5 -58.8 - 56.2 -58.9 - 57.0 -58.8 - 57.7 -58.8 - 58.5 -58.7 - 59.2 -58.6 - 60.0 -58.5 - 60.8 -58.3 - 61.6 -58.2 - 62.4 -57.9 - 63.2 -57.7 - 64.0 -57.4 - 64.8 -57.0 - 65.6 -56.6 - 66.5 -56.2 - 67.3 -55.8 - 68.2 -55.2 - 69.1 -54.7 - 70.0 -54.1 - 70.9 -53.4 - 71.8 -52.7 - 72.7 -52.0 - 73.7 -51.2 - 74.6 -50.3 - 75.6 -49.4 - 76.6 -48.4 - 77.5 -47.3 - 78.5 -46.2 - 79.5 -45.0 - 80.5 -43.7 - 81.6 -42.4 - 82.6 -41.0 - 83.6 -39.5 - 84.7 -37.9 - 85.7 -36.2 - 86.8 -34.4 - 87.8 -32.5 - 88.9 -30.5 - 90.0 -28.5 - 91.1 -26.3 - 92.1 -23.9 - 93.2 -21.5 - 94.2 -19.0 - 95.3 -16.3 - 96.3 -13.5 - 97.3 -10.6 - 98.4 -7.51 - 99.3 -4.31 - 100. -.976 - 101. 2.50 - 102. 6.12 - 103. 9.88 - 104. 13.8 - 105. 17.8 - 105. 22.0 - 106. 26.3 - 106. 30.7 - 107. 35.2 - 107. 39.9 - 108. 44.7 - 108. 49.5 - 108. 54.4 - 108. 59.4 - 108. 64.5 - 108. 69.5 - 108. 74.6 - 107. 79.7 - 107. 84.8 - 106. 89.9 - 106. 94.9 - 105. 99.9 - 104. 105. - 103. 110. - 102. 114. - 101. 119. - 100. 123. - 98.8 128. - 97.5 132. - 96.1 136. - 94.7 140. - 93.3 143. - 91.8 147. - 90.3 150. - 88.8 154. - 87.2 157. - 85.7 159. - 84.1 162. - 82.5 165. - 80.9 167. - 79.4 170. - 77.8 172. - 76.3 174. - 74.7 176. - 73.2 177. - 71.7 179. - 70.2 181. - 68.8 182. - 67.3 183. - 65.9 185. - 64.5 186. - 63.2 187. - 61.8 188. - 60.5 188. - 59.2 189. - 57.9 190. - 56.7 191. - 55.5 191. - 54.3 192. - 53.1 192. - 51.9 192. - 50.8 193. - 49.7 193. - 48.6 193. - 47.6 193. - 46.5 193. - 45.5 194. - 44.5 194. - 43.6 194. - 42.6 194. - 41.7 193. - 40.8 193. - 39.9 193. - 39.0 193. - 38.2 193. - 37.3 193. - 36.5 192. - 35.7 192. - 34.9 192. - 34.2 191. - 33.4 191. - 32.7 191. - 31.9 190. - 31.2 190. - 30.5 189. - 29.8 189. - 29.2 188. - 28.5 188. - 27.9 187. - 27.3 187. - 26.6 186. - 26.0 185. - 25.4 185. -REG_LINE: 119 - 25.4 -29.7 - 26.3 -29.7 - 27.1 -29.7 - 28.0 -29.7 - 28.8 -29.6 - 29.6 -29.5 - 30.5 -29.4 - 31.3 -29.3 - 32.1 -29.2 - 33.0 -29.0 - 33.8 -28.8 - 34.6 -28.6 - 35.4 -28.4 - 36.3 -28.2 - 37.1 -27.9 - 37.9 -27.6 - 38.7 -27.3 - 39.5 -27.0 - 40.4 -26.7 - 41.2 -26.3 - 42.0 -25.9 - 42.8 -25.5 - 43.6 -25.1 - 44.4 -24.7 - 45.2 -24.2 - 46.0 -23.7 - 46.8 -23.2 - 47.6 -22.7 - 48.4 -22.2 - 49.2 -21.6 - 49.9 -21.1 - 50.7 -20.5 - 51.5 -19.8 - 52.2 -19.2 - 53.0 -18.6 - 53.8 -17.9 - 54.5 -17.2 - 55.3 -16.5 - 56.0 -15.8 - 56.8 -15.0 - 57.5 -14.3 - 58.2 -13.5 - 58.9 -12.7 - 68.4 .462 - 76.3 17.0 - 82.3 36.5 - 85.9 58.6 - 86.8 82.4 - 84.5 107. - 84.2 109. - 83.9 110. - 83.5 112. - 83.2 114. - 82.8 116. - 82.4 117. - 82.0 119. - 81.6 121. - 81.2 122. - 80.7 124. - 80.2 126. - 79.7 128. - 79.2 129. - 78.7 131. - 78.1 132. - 77.6 134. - 77.0 136. - 76.4 137. - 75.8 139. - 75.1 140. - 74.5 142. - 73.8 144. - 73.1 145. - 72.4 147. - 71.7 148. - 70.9 150. - 70.2 151. - 69.4 152. - 68.6 154. - 67.8 155. - 67.0 157. - 66.1 158. - 65.3 159. - 64.4 160. - 63.5 162. - 62.6 163. - 61.7 164. - 60.8 165. - 59.8 166. - 58.8 168. - 57.9 169. - 56.9 170. - 55.9 171. - 54.9 172. - 53.8 173. - 52.8 174. - 51.8 175. - 50.7 175. - 49.6 176. - 48.5 177. - 47.4 178. - 46.3 178. - 45.2 179. - 44.1 180. - 43.0 180. - 41.8 181. - 40.7 182. - 39.6 182. - 38.4 182. - 37.2 183. - 36.1 183. - 34.9 184. - 33.7 184. - 32.6 184. - 31.4 184. - 30.2 185. - 29.0 185. - 27.8 185. - 26.6 185. - 25.4 185. -REG_LINE: 15 - 25.4 -29.7 - 31.0 -16.7 - 35.7 -2.18 - 39.8 13.5 - 43.0 30.1 - 45.5 47.3 - 47.2 64.8 - 48.1 82.5 - 48.2 99.9 - 47.3 117. - 45.5 133. - 42.5 149. - 38.4 163. - 32.8 175. - 25.4 185. -REG_LINE: 197 - 52.0 -19.4 - 51.8 -18.1 - 51.5 -16.9 - 51.2 -15.6 - 50.9 -14.4 - 50.5 -13.2 - 50.1 -12.1 - 49.6 -11.0 - 49.1 -9.89 - 48.6 -8.84 - 48.0 -7.82 - 47.5 -6.84 - 46.8 -5.89 - 46.2 -4.97 - 45.5 -4.09 - 44.8 -3.25 - 44.1 -2.44 - 43.4 -1.67 - 42.6 -.931 - 41.8 -.233 - 41.0 .428 - 40.2 1.05 - 39.3 1.64 - 38.5 2.19 - 37.6 2.70 - 36.7 3.17 - 35.8 3.61 - 34.9 4.01 - 34.0 4.37 - 33.0 4.69 - 32.1 4.97 - 31.2 5.22 - 30.2 5.42 - 29.2 5.59 - 28.3 5.72 - 27.3 5.82 - 26.3 5.87 - 25.4 5.89 - 24.4 5.87 - 23.4 5.81 - 22.5 5.71 - 21.5 5.57 - 20.5 5.40 - 19.6 5.18 - 18.6 4.93 - 17.7 4.64 - 16.8 4.31 - 15.9 3.95 - 14.9 3.55 - 14.0 3.10 - 13.2 2.63 - 12.3 2.11 - 11.4 1.55 - 10.6 .962 - 9.77 .333 - 8.97 -.334 - 8.18 -1.04 - 7.42 -1.78 - 6.68 -2.56 - 5.96 -3.37 - 5.27 -4.22 - 4.60 -5.10 - 3.96 -6.02 - 3.35 -6.98 - 2.77 -7.97 - 2.22 -8.99 - 1.70 -10.1 - 1.22 -11.1 - .767 -12.3 - .353 -13.4 - -0.240E-01 -14.6 - -.362 -15.8 - -.660 -17.1 - -.917 -18.3 - -1.13 -19.6 - -1.30 -20.9 - -1.42 -22.3 - -1.50 -23.6 - -1.53 -25.0 - -1.51 -26.4 - -1.44 -27.8 - -1.32 -29.3 - -1.15 -30.7 - -.921 -32.2 - -.640 -33.6 - -.302 -35.1 - 0.909E-01 -36.5 - .541 -37.9 - 1.05 -39.4 - 1.61 -40.8 - 2.24 -42.2 - 2.92 -43.6 - 3.65 -44.9 - 4.45 -46.3 - 5.30 -47.5 - 6.20 -48.8 - 7.16 -50.0 - 8.17 -51.1 - 9.23 -52.2 - 10.3 -53.3 - 11.5 -54.2 - 12.7 -55.1 - 13.9 -55.9 - 15.2 -56.7 - 16.5 -57.3 - 17.9 -57.9 - 19.2 -58.4 - 20.6 -58.7 - 22.0 -59.0 - 23.4 -59.2 - 24.8 -59.3 - 26.3 -59.3 - 27.7 -59.2 - 29.1 -59.0 - 30.5 -58.7 - 31.9 -58.3 - 33.2 -57.8 - 34.6 -57.2 - 35.9 -56.6 - 37.1 -55.8 - 38.4 -55.0 - 39.6 -54.1 - 40.7 -53.1 - 41.8 -52.1 - 42.9 -51.0 - 43.9 -49.8 - 44.8 -48.6 - 45.7 -47.4 - 46.6 -46.1 - 47.4 -44.7 - 48.1 -43.4 - 48.8 -42.0 - 49.4 -40.6 - 49.9 -39.2 - 50.4 -37.7 - 50.9 -36.3 - 51.2 -34.8 - 51.6 -33.4 - 51.9 -31.9 - 52.1 -30.5 - 52.2 -29.1 - 52.3 -27.6 - 52.4 -26.2 - 52.4 -24.8 - 52.4 -23.4 - 52.3 -22.1 - 52.2 -20.7 - 52.0 -19.4 - 51.8 -18.1 - 51.5 -16.9 - 51.2 -15.6 - 50.9 -14.4 - 50.5 -13.2 - 50.1 -12.1 - 49.6 -11.0 - 49.1 -9.89 - 48.6 -8.84 - 48.0 -7.82 - 47.5 -6.84 - 46.8 -5.89 - 46.2 -4.97 - 45.5 -4.09 - 44.8 -3.25 - 44.1 -2.44 - 43.4 -1.67 - 42.6 -.931 - 41.8 -.233 - 41.0 .428 - 40.2 1.05 - 39.3 1.64 - 38.5 2.19 - 37.6 2.70 - 36.7 3.17 - 35.8 3.61 - 34.9 4.01 - 34.0 4.37 - 33.0 4.69 - 32.1 4.97 - 31.2 5.22 - 30.2 5.42 - 29.2 5.59 - 28.3 5.72 - 27.3 5.82 - 26.3 5.87 - 25.4 5.89 - 24.4 5.87 - 23.4 5.81 - 22.5 5.71 - 21.5 5.57 - 20.5 5.40 - 19.6 5.18 - 18.6 4.93 - 17.7 4.64 - 16.8 4.31 - 15.9 3.95 - 14.9 3.55 - 14.0 3.10 -REG_LINE: 197 - 73.9 11.1 - 73.1 13.1 - 72.3 14.9 - 71.5 16.8 - 70.6 18.5 - 69.7 20.2 - 68.7 21.8 - 67.7 23.3 - 66.6 24.8 - 65.5 26.3 - 64.4 27.7 - 63.2 29.0 - 62.0 30.2 - 60.7 31.4 - 59.5 32.6 - 58.2 33.7 - 56.9 34.7 - 55.5 35.7 - 54.2 36.7 - 52.8 37.5 - 51.4 38.4 - 49.9 39.2 - 48.5 39.9 - 47.0 40.6 - 45.5 41.2 - 44.0 41.8 - 42.5 42.3 - 41.0 42.8 - 39.5 43.3 - 37.9 43.7 - 36.4 44.0 - 34.8 44.3 - 33.2 44.6 - 31.7 44.8 - 30.1 44.9 - 28.5 45.0 - 26.9 45.1 - 25.3 45.1 - 23.7 45.1 - 22.2 45.0 - 20.6 44.9 - 19.0 44.7 - 17.4 44.5 - 15.9 44.3 - 14.3 44.0 - 12.8 43.6 - 11.2 43.2 - 9.68 42.8 - 8.15 42.3 - 6.65 41.7 - 5.15 41.1 - 3.67 40.5 - 2.20 39.8 - .758 39.0 - -.671 38.2 - -2.08 37.4 - -3.47 36.5 - -4.83 35.6 - -6.17 34.6 - -7.49 33.5 - -8.78 32.4 - -10.0 31.3 - -11.3 30.0 - -12.5 28.8 - -13.6 27.5 - -14.8 26.1 - -15.9 24.6 - -16.9 23.1 - -17.9 21.6 - -18.9 19.9 - -19.8 18.2 - -20.7 16.5 - -21.6 14.7 - -22.3 12.8 - -23.1 10.8 - -23.7 8.81 - -24.4 6.71 - -24.9 4.55 - -25.4 2.30 - -25.8 -0.953E-02 - -26.1 -2.40 - -26.4 -4.86 - -26.6 -7.41 - -26.7 -10.0 - -26.7 -12.7 - -26.6 -15.5 - -26.4 -18.3 - -26.0 -21.3 - -25.6 -24.2 - -25.0 -27.3 - -24.4 -30.4 - -23.5 -33.6 - -22.6 -36.8 - -21.4 -40.1 - -20.2 -43.4 - -18.7 -46.7 - -17.1 -49.9 - -15.3 -53.2 - -13.3 -56.4 - -11.1 -59.6 - -8.73 -62.7 - -6.17 -65.6 - -3.42 -68.3 - -.492 -70.9 - 2.61 -73.3 - 5.87 -75.3 - 9.27 -77.1 - 12.8 -78.6 - 16.4 -79.7 - 20.1 -80.5 - 23.8 -80.8 - 27.6 -80.8 - 31.3 -80.4 - 35.0 -79.6 - 38.6 -78.4 - 42.1 -76.9 - 45.5 -75.1 - 48.8 -72.9 - 51.8 -70.6 - 54.7 -67.9 - 57.5 -65.2 - 60.0 -62.2 - 62.3 -59.1 - 64.5 -56.0 - 66.4 -52.7 - 68.2 -49.5 - 69.8 -46.2 - 71.2 -42.9 - 72.5 -39.6 - 73.6 -36.3 - 74.6 -33.1 - 75.4 -30.0 - 76.0 -26.8 - 76.6 -23.8 - 77.0 -20.8 - 77.3 -17.9 - 77.5 -15.1 - 77.6 -12.3 - 77.5 -9.63 - 77.4 -7.03 - 77.3 -4.50 - 77.0 -2.04 - 76.6 .337 - 76.2 2.64 - 75.7 4.87 - 75.2 7.03 - 74.5 9.11 - 73.9 11.1 - 73.1 13.1 - 72.3 14.9 - 71.5 16.8 - 70.6 18.5 - 69.7 20.2 - 68.7 21.8 - 67.7 23.3 - 66.6 24.8 - 65.5 26.3 - 64.4 27.7 - 63.2 29.0 - 62.0 30.2 - 60.7 31.4 - 59.5 32.6 - 58.2 33.7 - 56.9 34.7 - 55.5 35.7 - 54.2 36.7 - 52.8 37.5 - 51.4 38.4 - 49.9 39.2 - 48.5 39.9 - 47.0 40.6 - 45.5 41.2 - 44.0 41.8 - 42.5 42.3 - 41.0 42.8 - 39.5 43.3 - 37.9 43.7 - 36.4 44.0 - 34.8 44.3 - 33.2 44.6 - 31.7 44.8 - 30.1 44.9 - 28.5 45.0 - 26.9 45.1 - 25.3 45.1 - 23.7 45.1 - 22.2 45.0 - 20.6 44.9 - 19.0 44.7 - 17.4 44.5 - 15.9 44.3 - 14.3 44.0 - 12.8 43.6 - 11.2 43.2 - 9.68 42.8 - 8.15 42.3 - 6.65 41.7 -REG_LINE: 197 - 85.9 58.6 - 84.7 60.1 - 83.5 61.6 - 82.2 63.1 - 80.8 64.4 - 79.5 65.8 - 78.1 67.0 - 76.7 68.3 - 75.2 69.4 - 73.7 70.6 - 72.2 71.6 - 70.7 72.7 - 69.2 73.6 - 67.6 74.6 - 66.0 75.5 - 64.4 76.3 - 62.7 77.2 - 61.1 77.9 - 59.4 78.7 - 57.7 79.3 - 56.0 80.0 - 54.3 80.6 - 52.5 81.2 - 50.8 81.7 - 49.0 82.2 - 47.2 82.7 - 45.5 83.1 - 43.7 83.5 - 41.8 83.8 - 40.0 84.1 - 38.2 84.4 - 36.4 84.7 - 34.5 84.9 - 32.7 85.0 - 30.9 85.1 - 29.0 85.2 - 27.2 85.3 - 25.3 85.3 - 23.5 85.3 - 21.6 85.2 - 19.8 85.1 - 17.9 85.0 - 16.1 84.8 - 14.2 84.6 - 12.4 84.4 - 10.6 84.1 - 8.78 83.8 - 6.97 83.4 - 5.17 83.0 - 3.39 82.6 - 1.61 82.2 - -.156 81.6 - -1.91 81.1 - -3.65 80.5 - -5.37 79.9 - -7.08 79.2 - -8.77 78.6 - -10.4 77.8 - -12.1 77.0 - -13.7 76.2 - -15.3 75.4 - -16.9 74.4 - -18.5 73.5 - -20.1 72.5 - -21.6 71.5 - -23.1 70.4 - -24.5 69.3 - -26.0 68.1 - -27.4 66.9 - -28.8 65.6 - -30.1 64.2 - -31.5 62.9 - -32.8 61.4 - -34.0 59.9 - -35.2 58.4 - -36.4 56.7 - -37.6 55.0 - -38.7 53.3 - -39.7 51.4 - -40.7 49.5 - -41.7 47.5 - -42.6 45.4 - -43.5 43.2 - -44.3 40.9 - -45.0 38.5 - -45.7 36.0 - -46.4 33.4 - -46.9 30.6 - -47.4 27.6 - -47.7 24.5 - -48.0 21.3 - -48.2 17.8 - -48.3 14.1 - -48.2 10.1 - -47.9 5.89 - -47.5 1.37 - -46.9 -3.46 - -46.0 -8.66 - -44.9 -14.2 - -43.4 -20.2 - -41.5 -26.7 - -39.1 -33.6 - -36.1 -40.9 - -32.4 -48.6 - -27.8 -56.6 - -22.3 -64.7 - -15.8 -72.6 - -8.06 -79.8 - .764 -86.0 - 10.5 -90.4 - 20.9 -92.6 - 31.5 -92.5 - 41.9 -89.9 - 51.5 -85.2 - 60.2 -78.8 - 67.7 -71.4 - 74.1 -63.5 - 79.5 -55.4 - 83.9 -47.5 - 87.5 -39.8 - 90.4 -32.5 - 92.7 -25.7 - 94.5 -19.3 - 96.0 -13.4 - 97.1 -7.87 - 97.9 -2.73 - 98.5 2.06 - 98.9 6.53 - 99.1 10.7 - 99.2 14.6 - 99.1 18.3 - 98.9 21.7 - 98.6 25.0 - 98.2 28.1 - 97.7 31.0 - 97.2 33.8 - 96.5 36.4 - 95.8 38.9 - 95.1 41.3 - 94.3 43.6 - 93.4 45.7 - 92.5 47.8 - 91.5 49.8 - 90.5 51.7 - 89.4 53.5 - 88.3 55.3 - 87.1 57.0 - 85.9 58.6 - 84.7 60.1 - 83.5 61.6 - 82.2 63.1 - 80.8 64.4 - 79.5 65.8 - 78.1 67.0 - 76.7 68.3 - 75.2 69.4 - 73.7 70.6 - 72.2 71.6 - 70.7 72.7 - 69.2 73.6 - 67.6 74.6 - 66.0 75.5 - 64.4 76.3 - 62.7 77.2 - 61.1 77.9 - 59.4 78.7 - 57.7 79.3 - 56.0 80.0 - 54.3 80.6 - 52.5 81.2 - 50.8 81.7 - 49.0 82.2 - 47.2 82.7 - 45.5 83.1 - 43.7 83.5 - 41.8 83.8 - 40.0 84.1 - 38.2 84.4 - 36.4 84.7 - 34.5 84.9 - 32.7 85.0 - 30.9 85.1 - 29.0 85.2 - 27.2 85.3 - 25.3 85.3 - 23.5 85.3 - 21.6 85.2 - 19.8 85.1 - 17.9 85.0 - 16.1 84.8 - 14.2 84.6 - 12.4 84.4 - 10.6 84.1 - 8.78 83.8 - 6.97 83.4 - 5.17 83.0 - 3.39 82.6 -REG_LINE: 145 - 82.9 115. - 63.7 120. - 40.9 123. - 16.6 123. - -6.79 121. - -27.2 116. - -28.5 116. - -29.8 116. - -31.0 115. - -32.2 115. - -33.4 115. - -34.5 114. - -35.7 114. - -36.7 114. - -37.8 114. - -38.8 113. - -39.8 113. - -40.7 113. - -41.6 113. - -42.5 113. - -43.3 113. - -44.1 113. - -44.8 113. - -45.5 114. - -46.1 114. - -46.7 114. - -47.2 115. - -47.7 116. - -48.1 117. - -48.4 118. - -48.6 119. - -48.7 121. - -48.6 123. - -48.4 125. - -48.0 128. - -47.4 132. - -46.4 136. - -45.0 141. - -43.0 147. - -40.2 154. - -36.3 163. - -30.8 173. - -23.1 184. - -12.5 196. - -11.6 197. - -10.7 198. - -9.78 198. - -8.85 199. - -7.90 200. - -6.94 201. - -5.96 201. - -4.96 202. - -3.94 203. - -2.91 203. - -1.87 204. - -.804 205. - .274 205. - 1.37 206. - 2.47 207. - 3.60 207. - 4.73 208. - 5.88 208. - 7.04 209. - 8.21 209. - 9.40 209. - 10.6 210. - 11.8 210. - 13.0 211. - 14.2 211. - 15.5 211. - 16.7 211. - 17.9 212. - 19.2 212. - 20.4 212. - 21.7 212. - 23.0 212. - 24.2 212. - 25.5 212. - 26.8 212. - 28.0 212. - 29.3 212. - 30.5 212. - 31.8 212. - 33.0 212. - 34.3 211. - 35.5 211. - 36.7 211. - 38.0 211. - 39.2 210. - 40.4 210. - 41.6 209. - 42.8 209. - 43.9 209. - 45.1 208. - 46.2 208. - 47.4 207. - 48.5 206. - 49.6 206. - 50.7 205. - 51.8 205. - 65.1 194. - 75.3 183. - 82.6 171. - 87.9 162. - 91.6 153. - 94.3 146. - 96.1 140. - 97.5 135. - 98.4 131. - 99.0 128. - 99.3 125. - 99.5 122. - 99.5 121. - 99.4 119. - 99.2 118. - 98.9 116. - 98.5 116. - 98.1 115. - 97.5 114. - 97.0 114. - 96.3 114. - 95.6 113. - 94.9 113. - 94.1 113. - 93.3 113. - 92.4 113. - 91.5 113. - 90.5 113. - 89.5 113. - 88.5 114. - 87.5 114. - 86.4 114. - 85.3 114. - 84.1 115. - 82.9 115. - 81.7 115. - 80.5 116. - 79.2 116. - 77.9 116. - 76.6 117. - 75.3 117. - 73.9 117. - 52.6 122. - 28.8 124. - 4.68 123. -REG_LINE: 145 - 61.4 165. - 60.9 164. - 60.3 163. - 59.7 163. - 59.0 163. - 58.4 162. - 57.6 162. - 56.9 161. - 56.1 161. - 55.3 161. - 54.5 160. - 53.6 160. - 52.7 160. - 51.8 160. - 50.9 159. - 49.9 159. - 48.9 159. - 47.9 159. - 46.9 159. - 45.9 159. - 44.8 158. - 43.8 158. - 42.7 158. - 41.6 158. - 40.5 158. - 39.4 158. - 38.2 158. - 37.1 158. - 35.9 158. - 19.4 158. - 3.82 159. - 2.81 159. - 1.81 159. - .836 159. - -.119 159. - -1.05 160. - -1.96 160. - -2.85 160. - -3.71 160. - -4.54 161. - -5.35 161. - -6.12 161. - -6.86 162. - -7.57 162. - -8.25 163. - -8.88 163. - -9.48 164. - -10.0 164. - -10.6 165. - -11.0 165. - -11.5 166. - -11.8 167. - -12.2 167. - -12.4 168. - -12.6 169. - -12.8 170. - -12.9 171. - -12.9 172. - -12.9 173. - -12.7 174. - -12.5 175. - -12.3 176. - -11.9 177. - -11.4 178. - -10.9 180. - -10.2 181. - -9.43 183. - -8.55 184. - -7.56 186. - -6.44 187. - -5.21 189. - -3.85 190. - -2.36 192. - -.742 193. - 1.01 195. - 2.88 196. - 4.88 197. - 7.00 199. - 9.23 200. - 11.6 201. - 14.0 202. - 16.5 202. - 19.1 203. - 21.7 203. - 24.3 203. - 27.0 203. - 29.6 203. - 32.2 203. - 34.8 202. - 37.3 202. - 39.7 201. - 42.0 200. - 44.2 198. - 46.3 197. - 48.3 196. - 50.2 194. - 51.9 193. - 53.5 191. - 55.0 190. - 56.3 188. - 57.5 187. - 58.6 185. - 59.6 184. - 60.4 182. - 61.2 181. - 61.8 180. - 62.4 178. - 62.8 177. - 63.2 176. - 63.5 175. - 63.7 173. - 63.8 172. - 63.8 171. - 63.8 170. - 63.7 170. - 63.5 169. - 63.3 168. - 63.0 167. - 62.7 166. - 62.3 166. - 61.9 165. - 61.4 165. - 60.9 164. - 60.3 163. - 59.7 163. - 59.0 163. - 58.4 162. - 57.6 162. - 56.9 161. - 56.1 161. - 55.3 161. - 54.5 160. - 53.6 160. - 52.7 160. - 51.8 160. - 50.9 159. - 49.9 159. - 48.9 159. - 47.9 159. - 46.9 159. - 45.9 159. - 44.8 158. - 43.8 158. - 27.7 158. - 11.4 158. -REG_LINE: 2 - 80.7 64.6 - 80.8 66.3 -REG_LINE: 2 - 75.0 69.6 - 75.1 71.4 -REG_LINE: 2 - 68.8 73.9 - 68.8 75.6 -REG_LINE: 2 - 62.2 77.4 - 62.2 79.2 -REG_LINE: 2 - 55.3 80.3 - 55.3 82.0 -REG_LINE: 2 - 40.8 84.0 - 40.8 85.8 -REG_LINE: 2 - 33.3 85.0 - 33.3 86.7 -REG_LINE: 2 - 25.8 85.3 - 25.8 87.0 -REG_LINE: 2 - 18.2 85.0 - 18.2 86.8 -REG_LINE: 2 - 10.7 84.1 - 10.7 85.9 -REG_LINE: 2 - -3.79 80.5 - -3.83 82.2 -REG_LINE: 2 - -10.7 77.7 - -10.8 79.4 -REG_LINE: 2 - -17.3 74.2 - -17.4 76.0 -REG_LINE: 2 - -23.6 70.0 - -23.6 71.8 -REG_LINE: 2 - -29.4 65.0 - -29.5 66.8 -REG_LINE: 2 - -39.3 52.2 - -39.4 54.0 -REG_LINE: 2 - -43.2 44.0 - -43.4 45.7 -REG_LINE: 2 - -46.2 34.0 - -46.4 35.8 -REG_LINE: 2 - -48.0 21.8 - -48.3 23.5 -REG_LINE: 2 - -48.0 6.25 - -48.3 7.96 -REG_LINE: 2 - -35.8 -41.5 - -36.5 -39.9 -REG_LINE: 2 - -14.6 -73.9 - -15.8 -72.6 -REG_LINE: 2 - 23.6 -92.8 - 22.6 -94.3 -REG_LINE: 2 - 62.8 -76.5 - 64.1 -75.2 -REG_LINE: 2 - 85.5 -44.2 - 86.2 -42.6 -REG_LINE: 2 - 98.7 4.70 - 99.1 6.41 -REG_LINE: 2 - 99.0 20.6 - 99.3 22.3 -REG_LINE: 2 - 97.3 33.1 - 97.5 34.8 -REG_LINE: 2 - 94.4 43.2 - 94.6 44.9 -REG_LINE: 2 - 90.5 51.6 - 90.7 53.3 -REG_LINE: 2 - 80.7 64.6 - 80.8 66.3 -REG_LINE: 2 - 75.0 69.6 - 75.1 71.4 -REG_LINE: 2 - 68.8 73.9 - 68.8 75.6 -REG_LINE: 2 - 62.2 77.4 - 62.2 79.2 -REG_LINE: 2 - 55.3 80.3 - 55.3 82.0 -REG_LINE: 2 - 40.8 84.0 - 40.8 85.8 -REG_LINE: 2 - 33.3 85.0 - 33.3 86.7 -REG_LINE: 2 - 25.8 85.3 - 25.8 87.0 -REG_LINE: 2 - 18.2 85.0 - 18.2 86.8 -REG_LINE: 2 - 10.7 84.1 - 10.7 85.9 -REG_LINE: 2 - 23.1 -34.3 - 21.6 -33.5 -REG_LINE: 2 - 20.6 -38.6 - 19.1 -37.7 -REG_LINE: 2 - 18.0 -42.6 - 16.5 -41.7 -REG_LINE: 2 - 15.2 -46.2 - 13.8 -45.2 -REG_LINE: 2 - 12.3 -49.4 - 10.9 -48.4 -REG_LINE: 2 - 6.00 -54.5 - 4.63 -53.5 -REG_LINE: 2 - 2.59 -56.3 - 1.25 -55.2 -REG_LINE: 2 - -1.03 -57.5 - -2.33 -56.3 -REG_LINE: 2 - -4.86 -58.0 - -6.12 -56.8 -REG_LINE: 2 - -8.94 -57.7 - -10.1 -56.4 -REG_LINE: 2 - -17.9 -54.1 - -19.0 -52.7 -REG_LINE: 2 - -22.8 -50.3 - -23.9 -48.9 -REG_LINE: 2 - -28.1 -44.9 - -29.0 -43.4 -REG_LINE: 2 - -33.6 -37.4 - -34.4 -35.9 -REG_LINE: 2 - -39.3 -27.4 - -40.0 -25.8 -REG_LINE: 2 - -50.1 2.52 - -50.5 4.22 -REG_LINE: 2 - -54.3 23.2 - -54.6 24.9 -REG_LINE: 2 - -56.8 47.3 - -56.8 49.1 -REG_LINE: 2 - -56.8 73.8 - -56.1 75.5 -REG_LINE: 2 - -53.9 101. - -54.0 98.8 -REG_LINE: 2 - -41.1 146. - -41.7 144. -REG_LINE: 2 - -32.8 162. - -33.7 161. -REG_LINE: 2 - -24.5 175. - -25.5 173. -REG_LINE: 2 - -16.5 183. - -17.6 182. -REG_LINE: 2 - -9.06 188. - -10.4 187. -REG_LINE: 2 - 3.65 193. - 2.17 192. -REG_LINE: 2 - 9.03 193. - 7.49 192. -REG_LINE: 2 - 13.8 192. - 12.2 192. -REG_LINE: 2 - 18.1 190. - 16.5 190. -REG_LINE: 2 - 22.0 188. - 20.3 187. -REG_LINE: 15 - 48.1 82.5 - 51.2 81.6 - 54.3 80.6 - 57.3 79.5 - 60.3 78.3 - 63.2 77.0 - 66.0 75.5 - 68.8 73.9 - 71.5 72.2 - 74.1 70.3 - 76.7 68.3 - 79.1 66.1 - 81.5 63.8 - 83.8 61.3 - 85.9 58.6 -REG_LINE: 15 - 48.1 82.5 - 45.0 83.2 - 41.8 83.8 - 38.7 84.4 - 35.5 84.8 - 32.2 85.0 - 29.0 85.2 - 25.8 85.3 - 22.5 85.3 - 19.3 85.1 - 16.1 84.8 - 12.9 84.4 - 9.69 83.9 - 6.52 83.3 - 3.39 82.6 -REG_LINE: 15 - 3.39 82.6 - .284 81.8 - -2.78 80.8 - -5.80 79.7 - -8.77 78.6 - -11.7 77.2 - -14.5 75.8 - -17.3 74.2 - -20.1 72.5 - -22.7 70.7 - -25.3 68.7 - -27.8 66.5 - -30.1 64.2 - -32.4 61.8 - -34.6 59.1 -REG_LINE: 15 - -34.6 59.1 - -36.7 56.3 - -38.7 53.3 - -40.5 50.0 - -42.2 46.5 - -43.7 42.7 - -45.0 38.5 - -46.2 34.0 - -47.1 29.1 - -47.8 23.7 - -48.2 17.8 - -48.2 11.1 - -47.8 3.67 - -46.7 -4.73 - -44.9 -14.2 -REG_LINE: 93 - -44.9 -14.2 - -42.0 -25.0 - -37.7 -37.2 - -31.3 -50.6 - -22.3 -64.7 - -21.6 -65.7 - -20.8 -66.7 - -20.0 -67.7 - -19.2 -68.7 - -18.4 -69.7 - -17.5 -70.7 - -16.7 -71.6 - -15.8 -72.6 - -14.9 -73.5 - -14.0 -74.5 - -13.0 -75.4 - -12.1 -76.3 - -11.1 -77.2 - -10.1 -78.1 - -9.08 -79.0 - -8.06 -79.8 - -7.01 -80.7 - -5.95 -81.5 - -4.87 -82.3 - -3.78 -83.1 - -2.67 -83.8 - -1.54 -84.6 - -.395 -85.3 - .764 -86.0 - 1.94 -86.6 - 3.13 -87.2 - 4.33 -87.8 - 5.54 -88.4 - 6.77 -89.0 - 8.01 -89.5 - 9.27 -89.9 - 10.5 -90.4 - 11.8 -90.8 - 13.1 -91.2 - 14.4 -91.5 - 15.7 -91.8 - 17.0 -92.1 - 18.3 -92.3 - 19.6 -92.5 - 20.9 -92.6 - 22.3 -92.8 - 23.6 -92.8 - 24.9 -92.9 - 26.2 -92.9 - 27.6 -92.8 - 28.9 -92.7 - 30.2 -92.6 - 31.5 -92.5 - 32.8 -92.3 - 34.2 -92.0 - 35.5 -91.8 - 36.8 -91.4 - 38.0 -91.1 - 39.3 -90.7 - 40.6 -90.3 - 41.9 -89.9 - 43.1 -89.4 - 44.3 -88.9 - 45.6 -88.3 - 46.8 -87.7 - 48.0 -87.1 - 49.2 -86.5 - 50.3 -85.8 - 51.5 -85.2 - 52.6 -84.4 - 53.8 -83.7 - 54.9 -82.9 - 56.0 -82.2 - 57.0 -81.4 - 58.1 -80.5 - 59.1 -79.7 - 60.2 -78.8 - 61.2 -78.0 - 62.2 -77.1 - 63.1 -76.2 - 64.1 -75.2 - 65.0 -74.3 - 65.9 -73.4 - 66.8 -72.4 - 67.7 -71.4 - 68.6 -70.5 - 69.4 -69.5 - 70.2 -68.5 - 71.1 -67.5 - 80.7 -53.4 - 87.5 -39.8 - 92.1 -27.4 - 95.3 -16.3 -REG_LINE: 15 - 95.3 -16.3 - 97.3 -6.55 - 98.5 2.06 - 99.1 9.69 - 99.1 16.5 - 98.8 22.6 - 98.2 28.1 - 97.3 33.1 - 96.2 37.7 - 94.9 41.9 - 93.4 45.7 - 91.7 49.3 - 89.9 52.6 - 88.0 55.7 - 85.9 58.6 -REG_LINE: 15 - 85.9 58.6 - 83.8 61.3 - 81.5 63.8 - 79.1 66.1 - 76.7 68.3 - 74.1 70.3 - 71.5 72.2 - 68.8 73.9 - 66.0 75.5 - 63.2 77.0 - 60.3 78.3 - 57.3 79.5 - 54.3 80.6 - 51.2 81.6 - 48.1 82.5 -REG_LINE: 15 - 48.1 82.5 - 45.0 83.2 - 41.8 83.8 - 38.7 84.4 - 35.5 84.8 - 32.2 85.0 - 29.0 85.2 - 25.8 85.3 - 22.5 85.3 - 19.3 85.1 - 16.1 84.8 - 12.9 84.4 - 9.69 83.9 - 6.52 83.3 - 3.39 82.6 -REG_LINE: 15 - 48.1 82.5 - 45.0 83.2 - 41.8 83.8 - 38.7 84.4 - 35.5 84.8 - 32.2 85.0 - 29.0 85.2 - 25.8 85.3 - 22.5 85.3 - 19.3 85.1 - 16.1 84.8 - 12.9 84.4 - 9.69 83.9 - 6.52 83.3 - 3.39 82.6 -REG_LINE: 15 - 25.4 -29.7 - 24.4 -31.7 - 23.4 -33.7 - 22.4 -35.6 - 21.3 -37.4 - 20.2 -39.2 - 19.1 -40.9 - 18.0 -42.6 - 16.8 -44.2 - 15.6 -45.7 - 14.4 -47.2 - 13.1 -48.6 - 11.9 -49.9 - 10.6 -51.1 - 9.23 -52.2 -REG_LINE: 15 - 9.23 -52.2 - 7.87 -53.3 - 6.48 -54.2 - 5.05 -55.1 - 3.58 -55.9 - 2.08 -56.5 - .548 -57.1 - -1.03 -57.5 - -2.64 -57.8 - -4.30 -58.0 - -6.00 -58.0 - -7.75 -57.9 - -9.54 -57.6 - -11.4 -57.1 - -13.3 -56.4 -REG_LINE: 15 - -13.3 -56.4 - -15.2 -55.6 - -17.2 -54.5 - -19.3 -53.2 - -21.4 -51.6 - -23.6 -49.7 - -25.8 -47.5 - -28.1 -44.9 - -30.4 -42.0 - -32.8 -38.6 - -35.2 -34.8 - -37.6 -30.5 - -40.1 -25.7 - -42.5 -20.3 - -44.9 -14.2 -REG_LINE: 15 - -44.9 -14.2 - -47.2 -7.52 - -49.4 -.109 - -51.4 8.02 - -53.3 16.9 - -54.8 26.4 - -56.0 36.6 - -56.8 47.3 - -57.1 58.5 - -56.9 70.0 - -56.2 81.6 - -55.0 93.1 - -53.3 104. - -51.0 115. - -48.4 125. -REG_LINE: 15 - -48.4 125. - -45.4 135. - -42.2 143. - -38.8 151. - -35.2 158. - -31.6 164. - -28.0 170. - -24.5 175. - -21.0 179. - -17.6 182. - -14.3 185. - -11.1 187. -Forward matrix value - M2 = -0.811474832908671 # Forward matrix value - M3 = 0.171224898552328 # Forward matrix value - M4 = -0.862236746712233 # Forward matrix value - M5 = -0.476686298035564 # Forward matrix value - M6 = -0.941127638091139 # Forward matrix value - M7 = 0 # Forward matrix value - M8 = -0.338051429254475 # Forward matrix value - Form = "Full" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = -2.61046557479594 # Polar longitude (rad.s) - End SphMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End FrameSet - Begin FrameSet # Set of inter-related coordinate systems -# Title = "Pixel coordinates; first pixel at (-100.5,-200.5)" # Title of coordinate system -# Naxes = 2 # Number of coordinate axes -# Domain = "POLAR" # Coordinate system domain -# Lbl1 = "Pixel coordinate 1" # Label for axis 1 -# Lbl2 = "Pixel coordinate 2" # Label for axis 2 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 - IsA Frame # Coordinate system description - Nframe = 2 # Number of Frames in FrameSet -# Base = 1 # Index of base Frame - Currnt = 2 # Index of current Frame - Nod1 = 2 # Frame 1 is associated with node 2 - Nod2 = 1 # Frame 2 is associated with node 1 - Lnk2 = 1 # Node 2 is derived from node 1 - Frm1 = # Frame number 1 - Begin Frame # Coordinate system description - Title = "Data grid indices; first pixel at (1,1) " # Title of coordinate system - Naxes = 2 # Number of coordinate axes - Domain = "GRID" # Coordinate system domain -# Lbl1 = "Data grid index 1" # Label for axis 1 -# Lbl2 = "Data grid index 2" # Label for axis 2 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Data grid index 1" # Axis Label - Symbol = "g1" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Data grid index 2" # Axis Label - Symbol = "g2" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - End Frame - Frm2 = # Frame number 2 - Begin Frame # Coordinate system description - Title = "Pixel coordinates; first pixel at (-100.5,-200.5)" # Title of coordinate system - Naxes = 2 # Number of coordinate axes - Domain = "POLAR" # Coordinate system domain -# Lbl1 = "Pixel coordinate 1" # Label for axis 1 -# Lbl2 = "Pixel coordinate 2" # Label for axis 2 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Pixel coordinate 1" # Axis Label - -8.06 189. - -5.15 190. - -2.36 192. -REG_LINE: 15 - -2.36 192. - .299 192. - 2.83 193. - 5.25 193. - 7.56 193. - 9.75 193. - 11.8 193. - 13.8 192. - 15.7 192. - 17.6 191. - 19.3 190. - 20.9 189. - 22.5 188. - 24.0 186. - 25.4 185. -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '180' - 47.5 80.0 TC .248 .969 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '240' - 4.00 80.2 TC -.245 .969 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '300' - -32.7 57.6 TC -.786 .618 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '0' - -42.4 -13.7 BC .976 .217 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '60' - 92.9 -15.7 BC -.971 .241 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '120' - 84.0 57.1 TC .798 .602 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-90' - 27.7 -30.8 TC -.899 .438 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-60' - 10.8 -54.2 TC -.629 .777 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-30' - -14.2 -58.8 TC .374 .927 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '0' - -47.2 -15.1 TC .937 .350 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '30' - -50.8 126. BC -.960 .278 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '60' - -3.21 194. BC -.341 .940 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '90' - 27.2 187. BC .711 .704 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 1 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: ' A FITS test' - 31.5 225. BC .000 1.00 - - - - - FITS test number 2 - ==================== - - - -AST_SHOW: - -REG_SINK: -COMMENT AST ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -AST -COMMENT AST Beginning of AST data for FrameSet object -AST -COMMENT AST ................................................................ -AST -COMMENT AST ................................................................ -AST -COMMENT AST End of AST data for FrameSet object -AST -COMMENT AST ---------------------------------------------------------------- - -Objects written: 1 - -Native Encoding: - -COMMENT AST ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ AST -COMMENT AST WCS information in AST format AST -COMMENT AST See http://www.starlink.ac.uk/ast/ AST -COMMENT AST Beginning of AST data for FrameSet object AST -COMMENT AST ................................................................ AST -BEGAST_A= 'FrameSet' / Set of inter-related coordinate systems -NFRAME_A= 2 / Number of Frames in FrameSet -CURRNT_A= 2 / Index of current Frame -NOD1_A = 2 / Frame 1 is associated with node 2 -NOD2_A = 1 / Frame 2 is associated with node 1 -LNK2_A = 1 / Node 2 is derived from node 1 -FRM1_A = ' ' / Frame number 1 -BEGAST_B= 'Frame ' / Coordinate system description -TITLE_A = 'Data grid indices; first pixel at (1&'/ Title of coordinate system -CONTINUE '",1) "' -NAXES_A = 2 / Number of coordinate axes -DOMAIN_A= 'GRID ' / Coordinate system domain -AX1_A = ' ' / Axis number 1 -BEGAST_C= 'Axis ' / Coordinate axis -LABEL_A = 'Data grid index 1' / Axis Label -SYMBOL_A= 'g1 ' / Axis symbol -UNIT_A = 'pixel ' / Axis units -FORMAT_A= '%3.1f ' / Format specifier -ENDAST_A= 'Axis ' / End of object definition -AX2_A = ' ' / Axis number 2 -BEGAST_D= 'Axis ' / Coordinate axis -LABEL_B = 'Data grid index 2' / Axis Label -SYMBOL_B= 'g2 ' / Axis symbol -UNIT_B = 'pixel ' / Axis units -FORMAT_B= '%3.1f ' / Format specifier -ENDAST_B= 'Axis ' / End of object definition -ENDAST_C= 'Frame ' / End of object definition -FRM2_A = ' ' / Frame number 2 -BEGAST_E= 'Frame ' / Coordinate system description -TITLE_B = 'Pixel coordinates; first pixel at (-&'/ Title of coordinate system -CONTINUE '100.5,-200.5)' -NAXES_B = 2 / Number of coordinate axes -DOMAIN_B= 'POLAR ' / Coordinate system domain -AX1_B = ' ' / Axis number 1 -BEGAST_F= 'Axis ' / Coordinate axis -LABEL_C = 'Pixel coordinate 1' / Axis Label -SYMBOL_C= 'p1 ' / Axis symbol -UNIT_C = 'pixel ' / Axis units -FORMAT_C= '%3.1f ' / Format specifier -ENDAST_D= 'Axis ' / End of object definition -AX2_B = ' ' / Axis number 2 -BEGAST_G= 'Axis ' / Coordinate axis -LABEL_D = 'Pixel coordinate 2' / Axis Label -SYMBOL_D= 'p2 ' / Axis symbol -UNIT_D = 'pixel ' / Axis units -FORMAT_D= '%3.1f ' / Format specifier -ENDAST_E= 'Axis ' / End of object definition -ENDAST_F= 'Frame ' / End of object definition -MAP2_A = ' ' / Mapping between nodes 1 and 2 -BEGAST_H= 'CmpMap ' / Compound Mapping -NIN_A = 2 / Number of input coordinates -ISA_A = 'Mapping ' / Mapping between coordinate systems -INVA_A = 1 / First Mapping used in inverse direction -INVB_A = 1 / Second Mapping used in inverse direction -MAPA_A = ' ' / First component Mapping -BEGAST_I= 'MathMap ' / Transformation using mathematical functions -NIN_B = 2 / Number of input coordinates -INVERT_A= 0 / Mapping not inverted -ISA_B = 'Mapping ' / Mapping between coordinate systems -FWD1_A = 'r=sqrt(x*x+y*y)' / Forward function 1 -FWD2_A = 'theta=atan2(y,x)' / Forward function 2 -INV1_A = 'x=r*cos(theta)' / Inverse function 1 -INV2_A = 'y=r*sin(theta)' / Inverse function 2 -SIMPFI_A= 1 / Forward-inverse pairs may simplify -SIMPIF_A= 1 / Inverse-forward pairs may simplify -ENDAST_G= 'MathMap ' / End of object definition -MAPB_A = ' ' / Second component Mapping -BEGAST_J= 'WinMap ' / Map one window on to another -NIN_C = 2 / Number of input coordinates -INVERT_B= 0 / Mapping not inverted -ISA_C = 'Mapping ' / Mapping between coordinate systems -SFT1_A = -101.5 / Shift for axis 1 -SFT2_A = -201.5 / Shift for axis 2 -ENDAST_H= 'WinMap ' / End of object definition -ENDAST_I= 'CmpMap ' / End of object definition -ENDAST_J= 'FrameSet' / End of object definition -COMMENT AST ................................................................ AST -COMMENT AST End of AST data for FrameSet object AST -COMMENT AST ---------------------------------------------------------------- AST - -ATTRIBUTES: - Colour(axis1) : 1 - Font(Stri) : 1 - Nout : 1 - Class : 4 - Tol : 0.100000E-01 - Gap(1) : 50.0000 - Border : 0 - Invert : 0 - TextLabGap : 0.100000E-01 - Nin : 2 - Current : 3 - Base : 1 - Nobject : 1 - RefCOUNT : 1 - -AST_GRID: -REG_LINE: 197 - 10.8 124. - 10.7 123. - 10.5 122. - 10.3 121. - 10.2 120. - 10.1 119. - 10.0 118. - 9.94 117. - 9.89 116. - 9.85 115. - 9.84 113. - 9.85 112. - 9.88 111. - 9.93 110. - 10.0 109. - 10.1 108. - 10.2 107. - 10.3 106. - 10.5 105. - 10.6 104. - 10.8 103. - 11.0 102. - 11.2 100. - 11.5 99.5 - 11.7 98.5 - 12.0 97.5 - 12.3 96.6 - 12.6 95.6 - 13.0 94.7 - 13.3 93.9 - 13.7 93.0 - 14.0 92.2 - 14.4 91.4 - 14.8 90.6 - 15.2 89.8 - 15.7 89.1 - 16.1 88.4 - 16.5 87.8 - 17.0 87.2 - 17.5 86.6 - 18.0 86.0 - 18.5 85.5 - 19.0 85.0 - 19.5 84.6 - 20.0 84.2 - 20.5 83.8 - 21.1 83.5 - 21.6 83.2 - 22.1 82.9 - 22.7 82.7 - 23.2 82.5 - 23.8 82.4 - 24.3 82.3 - 24.9 82.2 - 25.5 82.2 - 26.0 82.2 - 26.6 82.3 - 27.1 82.4 - 27.7 82.5 - 28.2 82.7 - 28.8 82.9 - 29.3 83.2 - 29.9 83.4 - 30.4 83.8 - 30.9 84.2 - 31.4 84.6 - 32.0 85.0 - 32.5 85.5 - 33.0 86.0 - 33.4 86.6 - 33.9 87.1 - 34.4 87.8 - 34.8 88.4 - 35.3 89.1 - 35.7 89.8 - 36.1 90.6 - 36.5 91.3 - 36.9 92.1 - 37.3 93.0 - 37.6 93.8 - 38.0 94.7 - 38.3 95.6 - 38.6 96.5 - 38.9 97.5 - 39.2 98.5 - 39.4 99.4 - 39.7 100. - 39.9 101. - 40.1 103. - 40.3 104. - 40.5 105. - 40.6 106. - 40.7 107. - 40.8 108. - 40.9 109. - 41.0 110. - 41.1 111. - 41.1 112. - 41.1 113. - 41.1 115. - 41.1 116. - 41.0 117. - 40.9 118. - 40.8 119. - 40.7 120. - 40.6 121. - 40.5 122. - 40.3 123. - 40.1 124. - 39.9 125. - 39.7 126. - 39.4 127. - 39.2 128. - 38.9 129. - 38.6 130. - 38.3 131. - 38.0 132. - 37.6 133. - 37.3 134. - 36.9 135. - 36.5 136. - 36.1 136. - 35.7 137. - 35.3 138. - 34.8 138. - 34.4 139. - 33.9 140. - 33.4 140. - 33.0 141. - 32.5 141. - 32.0 142. - 31.4 142. - 30.9 143. - 30.4 143. - 29.9 143. - 29.3 144. - 28.8 144. - 28.2 144. - 27.7 144. - 27.1 145. - 26.6 145. - 26.0 145. - 25.5 145. - 24.9 145. - 24.3 145. - 23.8 145. - 23.2 144. - 22.7 144. - 22.1 144. - 21.6 144. - 21.1 143. - 20.5 143. - 20.0 143. - 19.5 142. - 19.0 142. - 18.5 141. - 18.0 141. - 17.5 140. - 17.0 140. - 16.5 139. - 16.1 138. - 15.7 138. - 15.2 137. - 14.8 136. - 14.4 136. - 14.0 135. - 13.7 134. - 13.3 133. - 13.0 132. - 12.6 131. - 12.3 130. - 12.0 129. - 11.7 128. - 11.5 127. - 11.2 126. - 11.0 125. - 10.8 124. - 10.6 123. - 10.5 122. - 10.3 121. - 10.2 120. - 10.1 119. - 10.0 118. - 9.93 117. - 9.88 116. - 9.85 115. - 9.84 113. - 9.85 112. - 9.89 111. - 9.94 110. - 10.0 109. - 10.1 108. - 10.2 107. - 10.3 106. - 10.5 105. - 10.7 104. - 10.8 102. -REG_LINE: 197 - -3.80 135. - -4.17 133. - -4.50 131. - -4.80 129. - -5.06 127. - -5.28 125. - -5.46 122. - -5.60 120. - -5.70 118. - -5.76 116. - -5.78 114. - -5.76 111. - -5.70 109. - -5.61 107. - -5.47 105. - -5.29 102. - -5.07 100. - -4.82 98.1 - -4.53 95.9 - -4.19 93.8 - -3.82 91.7 - -3.42 89.6 - -2.97 87.5 - -2.49 85.5 - -1.97 83.5 - -1.42 81.6 - -.838 79.7 - -.219 77.8 - .433 76.0 - 1.12 74.3 - 1.83 72.6 - 2.58 70.9 - 3.35 69.3 - 4.15 67.7 - 4.98 66.2 - 5.84 64.8 - 6.72 63.4 - 7.62 62.1 - 8.55 60.9 - 9.50 59.7 - 10.5 58.6 - 11.5 57.6 - 12.5 56.6 - 13.5 55.7 - 14.5 54.9 - 15.6 54.2 - 16.6 53.5 - 17.7 52.9 - 18.8 52.4 - 19.9 51.9 - 21.0 51.6 - 22.1 51.3 - 23.2 51.1 - 24.3 51.0 - 25.4 50.9 - 26.6 51.0 - 27.7 51.1 - 28.8 51.3 - 29.9 51.6 - 31.0 51.9 - 32.1 52.4 - 33.2 52.9 - 34.3 53.5 - 35.3 54.1 - 36.4 54.9 - 37.4 55.7 - 38.4 56.6 - 39.4 57.5 - 40.4 58.6 - 41.4 59.7 - 42.4 60.8 - 43.3 62.1 - 44.2 63.4 - 45.1 64.8 - 45.9 66.2 - 46.8 67.7 - 47.6 69.2 - 48.3 70.8 - 49.1 72.5 - 49.8 74.2 - 50.5 76.0 - 51.1 77.8 - 51.8 79.6 - 52.3 81.5 - 52.9 83.5 - 53.4 85.5 - 53.9 87.5 - 54.3 89.5 - 54.7 91.6 - 55.1 93.7 - 55.5 95.8 - 55.7 98.0 - 56.0 100. - 56.2 102. - 56.4 105. - 56.5 107. - 56.6 109. - 56.7 111. - 56.7 113. - 56.7 116. - 56.6 118. - 56.5 120. - 56.4 122. - 56.2 125. - 56.0 127. - 55.7 129. - 55.5 131. - 55.1 133. - 54.7 135. - 54.3 137. - 53.9 139. - 53.4 141. - 52.9 143. - 52.3 145. - 51.8 147. - 51.1 149. - 50.5 151. - 49.8 153. - 49.1 154. - 48.3 156. - 47.6 158. - 46.8 159. - 45.9 161. - 45.1 162. - 44.2 163. - 43.3 165. - 42.4 166. - 41.4 167. - 40.4 168. - 39.4 169. - 38.4 170. - 37.4 171. - 36.4 172. - 35.3 173. - 34.3 173. - 33.2 174. - 32.1 175. - 31.0 175. - 29.9 175. - 28.8 176. - 27.7 176. - 26.6 176. - 25.4 176. - 24.3 176. - 23.2 176. - 22.1 176. - 21.0 175. - 19.9 175. - 18.8 174. - 17.7 174. - 16.6 173. - 15.6 173. - 14.5 172. - 13.5 171. - 12.5 170. - 11.5 169. - 10.5 168. - 9.50 167. - 8.55 166. - 7.62 165. - 6.72 163. - 5.84 162. - 4.98 161. - 4.15 159. - 3.35 158. - 2.58 156. - 1.83 154. - 1.12 153. - .433 151. - -.219 149. - -.838 147. - -1.42 145. - -1.97 143. - -2.49 141. - -2.97 139. - -3.42 137. - -3.82 135. - -4.19 133. - -4.53 131. - -4.82 129. - -5.07 127. - -5.29 124. - -5.47 122. - -5.61 120. - -5.70 118. - -5.76 116. - -5.78 113. - -5.76 111. - -5.70 109. - -5.60 107. - -5.46 104. - -5.28 102. - -5.06 100. - -4.80 97.9 - -4.50 95.7 - -4.17 93.6 - -3.80 91.5 -REG_LINE: 197 - -18.4 146. - -19.0 143. - -19.5 140. - -19.9 137. - -20.3 133. - -20.7 130. - -20.9 127. - -21.1 124. - -21.3 120. - -21.4 117. - -21.4 114. - -21.4 110. - -21.3 107. - -21.1 104. - -20.9 100. - -20.7 96.9 - -20.3 93.6 - -20.0 90.4 - -19.5 87.1 - -19.0 83.9 - -18.5 80.8 - -17.9 77.7 - -17.2 74.6 - -16.5 71.6 - -15.7 68.6 - -14.9 65.7 - -14.0 62.8 - -13.1 60.0 - -12.1 57.3 - -11.1 54.7 - -9.99 52.1 - -8.87 49.6 - -7.71 47.2 - -6.50 44.9 - -5.26 42.6 - -3.98 40.5 - -2.66 38.4 - -1.30 36.5 - 0.922E-01 34.6 - 1.52 32.9 - 2.97 31.2 - 4.45 29.6 - 5.96 28.2 - 7.50 26.9 - 9.05 25.6 - 10.6 24.5 - 12.2 23.5 - 13.8 22.6 - 15.5 21.8 - 17.1 21.2 - 18.8 20.7 - 20.4 20.2 - 22.1 19.9 - 23.8 19.7 - 25.4 19.7 - 27.1 19.7 - 28.8 19.9 - 30.5 20.2 - 32.1 20.6 - 33.8 21.2 - 35.4 21.8 - 37.0 22.6 - 38.7 23.5 - 40.2 24.5 - 41.8 25.6 - 43.4 26.8 - 44.9 28.1 - 46.4 29.6 - 47.9 31.1 - 49.4 32.8 - 50.8 34.5 - 52.2 36.4 - 53.5 38.4 - 54.9 40.4 - 56.2 42.6 - 57.4 44.8 - 58.6 47.1 - 59.8 49.5 - 60.9 52.0 - 62.0 54.6 - 63.0 57.2 - 64.0 60.0 - 64.9 62.7 - 65.8 65.6 - 66.6 68.5 - 67.4 71.5 - 68.1 74.5 - 68.8 77.5 - 69.4 80.7 - 69.9 83.8 - 70.4 87.0 - 70.9 90.2 - 71.3 93.5 - 71.6 96.8 - 71.9 100. - 72.1 103. - 72.2 107. - 72.3 110. - 72.3 113. - 72.3 117. - 72.2 120. - 72.1 123. - 71.9 127. - 71.6 130. - 71.3 133. - 70.9 137. - 70.4 140. - 69.9 143. - 69.4 146. - 68.8 149. - 68.1 152. - 67.4 155. - 66.6 158. - 65.8 161. - 64.9 164. - 64.0 167. - 63.0 170. - 62.0 172. - 60.9 175. - 59.8 177. - 58.6 180. - 57.4 182. - 56.2 184. - 54.9 186. - 53.5 189. - 52.2 190. - 50.8 192. - 49.4 194. - 47.9 196. - 46.4 197. - 44.9 199. - 43.4 200. - 41.8 201. - 40.2 202. - 38.7 203. - 37.0 204. - 35.4 205. - 33.8 206. - 32.1 206. - 30.5 207. - 28.8 207. - 27.1 207. - 25.4 207. - 23.8 207. - 22.1 207. - 20.4 207. - 18.8 206. - 17.1 206. - 15.5 205. - 13.8 204. - 12.2 203. - 10.6 202. - 9.05 201. - 7.50 200. - 5.96 199. - 4.45 197. - 2.97 196. - 1.52 194. - 0.922E-01 192. - -1.30 190. - -2.66 188. - -3.98 186. - -5.26 184. - -6.50 182. - -7.71 180. - -8.87 177. - -9.99 175. - -11.1 172. - -12.1 170. - -13.1 167. - -14.0 164. - -14.9 161. - -15.7 158. - -16.5 155. - -17.2 152. - -17.9 149. - -18.5 146. - -19.0 143. - -19.5 140. - -20.0 137. - -20.3 133. - -20.7 130. - -20.9 127. - -21.1 123. - -21.3 120. - -21.4 117. - -21.4 113. - -21.4 110. - -21.3 107. - -21.1 103. - -20.9 100. - -20.7 96.7 - -20.3 93.4 - -19.9 90.1 - -19.5 86.9 - -19.0 83.7 - -18.4 80.6 -REG_LINE: 197 - -33.1 157. - -33.8 153. - -34.5 149. - -35.1 145. - -35.6 140. - -36.0 136. - -36.4 131. - -36.7 127. - -36.9 123. - -37.0 118. - -37.0 114. - -37.0 109. - -36.9 105. - -36.7 100. - -36.4 95.8 - -36.1 91.4 - -35.6 87.0 - -35.1 82.7 - -34.5 78.4 - -33.9 74.1 - -33.1 69.9 - -32.3 65.7 - -31.4 61.6 - -30.5 57.6 - -29.4 53.6 - -28.3 49.8 - -27.1 46.0 - -25.9 42.3 - -24.6 38.6 - -23.2 35.1 - -21.8 31.7 - -20.3 28.3 - -18.8 25.1 - -17.2 22.0 - -15.5 19.0 - -13.8 16.2 - -12.0 13.4 - -10.2 10.8 - -8.37 8.34 - -6.47 5.99 - -4.53 3.78 - -2.55 1.71 - -.540 -.225 - 1.51 -2.01 - 3.58 -3.65 - 5.69 -5.14 - 7.82 -6.47 - 9.97 -7.66 - 12.1 -8.69 - 14.3 -9.56 - 16.5 -10.3 - 18.7 -10.8 - 21.0 -11.2 - 23.2 -11.5 - 25.4 -11.6 - 27.7 -11.5 - 29.9 -11.2 - 32.1 -10.9 - 34.3 -10.3 - 36.5 -9.59 - 38.7 -8.72 - 40.9 -7.70 - 43.0 -6.52 - 45.2 -5.19 - 47.3 -3.70 - 49.4 -2.07 - 51.4 -.290 - 53.4 1.63 - 55.4 3.70 - 57.3 5.91 - 59.2 8.25 - 61.1 10.7 - 62.9 13.3 - 64.7 16.1 - 66.4 18.9 - 68.0 21.9 - 69.6 25.0 - 71.2 28.2 - 72.7 31.6 - 74.1 35.0 - 75.5 38.5 - 76.8 42.1 - 78.0 45.8 - 79.2 49.6 - 80.3 53.5 - 81.4 57.5 - 82.3 61.5 - 83.2 65.6 - 84.0 69.7 - 84.8 73.9 - 85.4 78.2 - 86.0 82.5 - 86.5 86.9 - 87.0 91.2 - 87.3 95.6 - 87.6 100. - 87.8 105. - 87.9 109. - 88.0 113. - 87.9 118. - 87.8 122. - 87.6 127. - 87.3 131. - 87.0 136. - 86.5 140. - 86.0 144. - 85.4 149. - 84.8 153. - 84.0 157. - 83.2 161. - 82.3 165. - 81.4 169. - 80.3 173. - 79.2 177. - 78.0 181. - 76.8 185. - 75.5 188. - 74.1 192. - 72.7 195. - 71.2 199. - 69.6 202. - 68.0 205. - 66.4 208. - 64.7 211. - 62.9 214. - 61.1 216. - 59.2 219. - 57.3 221. - 55.4 223. - 53.4 225. - 51.4 227. - 49.4 229. - 47.3 231. - 45.2 232. - 43.0 233. - 40.9 235. - 38.7 236. - 36.5 236. - 34.3 237. - 32.1 238. - 29.9 238. - 27.7 238. - 25.4 238. - 23.2 238. - 21.0 238. - 18.7 238. - 16.5 237. - 14.3 236. - 12.1 236. - 9.97 235. - 7.82 233. - 5.69 232. - 3.58 231. - 1.51 229. - -.540 227. - -2.55 225. - -4.53 223. - -6.47 221. - -8.37 219. - -10.2 216. - -12.0 213. - -13.8 211. - -15.5 208. - -17.2 205. - -18.8 202. - -20.3 199. - -21.8 195. - -23.2 192. - -24.6 188. - -25.9 185. - -27.1 181. - -28.3 177. - -29.4 173. - -30.5 169. - -31.4 165. - -32.3 161. - -33.1 157. - -33.9 153. - -34.5 149. - -35.1 144. - -35.6 140. - -36.1 135. - -36.4 131. - -36.7 127. - -36.9 122. - -37.0 118. - -37.0 113. - -37.0 109. - -36.9 104. - -36.7 99.9 - -36.4 95.5 - -36.0 91.1 - -35.6 86.7 - -35.1 82.4 - -34.5 78.1 - -33.8 73.8 - -33.1 69.6 -REG_LINE: 197 - -47.7 168. - -48.6 163. - -49.5 158. - -50.2 152. - -50.8 147. - -51.4 141. - -51.8 136. - -52.2 130. - -52.4 125. - -52.6 119. - -52.7 114. - -52.6 108. - -52.5 102. - -52.2 96.9 - -51.9 91.4 - -51.4 85.9 - -50.9 80.4 - -50.3 75.0 - -49.5 69.6 - -48.7 64.3 - -47.8 59.0 - -46.7 53.8 - -45.6 48.7 - -44.4 43.6 - -43.1 38.7 - -41.8 33.8 - -40.3 29.1 - -38.8 24.5 - -37.1 19.9 - -35.4 15.5 - -33.6 11.2 - -31.8 7.08 - -29.8 3.06 - -27.8 -.822 - -25.7 -4.55 - -23.6 -8.14 - -21.4 -11.6 - -19.1 -14.8 - -16.8 -17.9 - -14.5 -20.9 - -12.0 -23.6 - -9.56 -26.2 - -7.04 -28.6 - -4.49 -30.9 - -1.89 -32.9 - .740 -34.8 - 3.40 -36.5 - 6.09 -37.9 - 8.81 -39.2 - 11.5 -40.3 - 14.3 -41.2 - 17.1 -41.9 - 19.8 -42.4 - 22.6 -42.7 - 25.4 -42.8 - 28.2 -42.7 - 31.0 -42.4 - 33.8 -41.9 - 36.5 -41.2 - 39.3 -40.3 - 42.0 -39.3 - 44.7 -38.0 - 47.4 -36.5 - 50.1 -34.8 - 52.7 -33.0 - 55.3 -30.9 - 57.9 -28.7 - 60.4 -26.3 - 62.9 -23.7 - 65.3 -21.0 - 67.7 -18.0 - 70.0 -14.9 - 72.3 -11.7 - 74.5 -8.26 - 76.6 -4.68 - 78.7 -.956 - 80.7 2.92 - 82.6 6.93 - 84.5 11.1 - 86.3 15.4 - 88.0 19.8 - 89.6 24.3 - 91.2 28.9 - 92.6 33.7 - 94.0 38.5 - 95.3 43.5 - 96.5 48.5 - 97.6 53.6 - 98.7 58.8 - 99.6 64.1 - 100. 69.4 - 101. 74.8 - 102. 80.2 - 102. 85.7 - 103. 91.2 - 103. 96.7 - 103. 102. - 104. 108. - 104. 113. - 104. 119. - 103. 125. - 103. 130. - 103. 136. - 102. 141. - 102. 147. - 101. 152. - 100. 157. - 99.6 163. - 98.7 168. - 97.6 173. - 96.5 178. - 95.3 183. - 94.0 188. - 92.6 193. - 91.2 198. - 89.6 203. - 88.0 207. - 86.3 212. - 84.5 216. - 82.6 220. - 80.7 224. - 78.7 228. - 76.6 232. - 74.5 235. - 72.3 239. - 70.0 242. - 67.7 245. - 65.3 248. - 62.9 251. - 60.4 253. - 57.9 256. - 55.3 258. - 52.7 260. - 50.1 262. - 47.4 263. - 44.7 265. - 42.0 266. - 39.3 267. - 36.5 268. - 33.8 269. - 31.0 269. - 28.2 270. - 25.4 270. - 22.6 270. - 19.8 269. - 17.1 269. - 14.3 268. - 11.5 267. - 8.81 266. - 6.09 265. - 3.40 263. - .740 262. - -1.89 260. - -4.49 258. - -7.04 256. - -9.56 253. - -12.0 251. - -14.5 248. - -16.8 245. - -19.1 242. - -21.4 238. - -23.6 235. - -25.7 231. - -27.8 228. - -29.8 224. - -31.8 220. - -33.6 216. - -35.4 211. - -37.1 207. - -38.8 202. - -40.3 198. - -41.8 193. - -43.1 188. - -44.4 183. - -45.6 178. - -46.7 173. - -47.8 168. - -48.7 163. - -49.5 157. - -50.3 152. - -50.9 146. - -51.4 141. - -51.9 135. - -52.2 130. - -52.5 124. - -52.6 119. - -52.7 113. - -52.6 108. - -52.4 102. - -52.2 96.5 - -51.8 91.0 - -51.4 85.5 - -50.8 80.0 - -50.2 74.6 - -49.5 69.2 - -48.6 63.9 - -47.7 58.6 -REG_LINE: 141 - -62.3 179. - -63.4 173. - -64.4 167. - -65.3 160. - -66.1 154. - -66.8 147. - -67.3 140. - -67.7 134. - -68.0 127. - -68.2 120. - -68.3 114. - -68.2 107. - -68.1 100. - -67.8 93.6 - -67.3 87.0 - -66.8 80.4 - -66.2 73.8 - -65.4 67.3 - -64.5 60.8 - -63.5 54.4 - -62.4 48.1 - -61.2 41.9 - -59.9 35.7 - -58.4 29.7 - -56.9 23.8 - -55.2 17.9 - -53.5 12.2 - -51.6 6.66 - -49.6 1.22 - -47.6 -4.07 - -45.4 -9.21 - -43.2 -14.2 - -40.9 -19.0 - -38.5 -23.7 - -36.0 -28.2 - -33.4 -32.5 - -30.8 -36.6 - -28.1 -40.5 - -25.3 -44.2 - -22.4 -47.7 - -19.5 -51.1 - -16.6 -54.2 - -13.5 -57.1 - -10.5 -59.7 - -7.36 -62.2 - -4.21 -64.4 - -1.01 -66.4 - 2.22 -68.2 - 5.47 -69.7 - 8.76 -71.1 - 12.1 -72.1 - 15.4 -73.0 - 18.7 -73.6 - 22.1 -73.9 - 25.4 -74.1 - 28.8 -73.9 - 32.1 -73.6 - 35.4 -73.0 - 38.8 -72.2 - 42.1 -71.1 - 45.3 -69.8 - 48.6 -68.3 - 51.8 -66.5 - 55.0 -64.5 - 58.2 -62.3 - 61.3 -59.8 - 64.4 -57.2 - 67.4 -54.3 - 70.4 -51.2 - 73.3 -47.9 - 76.1 -44.3 - 78.9 -40.6 - 81.6 -36.7 - 84.3 -32.6 - 86.8 -28.3 - 89.3 -23.8 - 91.7 -19.2 - 94.1 -14.4 - 96.3 -9.39 - 98.5 -4.25 - 101. 1.03 - 102. 6.46 - 104. 12.0 - 106. 17.7 - 108. 23.5 - 109. 29.5 - 111. 35.5 - 112. 41.7 - 113. 47.9 - 114. 54.2 - 115. 60.6 - 116. 67.0 - 117. 73.6 - 118. 80.1 - 118. 86.7 - 119. 93.4 - 119. 100. - 119. 107. - 119. 113. - 119. 120. - 119. 127. - 119. 133. - 118. 140. - 118. 147. - 117. 153. - 116. 160. - 115. 166. - 114. 173. - 113. 179. - 112. 185. - 111. 191. - 109. 197. - 108. 203. - 106. 209. - 104. 215. - 102. 220. - 101. 226. - 98.5 231. - 96.3 236. - 94.1 241. - 91.7 246. - 89.3 251. - 86.8 255. - 84.3 259. - 81.6 264. - 78.9 267. - 76.1 271. - 73.3 275. - 70.4 278. - 67.4 281. - 64.4 284. - 61.3 287. - 58.2 289. - 55.0 291. - 51.8 293. - 48.6 295. - 45.3 297. - 42.1 298. - 38.8 299. - 35.4 300. - 34.7 300. -REG_LINE: 53 - 16.2 300. - 15.4 300. - 12.1 299. - 8.76 298. - 5.47 297. - 2.22 295. - -1.01 293. - -4.21 291. - -7.36 289. - -10.5 287. - -13.5 284. - -16.6 281. - -19.5 278. - -22.4 275. - -25.3 271. - -28.1 267. - -30.8 263. - -33.4 259. - -36.0 255. - -38.5 251. - -40.9 246. - -43.2 241. - -45.4 236. - -47.6 231. - -49.6 226. - -51.6 220. - -53.5 215. - -55.2 209. - -56.9 203. - -58.4 197. - -59.9 191. - -61.2 185. - -62.4 179. - -63.5 172. - -64.5 166. - -65.4 160. - -66.2 153. - -66.8 147. - -67.3 140. - -67.8 133. - -68.1 127. - -68.2 120. - -68.3 113. - -68.2 107. - -68.0 99.8 - -67.7 93.2 - -67.3 86.5 - -66.8 79.9 - -66.1 73.3 - -65.3 66.8 - -64.4 60.4 - -63.4 54.0 - -62.3 47.7 -REG_LINE: 128 - -77.0 190. - -78.3 183. - -79.4 175. - -80.5 168. - -81.4 160. - -82.1 153. - -82.8 145. - -83.3 137. - -83.6 129. - -83.8 122. - -83.9 114. - -83.8 106. - -83.6 98.1 - -83.3 90.3 - -82.8 82.6 - -82.2 74.9 - -81.4 67.2 - -80.5 59.6 - -79.5 52.0 - -78.3 44.6 - -77.1 37.2 - -75.6 29.9 - -74.1 22.8 - -72.4 15.7 - -70.6 8.81 - -68.7 2.01 - -66.6 -4.64 - -64.4 -11.1 - -62.2 -17.5 - -59.8 -23.7 - -57.3 -29.7 - -54.7 -35.5 - -51.9 -41.1 - -49.1 -46.5 - -46.2 -51.8 - -43.2 -56.8 - -40.2 -61.6 - -37.0 -66.1 - -33.7 -70.5 - -30.4 -74.6 - -27.0 -78.5 - -23.6 -82.1 - -20.0 -85.5 - -16.5 -88.6 - -12.8 -91.5 - -9.15 -94.1 - -5.42 -96.4 - -1.66 -98.5 - 2.14 -100. - 5.97 -102. - 9.83 -103. - 13.7 -104. - 17.6 -105. - 21.5 -105. - 25.4 -105. - 29.3 -105. - 33.2 -105. - 37.1 -104. - 41.0 -103. - 44.8 -102. - 48.7 -100. - 52.5 -98.5 - 56.2 -96.5 - 60.0 -94.2 - 63.6 -91.6 - 67.3 -88.7 - 70.9 -85.6 - 74.4 -82.2 - 77.8 -78.6 - 81.2 -74.7 - 84.6 -70.6 - 87.8 -66.3 - 91.0 -61.7 - 94.1 -56.9 - 97.1 -51.9 - 100. -46.7 - 103. -41.3 - 105. -35.7 - 108. -29.9 - 111. -23.9 - 113. -17.7 - 115. -11.4 - 117. -4.87 - 120. 1.78 - 121. 8.56 - 123. 15.5 - 125. 22.5 - 127. 29.7 - 128. 37.0 - 129. 44.3 - 130. 51.8 - 131. 59.3 - 132. 66.9 - 133. 74.6 - 134. 82.3 - 134. 90.0 - 135. 97.8 - 135. 106. - 135. 113. - 135. 121. - 135. 129. - 134. 137. - 134. 145. - 133. 152. - 132. 160. - 131. 168. - 130. 175. - 129. 183. - 128. 190. - 127. 197. - 125. 204. - 123. 211. - 121. 218. - 120. 225. - 117. 232. - 115. 238. - 113. 245. - 111. 251. - 108. 257. - 105. 263. - 103. 268. - 100. 274. - 97.1 279. - 94.1 284. - 91.0 289. - 87.8 293. - 84.6 298. - 82.5 300. -REG_LINE: 40 - -31.6 300. - -33.7 297. - -37.0 293. - -40.2 288. - -43.2 284. - -46.2 279. - -49.1 273. - -51.9 268. - -54.7 262. - -57.3 257. - -59.8 251. - -62.2 244. - -64.4 238. - -66.6 232. - -68.7 225. - -70.6 218. - -72.4 211. - -74.1 204. - -75.6 197. - -77.1 190. - -78.3 182. - -79.5 175. - -80.5 167. - -81.4 160. - -82.2 152. - -82.8 144. - -83.3 137. - -83.6 129. - -83.8 121. - -83.9 113. - -83.8 105. - -83.6 97.5 - -83.3 89.8 - -82.8 82.0 - -82.1 74.3 - -81.4 66.7 - -80.5 59.0 - -79.4 51.5 - -78.3 44.1 - -77.0 36.7 -REG_LINE: 97 - -91.6 201. - -93.1 193. - -94.4 184. - -95.6 176. - -96.6 167. - -97.5 158. - -98.2 149. - -98.8 140. - -99.2 132. - -99.4 123. - -99.5 114. - -99.5 105. - -99.2 95.9 - -98.8 87.0 - -98.3 78.2 - -97.6 69.3 - -96.7 60.6 - -95.7 51.9 - -94.5 43.3 - -93.2 34.8 - -91.7 26.3 - -90.1 18.0 - -88.3 9.83 - -86.4 1.77 - -84.3 -6.14 - -82.1 -13.9 - -79.8 -21.5 - -77.3 -28.9 - -74.7 -36.2 - -71.9 -43.2 - -69.1 -50.1 - -66.1 -56.7 - -63.0 -63.2 - -59.8 -69.4 - -56.5 -75.3 - -53.1 -81.1 - -49.5 -86.6 - -45.9 -91.8 - -42.2 -96.8 - -38.4 -101. - -34.5 -106. - -30.6 -110. - -26.5 -114. - -22.5 -117. - -18.3 -121. - -14.1 -124. - -9.84 -126. - -5.53 -129. - -1.19 -131. - 3.19 -133. - 7.59 -134. - 12.0 -135. - 16.5 -136. - 20.9 -136. - 25.4 -137. - 29.9 -136. - 34.3 -136. - 38.8 -135. - 43.2 -134. - 47.6 -133. - 52.0 -131. - 56.3 -129. - 60.6 -126. - 64.9 -124. - 69.1 -121. - 73.2 -118. - 77.3 -114. - 81.4 -110. - 85.3 -106. - 89.2 -102. - 93.0 -96.9 - 96.7 -92.0 - 100. -86.8 - 104. -81.3 - 107. -75.6 - 111. -69.6 - 114. -63.4 - 117. -57.0 - 120. -50.3 - 123. -43.5 - 126. -36.4 - 128. -29.2 - 131. -21.8 - 133. -14.2 - 135. -6.42 - 137. 1.49 - 139. 9.54 - 141. 17.7 - 143. 26.0 - 144. 34.5 - 145. 43.0 - 147. 51.6 - 148. 60.3 - 148. 69.0 - 149. 77.8 - 150. 86.7 - 150. 92.2 -REG_LINE: 23 - 150. 135. - 150. 140. - 149. 149. - 148. 158. - 148. 167. - 147. 175. - 145. 184. - 144. 192. - 143. 201. - 141. 209. - 139. 217. - 137. 225. - 135. 233. - 133. 241. - 131. 249. - 128. 256. - 126. 263. - 123. 270. - 120. 277. - 117. 284. - 114. 290. - 111. 296. - 109. 300. -REG_LINE: 35 - -57.7 300. - -59.8 296. - -63.0 290. - -66.1 284. - -69.1 277. - -71.9 270. - -74.7 263. - -77.3 256. - -79.8 248. - -82.1 241. - -84.3 233. - -86.4 225. - -88.3 217. - -90.1 209. - -91.7 201. - -93.2 192. - -94.5 184. - -95.7 175. - -96.7 166. - -97.6 158. - -98.3 149. - -98.8 140. - -99.2 131. - -99.5 122. - -99.5 113. - -99.4 104. - -99.2 95.3 - -98.8 86.4 - -98.2 77.5 - -97.5 68.7 - -96.6 60.0 - -95.6 51.3 - -94.4 42.7 - -93.1 34.2 - -91.6 25.7 -REG_LINE: 63 - -100. -13.5 - -98.0 -21.1 - -95.5 -29.8 - -92.9 -38.4 - -90.1 -46.7 - -87.2 -54.9 - -84.1 -62.8 - -80.9 -70.5 - -77.5 -78.0 - -74.1 -85.2 - -70.5 -92.2 - -66.7 -98.9 - -62.9 -105. - -58.9 -112. - -54.8 -117. - -50.7 -123. - -46.4 -128. - -42.0 -133. - -37.6 -138. - -33.1 -142. - -28.4 -146. - -23.8 -150. - -19.0 -153. - -14.3 -156. - -9.41 -159. - -4.52 -161. - .403 -163. - 5.36 -165. - 10.3 -166. - 15.3 -167. - 20.4 -168. - 25.4 -168. - 30.4 -168. - 35.4 -167. - 40.4 -166. - 45.4 -165. - 50.4 -163. - 55.3 -161. - 60.2 -159. - 65.0 -156. - 69.8 -153. - 74.5 -150. - 79.2 -146. - 83.8 -142. - 88.4 -138. - 92.8 -133. - 97.2 -129. - 101. -123. - 106. -118. - 110. -112. - 114. -106. - 118. -99.2 - 121. -92.5 - 125. -85.5 - 128. -78.3 - 132. -70.8 - 135. -63.1 - 138. -55.2 - 141. -47.0 - 144. -38.7 - 146. -30.1 - 149. -21.4 - 150. -17.1 -REG_LINE: 9 - 150. 244. - 149. 248. - 146. 257. - 144. 266. - 141. 274. - 138. 282. - 135. 290. - 132. 298. - 131. 300. -REG_LINE: 9 - -79.7 300. - -80.9 297. - -84.1 290. - -87.2 282. - -90.1 274. - -92.9 265. - -95.5 257. - -98.0 248. - -100. 240. -REG_LINE: 54 - -100. -72.8 - -99.7 -73.6 - -96.3 -82.4 - -92.7 -91.0 - -89.0 -99.3 - -85.1 -107. - -81.1 -115. - -77.0 -123. - -72.7 -130. - -68.3 -137. - -63.8 -143. - -59.1 -149. - -54.4 -155. - -49.5 -161. - -44.6 -166. - -39.6 -171. - -34.4 -175. - -29.2 -179. - -24.0 -183. - -18.7 -186. - -13.3 -189. - -7.85 -192. - -2.38 -194. - 3.13 -196. - 8.66 -197. - 14.2 -198. - 19.8 -199. - 25.4 -199. - 30.9 -199. - 36.5 -198. - 42.1 -197. - 47.6 -196. - 53.1 -194. - 58.6 -192. - 64.0 -189. - 69.4 -186. - 74.7 -183. - 80.0 -179. - 85.2 -175. - 90.3 -171. - 95.3 -166. - 100. -161. - 105. -155. - 110. -150. - 115. -143. - 119. -137. - 123. -130. - 128. -123. - 132. -115. - 136. -108. - 140. -99.6 - 144. -91.3 - 147. -82.7 - 150. -75.3 -REG_LINE: 2 - -99.9 300. - -100. 300. -REG_LINE: 13 - -100. -121. - -96.2 -129. - -91.8 -138. - -87.2 -146. - -82.5 -154. - -77.7 -162. - -72.7 -169. - -67.6 -176. - -62.4 -182. - -57.0 -188. - -51.6 -194. - -46.1 -199. - -45.1 -200. -REG_LINE: 13 - 96.0 -200. - 96.8 -199. - 102. -194. - 108. -188. - 113. -182. - 118. -176. - 123. -169. - 128. -162. - 133. -154. - 138. -146. - 143. -138. - 147. -130. - 150. -123. -REG_LINE: 6 - -100. -165. - -97.4 -170. - -92.3 -178. - -87.0 -187. - -81.6 -194. - -77.4 -200. -REG_LINE: 6 - 128. -200. - 132. -195. - 138. -187. - 143. -179. - 148. -170. - 150. -167. -REG_LINE: 10 - 40.9 118. - 24.4 113. - 7.79 108. - -8.78 104. - -25.4 98.9 - -41.9 94.2 - -58.5 89.5 - -75.1 84.8 - -91.7 80.0 - -100. 77.7 -REG_LINE: 12 - 38.0 132. - 24.6 112. - 11.2 92.1 - -2.25 72.0 - -15.7 52.0 - -29.1 31.9 - -42.5 11.9 - -55.9 -8.13 - -69.3 -28.2 - -82.7 -48.2 - -96.1 -68.2 - -100. -74.0 -REG_LINE: 13 - 32.0 142. - 25.0 111. - 18.0 81.0 - 11.1 50.5 - 4.10 20.1 - -2.86 -10.4 - -9.83 -40.8 - -16.8 -71.3 - -23.8 -102. - -30.7 -132. - -37.7 -163. - -44.7 -193. - -46.3 -200. -REG_LINE: 12 - 24.4 145. - 25.5 111. - 26.7 77.8 - 27.9 44.4 - 29.1 11.0 - 30.3 -22.4 - 31.5 -55.8 - 32.7 -89.2 - 33.8 -123. - 35.0 -156. - 36.2 -189. - 36.6 -200. -REG_LINE: 14 - 17.0 140. - 26.1 112. - 35.1 83.4 - 44.2 55.2 - 53.2 27.0 - 62.3 -1.14 - 71.3 -29.3 - 80.3 -57.5 - 89.4 -85.7 - 98.4 -114. - 107. -142. - 117. -170. - 126. -198. - 126. -200. -REG_LINE: 11 - 11.8 128. - 26.4 112. - 41.1 96.3 - 55.8 80.3 - 70.5 64.2 - 85.2 48.2 - 99.9 32.1 - 115. 16.1 - 129. 0.199E-02 - 144. -16.1 - 150. -22.6 -REG_LINE: 10 - 9.84 113. - 26.6 113. - 43.3 113. - 60.1 113. - 76.8 113. - 93.5 113. - 110. 113. - 127. 113. - 144. 113. - 150. 113. -REG_LINE: 11 - 11.8 98.5 - 26.4 115. - 41.1 131. - 55.8 147. - 70.5 163. - 85.2 179. - 99.9 195. - 115. 211. - 129. 227. - 144. 243. - 150. 250. -REG_LINE: 9 - 17.0 87.1 - 26.1 115. - 35.1 143. - 44.2 172. - 53.2 200. - 62.3 228. - 71.3 256. - 80.3 284. - 85.4 300. -REG_LINE: 8 - 24.4 82.3 - 25.5 116. - 26.7 149. - 27.9 182. - 29.1 216. - 30.3 249. - 31.5 283. - 32.1 300. -REG_LINE: 9 - 32.0 85.0 - 25.0 115. - 18.0 146. - 11.1 176. - 4.10 207. - -2.86 237. - -9.83 268. - -16.8 298. - -17.2 300. -REG_LINE: 12 - 38.0 94.7 - 24.6 115. - 11.2 135. - -2.25 155. - -15.7 175. - -29.1 195. - -42.5 215. - -55.9 235. - -69.3 255. - -82.7 275. - -96.1 295. - -99.4 300. -REG_LINE: 10 - 40.9 109. - 24.4 114. - 7.79 118. - -8.78 123. - -25.4 128. - -41.9 133. - -58.5 137. - -75.1 142. - -91.7 147. - -100. 149. -REG_LINE: 2 - 18.7 134. - 17.7 133. -REG_LINE: 2 - 20.4 129. - 19.4 128. -REG_LINE: 2 - 22.1 124. - 21.1 123. -REG_LINE: 2 - 23.8 119. - 22.8 117. -REG_LINE: 2 - 27.2 108. - 28.2 110. -REG_LINE: 2 - 28.8 103. - 29.8 104. -REG_LINE: 2 - 30.5 97.7 - 31.5 99.1 -REG_LINE: 2 - 32.2 92.4 - 33.2 93.8 -REG_LINE: 2 - 35.6 81.9 - 36.6 83.3 -REG_LINE: 2 - 37.3 76.6 - 38.3 78.1 -REG_LINE: 2 - 39.0 71.4 - 40.0 72.8 -REG_LINE: 2 - 40.7 66.1 - 41.7 67.5 -REG_LINE: 2 - 44.0 55.6 - 45.0 57.0 -REG_LINE: 2 - 45.7 50.3 - 46.7 51.8 -REG_LINE: 2 - 47.4 45.1 - 48.4 46.5 -REG_LINE: 2 - 49.1 39.8 - 50.1 41.2 -REG_LINE: 2 - 52.5 29.3 - 53.5 30.7 -REG_LINE: 2 - 54.2 24.0 - 55.2 25.5 -REG_LINE: 2 - 55.9 18.8 - 56.9 20.2 -REG_LINE: 2 - 57.5 13.5 - 58.6 14.9 -REG_LINE: 2 - 60.9 2.99 - 61.9 4.43 -REG_LINE: 2 - 62.6 -2.26 - 63.6 -.831 -REG_LINE: 2 - 64.3 -7.52 - 65.3 -6.09 -REG_LINE: 2 - 66.0 -12.8 - 67.0 -11.3 -REG_LINE: 2 - 69.4 -23.3 - 70.4 -21.9 -REG_LINE: 2 - 71.1 -28.6 - 72.1 -27.1 -REG_LINE: 2 - 72.7 -33.8 - 73.7 -32.4 -REG_LINE: 2 - 74.4 -39.1 - 75.4 -37.6 -REG_LINE: 2 - 77.8 -49.6 - 78.8 -48.2 -REG_LINE: 2 - 79.5 -54.9 - 80.5 -53.4 -REG_LINE: 2 - 81.2 -60.1 - 82.2 -58.7 -REG_LINE: 2 - 82.9 -65.4 - 83.9 -63.9 -REG_LINE: 2 - 86.3 -75.9 - 87.3 -74.5 -REG_LINE: 2 - 87.9 -81.2 - 88.9 -79.7 -REG_LINE: 2 - 89.6 -86.4 - 90.6 -85.0 -REG_LINE: 2 - 91.3 -91.7 - 92.3 -90.2 -REG_LINE: 2 - 94.7 -102. - 95.7 -101. -REG_LINE: 2 - 96.4 -107. - 97.4 -106. -REG_LINE: 2 - 98.1 -113. - 99.1 -111. -REG_LINE: 2 - 99.8 -118. - 101. -117. -REG_LINE: 2 - 103. -128. - 104. -127. -REG_LINE: 2 - 105. -134. - 106. -132. -REG_LINE: 2 - 107. -139. - 108. -138. -REG_LINE: 2 - 108. -144. - 109. -143. -REG_LINE: 2 - 112. -155. - 113. -153. -REG_LINE: 2 - 113. -160. - 114. -159. -REG_LINE: 2 - 115. -165. - 116. -164. -REG_LINE: 2 - 117. -171. - 118. -169. -REG_LINE: 2 - 120. -181. - 121. -180. -REG_LINE: 2 - 122. -186. - 123. -185. -REG_LINE: 2 - 123. -192. - 124. -190. -REG_LINE: 2 - 125. -197. - 126. -195. -REG_LINE: 2 - -80.3 169. - -81.8 170. -REG_LINE: 2 - -82.5 148. - -84.2 148. -REG_LINE: 2 - -83.7 126. - -85.5 126. -REG_LINE: 2 - -83.8 104. - -85.6 104. -REG_LINE: 2 - -80.7 61.1 - -82.3 60.3 -REG_LINE: 2 - -77.6 40.2 - -79.0 39.1 -REG_LINE: 2 - -73.4 19.9 - -74.7 18.7 -REG_LINE: 2 - -68.3 .672 - -69.4 -.674 -REG_LINE: 2 - -55.2 -34.3 - -56.0 -35.9 -REG_LINE: 2 - -47.4 -49.7 - -48.1 -51.3 -REG_LINE: 2 - -38.9 -63.4 - -39.5 -65.1 -REG_LINE: 2 - -29.7 -75.4 - -30.2 -77.1 -REG_LINE: 2 - -9.89 -93.6 - -10.2 -95.3 -REG_LINE: 2 - .619 -99.6 - .416 -101. -REG_LINE: 2 - 11.4 -103. - 11.3 -105. -REG_LINE: 2 - 22.3 -105. - 22.2 -107. -REG_LINE: 2 - 44.1 -102. - 44.2 -104. -REG_LINE: 2 - 54.7 -97.3 - 55.0 -99.1 -REG_LINE: 2 - 65.1 -90.4 - 65.4 -92.2 -REG_LINE: 2 - 75.1 -81.5 - 75.5 -83.2 -REG_LINE: 2 - 93.5 -57.9 - 94.1 -59.5 -REG_LINE: 2 - 102. -43.5 - 102. -45.1 -REG_LINE: 2 - 109. -27.5 - 110. -29.0 -REG_LINE: 2 - 116. -10.1 - 117. -11.5 -REG_LINE: 2 - 126. 28.3 - 128. 27.1 -REG_LINE: 2 - 130. 48.8 - 131. 47.9 -REG_LINE: 2 - 133. 70.0 - 134. 69.3 -REG_LINE: 2 - 134. 91.6 - 136. 91.3 -REG_LINE: 2 - 134. 135. - 136. 136. -REG_LINE: 2 - 133. 157. - 134. 158. -REG_LINE: 2 - 130. 178. - 131. 179. -REG_LINE: 2 - 126. 199. - 128. 200. -REG_LINE: 2 - 116. 237. - 117. 238. -REG_LINE: 2 - 109. 254. - 110. 256. -REG_LINE: 2 - 102. 270. - 102. 272. -REG_LINE: 2 - 93.5 285. - 94.1 286. -REG_LINE: 2 - -38.9 290. - -39.5 292. -REG_LINE: 2 - -47.4 277. - -48.1 278. -REG_LINE: 2 - -55.2 261. - -56.0 263. -REG_LINE: 2 - -68.3 226. - -69.4 228. -REG_LINE: 2 - -73.4 207. - -74.7 208. -REG_LINE: 2 - -77.6 187. - -79.0 188. -REG_LINE: 2 - -80.7 166. - -82.3 167. -REG_LINE: 2 - -83.8 123. - -85.6 123. -REG_LINE: 2 - -83.7 101. - -85.5 100. -REG_LINE: 2 - -82.5 78.9 - -84.2 78.4 -REG_LINE: 2 - -80.3 57.5 - -81.8 56.7 -REG_LINE: 15 - 25.5 113. - 24.9 115. - 24.3 117. - 23.7 119. - 23.1 121. - 22.5 123. - 21.9 125. - 21.2 127. - 20.6 128. - 20.0 130. - 19.4 132. - 18.8 134. - 18.2 136. - 17.6 138. - 17.0 140. -REG_LINE: 15 - 25.5 113. - 26.1 112. - 26.7 110. - 27.3 108. - 27.9 106. - 28.5 104. - 29.1 102. - 29.7 100. - 30.3 98.4 - 30.9 96.5 - 31.5 94.7 - 32.1 92.8 - 32.7 90.9 - 33.3 89.0 - 33.9 87.1 -REG_LINE: 15 - 33.9 87.1 - 34.5 85.3 - 35.1 83.4 - 35.7 81.5 - 36.3 79.6 - 36.9 77.8 - 37.5 75.9 - 38.1 74.0 - 38.7 72.1 - 39.3 70.2 - 39.9 68.4 - 40.5 66.5 - 41.1 64.6 - 41.8 62.7 - 42.4 60.8 -REG_LINE: 15 - 42.4 60.8 - 43.0 59.0 - 43.6 57.1 - 44.2 55.2 - 44.8 53.3 - 45.4 51.5 - 46.0 49.6 - 46.6 47.7 - 47.2 45.8 - 47.8 43.9 - 48.4 42.1 - 49.0 40.2 - 49.6 38.3 - 50.2 36.4 - 50.8 34.5 -REG_LINE: 15 - 50.8 34.5 - 51.4 32.7 - 52.0 30.8 - 52.6 28.9 - 53.2 27.0 - 53.8 25.2 - 54.4 23.3 - 55.0 21.4 - 55.6 19.5 - 56.2 17.6 - 56.8 15.8 - 57.4 13.9 - 58.0 12.0 - 58.6 10.1 - 59.2 8.25 -REG_LINE: 15 - 59.2 8.25 - 59.8 6.38 - 60.4 4.50 - 61.0 2.62 - 61.6 .740 - 62.3 -1.14 - 62.9 -3.02 - 63.5 -4.89 - 64.1 -6.77 - 64.7 -8.65 - 65.3 -10.5 - 65.9 -12.4 - 66.5 -14.3 - 67.1 -16.2 - 67.7 -18.0 -REG_LINE: 15 - 67.7 -18.0 - 68.3 -19.9 - 68.9 -21.8 - 69.5 -23.7 - 70.1 -25.6 - 70.7 -27.4 - 71.3 -29.3 - 71.9 -31.2 - 72.5 -33.1 - 73.1 -34.9 - 73.7 -36.8 - 74.3 -38.7 - 74.9 -40.6 - 75.5 -42.5 - 76.1 -44.3 -REG_LINE: 15 - 76.1 -44.3 - 76.7 -46.2 - 77.3 -48.1 - 77.9 -50.0 - 78.5 -51.9 - 79.1 -53.7 - 79.7 -55.6 - 80.3 -57.5 - 80.9 -59.4 - 81.5 -61.2 - 82.2 -63.1 - 82.8 -65.0 - 83.4 -66.9 - 84.0 -68.8 - 84.6 -70.6 -REG_LINE: 15 - 84.6 -70.6 - 85.2 -72.5 - 85.8 -74.4 - 86.4 -76.3 - 87.0 -78.1 - 87.6 -80.0 - 88.2 -81.9 - 88.8 -83.8 - 89.4 -85.7 - 90.0 -87.5 - 90.6 -89.4 - 91.2 -91.3 - 91.8 -93.2 - 92.4 -95.1 - 93.0 -96.9 -REG_LINE: 15 - 93.0 -96.9 - 93.6 -98.8 - 94.2 -101. - 94.8 -103. - 95.4 -104. - 96.0 -106. - 96.6 -108. - 97.2 -110. - 97.8 -112. - 98.4 -114. - 99.0 -116. - 99.6 -118. - 100. -119. - 101. -121. - 101. -123. -REG_LINE: 15 - 101. -123. - 102. -125. - 103. -127. - 103. -129. - 104. -131. - 104. -133. - 105. -134. - 106. -136. - 106. -138. - 107. -140. - 107. -142. - 108. -144. - 109. -146. - 109. -148. - 110. -150. -REG_LINE: 15 - 110. -150. - 110. -151. - 111. -153. - 112. -155. - 112. -157. - 113. -159. - 114. -161. - 114. -163. - 115. -165. - 115. -166. - 116. -168. - 117. -170. - 117. -172. - 118. -174. - 118. -176. -REG_LINE: 14 - 118. -176. - 119. -178. - 120. -180. - 120. -181. - 121. -183. - 121. -185. - 122. -187. - 123. -189. - 123. -191. - 124. -193. - 124. -195. - 125. -196. - 126. -198. - 126. -200. -REG_LINE: 15 - -82.8 82.6 - -83.3 90.3 - -83.6 98.1 - -83.8 106. - -83.9 114. - -83.8 122. - -83.6 129. - -83.3 137. - -82.8 145. - -82.1 153. - -81.4 160. - -80.5 168. - -79.4 175. - -78.3 183. - -77.0 190. -REG_LINE: 15 - -82.8 82.6 - -82.2 74.9 - -81.4 67.2 - -80.5 59.6 - -79.5 52.0 - -78.3 44.6 - -77.1 37.2 - -75.6 29.9 - -74.1 22.8 - -72.4 15.7 - -70.6 8.81 - -68.7 2.01 - -66.6 -4.64 - -64.4 -11.1 - -62.2 -17.5 -REG_LINE: 15 - -62.2 -17.5 - -59.8 -23.7 - -57.3 -29.7 - -54.7 -35.5 - -51.9 -41.1 - -49.1 -46.5 - -46.2 -51.8 - -43.2 -56.8 - -40.2 -61.6 - -37.0 -66.1 - -33.7 -70.5 - -30.4 -74.6 - -27.0 -78.5 - -23.6 -82.1 - -20.0 -85.5 -REG_LINE: 15 - -20.0 -85.5 - -16.5 -88.6 - -12.8 -91.5 - -9.15 -94.1 - -5.42 -96.4 - -1.66 -98.5 - 2.14 -100. - 5.97 -102. - 9.83 -103. - 13.7 -104. - 17.6 -105. - 21.5 -105. - 25.4 -105. - 29.3 -105. - 33.2 -105. -REG_LINE: 15 - 33.2 -105. - 37.1 -104. - 41.0 -103. - 44.8 -102. - 48.7 -100. - 52.5 -98.5 - 56.2 -96.5 - 60.0 -94.2 - 63.6 -91.6 - 67.3 -88.7 - 70.9 -85.6 - 74.4 -82.2 - 77.8 -78.6 - 81.2 -74.7 - 84.6 -70.6 -REG_LINE: 15 - 84.6 -70.6 - 87.8 -66.3 - 91.0 -61.7 - 94.1 -56.9 - 97.1 -51.9 - 100. -46.7 - 103. -41.3 - 105. -35.7 - 108. -29.9 - 111. -23.9 - 113. -17.7 - 115. -11.4 - 117. -4.87 - 120. 1.78 - 121. 8.56 -REG_LINE: 15 - 121. 8.56 - 123. 15.5 - 125. 22.5 - 127. 29.7 - 128. 37.0 - 129. 44.3 - 130. 51.8 - 131. 59.3 - 132. 66.9 - 133. 74.6 - 134. 82.3 - 134. 90.0 - 135. 97.8 - 135. 106. - 135. 113. -REG_LINE: 15 - 135. 113. - 135. 121. - 135. 129. - 134. 137. - 134. 145. - 133. 152. - 132. 160. - 131. 168. - 130. 175. - 129. 183. - 128. 190. - 127. 197. - 125. 204. - 123. 211. - 121. 218. -REG_LINE: 15 - 121. 218. - 120. 225. - 117. 232. - 115. 238. - 113. 245. - 111. 251. - 108. 257. - 105. 263. - 103. 268. - 100. 274. - 97.1 279. - 94.1 284. - 91.0 289. - 87.8 293. - 84.6 298. -REG_LINE: 2 - 84.6 298. - 82.5 300. -REG_LINE: 12 - -31.6 300. - -33.7 297. - -37.0 293. - -40.2 288. - -43.2 284. - -46.2 279. - -49.1 273. - -51.9 268. - -54.7 262. - -57.3 257. - -59.8 251. - -62.2 244. -REG_LINE: 15 - -62.2 244. - -64.4 238. - -66.6 232. - -68.7 225. - -70.6 218. - -72.4 211. - -74.1 204. - -75.6 197. - -77.1 190. - -78.3 182. - -79.5 175. - -80.5 167. - -81.4 160. - -82.2 152. - -82.8 144. -REG_LINE: 15 - -82.8 144. - -83.3 137. - -83.6 129. - -83.8 121. - -83.9 113. - -83.8 105. - -83.6 97.5 - -83.3 89.8 - -82.8 82.0 - -82.1 74.3 - -81.4 66.7 - -80.5 59.0 - -79.4 51.5 - -78.3 44.1 - -77.0 36.7 -REG_LINE: 15 - -82.8 144. - -83.3 137. - -83.6 129. - -83.8 121. - -83.9 113. - -83.8 105. - -83.6 97.5 - -83.3 89.8 - -82.8 82.0 - -82.1 74.3 - -81.4 66.7 - -80.5 59.0 - -79.4 51.5 - -78.3 44.1 - -77.0 36.7 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '0.0' - 27.8 114. BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '50.0' - 36.3 87.9 BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '100.0' - 44.7 61.6 BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '150.0' - 53.2 35.3 BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '200.0' - 61.6 9.02 BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '250.0' - 70.1 -17.3 BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '300.0' - 78.5 -43.6 BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '350.0' - 86.9 -69.9 BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '400.0' - 95.4 -96.2 BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '450.0' - 104. -122. BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '500.0' - 112. -149. BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '550.0' - 121. -175. BC .952 .306 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -Symbol = "p1" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Pixel coordinate 2" # Axis Label - Symbol = "p2" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - End Frame - Map2 = # Mapping between nodes 1 and 2 - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - InvB = 1 # Second Mapping used in inverse direction - MapA = # First component Mapping - Begin MathMap # Transformation using mathematical functions - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Fwd1 = "r=sqrt(x*x+y*y)" # Forward function 1 - Fwd2 = "theta=atan2(y,x)" # Forward function 2 - Inv1 = "x=r*cos(theta)" # Inverse function 1 - Inv2 = "y=r*sin(theta)" # Inverse function 2 - SimpFI = 1 # Forward-inverse pairs may simplify - SimpIF = 1 # Inverse-forward pairs may simplify - End MathMap - MapB = # Second component Mapping - Begin WinMap # Map one window on to another - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = -101.5 # Shift for axis 1 - Sft2 = -201.5 # Shift for axis 2 - End WinMap - End CmpMap - End FrameSet - Begin FrameSet # Set of inter-related coordinate systems -# Title = "FK5 equatorial coordinates; mean equinox J2000.0; gnomonic projection" # Title of coordinate system -# Naxes = 2 # Number of coordinate axes -# Domain = "SKY" # Coordinate system domain -# Epoch = 1977.77512999212 # Besselian epoch of observation -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 -# System = "FK5" # Coordinate system type -# Uni1 = "hh:mm:ss.s" # Units for axis 1 -# Uni2 = "ddd:mm:ss" # Units for axis 2 -# Dir1 = 0 # Plot axis 1 in reverse direction -# Bot2 = -1.5707963267949 # Lowest legal axis value -# Top2 = 1.5707963267949 # Highest legal axis value - IsA Frame # Coordinate system description - Nframe = 2 # Number of Frames in FrameSet - Base = 1 # Index of base Frame - Currnt = 2 # Index of current Frame - Lnk2 = 1 # Node 2 is derived from node 1 - Frm1 = # Frame number 1 - Begin Frame # Coordinate system description - Title = "Pixel Coordinates" # Title of coordinate system - Naxes = 2 # Number of coordinate axes - Domain = "GRID" # Coordinate system domain -# Lbl1 = "Pixel axis 1" # Label for axis 1 -# Lbl2 = "Pixel axis 2" # Label for axis 2 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Pixel axis 1" # Axis Label - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Pixel axis 2" # Axis Label - End Axis - End Frame - Frm2 = # Frame number 2 - Begin SkyFrame # Description of celestial coordinate system - Ident = " " # Permanent Object identification string - IsA Object # AST Object -# Title = "FK5 equatorial coordinates; mean equinox J2000.0; gnomonic projection" # Title of coordinate system - Naxes = 2 # Number of coordinate axes -# Domain = "SKY" # Coordinate system domain - Epoch = 1977.77512999212 # Besselian epoch of observation -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 - System = "FK5" # Coordinate system type -# Uni1 = "hh:mm:ss.s" # Units for axis 1 -# Uni2 = "ddd:mm:ss" # Units for axis 2 -# Dir1 = 0 # Plot axis 1 in reverse direction -# Bot2 = -1.5707963267949 # Lowest legal axis value -# Top2 = 1.5707963267949 # Highest legal axis value - Ax1 = # Axis number 1 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - Ax2 = # Axis number 2 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - IsA Frame # Coordinate system description - Proj = "gnomonic" # Description of sky projection - Eqnox = 2000 # Julian epoch of mean equinox - SRefIs = "Ignored" # Not rotated (ref. pos. is ignored) - SRef1 = 0 # Ref. pos. RA 0:00:00.0 - SRef2 = -1.57079633000002 # Ref. pos. Dec -90:00:00 - End SkyFrame - Map2 = # Mapping between nodes 1 and 2 - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = -893.6318379289 # Shift for axis 1 - Sft2 = -223.8380193875 # Shift for axis 2 - End WinMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = -3.25441534352674e-06 # Forward matrix value - M1 = -1.60367292352974e-08 # Forward matrix value - M2 = -1.812057487023e-08 # Forward matrix value - M3 = 3.25725533992408e-06 # Forward matrix value - Form = "Full" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin WcsMap # FITS-WCS sky projection - Nin = 2 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - Type = "TAN" # Gnomonic projection - End WcsMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = 0 # Polar longitREG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-3.0' - -80.3 82.7 BC .997 0.724E-01 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-2.5' - -59.8 -16.6 BC .936 .352 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-2.0' - -18.4 -83.6 BC .673 .740 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-1.5' - 32.8 -102. BC -.145 .989 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-0.5' - 119. 9.22 BC -.965 .262 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '0.0' - 132. 113. BC -1.00 0.125E-02 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '0.5' - 119. 218. TC .964 .265 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '1.0' - 82.6 296. TC .787 .617 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '2.5' - -59.8 243. TC -.936 .352 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '3.0' - -80.3 144. TC -.997 0.724E-01 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 1 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: ' A FITS test' - 31.0 313. BC .000 1.00 - - - - - FITS test number 3 - ==================== - - - -AST_SHOW: - -REG_SINK: -SIMPLE = T / file does conform to FITS standard -BITPIX = 16 / number of bits per data pixel -NAXIS = 2 / number of data axes -NAXIS1 = 1787 / length of data axis 1 -NAXIS2 = 447 / length of data axis 2 -EXTEND = T / FITS dataset may contain extensions -COMMENT FITS (Flexible Image Transport System) format defined in Astronomy and -COMMENT Astrophysics Supplement Series v44/p363, v44/p371, v73/p359, v73/p365. -COMMENT Contact the NASA Science Office of Standards and Technology for the -COMMENT FITS Definition document #100 and other FITS information. -PLATENUM= '3665 ' / Plate number -EMULSION= 'IIIaJ ' / Kodak emulsion type -FILTER = 'GG395 ' / Schott glass filter type -PLTSCALE= '67.14 ' / [arcsec/mm] plate scale -FIELDNUM= '1 ' / Sky survey field number -TELESCOP= 'UKST ' / Telescope on which the plate was taken -TELETYPE= 'SCHM ' / Type of telescope -SITELAT = -0.5458410576565 / [radians] latitude of telescope -SITELONG= 2.601766194458 / [radians] longitude of telescope -LST = '00:20 ' / [hh:mm] local sidereal time at start of obs -INSTRUME= 'SuperCOSMOS I' / Measuring machine -DATE-MES= '2000-11-04' / [yyyy-mm-dd] Date of this plate measurement -NHKLINES= 146 / Number of lines from house-keeping file -HKLIN001= 'JOB.JOBNO UKJ001' -HKLIN002= 'JOB.DATE-MES 2000:11:04' -HKLIN003= 'JOB.TIME 12:51:09' -HKLIN004= 'JOB.INSTRUME SuperCOSMOS I' -HKLIN005= 'JOB.ORIGIN Royal Observatory Edinburgh' -HKLIN006= 'JOB.SOFTWARE /home/scosdev/v033' -HKLIN007= 'JOB.OPERATOR ebt' -HKLIN008= 'JOB.USER htm' -HKLIN009= 'JOB.USERREF NONE' -HKLIN010= 'JOB.UORIGIN ROE' -HKLIN011= 'JOB.UCOUNTRY uk' -HKLIN012= 'JOB.COMMENT Digital catalogue of the Sky' -HKLIN013= 'JOB.IAM_FILE iam.srt'/ / ' / -HKLIN014= 'PLATE.TELESCOP UKST' -HKLIN015= 'PLATE.TELTYPE SCHM' -HKLIN016= 'PLATE.PLATE 3665' -HKLIN017= 'PLATE.MATERIAL 3mm glass' -HKLIN018= 'PLATE.EMULSION IIIaJ' -HKLIN019= 'PLATE.FILTER GG395' -HKLIN020= 'PLATE.PSCALE 67.14' -HKLIN021= 'PLATE.FIELD 1' -HKLIN022= 'PLATE.RA_PNT 0' -HKLIN023= 'PLATE.DEC_PNT -90' -HKLIN024= 'PLATE.RADECSYS FK4' -HKLIN025= 'PLATE.EQUINOX 1950' -HKLIN026= 'PLATE.TIMESYS BESSELIAN' -HKLIN027= 'PLATE.EPOCH 1977.78'/ / ' / -HKLIN028= 'PLATE.EXPOSURE 75' -HKLIN029= 'PLATE.UTDATE 771011' -HKLIN030= 'PLATE.LST 0020' -HKLIN031= 'PLATE.MJD 43426.573008796' -HKLIN032= 'PLATE.TELLAT -0.54584105765654' -HKLIN033= 'PLATE.TELLONG 2.6017661944583' -HKLIN034= 'PLATE.TELHT 1145' -HKLIN035= 'PLATE.TEMP 273.155'/ / ' / -HKLIN036= 'PLATE.ATMOSP 1013.25'/ / ' / -HKLIN037= 'PLATE.HUMID 0.5' -HKLIN038= 'PLATE.WAVE 4500' -HKLIN039= 'PLATE.TROPL 0.0065' -HKLIN040= 'CALIBRATION.CALTYPE SPLINE' -HKLIN041= 'CALIBRATION.STEPWEDG KPNO' -HKLIN042= 'CALIBRATION.NSTEPS 8' -HKLIN043= 'MEASUREMENT.ORIENTAT news' -HKLIN044= 'MEASUREMENT.EMULPOS UP' -HKLIN045= 'MEASUREMENT.SCANFILT 14' -HKLIN046= 'MEASUREMENT.SOSP 552' -HKLIN047= 'MEASUREMENT.STEPSIZE 10' -HKLIN048= 'MEASUREMENT.SCANLEN 1152' -HKLIN049= 'MEASUREMENT.A-XMIN 1622000'/ / ' / -HKLIN050= 'MEASUREMENT.A-YMIN 1622000'/ / ' / -HKLIN051= 'MEASUREMENT.A-XMAX 33878000' -HKLIN052= 'MEASUREMENT.A-YMAX 33878000' -HKLIN053= 'MEASUREMENT.X_PNT 17500000' -HKLIN054= 'MEASUREMENT.Y_PNT 18000000' -HKLIN055= 'ANALYSIS.NPARAMS 32' -HKLIN056= 'ANALYSIS.AREACUT 8' -HKLIN057= 'ANALYSIS.AP-PARAM 1.07' -HKLIN058= 'DEBLEND.DB-PARAM 1.05' -HKLIN059= 'DEBLEND.DB-AMIN 16' -HKLIN060= 'DEBLEND.DB-AMAX 100000' -HKLIN061= 'DEBLEND.DB-ACUT 8' -HKLIN062= 'DEBLEND.DB-LEVEL 16' -HKLIN063= 'DEBLEND.SELECT PARENT+CHILD' -HKLIN064= 'SKY.SKYSQUAR 64' -HKLIN065= 'SKY.SKYDEFN MEDIAN' -HKLIN066= 'SKY.SKYFILTR bdkjunk'/ / ' / -HKLIN067= 'SKY.F-THRESH 8' -HKLIN068= 'SKY.F-SCLEN 4' -HKLIN069= 'THRESHOLDING.PCUT 10' -HKLIN070= 'IAMQC.AREAMIN 8' -HKLIN071= 'IAMQC.AREAMAX 77346' -HKLIN072= 'IAMQC.MINMAG -30515' -HKLIN073= 'IAMQC.MAXMAG -17954' -HKLIN074= 'IAMQC.MINELL 0.0004156232' -HKLIN075= 'IAMQC.MAXELL 1' -HKLIN076= 'IAMQC.MODELL 0.14' -HKLIN077= 'IAMQC.MODOR 91' -HKLIN078= 'IAMQC.MIDELL 0.21' -HKLIN079= 'IAMQC.MIDOR 93' -HKLIN080= 'IAMQC.MEANELL 0.2467037' -HKLIN081= 'IAMQC.MEANOR 91.63474' -HKLIN082= 'IAMQC.NUMOBJ 556985' -HKLIN083= 'IAMQC.PARENTS 486656' -HKLIN084= 'IAMQC.RANGING TRUE' -HKLIN085= 'IAMQC.LANE_1 15571' -HKLIN086= 'IAMQC.LANE_2 33207' -HKLIN087= 'IAMQC.LANE_3 51478' -HKLIN088= 'IAMQC.LANE_4 69944' -HKLIN089= 'IAMQC.LANE_5 89236' -HKLIN090= 'IAMQC.LANE_6 108416' -HKLIN091= 'IAMQC.LANE_7 127481' -HKLIN092= 'IAMQC.LANE_8 146699' -HKLIN093= 'IAMQC.LANE_9 166380' -HKLIN094= 'IAMQC.LANE_10 186126' -HKLIN095= 'IAMQC.LANE_11 205946' -HKLIN096= 'IAMQC.LANE_12 225915' -HKLIN097= 'IAMQC.LANE_13 245926' -HKLIN098= 'IAMQC.LANE_14 266574' -HKLIN099= 'IAMQC.LANE_15 287150' -HKLIN100= 'IAMQC.LANE_16 308087' -HKLIN101= 'IAMQC.LANE_17 328830' -HKLIN102= 'IAMQC.LANE_18 350253' -HKLIN103= 'IAMQC.LANE_19 370738' -HKLIN104= 'IAMQC.LANE_20 391722' -HKLIN105= 'IAMQC.LANE_21 412801' -HKLIN106= 'IAMQC.LANE_22 433795' -HKLIN107= 'IAMQC.LANE_23 454383' -HKLIN108= 'IAMQC.LANE_24 474711' -HKLIN109= 'IAMQC.LANE_25 495108' -HKLIN110= 'IAMQC.LANE_26 515755' -HKLIN111= 'IAMQC.LANE_27 536499' -HKLIN112= 'IAMQC.LANE_28 556985' -HKLIN113= 'XYTORADEC.STARCAT /sdata/scos/refcats/tycho2.FIT' -HKLIN114= 'XYTORADEC.BRIGHTLIM 9' -HKLIN115= 'XYTORADEC.C-EQUIN 2000' -HKLIN116= 'XYTORADEC.C-EQTSYS JULIAN' -HKLIN117= 'XYTORADEC.C-EPOCH 2000' -HKLIN118= 'XYTORADEC.C-EPTSYS JULIAN' -HKLIN119= 'XYTORADEC.R-EQUIN 2000' -HKLIN120= 'XYTORADEC.R-TSYS JULIAN' -HKLIN121= 'XYTORADEC.MAXITER 5000' -HKLIN122= 'XYTORADEC.RCRITINI 500000' -HKLIN123= 'XYTORADEC.RCRITABS 50000' -HKLIN124= 'XYTORADEC.RCRITREL 1' -HKLIN125= 'XYTORADEC.RCRITFIN 3' -HKLIN126= 'XYTORADEC.HARDCOPY /scos1/scos/UKJ001/UKJ001.ps' -HKLIN127= 'XYTORADEC.REFSMULT 5' -HKLIN128= 'XYTORADEC.RESDMULT 1000' -HKLIN129= 'XYTORADEC.RACOL RA' -HKLIN130= 'XYTORADEC.DECOL DEC' -HKLIN131= 'XYTORADEC.RAPMCOL PMRA' -HKLIN132= 'XYTORADEC.DECPMCOL PMDE' -HKLIN133= 'XYTORADEC.PLXCOL NONE' -HKLIN134= 'XYTORADEC.RVCOL NONE' -HKLIN135= 'XYTORADEC.MAGCOL VT' -HKLIN136= 'XYTORADEC.STARSC 2374' -HKLIN137= 'XYTORADEC.STARSU 1727' -HKLIN138= 'XYTORADEC.COEFFS_1 17.640343856524' -HKLIN139= 'XYTORADEC.COEFFS_2 -260.44151995641' -HKLIN140= 'XYTORADEC.COEFFS_3 -163.09155572601' -HKLIN141= 'XYTORADEC.COEFFS_4 17.504230442205' -HKLIN142= 'XYTORADEC.COEFFS_5 -163.08676953832' -HKLIN143= 'XYTORADEC.COEFFS_6 260.48817907668' -HKLIN144= 'XYTORADEC.DISTR -0.33333333333333' -HKLIN145= 'XYTORADEC.RA_PNT 0.54924996662137' -HKLIN146= 'XYTORADEC.DEC_PNT -1.5684931501781' -HISTORY = 'SuperCOSMOS image analysis and mapping mode (IAM and MM)' / -HISTORY = 'data written by xydcomp_ss.' / -HISTORY = 'Any questions/comments/suggestions/bug reports should be sent' / -HISTORY = 'to N.Hambly@roe.ac.uk' / -ASTSIGX = 0.37 / [arcsec] std. dev. of astrometric fit in X -ASTSIGY = 0.38 / [arcsec] std. dev. of astrometric fit in Y -PC001001= 1.0 / DEPRECATED - Axis rotation matrix -PC001002= 0.004927623810613 / DEPRECATED - Axis rotation matrix -PC002001= -0.005563056187788 / DEPRECATED - Axis rotation matrix -PC002002= 1.0 / DEPRECATED - Axis rotation matrix -CROTA2 = 0.3005532298491 / DEPRECATED - rotation of axis 2 -DATATYPE= 'INTEGER*2' / Type of data -DATUNITS= 'DENSITY ' / Units: transmission, density or intensity -XPIXELSZ= 9.997114974 / [microns] X pixel size -YPIXELSZ= 10.0 / [microns] Y pixel size -OBJCTRA = ' 0 0 0.000' / Centre Right Ascension (J2000) -OBJCTDEC= '-90 0 0.00' / Centre Declination (J2000) -OBJCTX = 16368.63183793 / [pixels] Centre X on plate -OBJCTY = 14740.83801939 / [pixels] Centre Y on plate - -Objects written: 1 - -Native Encoding: - -COMMENT AST ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ AST -COMMENT AST WCS information in AST format AST -COMMENT AST See http://www.starlink.ac.uk/ast/ AST -COMMENT AST Beginning of AST data for FrameSet object AST -COMMENT AST ................................................................ AST -BEGAST_A= 'FrameSet' / Set of inter-related coordinate systems -NFRAME_A= 2 / Number of Frames in FrameSet -BASE_A = 1 / Index of base Frame -CURRNT_A= 2 / Index of current Frame -LNK2_A = 1 / Node 2 is derived from node 1 -FRM1_A = ' ' / Frame number 1 -BEGAST_B= 'Frame ' / Coordinate system description -TITLE_A = 'Pixel Coordinates' / Title of coordinate system -NAXES_A = 2 / Number of coordinate axes -DOMAIN_A= 'GRID ' / Coordinate system domain -AX1_A = ' ' / Axis number 1 -BEGAST_C= 'Axis ' / Coordinate axis -LABEL_A = 'Pixel axis 1' / Axis Label -ENDAST_A= 'Axis ' / End of object definition -AX2_A = ' ' / Axis number 2 -BEGAST_D= 'Axis ' / Coordinate axis -LABEL_B = 'Pixel axis 2' / Axis Label -ENDAST_B= 'Axis ' / End of object definition -ENDAST_C= 'Frame ' / End of object definition -FRM2_A = ' ' / Frame number 2 -BEGAST_E= 'SkyFrame' / Description of celestial coordinate system -IDENT_A = '" " ' / Permanent Object identification string -ISA_A = 'Object ' / AST Object -NAXES_B = 2 / Number of coordinate axes -EPOCH_A = 1977.77512999212 / Besselian epoch of observation -SYSTEM_A= 'FK5 ' / Coordinate system type -AX1_B = ' ' / Axis number 1 -BEGAST_F= 'SkyAxis ' / Celestial coordinate axis -ENDAST_D= 'SkyAxis ' / End of object definition -AX2_B = ' ' / Axis number 2 -BEGAST_G= 'SkyAxis ' / Celestial coordinate axis -ENDAST_E= 'SkyAxis ' / End of object definition -ISA_B = 'Frame ' / Coordinate system description -PROJ_A = 'gnomonic' / Description of sky projection -EQNOX_A = 2000.0 / Julian epoch of mean equinox -SREFIS_A= 'Ignored ' / Not rotated (ref. pos. is ignored) -SREF1_A = 0.0 / Ref. pos. RA 0:00:00.0 -SREF2_A = -1.57079633 / Ref. pos. Dec -90:00:00 -ENDAST_F= 'SkyFrame' / End of object definition -MAP2_A = ' ' / Mapping between nodes 1 and 2 -BEGAST_H= 'CmpMap ' / Compound Mapping -NIN_A = 2 / Number of input coordinates -ISSIMP_A= 1 / Mapping has been simplified -ISA_C = 'Mapping ' / Mapping between coordinate systems -MAPA_A = ' ' / First component Mapping -BEGAST_I= 'WinMap ' / Map one window on to another -NIN_B = 2 / Number of input coordinates -INVERT_A= 0 / Mapping not inverted -ISA_D = 'Mapping ' / Mapping between coordinate systems -SFT1_A = -893.6318379289 / Shift for axis 1 -SFT2_A = -223.8380193875 / Shift for axis 2 -ENDAST_G= 'WinMap ' / End of object definition -MAPB_A = ' ' / Second component Mapping -BEGAST_J= 'CmpMap ' / Compound Mapping -NIN_C = 2 / Number of input coordinates -ISA_E = 'Mapping ' / Mapping between coordinate systems -MAPA_B = ' ' / First component Mapping -BEGAST_K= 'MatrixMap' / Matrix transformation -NIN_D = 2 / Number of input coordinates -INVERT_B= 0 / Mapping not inverted -ISA_F = 'Mapping ' / Mapping between coordinate systems -M0_A = -3.25441534352674E-6/ Forward matrix value -M1_A = -1.60367292352974E-8/ Forward matrix value -M2_A = -1.812057487023E-8 / Forward matrix value -M3_A = 3.25725533992408E-6 / Forward matrix value -FORM_A = 'Full ' / Matrix storage form -ENDAST_H= 'MatrixMap' / End of object definition -MAPB_B = ' ' / Second component Mapping -BEGAST_L= 'CmpMap ' / Compound Mapping -NIN_E = 2 / Number of input coordinates -ISA_G = 'Mapping ' / Mapping between coordinate systems -INVA_A = 1 / First Mapping used in inverse direction -MAPA_C = ' ' / First component Mapping -BEGAST_M= 'WcsMap ' / FITS-WCS sky projection -NIN_F = 2 / Number of input coordinates -INVERT_C= 1 / Mapping inverted -ISA_H = 'Mapping ' / Mapping between coordinate systems -TYPE_A = 'TAN ' / Gnomonic projection -ENDAST_I= 'WcsMap ' / End of object definition -MAPB_C = ' ' / Second component Mapping -BEGAST_N= 'CmpMap ' / Compound Mapping -NIN_G = 2 / Number of input coordinates -ISA_I = 'Mapping ' / Mapping between coordinate systems -INVA_B = 1 / First Mapping used in inverse direction -MAPA_D = ' ' / First component Mapping -BEGAST_O= 'SphMap ' / Cartesian to Spherical mapping -NIN_H = 3 / Number of input coordinates -NOUT_A = 2 / Number of output coordinates -INVERT_D= 1 / Mapping inverted -ISA_J = 'Mapping ' / Mapping between coordinate systems -UNTRD_A = 1 / All input vectors have unit length -PLRLG_A = 0.0 / Polar longitude (rad.s) -ENDAST_J= 'SphMap ' / End of object definition -MAPB_D = ' ' / Second component Mapping -BEGAST_P= 'CmpMap ' / Compound Mapping -NIN_I = 3 / Number of input coordinates -NOUT_B = 2 / Number of output coordinates -ISA_K = 'Mapping ' / Mapping between coordinate systems -MAPA_E = ' ' / First component Mapping -BEGAST_Q= 'MatrixMap' / Matrix transformation -NIN_J = 3 / Number of input coordinates -INVERT_E= 0 / Mapping not inverted -ISA_L = 'Mapping ' / Mapping between coordinate systems -M0_B = -1.0 / Forward matrix value -M1_B = 1.0 / Forward matrix value -M2_B = -1.0 / Forward matrix value -FORM_B = 'Diagonal' / Matrix storage form -ENDAST_K= 'MatrixMap' / End of object definition -MAPB_E = ' ' / Second component Mapping -BEGAST_R= 'SphMap ' / Cartesian to Spherical mapping -NIN_K = 3 / Number of input coordinates -NOUT_C = 2 / Number of output coordinates -INVERT_F= 0 / Mapping not inverted -ISA_M = 'Mapping ' / Mapping between coordinate systems -UNTRD_B = 1 / All input vectors have unit length -PLRLG_B = 0.0 / Polar longitude (rad.s) -ENDAST_L= 'SphMap ' / End of object definition -ENDAST_M= 'CmpMap ' / End of object definition -ENDAST_N= 'CmpMap ' / End of object definition -ENDAST_O= 'CmpMap ' / End of object definition -ENDAST_P= 'CmpMap ' / End of object definition -ENDAST_Q= 'CmpMap ' / End of object definition -ENDAST_R= 'FrameSet' / End of object definition -COMMENT AST ................................................................ AST -COMMENT AST End of AST data for FrameSet object AST -COMMENT AST ---------------------------------------------------------------- AST - -ATTRIBUTES: - Colour(axis1) : 1 - Font(Stri) : 1 - Nout : 1 - Class : 4 - Tol : 0.100000E-01 - Gap(1) : .523599 - Border : 0 - Invert : 0 - TextLabGap : 0.100000E-01 - Nin : 2 - Current : 3 - Base : 1 - Nobject : 1 - RefCOUNT : 1 - -AST_GRID: -REG_LINE: 2 - 15.5 -136. - 15.4 -137. -REG_LINE: 2 - 18.6 -144. - 18.5 -146. -REG_LINE: 2 - 21.8 -149. - 21.8 -151. -REG_LINE: 2 - 25.1 -150. - 25.1 -154. -REG_LINE: 2 - 28.3 -149. - 28.4 -150. -REG_LINE: 2 - 31.5 -143. - 31.6 -145. -REG_LINE: 2 - 34.6 -135. - 34.7 -136. -REG_LINE: 2 - 37.6 -123. - 37.8 -127. -REG_LINE: 2 - 40.3 -108. - 40.4 -110. -REG_LINE: 2 - 42.7 -91.0 - 42.9 -92.7 -REG_LINE: 2 - 44.9 -71.2 - 45.2 -72.9 -REG_LINE: 2 - 46.7 -49.3 - 47.5 -53.0 -REG_LINE: 2 - 48.1 -25.8 - 48.6 -27.4 -REG_LINE: 2 - 49.2 -.928 - 49.9 -2.51 -REG_LINE: 2 - 49.8 24.8 - 51.0 23.5 -REG_LINE: 2 - 50.0 50.9 - 53.7 51.1 -REG_LINE: 2 - 49.7 77.1 - 50.9 78.4 -REG_LINE: 2 - 49.1 103. - 49.8 104. -REG_LINE: 2 - 48.0 127. - 48.5 129. -REG_LINE: 2 - 46.6 151. - 47.3 155. -REG_LINE: 2 - 44.7 173. - 45.0 174. -REG_LINE: 2 - 42.6 192. - 42.8 194. -REG_LINE: 2 - 40.1 209. - 40.2 211. -REG_LINE: 2 - 37.4 224. - 37.6 228. -REG_LINE: 2 - 34.4 235. - 34.5 237. -REG_LINE: 2 - 31.3 244. - 31.4 245. -REG_LINE: 2 - 28.1 248. - 28.1 250. -REG_LINE: 2 - 24.8 250. - 24.8 254. -REG_LINE: 2 - 21.6 248. - 21.5 250. -REG_LINE: 2 - 18.4 243. - 18.3 245. -REG_LINE: 2 - 15.3 234. - 15.2 236. -REG_LINE: 2 - 12.3 223. - 12.1 226. -REG_LINE: 2 - 9.62 208. - 9.45 210. -REG_LINE: 2 - 7.17 191. - 6.95 192. -REG_LINE: 2 - 5.02 171. - 4.74 173. -REG_LINE: 2 - 3.22 149. - 2.41 153. -REG_LINE: 2 - 1.78 125. - 1.27 127. -REG_LINE: 2 - .747 101. - -0.657E-02 102. -REG_LINE: 2 - .124 74.8 - -1.11 76.1 -REG_LINE: 2 - -0.740E-01 48.7 - -3.82 48.5 -REG_LINE: 2 - .156 22.6 - -1.02 21.3 -REG_LINE: 2 - .811 -3.08 - 0.841E-01 -4.67 -REG_LINE: 2 - 1.88 -27.8 - 1.38 -29.5 -REG_LINE: 2 - 3.34 -51.3 - 2.56 -54.9 -REG_LINE: 2 - 5.17 -73.0 - 4.89 -74.7 -REG_LINE: 2 - 7.34 -92.6 - 7.13 -94.3 -REG_LINE: 2 - 9.81 -110. - 9.65 -111. -REG_LINE: 2 - 12.5 -124. - 12.3 -128. -REG_LINE: 2 - 15.5 -136. - 15.4 -137. -REG_LINE: 2 - 18.6 -144. - 18.5 -146. -REG_LINE: 2 - 21.8 -149. - 21.8 -151. -REG_LINE: 2 - 25.1 -150. - 25.1 -154. -REG_LINE: 2 - 28.3 -149. - 28.4 -150. -REG_LINE: 2 - 31.5 -143. - 31.6 -145. -REG_LINE: 2 - 34.6 -135. - 34.7 -136. -REG_LINE: 2 - 24.9 74.8 - 26.5 75.6 -REG_LINE: 2 - 24.9 99.9 - 26.5 101. -REG_LINE: 2 - 24.9 125. - 26.5 126. -REG_LINE: 2 - 24.9 150. - 28.3 152. -REG_LINE: 2 - 24.9 175. - 26.5 176. -REG_LINE: 2 - 24.9 200. - 26.4 201. -REG_LINE: 2 - 24.8 225. - 26.4 226. -REG_LINE: 2 - 24.8 250. - 28.2 252. -REG_LINE: 2 - 24.8 275. - 26.4 276. -REG_LINE: 15 - 25.1 -150. - 24.1 -150. - 23.2 -150. - 22.3 -149. - 21.3 -148. - 20.4 -147. - 19.5 -146. - 18.6 -144. - 17.7 -142. - 16.8 -140. - 15.9 -137. - 15.1 -134. - 14.2 -131. - 13.4 -128. - 12.5 -124. -REG_LINE: 15 - 25.1 -150. - 26.0 -150. - 26.9 -150. - 27.9 -149. - 28.8 -148. - 29.7 -147. - 30.6 -145. - 31.5 -143. - 32.4 -141. - 33.3 -139. - 34.2 -136. - 35.1 -133. - 35.9 -130. - 36.7 -127. - 37.6 -123. -REG_LINE: 15 - 37.6 -123. - 38.4 -119. - 39.1 -115. - 39.9 -111. - 40.6 -106. - 41.4 -101. - 42.1 -96.2 - 42.7 -91.0 - 43.4 -85.6 - 44.0 -79.9 - 44.6 -74.2 - 45.2 -68.2 - 45.7 -62.1 - 46.2 -55.8 - 46.7 -49.3 -REG_LINE: 15 - 46.7 -49.3 - 47.1 -42.8 - 47.5 -36.1 - 47.9 -29.2 - 48.3 -22.3 - 48.6 -15.3 - 48.9 -8.13 - 49.2 -.928 - 49.4 6.35 - 49.6 13.7 - 49.7 21.1 - 49.8 28.5 - 49.9 36.0 - 50.0 43.4 - 50.0 50.9 -REG_LINE: 15 - 50.0 50.9 - 49.9 58.4 - 49.9 65.9 - 49.8 73.3 - 49.7 80.8 - 49.5 88.1 - 49.3 95.5 - 49.1 103. - 48.8 110. - 48.5 117. - 48.2 124. - 47.8 131. - 47.4 138. - 47.0 144. - 46.6 151. -REG_LINE: 15 - 46.6 151. - 46.1 157. - 45.6 164. - 45.0 170. - 44.4 176. - 43.8 181. - 43.2 187. - 42.6 192. - 41.9 197. - 41.2 202. - 40.5 207. - 39.7 212. - 38.9 216. - 38.2 220. - 37.4 224. -REG_LINE: 15 - 37.4 224. - 36.5 227. - 35.7 231. - 34.8 234. - 34.0 237. - 33.1 239. - 32.2 241. - 31.3 244. - 30.4 245. - 29.5 247. - 28.6 248. - 27.6 249. - 26.7 250. - 25.8 250. - 24.8 250. -REG_LINE: 15 - 24.8 250. - 23.9 250. - 23.0 249. - 22.0 249. - 21.1 248. - 20.2 246. - 19.3 245. - 18.4 243. - 17.5 241. - 16.6 238. - 15.7 236. - 14.8 233. - 14.0 230. - 13.1 226. - 12.3 223. -REG_LINE: 15 - 12.3 223. - 11.5 219. - 10.8 215. - 9.99 210. - 9.25 206. - 8.53 201. - 7.84 196. - 7.17 191. - 6.52 185. - 5.90 180. - 5.31 174. - 4.74 168. - 4.20 162. - 3.70 155. - 3.22 149. -REG_LINE: 15 - 3.22 149. - 2.77 142. - 2.35 136. - 1.96 129. - 1.61 122. - 1.29 115. - 1.00 108. - .747 101. - .526 93.3 - .339 85.9 - .187 78.6 - 0.696E-01 71.1 - -0.132E-01 63.7 - -0.611E-01 56.2 - -0.740E-01 48.7 -REG_LINE: 15 - -0.740E-01 48.7 - -0.519E-01 41.2 - 0.519E-02 33.7 - 0.971E-01 26.3 - .224 18.9 - .385 11.5 - .581 4.18 - .811 -3.08 - 1.07 -10.3 - 1.37 -17.4 - 1.70 -24.4 - 2.06 -31.3 - 2.46 -38.1 - 2.88 -44.7 - 3.34 -51.3 -REG_LINE: 15 - 3.34 -51.3 - 3.83 -57.7 - 4.34 -63.9 - 4.89 -70.0 - 5.46 -75.9 - 6.06 -81.6 - 6.69 -87.2 - 7.34 -92.6 - 8.02 -97.7 - 8.72 -103. - 9.44 -107. - 10.2 -112. - 11.0 -116. - 11.7 -120. - 12.5 -124. -REG_LINE: 15 - 12.5 -124. - 13.4 -128. - 14.2 -131. - 15.1 -134. - 15.9 -137. - 16.8 -140. - 17.7 -142. - 18.6 -144. - 19.5 -146. - 20.4 -147. - 21.3 -148. - 22.3 -149. - 23.2 -150. - 24.1 -150. - 25.1 -150. -REG_LINE: 15 - 25.1 -150. - 26.0 -150. - 26.9 -150. - 27.9 -149. - 28.8 -148. - 29.7 -147. - 30.6 -145. - 31.5 -143. - 32.4 -141. - 33.3 -139. - 34.2 -136. - 35.1 -133. - 35.9 -130. - 36.7 -127. - 37.6 -123. -REG_LINE: 15 - 25.1 -150. - 26.0 -150. - 26.9 -150. - 27.9 -149. - 28.8 -148. - 29.7 -147. - 30.6 -145. - 31.5 -143. - 32.4 -141. - 33.3 -139. - 34.2 -136. - 35.1 -133. - 35.9 -130. - 36.7 -127. - 37.6 -123. -REG_LINE: 15 - 24.9 49.8 - 24.9 57.0 - 24.9 64.1 - 24.9 71.3 - 24.9 78.4 - 24.9 85.6 - 24.9 92.7 - 24.9 99.9 - 24.9 107. - 24.9 114. - 24.9 121. - 24.9 128. - 24.9 136. - 24.9 143. - 24.9 150. -REG_LINE: 15 - 24.9 150. - 24.9 157. - 24.9 164. - 24.9 171. - 24.9 179. - 24.9 186. - 24.9 193. - 24.9 200. - 24.9 207. - 24.8 214. - 24.8 221. - 24.8 229. - 24.8 236. - 24.8 243. - 24.8 250. -REG_LINE: 8 - 24.8 250. - 24.8 257. - 24.8 264. - 24.8 272. - 24.8 279. - 24.8 286. - 24.8 293. - 24.8 300. -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '12' - 24.9 -148. BC -0.654E-01 .998 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '14' - 35.1 -123. BC -.978 .210 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '16' - 44.2 -49.2 BC -.997 0.716E-01 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '18' - 47.5 50.9 BC -1.00 -0.942E-03 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '20' - 44.1 151. TC .997 0.732E-01 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '22' - 34.9 223. TC .977 .213 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '0' - 24.9 248. TC -0.236E-01 1.00 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '2' - 14.8 222. TC -.978 .210 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '4' - 5.71 149. TC -.997 0.716E-01 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '6' - 2.43 48.7 BC 1.00 0.288E-03 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '8' - 5.83 -51.1 BC .997 0.732E-01 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '10' - 15.0 -124. BC .977 .215 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-90:00' - 22.4 49.8 BC -1.00 -0.615E-03 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '59' - 22.4 150. BC -1.00 -0.615E-03 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: '-89:58' - 22.3 250. BC -1.00 -0.615E-03 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 1 -REG_CAP: 2 -REG_SCALES: -REG_QCH: -REG_CAP: 0 -REG_CAP: 0 -REG_TEXT: ' A FITS test' - 30.9 313. BC .000 1.00 -ude (rad.s) - End SphMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = -1 # Forward matrix value - M1 = 1 # Forward matrix value - M2 = -1 # Forward matrix value - Form = "Diagonal" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = 0 # Polar longitude (rad.s) - End SphMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End FrameSet diff --git a/ast/ast_tester/rigby.map b/ast/ast_tester/rigby.map deleted file mode 100644 index 6482149..0000000 --- a/ast/ast_tester/rigby.map +++ /dev/null @@ -1,240 +0,0 @@ - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = 0.1 # Forward matrix value - M1 = 1 # Forward matrix value - Form = "Diagonal" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin WinMap # Map one window on to another - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = -0.0500000000000114 # Shift for axis 1 - End WinMap - End CmpMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - Sft1 = -3129 # Shift for axis 1 - Sft2 = -8 # Shift for axis 2 - End WinMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin PermMap # Coordinate permutation - Nin = 2 # Number of input coordinates - Nout = 3 # Number of output coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Out1 = 1 # Output coordinate 1 = input coordinate 1 - Out2 = -1 # Output coordinate 2 = constant no. 1 - Out3 = 2 # Output coordinate 3 = input coordinate 2 - In1 = 1 # Input coordinate 1 = output coordinate 1 - In2 = 3 # Input coordinate 2 = output coordinate 3 - Nconst = 1 # Number of constants - Con1 = 232.84 # Constant number 1 - End PermMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = 0.812968257918776 # Forward matrix value - M1 = 0.582308004080753 # Forward matrix value - M2 = 0 # Forward matrix value - M3 = -0.582308004080753 # Forward matrix value - M4 = 0.812968257918776 # Forward matrix value - M5 = 0 # Forward matrix value - M6 = 0 # Forward matrix value - M7 = 0 # Forward matrix value - M8 = 1 # Forward matrix value - Form = "Full" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = -1236.82078999603 # Shift for axis 1 - Scl1 = 0.999999999977888 # Scale factor for axis 1 - Sft2 = 586.515648677204 # Shift for axis 2 - Scl2 = 0.999999999985306 # Scale factor for axis 2 - Sft3 = 330420868230.796 # Shift for axis 3 - Scl3 = 551361.368168752 # Scale factor for axis 3 - End WinMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Series = 0 # Component Mappings applied in parallel - MapA = # First component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = -3.28230370472069e-05 # Forward matrix value - M1 = -1.68687502681513e-05 # Forward matrix value - M2 = -1.68687502681513e-05 # Forward matrix value - M3 = 3.28230370472069e-05 # Forward matrix value - Form = "Full" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin WcsMap # FITS-WCS sky projection - Nin = 2 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - Type = "TAN" # Gnomonic projection - End WcsMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = 0 # Polar longitude (rad.s) - End SphMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = 0.0160398354926887 # Forward matrix value - M1 = 0.967192049208341 # Forward matrix value - M2 = 0.253539471533602 # Forward matrix value - M3 = -0.0610660311421554 # Forward matrix value - M4 = 0.254046334254542 # Forward matrix value - M5 = -0.96526234770262 # Forward matrix value - M6 = -0.998004841430097 # Forward matrix value - M7 = 0 # Forward matrix value - M8 = 0.0631374412063651 # Forward matrix value - Form = "Full" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = 4.96925054084174 # Polar longitude (rad.s) - End SphMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - MapB = # Second component Mapping - Begin SlaMap # Conversion between sky coordinate systems - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Nsla = 1 # Number of conversion steps - Sla1 = "EQGAL" # J2000.0 equatorial (FK5) to galactic (IAU 1958) - End SlaMap - End CmpMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 1 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin SpecMap # Conversion between spectral coordinate systems - Nin = 1 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Nspec = 2 # Number of conversion steps - Spec1 = "FRTOVL" # Convert frequency to rel. velocity - Spec1a = 330587960100 # Rest frequency (Hz) - Spec2 = "VLTOVR" # Convert relativistic to radio velocity - End SpecMap - MapB = # Second component Mapping - Begin ZoomMap # Zoom about the origin - Nin = 1 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - Zoom = 0.001 # Zoom factor - End ZoomMap - End CmpMap - End CmpMap - MapB = # Second component Mapping - Begin PermMap # Coordinate permutation - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - Out1 = 1 # Output coordinate 1 = input coordinate 1 - Out2 = 3 # Output coordinate 2 = input coordinate 3 - In1 = 1 # Input coordinate 1 = output coordinate 1 - In2 = -1 # Input coordinate 2 = constant no. 1 - In3 = 2 # Input coordinate 3 = output coordinate 2 - Nconst = 1 # Number of constants - Con1 = -0.000391559614368643 # Constant number 1 - End PermMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap diff --git a/ast/ast_tester/rigby.simp b/ast/ast_tester/rigby.simp deleted file mode 100644 index fa78112..0000000 --- a/ast/ast_tester/rigby.simp +++ /dev/null @@ -1,201 +0,0 @@ - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin PermMap # Coordinate permutation - Nin = 2 # Number of input coordinates - Nout = 3 # Number of output coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Out1 = 1 # Output coordinate 1 = input coordinate 1 - Out2 = -1 # Output coordinate 2 = constant no. 1 - Out3 = 2 # Output coordinate 3 = input coordinate 2 - In1 = 1 # Input coordinate 1 = output coordinate 1 - In2 = 3 # Input coordinate 2 = output coordinate 3 - Nconst = 1 # Number of constants - Con1 = 232.84 # Constant number 1 - End PermMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = 8.1296825791877598 # Forward matrix value - M1 = 0.58230800408075301 # Forward matrix value - M2 = 0 # Forward matrix value - M3 = -5.8230800408075298 # Forward matrix value - M4 = 0.81296825791877603 # Forward matrix value - M5 = 0 # Forward matrix value - M6 = 0 # Forward matrix value - M7 = 0 # Forward matrix value - M8 = 1 # Forward matrix value - Form = "Full" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = -3780.1919848386815 # Shift for axis 1 - Scl1 = 0.99999999997788802 # Scale factor for axis 1 - Sft2 = 2408.2662394170707 # Shift for axis 2 - Scl2 = 0.99999999998530598 # Scale factor for axis 2 - Sft3 = 330416457339.85065 # Shift for axis 3 - Scl3 = 551361.36816875194 # Scale factor for axis 3 - End WinMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Series = 0 # Component Mappings applied in parallel - MapA = # First component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = -3.2823037047206903e-05 # Forward matrix value - M1 = -1.6868750268151298e-05 # Forward matrix value - M2 = -1.6868750268151298e-05 # Forward matrix value - M3 = 3.2823037047206903e-05 # Forward matrix value - Form = "Full" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin WcsMap # FITS-WCS sky projection - Nin = 2 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - Type = "TAN" # Gnomonic projection - End WcsMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = 0 # Polar longitude (rad.s) - End SphMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = 0.016039835492688701 # Forward matrix value - M1 = 0.96719204920834101 # Forward matrix value - M2 = 0.25353947153360201 # Forward matrix value - M3 = -0.061066031142155398 # Forward matrix value - M4 = 0.25404633425454198 # Forward matrix value - M5 = -0.96526234770261998 # Forward matrix value - M6 = -0.99800484143009704 # Forward matrix value - M7 = 0 # Forward matrix value - M8 = 0.063137441206365094 # Forward matrix value - Form = "Full" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin SphMap # Cartesian to Spherical mapping - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - PlrLg = 4.96925054084174 # Polar longitude (rad.s) - End SphMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - MapB = # Second component Mapping - Begin SlaMap # Conversion between sky coordinate systems - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Nsla = 1 # Number of conversion steps - Sla1 = "EQGAL" # J2000.0 equatorial (FK5) to galactic (IAU 1958) - End SlaMap - End CmpMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 1 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin SpecMap # Conversion between spectral coordinate systems - Nin = 1 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Nspec = 2 # Number of conversion steps - Spec1 = "FRTOVL" # Convert frequency to rel. velocity - Spec1a = 330587960100 # Rest frequency (Hz) - Spec2 = "VLTOVR" # Convert relativistic to radio velocity - End SpecMap - MapB = # Second component Mapping - Begin ZoomMap # Zoom about the origin - Nin = 1 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - Zoom = 0.001 # Zoom factor - End ZoomMap - End CmpMap - End CmpMap - MapB = # Second component Mapping - Begin PermMap # Coordinate permutation - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - Out1 = 1 # Output coordinate 1 = input coordinate 1 - Out2 = 3 # Output coordinate 2 = input coordinate 3 - In1 = 1 # Input coordinate 1 = output coordinate 1 - In2 = -1 # Input coordinate 2 = constant no. 1 - In3 = 2 # Input coordinate 3 = output coordinate 2 - Nconst = 1 # Number of constants - Con1 = -0.00039155961436864302 # Constant number 1 - End PermMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap diff --git a/ast/ast_tester/scp.attr b/ast/ast_tester/scp.attr deleted file mode 100644 index 54434e8..0000000 --- a/ast/ast_tester/scp.attr +++ /dev/null @@ -1 +0,0 @@ -Grid=1,labelling=int diff --git a/ast/ast_tester/scp.box b/ast/ast_tester/scp.box deleted file mode 100644 index 76f5ba8..0000000 --- a/ast/ast_tester/scp.box +++ /dev/null @@ -1 +0,0 @@ -1.0 1.0 1500.0 1300.0 diff --git a/ast/ast_tester/scp.head b/ast/ast_tester/scp.head deleted file mode 100644 index f35c6f4..0000000 --- a/ast/ast_tester/scp.head +++ /dev/null @@ -1,204 +0,0 @@ -SIMPLE = T / file does conform to FITS standard -BITPIX = 16 / number of bits per data pixel -NAXIS = 2 / number of data axes -NAXIS1 = 1787 / length of data axis 1 -NAXIS2 = 447 / length of data axis 2 -EXTEND = T / FITS dataset may contain extensions -COMMENT FITS (Flexible Image Transport System) format defined in Astronomy and -COMMENT Astrophysics Supplement Series v44/p363, v44/p371, v73/p359, v73/p365. -COMMENT Contact the NASA Science Office of Standards and Technology for the -COMMENT FITS Definition document #100 and other FITS information. -PLATENUM= '3665 ' / Plate number -EMULSION= 'IIIaJ ' / Kodak emulsion type -FILTER = 'GG395 ' / Schott glass filter type -PLTSCALE= '67.14 ' / [arcsec/mm] plate scale -FIELDNUM= '1 ' / Sky survey field number -EPOCH = 1.977780E+03 / Epoch of observation -DATE-OBS= '1977-10-11' / [yyyy-mm-dd] UT date of observation -TELESCOP= 'UKST ' / Telescope on which the plate was taken -TELETYPE= 'SCHM ' / Type of telescope -SITELAT = -5.458410576565E-01 / [radians] latitude of telescope -SITELONG= 2.601766194458E+00 / [radians] longitude of telescope -LST = '00:20 ' / [hh:mm] local sidereal time at start of obs -MJD-OBS = 4.342657300880E+04 / Modified Julian Date of observation -INSTRUME= 'SuperCOSMOS I' / Measuring machine -DATE-MES= '2000-11-04' / [yyyy-mm-dd] Date of this plate measurement -RADECSYS= 'FK5 ' / Reference frame for RA/DEC in original file -NHKLINES= 146 / Number of lines from house-keeping file -HKLIN001= 'JOB.JOBNO UKJ001' / -HKLIN002= 'JOB.DATE-MES 2000:11:04' / -HKLIN003= 'JOB.TIME 12:51:09' / -HKLIN004= 'JOB.INSTRUME SuperCOSMOS I' / -HKLIN005= 'JOB.ORIGIN Royal Observatory Edinburgh' / -HKLIN006= 'JOB.SOFTWARE /home/scosdev/v033' / -HKLIN007= 'JOB.OPERATOR ebt' / -HKLIN008= 'JOB.USER htm' / -HKLIN009= 'JOB.USERREF NONE' / -HKLIN010= 'JOB.UORIGIN ROE' / -HKLIN011= 'JOB.UCOUNTRY uk' / -HKLIN012= 'JOB.COMMENT Digital catalogue of the Sky' / -HKLIN013= 'JOB.IAM_FILE iam.srt' / -HKLIN014= 'PLATE.TELESCOP UKST' / -HKLIN015= 'PLATE.TELTYPE SCHM' / -HKLIN016= 'PLATE.PLATE 3665' / -HKLIN017= 'PLATE.MATERIAL 3mm glass' / -HKLIN018= 'PLATE.EMULSION IIIaJ' / -HKLIN019= 'PLATE.FILTER GG395' / -HKLIN020= 'PLATE.PSCALE 67.14' / -HKLIN021= 'PLATE.FIELD 1' / -HKLIN022= 'PLATE.RA_PNT 0' / -HKLIN023= 'PLATE.DEC_PNT -90' / -HKLIN024= 'PLATE.RADECSYS FK4' / -HKLIN025= 'PLATE.EQUINOX 1950' / -HKLIN026= 'PLATE.TIMESYS BESSELIAN' / -HKLIN027= 'PLATE.EPOCH 1977.78' / -HKLIN028= 'PLATE.EXPOSURE 75' / -HKLIN029= 'PLATE.UTDATE 771011' / -HKLIN030= 'PLATE.LST 0020' / -HKLIN031= 'PLATE.MJD 43426.573008796' / -HKLIN032= 'PLATE.TELLAT -0.54584105765654' / -HKLIN033= 'PLATE.TELLONG 2.6017661944583' / -HKLIN034= 'PLATE.TELHT 1145' / -HKLIN035= 'PLATE.TEMP 273.155' / -HKLIN036= 'PLATE.ATMOSP 1013.25' / -HKLIN037= 'PLATE.HUMID 0.5' / -HKLIN038= 'PLATE.WAVE 4500' / -HKLIN039= 'PLATE.TROPL 0.0065' / -HKLIN040= 'CALIBRATION.CALTYPE SPLINE' / -HKLIN041= 'CALIBRATION.STEPWEDG KPNO' / -HKLIN042= 'CALIBRATION.NSTEPS 8' / -HKLIN043= 'MEASUREMENT.ORIENTAT news' / -HKLIN044= 'MEASUREMENT.EMULPOS UP' / -HKLIN045= 'MEASUREMENT.SCANFILT 14' / -HKLIN046= 'MEASUREMENT.SOSP 552' / -HKLIN047= 'MEASUREMENT.STEPSIZE 10' / -HKLIN048= 'MEASUREMENT.SCANLEN 1152' / -HKLIN049= 'MEASUREMENT.A-XMIN 1622000' / -HKLIN050= 'MEASUREMENT.A-YMIN 1622000' / -HKLIN051= 'MEASUREMENT.A-XMAX 33878000' / -HKLIN052= 'MEASUREMENT.A-YMAX 33878000' / -HKLIN053= 'MEASUREMENT.X_PNT 17500000' / -HKLIN054= 'MEASUREMENT.Y_PNT 18000000' / -HKLIN055= 'ANALYSIS.NPARAMS 32' / -HKLIN056= 'ANALYSIS.AREACUT 8' / -HKLIN057= 'ANALYSIS.AP-PARAM 1.07' / -HKLIN058= 'DEBLEND.DB-PARAM 1.05' / -HKLIN059= 'DEBLEND.DB-AMIN 16' / -HKLIN060= 'DEBLEND.DB-AMAX 100000' / -HKLIN061= 'DEBLEND.DB-ACUT 8' / -HKLIN062= 'DEBLEND.DB-LEVEL 16' / -HKLIN063= 'DEBLEND.SELECT PARENT+CHILD' / -HKLIN064= 'SKY.SKYSQUAR 64' / -HKLIN065= 'SKY.SKYDEFN MEDIAN' / -HKLIN066= 'SKY.SKYFILTR bdkjunk' / -HKLIN067= 'SKY.F-THRESH 8' / -HKLIN068= 'SKY.F-SCLEN 4' / -HKLIN069= 'THRESHOLDING.PCUT 10' / -HKLIN070= 'IAMQC.AREAMIN 8' / -HKLIN071= 'IAMQC.AREAMAX 77346' / -HKLIN072= 'IAMQC.MINMAG -30515' / -HKLIN073= 'IAMQC.MAXMAG -17954' / -HKLIN074= 'IAMQC.MINELL 0.0004156232' / -HKLIN075= 'IAMQC.MAXELL 1' / -HKLIN076= 'IAMQC.MODELL 0.14' / -HKLIN077= 'IAMQC.MODOR 91' / -HKLIN078= 'IAMQC.MIDELL 0.21' / -HKLIN079= 'IAMQC.MIDOR 93' / -HKLIN080= 'IAMQC.MEANELL 0.2467037' / -HKLIN081= 'IAMQC.MEANOR 91.63474' / -HKLIN082= 'IAMQC.NUMOBJ 556985' / -HKLIN083= 'IAMQC.PARENTS 486656' / -HKLIN084= 'IAMQC.RANGING TRUE' / -HKLIN085= 'IAMQC.LANE_1 15571' / -HKLIN086= 'IAMQC.LANE_2 33207' / -HKLIN087= 'IAMQC.LANE_3 51478' / -HKLIN088= 'IAMQC.LANE_4 69944' / -HKLIN089= 'IAMQC.LANE_5 89236' / -HKLIN090= 'IAMQC.LANE_6 108416' / -HKLIN091= 'IAMQC.LANE_7 127481' / -HKLIN092= 'IAMQC.LANE_8 146699' / -HKLIN093= 'IAMQC.LANE_9 166380' / -HKLIN094= 'IAMQC.LANE_10 186126' / -HKLIN095= 'IAMQC.LANE_11 205946' / -HKLIN096= 'IAMQC.LANE_12 225915' / -HKLIN097= 'IAMQC.LANE_13 245926' / -HKLIN098= 'IAMQC.LANE_14 266574' / -HKLIN099= 'IAMQC.LANE_15 287150' / -HKLIN100= 'IAMQC.LANE_16 308087' / -HKLIN101= 'IAMQC.LANE_17 328830' / -HKLIN102= 'IAMQC.LANE_18 350253' / -HKLIN103= 'IAMQC.LANE_19 370738' / -HKLIN104= 'IAMQC.LANE_20 391722' / -HKLIN105= 'IAMQC.LANE_21 412801' / -HKLIN106= 'IAMQC.LANE_22 433795' / -HKLIN107= 'IAMQC.LANE_23 454383' / -HKLIN108= 'IAMQC.LANE_24 474711' / -HKLIN109= 'IAMQC.LANE_25 495108' / -HKLIN110= 'IAMQC.LANE_26 515755' / -HKLIN111= 'IAMQC.LANE_27 536499' / -HKLIN112= 'IAMQC.LANE_28 556985' / -HKLIN113= 'XYTORADEC.STARCAT /sdata/scos/refcats/tycho2.FIT' / -HKLIN114= 'XYTORADEC.BRIGHTLIM 9' / -HKLIN115= 'XYTORADEC.C-EQUIN 2000' / -HKLIN116= 'XYTORADEC.C-EQTSYS JULIAN' / -HKLIN117= 'XYTORADEC.C-EPOCH 2000' / -HKLIN118= 'XYTORADEC.C-EPTSYS JULIAN' / -HKLIN119= 'XYTORADEC.R-EQUIN 2000' / -HKLIN120= 'XYTORADEC.R-TSYS JULIAN' / -HKLIN121= 'XYTORADEC.MAXITER 5000' / -HKLIN122= 'XYTORADEC.RCRITINI 500000' / -HKLIN123= 'XYTORADEC.RCRITABS 50000' / -HKLIN124= 'XYTORADEC.RCRITREL 1' / -HKLIN125= 'XYTORADEC.RCRITFIN 3' / -HKLIN126= 'XYTORADEC.HARDCOPY /scos1/scos/UKJ001/UKJ001.ps' / -HKLIN127= 'XYTORADEC.REFSMULT 5' / -HKLIN128= 'XYTORADEC.RESDMULT 1000' / -HKLIN129= 'XYTORADEC.RACOL RA' / -HKLIN130= 'XYTORADEC.DECOL DEC' / -HKLIN131= 'XYTORADEC.RAPMCOL PMRA' / -HKLIN132= 'XYTORADEC.DECPMCOL PMDE' / -HKLIN133= 'XYTORADEC.PLXCOL NONE' / -HKLIN134= 'XYTORADEC.RVCOL NONE' / -HKLIN135= 'XYTORADEC.MAGCOL VT' / -HKLIN136= 'XYTORADEC.STARSC 2374' / -HKLIN137= 'XYTORADEC.STARSU 1727' / -HKLIN138= 'XYTORADEC.COEFFS_1 17.640343856524' / -HKLIN139= 'XYTORADEC.COEFFS_2 -260.44151995641' / -HKLIN140= 'XYTORADEC.COEFFS_3 -163.09155572601' / -HKLIN141= 'XYTORADEC.COEFFS_4 17.504230442205' / -HKLIN142= 'XYTORADEC.COEFFS_5 -163.08676953832' / -HKLIN143= 'XYTORADEC.COEFFS_6 260.48817907668' / -HKLIN144= 'XYTORADEC.DISTR -0.33333333333333' / -HKLIN145= 'XYTORADEC.RA_PNT 0.54924996662137' / -HKLIN146= 'XYTORADEC.DEC_PNT -1.5684931501781' / -HISTORY = 'SuperCOSMOS image analysis and mapping mode (IAM and MM)' / -HISTORY = 'data written by xydcomp_ss.' / -HISTORY = 'Any questions/comments/suggestions/bug reports should be sent' / -HISTORY = 'to N.Hambly@roe.ac.uk' / -ASTSIGX = 3.700000E-01 / [arcsec] std. dev. of astrometric fit in X -ASTSIGY = 3.800000E-01 / [arcsec] std. dev. of astrometric fit in Y -CRVAL1 = 0.000000000000E+00 / Axis 1 reference value -CRPIX1 = 8.936318379289E+02 / Axis 1 pixel value -CTYPE1 = 'RA---TAN' / Quantity represented by axis 1 -CRVAL2 = -9.000000018364E+01 / Axis 2 reference value -CRPIX2 = 2.238380193875E+02 / Axis 2 pixel value -CTYPE2 = 'DEC--TAN' / Quantity represented by axis 2 -CD1_1 = -1.864642639667E-04 / Co-ordinate transformation matrix -CD1_2 = -9.188369023766E-07 / Co-ordinate transformation matrix -CD2_1 = -1.038232462415E-06 / Co-ordinate transformation matrix -CD2_2 = 1.866269837741E-04 / Co-ordinate transformation matrix -PC001001= 9.999878591881E-01 / DEPRECATED - Axis rotation matrix -PC001002= 4.927623810613E-03 / DEPRECATED - Axis rotation matrix -PC002001= -5.563056187788E-03 / DEPRECATED - Axis rotation matrix -PC002002= 9.999845260832E-01 / DEPRECATED - Axis rotation matrix -CROTA2 = 3.005532298491E-01 / DEPRECATED - rotation of axis 2 -EQUINOX = 2.000000E+03 / Julian reference frame equinox -DATATYPE= 'INTEGER*2' / Type of data -DATUNITS= 'DENSITY ' / Units: transmission, density or intensity -XPIXELSZ= 9.997114974000E+00 / [microns] X pixel size -YPIXELSZ= 1.000000000000E+01 / [microns] Y pixel size -OBJCTRA = ' 0 0 0.000' / Centre Right Ascension (J2000) -OBJCTDEC= '-90 0 0.00' / Centre Declination (J2000) -OBJCTX = 1.636863183793E+04 / [pixels] Centre X on plate -OBJCTY = 1.474083801939E+04 / [pixels] Centre Y on plate -END diff --git a/ast/ast_tester/serpens.attr b/ast/ast_tester/serpens.attr deleted file mode 100644 index 496403c..0000000 --- a/ast/ast_tester/serpens.attr +++ /dev/null @@ -1 +0,0 @@ -border=1 diff --git a/ast/ast_tester/serpens.box b/ast/ast_tester/serpens.box deleted file mode 100644 index f9576e8..0000000 --- a/ast/ast_tester/serpens.box +++ /dev/null @@ -1 +0,0 @@ -0.5 0.5 150.5 120.5 diff --git a/ast/ast_tester/serpens.head b/ast/ast_tester/serpens.head deleted file mode 100644 index 0775604..0000000 --- a/ast/ast_tester/serpens.head +++ /dev/null @@ -1,160 +0,0 @@ -NAXIS1 = 150 / length of data axis 1 -NAXIS2 = 120 / length of data axis 2 -DATE-OBS= '2007-04-30T15:13:53.717'/ Date of observation -CRPIX1 = 75.910204 / Reference pixel on axis 1 -CRPIX2 = 60.359184 / Reference pixel on axis 2 -CRVAL1 = 1.220833333 / Value at ref. pixel on axis 1 -CRVAL2 = 277.5004167 / Value at ref. pixel on axis 2 -CTYPE1 = 'DEC--TAN' / Type of co-ordinate on axis 1 -CTYPE2 = 'RA---TAN' / Type of co-ordinate on axis 2 -CD1_1 = -0.001831773954 / Transformation matrix element -CD1_2 = -8.541702226E-4 / Transformation matrix element -CD2_1 = 0.0008541702226 / Transformation matrix element -CD2_2 = -0.001831773954 / Transformation matrix element -RADECSYS= 'FK5 ' / Reference frame for RA/DEC values -EQUINOX = 2000.0 / Epoch of reference equinox -DUT1 = -1.145603703E-6 / [d] UT1-UTC correction - - - - - - - - - - - - - - - - - - - - - - - - - - -EXP_TIME= 41.97277069 / [s] Median MAKECUBE exposure time -EFF_TIME= 11.13561535 / [s] Median MAKECUBE effective integration time -PROVCNT = 1 / Number of unique OBSIDs -OBS00001= 'acsis_98_20070430T151247'/ OBSID from component observation - - -HISTORY History structure created 2007 Apr 30 05:52:50.656 -HISTORY Update mode: NORMAL Current record: 8 - -HISTORY 1: 2007 Apr 30 05:52:53.959 - MAKECUBE (SMURF V0.2.2) -HISTORY User: operator Host: kolea Width: 72 -HISTORY Dataset: /jcmtdata/reduced/acsis/20070430/a20070430_00098_01_cube -HISTORY Parameters: AUTOGRID=TRUE CROTA=115 DETECTORS=! -HISTORY FBL=[4.8435931408225,0.024206080047514] -HISTORY FBR=[4.8456657339925,0.019762137343435] -HISTORY FLBND=[4.8407875332009,0.018441755319268,-426.75185625342] -HISTORY FUBND=[4.8456891772589,0.024229519070352,440.3284772626] -HISTORY FTL=[4.8408109789176,0.022909013956528] -HISTORY FTR=[4.8428837776034,0.018465194476559] GENVAR='tsys' -HISTORY IN=@^/jcmtdata/reduced/acsis/20070430/oractemppV8I2A.lis -HISTORY INWEIGHT=TRUE LBOUND=[-70,-41,-1024] OUT=@a20070430_00098_01_cube -HISTORY OUTCAT=! PIXSIZE=7.2761 MSG_FILTER='NORM' REFLAT='1:13:15' -HISTORY REFLON='18:30:00.1' SPARSE=FALSE SPECBOUNDS='-426.5402 440.1168' -HISTORY TRIM=TRUE WEIGHTS=FALSE SPREAD='nearest' SYSTEM='TRACKING' -HISTORY UBOUND=[69,46,1023] USEDETPOS=TRUE -HISTORY Software: /star/bin/smurf/smurf_mon - -HISTORY 2: 2007 Apr 30 05:52:59.952 - NDFCOPY (KAPPA 1.7-2) -HISTORY User: operator Host: kolea Width: 72 -HISTORY Dataset: /jcmtdata/reduced/acsis/20070430/a20070430_00098_01_em -HISTORY Parameters: IN=@a20070430_00098_01_cube(,,-820:819) LIKE=! -HISTORY OUT=@a20070430_00098_01_em TITLE=! TRIM=FALSE -HISTORY Software: /star/bin/kappa/ndfpack_mon - -HISTORY 3: 2007 Apr 30 05:53:04.009 - MFITTREND (KAPPA 1.7-2) -HISTORY User: operator Host: kolea Width: 72 -HISTORY Dataset: /jcmtdata/reduced/acsis/20070430/a20070430_00098_01_bl -HISTORY Parameters: ARANGES=[-820,-56,47,819] AUTO=TRUE AXIS=@3 CLIP=[2,2,2.5,3] -HISTORY IN=@a20070430_00098_01_em MODIFYIN=FALSE ORDER=0 -HISTORY OUT=@a20070430_00098_01_bl RMSCLIP=! SECTION='-70:69,-41:46,' -HISTORY SUBTRACT=TRUE TITLE=! VARIANCE=TRUE -HISTORY Software: /star/bin/kappa/kappa_mon - -HISTORY 4: 2007 Apr 30 05:53:17.048 - NDFCOPY (KAPPA 1.7-2) -HISTORY User: operator Host: kolea Width: 72 -HISTORY Dataset: /jcmtdata/reduced/acsis/20070430/ga20070430_98 -HISTORY Parameters: IN=@a20070430_00098_01_bl LIKE=! OUT=@ga20070430_98 -HISTORY TITLE='ga20070430_98' TRIM=FALSE -HISTORY Software: /star/bin/kappa/ndfpack_mon - -HISTORY 5: 2007 Apr 30 06:40:02.994 - WCSMOSAIC (KAPPA 1.7-2) -HISTORY User: operator Host: kolea Width: 72 -HISTORY Dataset: /jcmtdata/reduced/acsis/20070430/oractemppLv7wv -HISTORY Parameters: ACC=0.05 GENVAR=FALSE ILEVEL=2 -HISTORY IN=@^/jcmtdata/reduced/acsis/20070430/oractempyopUhZ.lis LBND=! -HISTORY LBOUND=[-70,-43,-820] MAXPIX=1000 METHOD='nearest' -HISTORY OUT=@/jcmtdata/reduced/acsis/20070430/oractemppLv7wv REF=! UBND=! -HISTORY UBOUND=[69,46,819] VARIANCE=TRUE WLIM=1E-10 -HISTORY Software: /star/bin/kappa/kappa_mon - -HISTORY 6: 2007 Apr 30 06:40:05.801 - NDFCOPY (KAPPA 1.7-2) -HISTORY User: operator Host: kolea Width: 72 -HISTORY Dataset: /jcmtdata/reduced/acsis/20070430/ga20070430_98 -HISTORY Parameters: IN=@/jcmtdata/reduced/acsis/20070430/oractemppLv7wv LIKE=! -HISTORY OUT=@ga20070430_98 TITLE=! TRIM=FALSE -HISTORY Software: /star/bin/kappa/ndfpack_mon - -HISTORY 7: 2007 May 10 10:42:40.627 - WCSMOSAIC (KAPPA 1.7-3) -HISTORY User: jbuckle Host: scubadev Width: 72 -HISTORY Dataset: /home/jbuckle/data/serpens_cube -HISTORY Parameters: ACC=0.05 GENVAR=FALSE ILEVEL=2 -HISTORY IN=@ga20070430_98,ga20070502_63_1 LBND=! LBOUND=[-77,-52,-820] -HISTORY MAXPIX=1000 METHOD='nearest' OUT=@serpens_cube REF=! -HISTORY UBOUND=[77,54,819] VARIANCE=TRUE WLIM=1E-10 -HISTORY Software: /star/bin/kappa/wcsmosaic - -HISTORY 8: 2007 May 17 12:04:41.724 - NDFCOPY (KAPPA 1.7-2) -HISTORY User: dsb Host: localhost.localdomain Width: 72 -HISTORY Dataset: /stardev/jaccvs/jcmt/scuba2/soft/smurf/makecube/jane -HISTORY Parameters: IN=@serpens_cube(~150,~120,0) LIKE=! OUT=@jane TITLE=! -HISTORY TRIM=TRUE TRIMWCS=TRUE USEAXIS=! -HISTORY Software: /stardev/cvs/star/bin/kappa/ndfcopy -END -XTENSION= 'IMAGE ' / IMAGE extension -BITPIX = -32 / number of bits per data pixel -NAXIS = 2 / number of data axes -NAXIS1 = 150 / length of data axis 1 -NAXIS2 = 120 / length of data axis 2 -PCOUNT = 0 / required keyword; must = 0 -GCOUNT = 1 / required keyword; must = 1 -LBOUND1 = -74 / Pixel origin along axis 1 -LBOUND2 = -58 / Pixel origin along axis 2 -OBJECT = 'ga20070430_98' / Title of the dataset -LABEL = 'T%s60+%v30+A%^50+%<20+*%+ corrected antenna ...'/ Label of the pri -BUNIT = 'K ' / Units of the primary array -DATE = '2007-05-17T11:05:09'/ file creation date (YYYY-MM-DDThh:mm:ss UT) -ORIGIN = 'Starlink Project, U.K.'/ Origin of this FITS file -BSCALE = 1.0 / True_value = BSCALE * FITS_value + BZERO -BZERO = 0.0 / True_value = BSCALE * FITS_value + BZERO -HDUCLAS1= 'NDF ' / Starlink NDF (hierarchical n-dim format) -HDUCLAS2= 'VARIANCE' / Array component subclass -EXTNAME = 'VARIANCE' / Array component -HDSTYPE = 'NDF ' / HDS data type of the component - -CRPIX1 = 75.910204 / Reference pixel on axis 1 -CRPIX2 = 60.359184 / Reference pixel on axis 2 -CRVAL1 = 1.220833333 / Value at ref. pixel on axis 1 -CRVAL2 = 277.5004167 / Value at ref. pixel on axis 2 -CTYPE1 = 'DEC--TAN' / Type of co-ordinate on axis 1 -CTYPE2 = 'RA---TAN' / Type of co-ordinate on axis 2 -CD1_1 = -0.001831773954 / Transformation matrix element -CD1_2 = -8.541702226E-4 / Transformation matrix element -CD2_1 = 0.0008541702226 / Transformation matrix element -CD2_2 = -0.001831773954 / Transformation matrix element -RADECSYS= 'FK5 ' / Reference frame for RA/DEC values -EQUINOX = 2000.0 / Epoch of reference equinox -DATE-OBS= '2007-04-30T15:13:53.717'/ Date of observation -END diff --git a/ast/ast_tester/simplify.f b/ast/ast_tester/simplify.f deleted file mode 100644 index 063ebd1..0000000 --- a/ast/ast_tester/simplify.f +++ /dev/null @@ -1,123 +0,0 @@ - PROGRAM SIMPLIFY - -* Usage: -* simplify <in file> <out file> - -* Description: -* Reads a Mapping from "in file" (as an AST dump), and writes out the -* simplified Mapping to "out file". - -* Parameters: -* in file -* A text file containing an AST dump of a Mapping. -* out file -* The output file. Contains an AST dump of the simplified Mapping -* on exit. - - - IMPLICIT NONE - INCLUDE 'AST_PAR' - EXTERNAL SOURCE, SINK - - INTEGER STATUS, OBJECT, IARGC, CHAN, CHR_LEN, OC, SMAP - CHARACTER FILE*80, OFILE*80, LINE*255 - - STATUS = 0 -* -* Check command line arguments have been supplied. -* - IF( IARGC() .LT. 2 ) THEN - WRITE(*,*) 'Usage: simplify <in file> <out file>' - RETURN - END IF - -* -* Open the name of the input text file. -* - CALL GETARG( 1, FILE ) - -* Attempt to read an object from the text file as an AST dump. - OPEN( UNIT=10, FILE=FILE, STATUS='OLD' ) - CHAN = AST_CHANNEL( SOURCE, AST_NULL, ' ', STATUS ) - OBJECT = AST_READ( CHAN, STATUS ) - CALL AST_ANNUL( CHAN, STATUS ) - CLOSE( 10 ) - -* -* Abort if no object was read. -* - IF( OBJECT .EQ. AST__NULL ) THEN - WRITE(*,*) 'simplify: no Mapping could be read from ', - : file( : chr_len( file ) ) - RETURN - -* -* Otherwise write out the simplified Mapping -* - ELSE - CALL GETARG( 2, OFILE ) - CALL DELETEFILE( OFILE ) - - SMAP = AST_SIMPLIFY( OBJECT, STATUS ) - - OPEN( UNIT=10, FILE=OFILE, STATUS='NEW' ) - CHAN = AST_CHANNEL( AST_NULL, SINK, ' ', STATUS ) - IF( AST_WRITE( CHAN, SMAP, STATUS ) .NE. 1 ) THEN - WRITE(*,*) 'simplify: Simplified Mapping read from ', - : file( : chr_len( file ) ),' could not be '// - : 'written out.' - END IF - CALL AST_ANNUL( CHAN, STATUS ) - CALL AST_ANNUL( SMAP, STATUS ) - CLOSE( 10 ) - END IF - - - END - - -* -* Delete a file if it exists. -* - SUBROUTINE DELETEFILE( FILNAM ) - IMPLICIT NONE - - CHARACTER FILNAM*(*) - LOGICAL EXISTS - - INQUIRE ( FILE = FILNAM, - : EXIST = EXISTS ) - - IF( EXISTS ) THEN - OPEN ( UNIT=10, FILE=FILNAM, STATUS='OLD' ) - CLOSE ( 10, STATUS='DELETE' ) - END IF - - END - - -* -* SOURCE FUNCTION FOR AST_CHANNEL. -* - SUBROUTINE SOURCE( STATUS ) - IMPLICIT NONE - INTEGER STATUS - CHARACTER BUFFER*200 - READ( 10, '(A)', END=99 ) BUFFER - CALL AST_PUTLINE( BUFFER, LEN( BUFFER ), STATUS ) - RETURN - 99 CALL AST_PUTLINE( BUFFER, -1, STATUS ) - END - -* -* SINK FUNCTION FOR AST_CHANNEL. -* - SUBROUTINE SINK( STATUS ) - IMPLICIT NONE - INTEGER STATUS, L - CHARACTER BUFFER*200 - - CALL AST_GETLINE( BUFFER, L, STATUS ) - IF( L .GT. 0 ) WRITE( 10, '(A)' ) BUFFER( : L ) - - END diff --git a/ast/ast_tester/sip.fits-wcs b/ast/ast_tester/sip.fits-wcs deleted file mode 100644 index 92d29ed..0000000 --- a/ast/ast_tester/sip.fits-wcs +++ /dev/null @@ -1,289 +0,0 @@ -SIMPLE = T / Fits standard -BITPIX = -32 / FOUR-BYTE SINGLE PRECISION FLOATING POINT -NAXIS = 2 / STANDARD FITS FORMAT -NAXIS1 = 256 / STANDARD FITS FORMAT -NAXIS2 = 256 / STANDARD FITS FORMAT -ORIGIN = 'Spitzer Science Center' / Organization generating this FITS file -CREATOR = 'S16.1.0 ' / SW version used to create this FITS file -TELESCOP= 'Spitzer ' / SPITZER Space Telescope -INSTRUME= 'IRAC ' / SPITZER Space Telescope instrument ID -CHNLNUM = 1 / 1 digit instrument channel number -EXPTYPE = 'sci ' / Exposure Type -REQTYPE = 'AOR ' / Request type (AOR, IER, or SER) -AOT_TYPE= 'IracMap ' / Observation template type -AORLABEL= '05cs-IRAC-2' / AOR Label -FOVID = 67 / Field of View ID -FOVNAME = 'IRAC_Center_of_3.6&5.8umArray' / Field of View Name - - / PROPOSAL INFORMATION - -OBSRVR = 'Ben Sugerman' / Observer Name (Last, First) -OBSRVRID= 14621 / Observer ID of Principal Investigator -PROCYCL = 6 / Proposal Cycle -PROGID = 30494 / Program ID -PROTITLE= 'Supernovae and the Origin of Dust in Galaxies: Follow-Up Observation' -PROGCAT = 30 / Program Category - - / TIME AND EXPOSURE INFORMATION - -DATE_OBS= '2007-06-29T03:15:33.555' / Date & time at DCE start -MJD_OBS = 54280.136 / [days] MJD at DCE start (,JD-2400000.5) -UTCS_OBS= 2.3635893E+8 / [sec] J2000 ephem. time at DCE start -SCLK_OBS= 8.675543E+8 / [sec] SCLK time (since 1/1/1980) at DCE start -SAMPTIME= 0.2 / [sec] Sample integration time -FRAMTIME= 12.0 / [sec] Time spent integrating (whole array) -COMMENT Photons in Well = Flux[photons/sec/pixel] * FRAMTIME -EXPTIME = 10.4 / [sec] Effective integration time per pixel -COMMENT DN per pixel = Flux[photons/sec/pixel] / GAIN * EXPTIME -INTRFDLY= 8.0 / [sec] Inter Frame Delay Time -AINTBEG = 107646.2 / [Secs since IRAC turn-on] Time of integ. start -ATIMEEND= 107658.16 / [Secs since IRAC turn-on] Time of integ. end -AFOWLNUM= 8 / Fowler number -AWAITPER= 44 / [0.2 sec] Wait period -ANUMREPS= 1 / Number of repeat integrations -AREADMOD= 0 / Full (0) or subarray (1) -HDRMODE = F / DCE taken in High Dynamic Range mode -ABARREL = 3 / Barrel shift -APEDSIG = 0 / 0=Normal, 1=Pedestal, 2=Signal - - / TARGET AND POINTING INFORMATION - -OBJECT = 'SN 2005cs' / Target Name -OBJTYPE = 'TargetFixedSingle' / Object Type -CRVAL1 = 202.48232 / [deg] RA at CRPIX1,CRPIX2 (using Pointing Recon -CRVAL2 = 47.175119 / [deg] DEC at CRPIX1,CRPIX2 (using Pointing Reco -RA_HMS = '13h29m55.8s' / [hh:mm:ss.s] CRVAL1 as sexagesimal -DEC_DMS = '+47d10m30s' / [dd:mm:ss] CRVAL2 as sexagesimal -RADESYS = 'ICRS ' / International Celestial Reference System -CD1_1 = 0.00024975688 / Corrected CD matrix element with Pointing Recon -CD1_2 = 0.00023017781 / Corrected CD matrix element with Pointing Recon -CD2_1 = 0.00023042852 / Corrected CD matrix element with Pointing Recon -CD2_2 = -2.4996577E-4 / Corrected CD matrix element with Pointing Reco -CTYPE1 = 'RA---TAN-SIP' / RA---TAN with distortion in pixel space -CTYPE2 = 'DEC--TAN-SIP' / DEC--TAN with distortion in pixel space -CRPIX1 = 128.0 / Reference pixel along axis 1 -CRPIX2 = 128.0 / Reference pixel along axis 2 -MJD-OBS = 51544.499 / Modified Julian Date of observation -DATE-OBS= '2000-01-01T11:58:55.816' / Date of observation -PXSCAL1 = -1.2233412 / [arcsec/pix] Scale for axis 1 at CRPIX1,CRPIX2 -PXSCAL2 = 1.2232836 / [arcsec/pix] Scale for axis 2 at CRPIX1,CRPIX2 -CRDER1 = 4.0250976E-5 / [deg] Uncertainty in CRVAL1 -CRDER2 = 3.4274613E-5 / [deg] Uncertainty in CRVAL2 -UNCRTPA = 0.00037878784 / [deg] Uncertainty in position angle -CSDRADEC= 4.7597178E-7 / [deg] Costandard deviation in RA and Dec -SIGRA = 0.033948714 / [arcsec] RMS dispersion of RA over DCE -SIGDEC = 0.063768266 / [arcsec] RMS dispersion of DEC over DCE -SIGPA = 1.3646427 / [arcsec] RMS dispersion of PA over DCE -PA = 137.35998 / [deg] Position angle of axis 2 (E of N) (was OR -RA_RQST = 202.48212 / [deg] Requested RA at CRPIX1, CRPIX2 -DEC_RQST= 47.175079 / [deg] Requested Dec at CRPIX1, CRPIX2 -PM_RA = 0.0 / [arcsec/yr] Proper Motion in RA (J2000) -PM_DEC = 0.0 / [arcsec/yr] Proper Motion in Dec (J200) -RMS_JIT = 0.007683034 / [arcsec] RMS jitter during DCE -RMS_JITY= 0.0051507034 / [arcsec] RMS jitter during DCE along Y -RMS_JITZ= 0.0057008128 / [arcsec] RMS jitter during DCE along Z -SIG_JTYZ= 0.0023780641 / [arcsec] Costadard deviation of jitter in YZ -PTGDIFF = 0.52510652 / [arcsec] Offset btwn actual and rqsted pntng -PTGDIFFX= 0.46966798 / [pixels] rqsted - actual pntng along axis 1 -PTGDIFFY= -0.2352852 / [pixels] rqsted - actual pntng along axis 2 -RA_REF = 202.47237 / [deg] Commanded RA (J2000) of ref. position -DEC_REF = 47.1745 / [deg] Commanded Dec (J2000) of ref. position -USEDBPHF= T / T if Boresight Pointing History File was used -BPHFNAME= 'SBPHF.0867542400.031.pntg' / Boresight Pointing History Filename -FOVVERSN= 'BodyFrames_FTU_14a.xls' / FOV/BodyFrames file version used -RECONFOV= 'IRAC_Center_of_3.6umArray' / Reconstructed Field of View -RARFND = 202.48232 / [deg] Refined RA -DECRFND = 47.175121 / [deg] Refined DEC -CT2RFND = 137.35905 / [deg] Refined CROT2 -ERARFND = 2.332304E-6 / [deg] Error in RARFND value -EDECRFND= 2.332411E-6 / [deg] Error in DECRFND value -ECT2RFND= 0.00054069905 / [deg] Error in CT2RFND value -NASTROM = 12 / Astrometric sources for absolute refinement -ORIG_RA = 202.48206 / [deg] Original RA from raw BPHF (without pointi -ORIG_DEC= 47.175072 / [deg] Original Dec from raw BPHF (without point -ORIGCD11= 0.00024975633 / [deg/pix] Original CD1_1 element (without point -ORIGCD12= 0.00023017843 / [deg/pix] Original CD1_2 element (without point -ORIGCD21= 0.00023042914 / [deg/pix] Original CD2_1 element (without point -ORIGCD22= -2.499652E-4 / [deg/pix] Original CD2_2 element (without point - - - - / DISTORTION KEYWORDS - -A_ORDER = 3 / polynomial order, axis 1, detector to sky -A_0_2 = 2.9656E-6 / distortion coefficient -A_0_3 = 3.7746E-9 / distortion coefficient -A_1_1 = 2.1886E-5 / distortion coefficient -A_1_2 = -1.6847E-7 / distortion coefficient -A_2_0 = -2.3863E-5 / distortion coefficient -A_2_1 = -8.561E-9 / distortion coefficient -A_3_0 = -1.4172E-7 / distortion coefficient -A_DMAX = 1.394 / [pixel] maximum correction -B_ORDER = 3 / polynomial order, axis 2, detector to sky -B_0_2 = 2.31E-5 / distortion coefficient -B_0_3 = -1.6168E-7 / distortion coefficient -B_1_1 = -2.4386E-5 / distortion coefficient -B_1_2 = -5.7813E-9 / distortion coefficient -B_2_0 = 2.1197E-6 / distortion coefficient -B_2_1 = -1.6583E-7 / distortion coefficient -B_3_0 = -2.0249E-8 / distortion coefficient -B_DMAX = 1.501 / [pixel] maximum correction -AP_ORDER= 3 / polynomial order, axis 1, sky to detector -AP_0_1 = -6.4275E-7 / distortion coefficient -AP_0_2 = -2.9425E-6 / distortion coefficient -AP_0_3 = -3.582E-9 / distortion coefficient -AP_1_0 = -1.4897E-5 / distortion coefficient -AP_1_1 = -2.225E-5 / distortion coefficient -AP_1_2 = 1.7195E-7 / distortion coefficient -AP_2_0 = 2.4146E-5 / distortion coefficient -AP_2_1 = 6.709E-9 / distortion coefficient -AP_3_0 = 1.4492E-7 / distortion coefficient -BP_ORDER= 3 / polynomial order, axis 2, sky to detector -BP_0_1 = -1.6588E-5 / distortion coefficient -BP_0_2 = -2.3424E-5 / distortion coefficient -BP_0_3 = 1.651E-7 / distortion coefficient -BP_1_0 = -2.6783E-6 / distortion coefficient -BP_1_1 = 2.4753E-5 / distortion coefficient -BP_1_2 = 3.8917E-9 / distortion coefficient -BP_2_0 = -2.151E-6 / distortion coefficient -BP_2_1 = 1.7E-7 / distortion coefficient -BP_3_0 = 2.0482E-8 / distortion coefficient - - / PHOTOMETRY - -BUNIT = 'MJy/sr ' / Units of image data -FLUXCONV= 0.1088 / Flux Conv. factor (MJy/sr per DN/sec) -GAIN = 3.3 / e/DN conversion -RONOISE = 9.4 / [Electrons] Readout Noise from Array -ZODY_EST= 0.05291139 / [MJy/sr] Zodiacal Background Estimate -ISM_EST = 0.003677277 / [MJy/sr] Interstellar Medium Estimate -CIB_EST = 0.0 / [MJy/sr] Cosmic Infrared Background Estimate -SKYDRKZB= 0.044533 / [MJy/sr] Zodiacal Background Est of subracted s -SKYDKMED= 0.039081 / [MJy/sr] Median of Subtracted Skydark -SKDKFDLY= 11.554 / [sec] Average Frame Delay Time of Skydark -SKDKIDLY= 11.554 / [sec] Average Immediate Delay Time of Skydark - - / GENERAL MAPPING KEYWORDS - -DITHPOS = 2 / Current dither position - - / IRAC MAPPING KEYWORDS - -READMODE= 'FULL ' / Readout mode -DITHSCAL= 'medium ' / Dither scale (small, medium, large) - - / INSTRUMENT TELEMETRY DATA - -ASHTCON = 2 / Shutter condition (1:closed, 2: open) -AWEASIDE= 0 / WEA side in use (0:B, 1:A) -ACTXSTAT= 0 / Cmded transcal status -ATXSTAT = 0 / transcal status -ACFLSTAT= 0 / Cmded floodcal status -AFLSTAT = 0 / floodcal status -AVRSTUCC= -3.5 / [Volts] Cmded VRSTUC Bias -AVRSTBEG= -3.5114367 / [Volts] VRSTUC Bias at start integration -AVDETC = -2.75 / [Volts] Cmded VDET Bias -AVDETBEG= -2.7585216 / [Volts] VDET Bias at start of integration -AVGG1C = -3.65 / [Volts] Cmded VGG1 Bias -AVGG1BEG= -3.2078801 / [Volts] VGG1 Bias at start of integration -AVDDUCC = -3 / [Volts] Cmded VDDUC Bias -AVDDUBEG= -3 / [Volts] VDDUC Bias at start integration -AVGGCLC = 1 / [Volts] Cmnded VGGCL clock rail voltage -AVGGCBEG= 1 / [Volts] VGGCL clock rail voltage -AHTRIBEG= 204.49722 / [uAmps] Heater current at start of integ -AHTRVBEG= 2.3936886 / [Volts] Heater Voltage at start integ. -AFPAT2B = 15.022535 / [Deg_K] FPA Temp sensor #2 at start integ. -AFPAT2BT= 107644.61 / [Sec] FPA Temp sensor #2 time tag -AFPAT2E = 15.022535 / [Deg_K] FPA temp sensor #2, end integ. -AFPAT2ET= 107644.61 / [Sec] FPA temp sensor #2 time tag -ACTENDT = 20.376773 / [Deg_C] C&T board thermistor -AFPECTE = 18.3055 / [Deg_C] FPE control board thermistor -AFPEATE = 21.814696 / [Deg_C] FPE analog board thermistor -ASHTEMPE= 21.504564 / [Deg_C] Shutter board thermistor -ATCTEMPE= 22.662835 / [Deg_C] Temp. controller board thermistor -ACETEMPE= 20.285331 / [Deg_C] Calib. electronics board thermistor -APDTEMPE= 20.590139 / [Deg_C] PDU board thermistor -ACATMP1E= 1.3181374 / [Deg_K] CA Temp, end integration for temp1 -ACATMP2E= 1.3011689 / [Deg_K] CA Temp, end integration for temp2 -ACATMP3E= 1.3331941 / [Deg_K] CA Temp, end integration for temp3 -ACATMP4E= 1.3299368 / [Deg_K] CA Temp, end integration for temp4 -ACATMP5E= 1.3280274 / [Deg_K] CA Temp, end integration for temp5 -ACATMP6E= 1.32662 / [Deg_K] CA Temp, end integration for temp6 -ACATMP7E= 1.3253879 / [Deg_K] CA Temp, end integration for temp7 -ACATMP8E= 1.3185339 / [Deg_K] CA Temp, end integration for temp8 - - / DATA FLOW KEYWORDS - -ORIGIN0 = 'JPL_FOS ' / Site where RAW FITS file was written -CREATOR0= 'J5.3 ' / SW system that created RAW FITS -DATE = '2007-07-10T04:40:23' / [YYYY-MM-DDThh:mm:ss UTC] file creation date -AORKEY = 18279424 / AOR or EIR key. Astrnmy Obs Req/Instr Eng Req -DS_IDENT= 'ads/sa.spitzer#0018279424' / Data Set Identification for ADS/journals -EXPID = 14 / Exposure ID (0-9999) -DCENUM = 0 / DCE number (0-9999) -TLMGRPS = 1 / expected number of groups -FILE_VER= 1 / Version of the raw file made by SIS -RAWFILE = 'IRAC.1.0018279424.0014.0000.01.mipl.fits' / Raw data file name -CPT_VER = '3.1.11 ' / Channel Param Table FOS versioN -CTD_VER = '3.0.94S ' / Cmded telemetry data version -EXPDFLAG= F / (T/F) expedited DCE -MISS_LCT= 0 / Total Missed Line Cnt in this FITS -MANCPKT = F / T if this FITS is Missing Ancillary Data -MISSDATA= F / T if this FITS is Missing Image Data -CHECKSUM= 0 / MIPL computed checksum -PAONUM = 2463 / PAO Number -CAMPAIGN= 'IRAC009800' / Campaign -DCEID = 80565322 / Data-Collection-Event ID -DCEINSID= 16981930 / DCE Instance ID -DPID = 178643698 / Data Product Instance ID -PIPENUM = 107 / Pipeline Script Number -SOS_VER = 2 / Data-Product Version -PLVID = 4 / Pipeline Version ID -CALID = 6 / CalTrans Version ID - -SDRKEPID= 3230182 / Sky Dark ensemble product ID - -PMSKFBID= 995 / Pixel mask ID -LDRKFBID= 836 / Fall-back lab dark ID -LINCFBID= 357 / Fall-back Linearity correction ID -FLATFBID= 1011 / Fall-back flat ID -FLXCFBID= 1025 / Flux conversion ID -MBLTFBID= 696 / Muxbleed Lookup Table ID -MBCFFBID= 704 / Muxbleed Coefficients ID -LBDRKFLE= 'FUL_12s_12sf8d1r1_ch1_v1.2.0_dark.txt' / Labdark File Used -DDCORR1 = 1.488018 / Darkdrift Correction for Readout Channel 1 -DDCORR2 = -5.919937 / Darkdrift Correction for Readout Channel 2 -DDCORR3 = 2.243147 / Darkdrift Correction for Readout Channel 3 -DDCORR4 = 2.188772 / Darkdrift Correction for Readout Channel 4 -DDBKGND = 68.5909 / arkdrift 'Background' Term - - - - / PROCESSING HISTORY - -HISTORY job.c ver: 1.50 -HISTORY TRANHEAD v. 12.8, ran Mon Jul 9 21:40:04 2007 -HISTORY CALTRANS v. 4.0, ran Mon Jul 9 21:40:08 2007 -HISTORY INSBPOSDOM v. 1.1, ran Mon Jul 9 21:40:08 2007 -HISTORY cvti2r4 v. 1.31 A61025, generated 7/09/07 at 21:40:09 -HISTORY hdrupd8 v. 1.5 A50126, updated 7/09/07 at 21:40:11 -HISTORY FFC v. 1.0, ran Mon Jul 9 21:40:12 2007 -HISTORY MUXBLEEDCORR v. 1.600, ran Mon Jul 9 21:40:13 2007 -HISTORY FOWLINEARIZE v. 4.900000, ran Mon Jul 9 21:40:13 2007 -HISTORY hdrupd8 v. 1.5 A50126, updated 7/09/07 at 21:40:14 -HISTORY BGMODEL v. 1.0, ran Mon Jul 9 21:40:14 2007 -HISTORY SLREMOVE v. 1.0, ran Mon Jul 9 21:40:14 2007 -HISTORY hdrupd8 v. 1.5 A50126, updated 7/09/07 at 21:40:15 -HISTORY hdrupd8 v. 1.5 A50126, updated 7/09/07 at 21:40:16 -HISTORY hdrupd8 v. 1.5 A50126, updated 7/09/07 at 21:40:16 -HISTORY hdrupd8 v. 1.5 A50126, updated 7/09/07 at 21:40:17 -HISTORY hdrupd8 v. 1.5 A50126, updated 7/09/07 at 21:40:18 -HISTORY DARKSUBNG v. 1.000, ran Mon Jul 9 21:40:18 2007 -HISTORY DARKDRIFT v. 4.0, ran Mon Jul 9 21:40:19 2007 -HISTORY FLATAP v. 1.500 Mon Jul 9 21:40:20 2007 -HISTORY DNTOFLUX v. 4.1, ran Mon Jul 9 21:40:23 2007 -HISTORY CALTRANS v. 4.0, ran Mon Jul 9 21:47:55 2007 -HISTORY PTNTRAN v. 1.4, ran Mon Jul 9 21:47:56 2007 -HISTORY FPGen v. 1.25, ran Mon Jul 9 21:47:58 2007 -HISTORY PTGADJUST v. 1.0, ran Mon Jul 9 21:51:34 2007 -END diff --git a/ast/ast_tester/sip.head b/ast/ast_tester/sip.head deleted file mode 100644 index 0e9e838..0000000 --- a/ast/ast_tester/sip.head +++ /dev/null @@ -1,288 +0,0 @@ -SIMPLE = T / Fits standard -BITPIX = -32 / FOUR-BYTE SINGLE PRECISION FLOATING POINT -NAXIS = 2 / STANDARD FITS FORMAT -NAXIS1 = 256 / STANDARD FITS FORMAT -NAXIS2 = 256 / STANDARD FITS FORMAT -ORIGIN = 'Spitzer Science Center' / Organization generating this FITS file -CREATOR = 'S16.1.0 ' / SW version used to create this FITS file -TELESCOP= 'Spitzer ' / SPITZER Space Telescope -INSTRUME= 'IRAC ' / SPITZER Space Telescope instrument ID -CHNLNUM = 1 / 1 digit instrument channel number -EXPTYPE = 'sci ' / Exposure Type -REQTYPE = 'AOR ' / Request type (AOR, IER, or SER) -AOT_TYPE= 'IracMap ' / Observation template type -AORLABEL= '05cs-IRAC-2' / AOR Label -FOVID = 67 / Field of View ID -FOVNAME = 'IRAC_Center_of_3.6&5.8umArray' / Field of View Name - - / PROPOSAL INFORMATION - -OBSRVR = 'Ben Sugerman' / Observer Name (Last, First) -OBSRVRID= 14621 / Observer ID of Principal Investigator -PROCYCL = 6 / Proposal Cycle -PROGID = 30494 / Program ID -PROTITLE= 'Supernovae and the Origin of Dust in Galaxies: Follow-Up Observation' -PROGCAT = 30 / Program Category - - / TIME AND EXPOSURE INFORMATION - -DATE_OBS= '2007-06-29T03:15:33.555' / Date & time at DCE start -MJD_OBS = 54280.135805 / [days] MJD at DCE start (,JD-2400000.5) -UTCS_OBS= 236358933.555 / [sec] J2000 ephem. time at DCE start -SCLK_OBS= 867554299.94 / [sec] SCLK time (since 1/1/1980) at DCE start -SAMPTIME= 0.2 / [sec] Sample integration time -FRAMTIME= 12. / [sec] Time spent integrating (whole array) -COMMENT Photons in Well = Flux[photons/sec/pixel] * FRAMTIME -EXPTIME = 10.4 / [sec] Effective integration time per pixel -COMMENT DN per pixel = Flux[photons/sec/pixel] / GAIN * EXPTIME -INTRFDLY= 8. / [sec] Inter Frame Delay Time -AINTBEG = 107646.2 / [Secs since IRAC turn-on] Time of integ. start -ATIMEEND= 107658.16 / [Secs since IRAC turn-on] Time of integ. end -AFOWLNUM= 8 / Fowler number -AWAITPER= 44 / [0.2 sec] Wait period -ANUMREPS= 1 / Number of repeat integrations -AREADMOD= 0 / Full (0) or subarray (1) -HDRMODE = F / DCE taken in High Dynamic Range mode -ABARREL = 3 / Barrel shift -APEDSIG = 0 / 0=Normal, 1=Pedestal, 2=Signal - - / TARGET AND POINTING INFORMATION - -OBJECT = 'SN 2005cs' / Target Name -OBJTYPE = 'TargetFixedSingle' / Object Type -CRVAL1 = 202.482322805429 / [deg] RA at CRPIX1,CRPIX2 (using Pointing Recon -CRVAL2 = 47.1751189300101 / [deg] DEC at CRPIX1,CRPIX2 (using Pointing Reco -RA_HMS = '13h29m55.8s' / [hh:mm:ss.s] CRVAL1 as sexagesimal -DEC_DMS = '+47d10m30s' / [dd:mm:ss] CRVAL2 as sexagesimal -RADESYS = 'ICRS ' / International Celestial Reference System -EQUINOX = 2000. / Equinox for ICRS celestial coord. system -CD1_1 = 0.000249756880272355 / Corrected CD matrix element with Pointing Recon -CD1_2 = 0.000230177809743655 / Corrected CD matrix element with Pointing Recon -CD2_1 = 0.000230428519265417 / Corrected CD matrix element with Pointing Recon -CD2_2 = -0.000249965770576587 / Corrected CD matrix element with Pointing Reco -CTYPE1 = 'RA---TAN-SIP' / RA---TAN with distortion in pixel space -CTYPE2 = 'DEC--TAN-SIP' / DEC--TAN with distortion in pixel space -CRPIX1 = 128. / Reference pixel along axis 1 -CRPIX2 = 128. / Reference pixel along axis 2 -PXSCAL1 = -1.22334117768332 / [arcsec/pix] Scale for axis 1 at CRPIX1,CRPIX2 -PXSCAL2 = 1.22328355209902 / [arcsec/pix] Scale for axis 2 at CRPIX1,CRPIX2 -CRDER1 = 4.02509762361481E-05 / [deg] Uncertainty in CRVAL1 -CRDER2 = 3.4274613195288E-05 / [deg] Uncertainty in CRVAL2 -UNCRTPA = 0.000378787843382542 / [deg] Uncertainty in position angle -CSDRADEC= 4.75971783897902E-07 / [deg] Costandard deviation in RA and Dec -SIGRA = 0.0339487135007807 / [arcsec] RMS dispersion of RA over DCE -SIGDEC = 0.0637682657426773 / [arcsec] RMS dispersion of DEC over DCE -SIGPA = 1.36464273573987 / [arcsec] RMS dispersion of PA over DCE -PA = 137.359976084299 / [deg] Position angle of axis 2 (E of N) (was OR -RA_RQST = 202.482116615975 / [deg] Requested RA at CRPIX1, CRPIX2 -DEC_RQST= 47.1750785413522 / [deg] Requested Dec at CRPIX1, CRPIX2 -PM_RA = 0. / [arcsec/yr] Proper Motion in RA (J2000) -PM_DEC = 0. / [arcsec/yr] Proper Motion in Dec (J200) -RMS_JIT = 0.00768303401855732 / [arcsec] RMS jitter during DCE -RMS_JITY= 0.00515070337437348 / [arcsec] RMS jitter during DCE along Y -RMS_JITZ= 0.00570081279113133 / [arcsec] RMS jitter during DCE along Z -SIG_JTYZ= 0.00237806410221437 / [arcsec] Costadard deviation of jitter in YZ -PTGDIFF = 0.525106524659797 / [arcsec] Offset btwn actual and rqsted pntng -PTGDIFFX= 0.46966798486043 / [pixels] rqsted - actual pntng along axis 1 -PTGDIFFY= -0.235285197422366 / [pixels] rqsted - actual pntng along axis 2 -RA_REF = 202.472375 / [deg] Commanded RA (J2000) of ref. position -DEC_REF = 47.1745 / [deg] Commanded Dec (J2000) of ref. position -USEDBPHF= T / T if Boresight Pointing History File was used -BPHFNAME= 'SBPHF.0867542400.031.pntg' / Boresight Pointing History Filename -FOVVERSN= 'BodyFrames_FTU_14a.xls' / FOV/BodyFrames file version used -RECONFOV= 'IRAC_Center_of_3.6umArray' / Reconstructed Field of View -RARFND = 202.482315063477 / [deg] Refined RA -DECRFND = 47.175121307373 / [deg] Refined DEC -CT2RFND = 137.359054565430 / [deg] Refined CROT2 -ERARFND = 0.000002332304 / [deg] Error in RARFND value -EDECRFND= 0.000002332411 / [deg] Error in DECRFND value -ECT2RFND= 0.000540699053 / [deg] Error in CT2RFND value -NASTROM = 12 / Astrometric sources for absolute refinement -ORIG_RA = 202.482055664062 / [deg] Original RA from raw BPHF (without pointi -ORIG_DEC= 47.1750717163086 / [deg] Original Dec from raw BPHF (without point -ORIGCD11= 0.0002497563255 / [deg/pix] Original CD1_1 element (without point -ORIGCD12= 0.0002301784261 / [deg/pix] Original CD1_2 element (without point -ORIGCD21= 0.0002304291411 / [deg/pix] Original CD2_1 element (without point -ORIGCD22= -0.0002499652037 / [deg/pix] Original CD2_2 element (without point - - - - / DISTORTION KEYWORDS - -A_ORDER = 3 / polynomial order, axis 1, detector to sky -A_0_2 = 2.9656E-06 / distortion coefficient -A_0_3 = 3.7746E-09 / distortion coefficient -A_1_1 = 2.1886E-05 / distortion coefficient -A_1_2 = -1.6847E-07 / distortion coefficient -A_2_0 = -2.3863E-05 / distortion coefficient -A_2_1 = -8.561E-09 / distortion coefficient -A_3_0 = -1.4172E-07 / distortion coefficient -A_DMAX = 1.394 / [pixel] maximum correction -B_ORDER = 3 / polynomial order, axis 2, detector to sky -B_0_2 = 2.31E-05 / distortion coefficient -B_0_3 = -1.6168E-07 / distortion coefficient -B_1_1 = -2.4386E-05 / distortion coefficient -B_1_2 = -5.7813E-09 / distortion coefficient -B_2_0 = 2.1197E-06 / distortion coefficient -B_2_1 = -1.6583E-07 / distortion coefficient -B_3_0 = -2.0249E-08 / distortion coefficient -B_DMAX = 1.501 / [pixel] maximum correction -AP_ORDER= 3 / polynomial order, axis 1, sky to detector -AP_0_1 = -6.4275E-07 / distortion coefficient -AP_0_2 = -2.9425E-06 / distortion coefficient -AP_0_3 = -3.582E-09 / distortion coefficient -AP_1_0 = -1.4897E-05 / distortion coefficient -AP_1_1 = -2.225E-05 / distortion coefficient -AP_1_2 = 1.7195E-07 / distortion coefficient -AP_2_0 = 2.4146E-05 / distortion coefficient -AP_2_1 = 6.709E-09 / distortion coefficient -AP_3_0 = 1.4492E-07 / distortion coefficient -BP_ORDER= 3 / polynomial order, axis 2, sky to detector -BP_0_1 = -1.6588E-05 / distortion coefficient -BP_0_2 = -2.3424E-05 / distortion coefficient -BP_0_3 = 1.651E-07 / distortion coefficient -BP_1_0 = -2.6783E-06 / distortion coefficient -BP_1_1 = 2.4753E-05 / distortion coefficient -BP_1_2 = 3.8917E-09 / distortion coefficient -BP_2_0 = -2.151E-06 / distortion coefficient -BP_2_1 = 1.7E-07 / distortion coefficient -BP_3_0 = 2.0482E-08 / distortion coefficient - - / PHOTOMETRY - -BUNIT = 'MJy/sr ' / Units of image data -FLUXCONV= 0.1088 / Flux Conv. factor (MJy/sr per DN/sec) -GAIN = 3.3 / e/DN conversion -RONOISE = 9.4 / [Electrons] Readout Noise from Array -ZODY_EST= 0.05291139 / [MJy/sr] Zodiacal Background Estimate -ISM_EST = 0.003677277 / [MJy/sr] Interstellar Medium Estimate -CIB_EST = 0. / [MJy/sr] Cosmic Infrared Background Estimate -SKYDRKZB= 0.044533 / [MJy/sr] Zodiacal Background Est of subracted s -SKYDKMED= 0.039081 / [MJy/sr] Median of Subtracted Skydark -SKDKFDLY= 11.554 / [sec] Average Frame Delay Time of Skydark -SKDKIDLY= 11.554 / [sec] Average Immediate Delay Time of Skydark - - / GENERAL MAPPING KEYWORDS - -DITHPOS = 2 / Current dither position - - / IRAC MAPPING KEYWORDS - -READMODE= 'FULL ' / Readout mode -DITHSCAL= 'medium ' / Dither scale (small, medium, large) - - / INSTRUMENT TELEMETRY DATA - -ASHTCON = 2 / Shutter condition (1:closed, 2: open) -AWEASIDE= 0 / WEA side in use (0:B, 1:A) -ACTXSTAT= 0 / Cmded transcal status -ATXSTAT = 0 / transcal status -ACFLSTAT= 0 / Cmded floodcal status -AFLSTAT = 0 / floodcal status -AVRSTUCC= -3.5 / [Volts] Cmded VRSTUC Bias -AVRSTBEG= -3.5114367 / [Volts] VRSTUC Bias at start integration -AVDETC = -2.75 / [Volts] Cmded VDET Bias -AVDETBEG= -2.7585216 / [Volts] VDET Bias at start of integration -AVGG1C = -3.65 / [Volts] Cmded VGG1 Bias -AVGG1BEG= -3.2078801 / [Volts] VGG1 Bias at start of integration -AVDDUCC = -3 / [Volts] Cmded VDDUC Bias -AVDDUBEG= -3 / [Volts] VDDUC Bias at start integration -AVGGCLC = 1 / [Volts] Cmnded VGGCL clock rail voltage -AVGGCBEG= 1 / [Volts] VGGCL clock rail voltage -AHTRIBEG= 204.49722 / [uAmps] Heater current at start of integ -AHTRVBEG= 2.3936886 / [Volts] Heater Voltage at start integ. -AFPAT2B = 15.022535 / [Deg_K] FPA Temp sensor #2 at start integ. -AFPAT2BT= 107644.61 / [Sec] FPA Temp sensor #2 time tag -AFPAT2E = 15.022535 / [Deg_K] FPA temp sensor #2, end integ. -AFPAT2ET= 107644.61 / [Sec] FPA temp sensor #2 time tag -ACTENDT = 20.376773 / [Deg_C] C&T board thermistor -AFPECTE = 18.3055 / [Deg_C] FPE control board thermistor -AFPEATE = 21.814696 / [Deg_C] FPE analog board thermistor -ASHTEMPE= 21.504564 / [Deg_C] Shutter board thermistor -ATCTEMPE= 22.662835 / [Deg_C] Temp. controller board thermistor -ACETEMPE= 20.285331 / [Deg_C] Calib. electronics board thermistor -APDTEMPE= 20.590139 / [Deg_C] PDU board thermistor -ACATMP1E= 1.3181374 / [Deg_K] CA Temp, end integration for temp1 -ACATMP2E= 1.3011689 / [Deg_K] CA Temp, end integration for temp2 -ACATMP3E= 1.3331941 / [Deg_K] CA Temp, end integration for temp3 -ACATMP4E= 1.3299368 / [Deg_K] CA Temp, end integration for temp4 -ACATMP5E= 1.3280274 / [Deg_K] CA Temp, end integration for temp5 -ACATMP6E= 1.32662 / [Deg_K] CA Temp, end integration for temp6 -ACATMP7E= 1.3253879 / [Deg_K] CA Temp, end integration for temp7 -ACATMP8E= 1.3185339 / [Deg_K] CA Temp, end integration for temp8 - - / DATA FLOW KEYWORDS - -ORIGIN0 = 'JPL_FOS ' / Site where RAW FITS file was written -CREATOR0= 'J5.3 ' / SW system that created RAW FITS -DATE = '2007-07-10T04:40:23' / [YYYY-MM-DDThh:mm:ss UTC] file creation date -AORKEY = 18279424 / AOR or EIR key. Astrnmy Obs Req/Instr Eng Req -DS_IDENT= 'ads/sa.spitzer#0018279424' / Data Set Identification for ADS/journals -EXPID = 14 / Exposure ID (0-9999) -DCENUM = 0 / DCE number (0-9999) -TLMGRPS = 1 / expected number of groups -FILE_VER= 1 / Version of the raw file made by SIS -RAWFILE = 'IRAC.1.0018279424.0014.0000.01.mipl.fits' / Raw data file name -CPT_VER = '3.1.11 ' / Channel Param Table FOS versioN -CTD_VER = '3.0.94S ' / Cmded telemetry data version -EXPDFLAG= F / (T/F) expedited DCE -MISS_LCT= 0 / Total Missed Line Cnt in this FITS -MANCPKT = F / T if this FITS is Missing Ancillary Data -MISSDATA= F / T if this FITS is Missing Image Data -CHECKSUM= 0 / MIPL computed checksum -PAONUM = 2463 / PAO Number -CAMPAIGN= 'IRAC009800' / Campaign -DCEID = 80565322 / Data-Collection-Event ID -DCEINSID= 16981930 / DCE Instance ID -DPID = 178643698 / Data Product Instance ID -PIPENUM = 107 / Pipeline Script Number -SOS_VER = 2 / Data-Product Version -PLVID = 4 / Pipeline Version ID -CALID = 6 / CalTrans Version ID - -SDRKEPID= 3230182 / Sky Dark ensemble product ID - -PMSKFBID= 995 / Pixel mask ID -LDRKFBID= 836 / Fall-back lab dark ID -LINCFBID= 357 / Fall-back Linearity correction ID -FLATFBID= 1011 / Fall-back flat ID -FLXCFBID= 1025 / Flux conversion ID -MBLTFBID= 696 / Muxbleed Lookup Table ID -MBCFFBID= 704 / Muxbleed Coefficients ID -LBDRKFLE= 'FUL_12s_12sf8d1r1_ch1_v1.2.0_dark.txt' / Labdark File Used -DDCORR1 = 1.488018 / Darkdrift Correction for Readout Channel 1 -DDCORR2 = -5.919937 / Darkdrift Correction for Readout Channel 2 -DDCORR3 = 2.243147 / Darkdrift Correction for Readout Channel 3 -DDCORR4 = 2.188772 / Darkdrift Correction for Readout Channel 4 -DDBKGND = 68.5909 / arkdrift 'Background' Term - - - - / PROCESSING HISTORY - -HISTORY job.c ver: 1.50 -HISTORY TRANHEAD v. 12.8, ran Mon Jul 9 21:40:04 2007 -HISTORY CALTRANS v. 4.0, ran Mon Jul 9 21:40:08 2007 -HISTORY INSBPOSDOM v. 1.1, ran Mon Jul 9 21:40:08 2007 -HISTORY cvti2r4 v. 1.31 A61025, generated 7/09/07 at 21:40:09 -HISTORY hdrupd8 v. 1.5 A50126, updated 7/09/07 at 21:40:11 -HISTORY FFC v. 1.0, ran Mon Jul 9 21:40:12 2007 -HISTORY MUXBLEEDCORR v. 1.600, ran Mon Jul 9 21:40:13 2007 -HISTORY FOWLINEARIZE v. 4.900000, ran Mon Jul 9 21:40:13 2007 -HISTORY hdrupd8 v. 1.5 A50126, updated 7/09/07 at 21:40:14 -HISTORY BGMODEL v. 1.0, ran Mon Jul 9 21:40:14 2007 -HISTORY SLREMOVE v. 1.0, ran Mon Jul 9 21:40:14 2007 -HISTORY hdrupd8 v. 1.5 A50126, updated 7/09/07 at 21:40:15 -HISTORY hdrupd8 v. 1.5 A50126, updated 7/09/07 at 21:40:16 -HISTORY hdrupd8 v. 1.5 A50126, updated 7/09/07 at 21:40:16 -HISTORY hdrupd8 v. 1.5 A50126, updated 7/09/07 at 21:40:17 -HISTORY hdrupd8 v. 1.5 A50126, updated 7/09/07 at 21:40:18 -HISTORY DARKSUBNG v. 1.000, ran Mon Jul 9 21:40:18 2007 -HISTORY DARKDRIFT v. 4.0, ran Mon Jul 9 21:40:19 2007 -HISTORY FLATAP v. 1.500 Mon Jul 9 21:40:20 2007 -HISTORY DNTOFLUX v. 4.1, ran Mon Jul 9 21:40:23 2007 -HISTORY CALTRANS v. 4.0, ran Mon Jul 9 21:47:55 2007 -HISTORY PTNTRAN v. 1.4, ran Mon Jul 9 21:47:56 2007 -HISTORY FPGen v. 1.25, ran Mon Jul 9 21:47:58 2007 -HISTORY PTGADJUST v. 1.0, ran Mon Jul 9 21:51:34 2007 -END diff --git a/ast/ast_tester/sparse.ast b/ast/ast_tester/sparse.ast deleted file mode 100644 index c28cb4d..0000000 --- a/ast/ast_tester/sparse.ast +++ /dev/null @@ -1,392 +0,0 @@ - Begin FrameSet # Set of inter-related coordinate systems -# Title = "3-d compound coordinate system" # Title of coordinate system -# Naxes = 3 # Number of coordinate axes -# Domain = "SKY-DSBSPECTRUM" # Coordinate system domain -# Epoch = 2007.10664386351 # Julian epoch of observation -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 -# Lbl3 = "Radio velocity (USB)" # Label for axis 3 -# System = "Compound" # Coordinate system type -# Uni1 = "hh:mm:ss.sss" # Units for axis 1 -# Uni2 = "ddd:mm:ss.ss" # Units for axis 2 -# Uni3 = "km/s" # Units for axis 3 -# Dig1 = 9 # Individual precision for axis 1 -# Dig2 = 9 # Individual precision for axis 2 -# Digits = 7 # Default formatting precision -# Fmt1 = "hms.3" # Format specifier for axis 1 -# Fmt2 = "dms.2" # Format specifier for axis 2 -# Dir1 = 0 # Plot axis 1 in reverse direction - IsA Frame # Coordinate system description - Nframe = 5 # Number of Frames in FrameSet -# Base = 1 # Index of base Frame - Currnt = 5 # Index of current Frame - Nnode = 6 # Number of nodes in FrameSet - Nod1 = 3 # Frame 1 is associated with node 3 - Nod2 = 4 # Frame 2 is associated with node 4 - Nod3 = 5 # Frame 3 is associated with node 5 - Nod4 = 6 # Frame 4 is associated with node 6 - Nod5 = 2 # Frame 5 is associated with node 2 - Lnk2 = 1 # Node 2 is derived from node 1 - Lnk3 = 1 # Node 3 is derived from node 1 - Lnk4 = 1 # Node 4 is derived from node 1 - Lnk5 = 1 # Node 5 is derived from node 1 - Lnk6 = 1 # Node 6 is derived from node 1 - Frm1 = # Frame number 1 - Begin Frame # Coordinate system description - Title = "Data grid indices; first pixel at (1,1,1)" # Title of coordinate system - Naxes = 3 # Number of coordinate axes - Domain = "GRID" # Coordinate system domain -# Lbl1 = "Data grid index 1" # Label for axis 1 -# Lbl2 = "Data grid index 2" # Label for axis 2 -# Lbl3 = "Data grid index 3" # Label for axis 3 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 -# Uni3 = "pixel" # Units for axis 3 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Data grid index 1" # Axis Label - Symbol = "g1" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Data grid index 2" # Axis Label - Symbol = "g2" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax3 = # Axis number 3 - Begin Axis # Coordinate axis - Label = "Data grid index 3" # Axis Label - Symbol = "g3" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - End Frame - Frm2 = # Frame number 2 - Begin Frame # Coordinate system description - Title = "Pixel coordinates; first pixel at (0.5,0.5,-1024.5)" # Title of coordinate system - Naxes = 3 # Number of coordinate axes - Domain = "PIXEL" # Coordinate system domain -# Lbl1 = "Pixel coordinate 1" # Label for axis 1 -# Lbl2 = "Pixel coordinate 2" # Label for axis 2 -# Lbl3 = "Pixel coordinate 3" # Label for axis 3 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 -# Uni3 = "pixel" # Units for axis 3 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Pixel coordinate 1" # Axis Label - Symbol = "p1" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Pixel coordinate 2" # Axis Label - Symbol = "p2" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax3 = # Axis number 3 - Begin Axis # Coordinate axis - Label = "Pixel coordinate 3" # Axis Label - Symbol = "p3" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - End Frame - Frm3 = # Frame number 3 - Begin Frame # Coordinate system description - Title = "Axis coordinates; first pixel at (0.5,0.5,-1024.5)" # Title of coordinate system - Naxes = 3 # Number of coordinate axes - Domain = "AXIS" # Coordinate system domain -# Lbl1 = "Axis 1" # Label for axis 1 -# Lbl2 = "Axis 2" # Label for axis 2 -# Lbl3 = "Axis 3" # Label for axis 3 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 -# Uni3 = "pixel" # Units for axis 3 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Axis 1" # Axis Label - Symbol = "a1" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Axis 2" # Axis Label - Symbol = "a2" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax3 = # Axis number 3 - Begin Axis # Coordinate axis - Label = "Axis 3" # Axis Label - Symbol = "a3" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - End Frame - Frm4 = # Frame number 4 - Begin Frame # Coordinate system description - Title = "Normalised pixel coordinates; first pixel at (0.03846154,0.5,0.0002441406)" # Title of coordinate system - Naxes = 3 # Number of coordinate axes - Domain = "FRACTION" # Coordinate system domain -# Lbl1 = "Normalised pixel coordinate 1" # Label for axis 1 -# Lbl2 = "Normalised pixel coordinate 2" # Label for axis 2 -# Lbl3 = "Normalised pixel coordinate 3" # Label for axis 3 - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Label = "Normalised pixel coordinate 1" # Axis Label - Symbol = "f1" # Axis symbol - Unit = "" # Axis units - Format = "%5.4f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis # Coordinate axis - Label = "Normalised pixel coordinate 2" # Axis Label - Symbol = "f2" # Axis symbol - Unit = "" # Axis units - Format = "%5.4f" # Format specifier - End Axis - Ax3 = # Axis number 3 - Begin Axis # Coordinate axis - Label = "Normalised pixel coordinate 3" # Axis Label - Symbol = "f3" # Axis symbol - Unit = "" # Axis units - Format = "%5.4f" # Format specifier - End Axis - End Frame - Frm5 = # Frame number 5 - Begin CmpFrame # Compound coordinate system description -# Title = "3-d compound coordinate system" # Title of coordinate system -# Naxes = 3 # Number of coordinate axes -# Domain = "SKY-DSBSPECTRUM" # Coordinate system domain -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 -# Lbl3 = "Radio velocity (USB)" # Label for axis 3 -# Uni1 = "hh:mm:ss.sss" # Units for axis 1 -# Uni2 = "ddd:mm:ss.ss" # Units for axis 2 -# Uni3 = "km/s" # Units for axis 3 -# Dig1 = 9 # Individual precision for axis 1 -# Dig2 = 9 # Individual precision for axis 2 -# Digits = 7 # Default formatting precision -# Fmt1 = "hms.3" # Format specifier for axis 1 -# Fmt2 = "dms.2" # Format specifier for axis 2 -# Dir1 = 0 # Plot axis 1 in reverse direction - IsA Frame # Coordinate system description - FrameA = # First component Frame - Begin SkyFrame # Description of celestial coordinate system - Naxes = 2 # Number of coordinate axes - Epoch = 2007.10664386351 # Julian epoch of observation - System = "FK5" # Coordinate system type - ObsLat = 0.346026069000145 # Observers geodetic latitude (rads) - ObsLon = -2.71363307300091 # Observers geodetic longitude (rads) - Dut1 = -0.00321845632046122 # UT1-UTC in seconds - Ax1 = # Axis number 1 - Begin SkyAxis # Celestial coordinate axis - Digits = 9 # Default formatting precision - IsA Axis # Coordinate axis - End SkyAxis - Ax2 = # Axis number 2 - Begin SkyAxis # Celestial coordinate axis - Digits = 9 # Default formatting precision - IsA Axis # Coordinate axis - End SkyAxis - IsA Frame # Coordinate system description - SRef1 = 1.2343627630284 # Ref. pos. RA 4:42:53.706 - SRef2 = 0.63032350835257 # Ref. pos. Dec 36:06:53.56 - End SkyFrame - FrameB = # Second component Frame - Begin DSBSpecFrame # Dual sideband spectral axis - Naxes = 1 # Number of coordinate axes - Epoch = 2007.10664386353 # Julian epoch of observation - System = "VRAD" # Coordinate system type - ObsLat = 0.346026069000144 # Observers geodetic latitude (rads) - ObsLon = -2.71363307300091 # Observers geodetic longitude (rads) - Dut1 = -0.00321845632046122 # UT1-UTC in seconds - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - End Axis - IsA Frame # Coordinate system description - SoR = "LSRK" # Standard of rest - RefRA = 1.23436224892048 # Reference RA (rads, FK5 J2000) - RefDec = 0.630323957597852 # Reference Dec (rads, FK5 J2000) - RstFrq = 345795989900 # Rest frequency (Hz) - SrcVel = -21699.2154029027 # Source velocity (m/s) - SrcVRF = "LSRK" # Source velocity rest frame - UFreq = "GHz" # Preferred units for frequency - IsA SpecFrame # Description of spectral coordinate system - DSBCen = 345782054267.698 # Central frequency (Hz topo) - IF = -4999999979.60052 # Intermediate frequency (Hz) - SideBn = "USB" # Represents upper sideband - AlSdBn = 1 # Align sidebands? - End DSBSpecFrame - End CmpFrame - Map2 = # Mapping between nodes 1 and 2 - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - Inv = 0 # Inverse transformation not defined - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Series = 0 # Component Mappings applied in parallel - MapA = # First component Mapping - Begin PermMap # Coordinate permutation - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Out1 = 1 # Output coordinate 1 = input coordinate 1 - Out2 = 1 # Output coordinate 2 = input coordinate 1 - In1 = 1 # Input coordinate 1 = output coordinate 1 - In2 = 0 # Input coordinate 2 is "bad" - End PermMap - MapB = # Second component Mapping - Begin WinMap # Map one window on to another - Nin = 1 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = 2.86538852378726e-05 # Shift for axis 1 - End WinMap - End CmpMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 3 # Number of input coordinates - Inv = 0 # Inverse transformation not defined - IsA Mapping # Mapping between coordinate systems - Series = 0 # Component Mappings applied in parallel - MapA = # First component Mapping - Begin LutMap # Map 1-d coordinates using a lookup table - Nin = 1 # Number of input coordinates - Invert = 0 # Mapping not inverted - Inv = 0 # Inverse transformation not defined - IsA Mapping # Mapping between coordinate systems - Nlut = 13 # Number of lookup table elements - Start = 1 # Input value at first element -# Incr = 1 # Input value increment between elements - LutInt = 1 # Interpolation method - L1 = 1.23418282732218 # Lookup table elements... - L2 = 1.2343639301616 - L3 = 1.23436339112322 - L4 = 1.2343628519694 - L5 = 1.23436231270009 - L6 = 1.23454235656739 - L7 = 1.23454287673211 - L8 = 1.2345433967854 - L9 = 1.23454391672729 - L10 = 1.23472390339668 - L11 = 1.23472340255133 - L12 = 1.23472290159864 - L13 = 1.23472240053857 - End LutMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - Inv = 0 # Inverse transformation not defined - IsA Mapping # Mapping between coordinate systems - Series = 0 # Component Mappings applied in parallel - MapA = # First component Mapping - Begin LutMap # Map 1-d coordinates using a lookup table - Nin = 1 # Number of input coordinates - Inv = 0 # Inverse transformation not defined - IsA Mapping # Mapping between coordinate systems - Nlut = 13 # Number of lookup table elements - Start = 1 # Input value at first element -# Incr = 1 # Input value increment between elements - LutInt = 1 # Interpolation method - L1 = 0.630323242601191 # Lookup table elements... - L2 = 0.630032824768848 - L3 = 0.630178255337191 - L4 = 0.630323685912113 - L5 = 0.630469116487462 - L6 = 0.630469544411238 - L7 = 0.630324113791166 - L8 = 0.630178683171532 - L9 = 0.630033252558487 - L10 = 0.630033664925644 - L11 = 0.630179095578678 - L12 = 0.630324526238311 - L13 = 0.63046995689839 - End LutMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 1 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 1 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = 346321451689.665 # Shift for axis 1 - Scl1 = -488226.2403564 # Scale factor for axis 1 - End WinMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 1 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin SpecMap # Conversion between spectral coordinate systems - Nin = 1 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - Nspec = 2 # Number of conversion steps - Spec1 = "FRTOVL" # Convert frequency to rel. velocity - Spec1a = 345795989900 # Rest frequency (Hz) - Spec2 = "VLTOVR" # Convert relativistic to radio velocity - End SpecMap - MapB = # Second component Mapping - Begin ZoomMap # Zoom about the origin - Nin = 1 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - Zoom = 0.001 # Zoom factor - End ZoomMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - Map3 = # Mapping between nodes 1 and 3 - Begin UnitMap # Unit (null) Mapping - Nin = 3 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - End UnitMap - Map4 = # Mapping between nodes 1 and 4 - Begin WinMap # Map one window on to another - Nin = 3 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - Sft1 = -0.5 # Shift for axis 1 - Sft2 = -0.5 # Shift for axis 2 - Sft3 = -1025.5 # Shift for axis 3 - End WinMap - Map5 = # Mapping between nodes 1 and 5 - Begin WinMap # Map one window on to another - Nin = 3 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - Sft1 = -0.5 # Shift for axis 1 - Sft2 = -0.5 # Shift for axis 2 - Sft3 = -1025.5 # Shift for axis 3 - End WinMap - Map6 = # Mapping between nodes 1 and 6 - Begin WinMap # Map one window on to another - Nin = 3 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - IsA Mapping # Mapping between coordinate systems - Sft1 = -0.0384615384615385 # Shift for axis 1 - Scl1 = 0.0769230769230769 # Scale factor for axis 1 - Sft2 = -0.5 # Shift for axis 2 - Sft3 = -0.000244140625 # Shift for axis 3 - Scl3 = 0.00048828125 # Scale factor for axis 3 - End WinMap - End FrameSet diff --git a/ast/ast_tester/specflux.ast b/ast/ast_tester/specflux.ast deleted file mode 100644 index 0da5fea..0000000 --- a/ast/ast_tester/specflux.ast +++ /dev/null @@ -1,29 +0,0 @@ - Begin CmpFrame # Compound coordinate system description -# Title = "2-d compound coordinate system" # Title of coordinate system -# Naxes = 2 # Number of coordinate axes -# Domain = "SPECTRUM-" # Coordinate system domain -# Lbl1 = "Wavelength" # Label for axis 1 -# Lbl2 = "Axis 2" # Label for axis 2 -# Uni1 = "um" # Units for axis 1 -# Uni2 = "10%^50+%s50+-26%+W/m%^50+%s50+2%+/Angstrom" # Units for axis 2 - IsA Frame # Coordinate system description - FrameA = # First component Frame - Begin SpecFrame # Description of spectral coordinate system - Naxes = 1 # Number of coordinate axes - System = "WAVE" # Coordinate system type - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Unit = "um" # Axis units - End Axis - IsA Frame # Coordinate system description - UWave = "um" # Preferred units for wavelength - End SpecFrame - FrameB = # Second component Frame - Begin Frame # Coordinate system description - Naxes = 1 # Number of coordinate axes - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Unit = "10%^50+%s50+-26%+W/m%^50+%s50+2%+/Angstrom" # Axis units - End Axis - End Frame - End CmpFrame diff --git a/ast/ast_tester/specflux.attr b/ast/ast_tester/specflux.attr deleted file mode 100644 index e00d209..0000000 --- a/ast/ast_tester/specflux.attr +++ /dev/null @@ -1 +0,0 @@ -system=freq,logplot=1,loggap(1)=100 diff --git a/ast/ast_tester/specflux.box b/ast/ast_tester/specflux.box deleted file mode 100644 index 7c6f180..0000000 --- a/ast/ast_tester/specflux.box +++ /dev/null @@ -1,2 +0,0 @@ -1 3 1.0E-8 9 - diff --git a/ast/ast_tester/specflux.head b/ast/ast_tester/specflux.head deleted file mode 100644 index ac4a035..0000000 --- a/ast/ast_tester/specflux.head +++ /dev/null @@ -1,28 +0,0 @@ - -COMMENT AST ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ AST -COMMENT AST Beginning of AST data for CmpFrame object AST -COMMENT AST ................................................................ AST -BEGAST_A= 'CmpFrame' / Compound coordinate system description -FRAMEA_A= ' ' / First component Frame -BEGAST_B= 'SpecFrame' / Description of spectral coordinate system -NAXES_A = 1 / Number of coordinate axes -SYSTEM_A= 'WAVE ' / Coordinate system type -AX1_A = ' ' / Axis number 1 -BEGAST_C= 'Axis ' / Coordinate axis -UNIT_A = 'um ' / Axis units -ENDAST_A= 'Axis ' / End of object definition -ISA_A = 'Frame ' / Coordinate system description -UWAVE_A = 'um ' / Preferred units for wavelength -ENDAST_B= 'SpecFrame' / End of object definition -FRAMEB_A= ' ' / Second component Frame -BEGAST_D= 'Frame ' / Coordinate system description -NAXES_B = 1 / Number of coordinate axes -AX1_B = ' ' / Axis number 1 -BEGAST_E= 'Axis ' / Coordinate axis -UNIT_B = '10%^50+%s50+-26%+W/m%^50+%s50+2%+/Angstrom'/ Axis units -ENDAST_C= 'Axis ' / End of object definition -ENDAST_D= 'Frame ' / End of object definition -ENDAST_E= 'CmpFrame' / End of object definition -COMMENT AST ................................................................ AST -COMMENT AST End of AST data for CmpFrame object AST -COMMENT AST ---------------------------------------------------------------- AST diff --git a/ast/ast_tester/splittest1.ast b/ast/ast_tester/splittest1.ast deleted file mode 100644 index 9fb1e2f..0000000 --- a/ast/ast_tester/splittest1.ast +++ /dev/null @@ -1,185 +0,0 @@ - Begin CmpMap # Compound Mapping - Nin = 4 # Number of input coordinates - Inv = 0 # Inverse transformation not defined - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin UnitMap # Unit (null) Mapping - Nin = 4 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - End UnitMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 4 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - Inv = 0 # Inverse transformation not defined - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 4 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = -129 # Shift for axis 1 - Sft2 = -65 # Shift for axis 2 - Sft3 = -0.5 # Shift for axis 3 - Sft4 = -1 # Shift for axis 4 - End WinMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 4 # Number of input coordinates - Inv = 0 # Inverse transformation not defined - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap # Matrix transformation - Nin = 4 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = 0.996194698 # Forward matrix value - M1 = 0.087155743 # Forward matrix value - M2 = 0 # Forward matrix value - M3 = 0 # Forward matrix value - M4 = -0.087155743 # Forward matrix value - M5 = 0.996194698 # Forward matrix value - M6 = 0 # Forward matrix value - M7 = 0 # Forward matrix value - M8 = 0 # Forward matrix value - M9 = 0 # Forward matrix value - M10 = 1 # Forward matrix value - M11 = 0 # Forward matrix value - M12 = 0 # Forward matrix value - M13 = 0 # Forward matrix value - M14 = 0 # Forward matrix value - M15 = 1 # Forward matrix value - Form = "Full" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 4 # Number of input coordinates - Invert = 0 # Mapping not inverted - Inv = 0 # Inverse transformation not defined - IsA Mapping # Mapping between coordinate systems - Series = 0 # Component Mappings applied in parallel - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = 136 # Shift for axis 1 - Sft2 = 76 # Shift for axis 2 - End WinMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 2 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - Inv = 0 # Inverse transformation not defined - IsA Mapping # Mapping between coordinate systems - Series = 0 # Component Mappings applied in parallel - MapA = # First component Mapping - Begin CmpMap # Compound Mapping - Nin = 1 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin WinMap # Map one window on to another - Nin = 1 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = 0.5 # Shift for axis 1 - End WinMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 1 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin LutMap # Map 1-d coordinates using a lookup table - Nin = 1 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - Nlut = 8 # Number of lookup table elements - Start = 1 # Input value at first element -# Incr = 1 # Input value increment between elements - LutInt = 0 # Interpolation method - L1 = 0.5 # Lookup table elements... - L2 = 1.5 - L3 = 1.5 - L4 = 2.5 - L5 = 2.5 - L6 = 3.5 - L7 = 3.5 - L8 = 4.5 - End LutMap - MapB = # Second component Mapping - Begin LutMap # Map 1-d coordinates using a lookup table - Nin = 1 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Nlut = 8 # Number of lookup table elements - Start = 1 # Input value at first element -# Incr = 1 # Input value increment between elements - LutInt = 0 # Interpolation method - L1 = 0.21106114 # Lookup table elements... - L2 = 0.21076437 - L3 = 2e-06 - L4 = 2.2e-06 - L5 = 5e-07 - L6 = 6.5e-07 - L7 = 1.24e-09 - L8 = 2.48e-09 - End LutMap - End CmpMap - End CmpMap - MapB = # Second component Mapping - Begin CmpMap # Compound Mapping - Nin = 1 # Number of input coordinates - IsSimp = 1 # Mapping has been simplified - Inv = 0 # Inverse transformation not defined - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin LutMap # Map 1-d coordinates using a lookup table - Nin = 1 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - Nlut = 8 # Number of lookup table elements - Start = 1 # Input value at first element -# Incr = 1 # Input value increment between elements - LutInt = 0 # Interpolation method - L1 = 0 # Lookup table elements... - L2 = 1 - L3 = 1 - L4 = 2 - L5 = 2 - L6 = 3 - L7 = 3 - L8 = 4 - End LutMap - MapB = # Second component Mapping - Begin LutMap # Map 1-d coordinates using a lookup table - Nin = 1 # Number of input coordinates - Invert = 0 # Mapping not inverted - Inv = 0 # Inverse transformation not defined - IsA Mapping # Mapping between coordinate systems - Nlut = 8 # Number of lookup table elements - Start = 1 # Input value at first element -# Incr = 1 # Input value increment between elements - LutInt = 0 # Interpolation method - L1 = 1997.84512 # Lookup table elements... - L2 = 1997.84631 - L3 = 1993.28451 - L4 = 1993.28456 - L5 = 2001.59234 - L6 = 2001.59239 - L7 = 2002.18265 - L8 = 2002.18301 - End LutMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap diff --git a/ast/ast_tester/stcschan-test1-doc3-props.ast b/ast/ast_tester/stcschan-test1-doc3-props.ast deleted file mode 100644 index 4ab41aa..0000000 --- a/ast/ast_tester/stcschan-test1-doc3-props.ast +++ /dev/null @@ -1,126 +0,0 @@ -Begin KeyMap # Map of key/value pairs - MapSz = 16 # Size of hash table - Key1 = "REDSHIFT_PROPS" # Item name - Typ1 = 4 # Item data type (AST Object) - Val1 = # Item value - Begin KeyMap # Map of key/value pairs - MapSz = 16 # Size of hash table - Key1 = "PIXSIZE" # Item name - Typ1 = 3 # Item data type (string) - Val1 = "0.3" # Item value - Key2 = "ID" # Item name - Typ2 = 3 # Item data type (string) - Val2 = "RedshiftInterval" # Item value - Key3 = "REFPOS" # Item name - Typ3 = 3 # Item data type (string) - Val3 = "BARYCENTER" # Item value - Key4 = "HILIMIT" # Item name - Typ4 = 3 # Item data type (string) - Val4 = "2300.0" # Item value - Key5 = "TYPE" # Item name - Typ5 = 3 # Item data type (string) - Val5 = "VELOCITY" # Item value - Key6 = "RESOLUTION" # Item name - Typ6 = 3 # Item data type (string) - Val6 = "0.7" # Item value - Key7 = "DOPPLERDEF" # Item name - Typ7 = 3 # Item data type (string) - Val7 = "OPTICAL" # Item value - Key8 = "REDSHIFT" # Item name - Typ8 = 3 # Item data type (string) - Val8 = "300.0" # Item value - Key9 = "LOLIMIT" # Item name - Typ9 = 3 # Item data type (string) - Val9 = "200.0" # Item value - End KeyMap - Key2 = "SPACE_PROPS" # Item name - Typ2 = 4 # Item data type (AST Object) - Val2 = # Item value - Begin KeyMap # Map of key/value pairs - MapSz = 16 # Size of hash table - Key1 = "SIZE" # Item name - Typ1 = 3 # Item data type (string) - Val1 = "0.000333 0.000278" # Item value - Key2 = "FRAME" # Item name - Typ2 = 3 # Item data type (string) - Val2 = "ICRS" # Item value - Key3 = "PIXSIZE" # Item name - Typ3 = 3 # Item data type (string) - Val3 = "0.000083 0.000083" # Item value - Key4 = "ID" # Item name - Typ4 = 3 # Item data type (string) - Val4 = "Circle" # Item value - Key5 = "REFPOS" # Item name - Typ5 = 3 # Item data type (string) - Val5 = "GEOCENTER" # Item value - Key6 = "CENTRE" # Item name - Typ6 = 3 # Item data type (string) - Val6 = "179.0 -11.5" # Item value - Key7 = "RESOLUTION" # Item name - Typ7 = 3 # Item data type (string) - Val7 = "0.001778" # Item value - Key8 = "POSITION" # Item name - Typ8 = 3 # Item data type (string) - Val8 = "179.0 -11.5" # Item value - Key9 = "RADIUS" # Item name - Typ9 = 3 # Item data type (string) - Val9 = "0.5" # Item value - Key10 = "ERROR" # Item name - Typ10 = 3 # Item data type (string) - Val10 = "0.000889" # Item value - End KeyMap - Key3 = "SPECTRAL_PROPS" # Item name - Typ3 = 4 # Item data type (AST Object) - Val3 = # Item value - Begin KeyMap # Map of key/value pairs - MapSz = 16 # Size of hash table - Key1 = "ID" # Item name - Typ1 = 3 # Item data type (string) - Val1 = "Spectral" # Item value - Key2 = "SPECTRAL" # Item name - Typ2 = 3 # Item data type (string) - Val2 = "1420.4" # Item value - Key3 = "REFPOS" # Item name - Typ3 = 3 # Item data type (string) - Val3 = "BARYCENTER" # Item value - Key4 = "UNIT" # Item name - Typ4 = 3 # Item data type (string) - Val4 = "MHz" # Item value - Key5 = "RESOLUTION" # Item name - Typ5 = 3 # Item data type (string) - Val5 = "10.0" # Item value - End KeyMap - Key4 = "TIME_PROPS" # Item name - Typ4 = 4 # Item data type (AST Object) - Val4 = # Item value - Begin KeyMap # Map of key/value pairs - MapSz = 16 # Size of hash table - Key1 = "PIXSIZE" # Item name - Typ1 = 3 # Item data type (string) - Val1 = "1024.0" # Item value - Key2 = "ID" # Item name - Typ2 = 3 # Item data type (string) - Val2 = "TimeInterval" # Item value - Key3 = "START" # Item name - Typ3 = 3 # Item data type (string) - Val3 = "1996-01-01T00:00:00" # Item value - Key4 = "TIME" # Item name - Typ4 = 3 # Item data type (string) - Val4 = "MJD 50814.0" # Item value - Key5 = "REFPOS" # Item name - Typ5 = 3 # Item data type (string) - Val5 = "GEOCENTER" # Item value - Key6 = "RESOLUTION" # Item name - Typ6 = 3 # Item data type (string) - Val6 = "0.8" # Item value - Key7 = "STOP" # Item name - Typ7 = 3 # Item data type (string) - Val7 = "1996-01-01T00:30:00" # Item value - Key8 = "TIMESCALE" # Item name - Typ8 = 3 # Item data type (string) - Val8 = "TT" # Item value - Key9 = "ERROR" # Item name - Typ9 = 3 # Item data type (string) - Val9 = "1.2" # Item value - End KeyMap -End KeyMap diff --git a/ast/ast_tester/stcschan-test1-doc3.ast b/ast/ast_tester/stcschan-test1-doc3.ast deleted file mode 100644 index 0758ca7..0000000 --- a/ast/ast_tester/stcschan-test1-doc3.ast +++ /dev/null @@ -1,272 +0,0 @@ - Begin Prism # Region extrusion into higher dimensions -# Title = "5-d compound coordinate system" # Title of coordinate system -# Naxes = 5 # Number of coordinate axes -# Domain = "TIME-SKY-SPECTRUM-REDSHIFT" # Coordinate system domain -# Epoch = 1995.9986310746 # Julian epoch of observation -# Lbl1 = "Modified Julian Date offset from 1996-01-01 " # Label for axis 1 -# Lbl2 = "Right ascension" # Label for axis 2 -# Lbl3 = "Declination" # Label for axis 3 -# Lbl4 = "Frequency" # Label for axis 4 -# Lbl5 = "Optical velocity" # Label for axis 5 -# System = "Compound" # Coordinate system type -# Uni1 = "d" # Units for axis 1 (day) -# Uni2 = "hh:mm:ss.s" # Units for axis 2 -# Uni3 = "ddd:mm:ss" # Units for axis 3 -# Uni4 = "MHz" # Units for axis 4 -# Uni5 = "km/s" # Units for axis 5 -# Dir2 = 0 # Plot axis 2 in reverse direction - IsA Frame # Coordinate system description - Adapt = 1 # Region adapts to coord sys changes - Frm = # Coordinate system - Begin CmpFrame # Compound coordinate system description -# Title = "5-d compound coordinate system" # Title of coordinate system -# Naxes = 5 # Number of coordinate axes -# Domain = "TIME-SKY-SPECTRUM-REDSHIFT" # Coordinate system domain -# Lbl1 = "Modified Julian Date offset from 1996-01-01 " # Label for axis 1 -# Lbl2 = "Right ascension" # Label for axis 2 -# Lbl3 = "Declination" # Label for axis 3 -# Lbl4 = "Frequency" # Label for axis 4 -# Lbl5 = "Optical velocity" # Label for axis 5 -# Uni1 = "d" # Units for axis 1 (day) -# Uni2 = "hh:mm:ss.s" # Units for axis 2 -# Uni3 = "ddd:mm:ss" # Units for axis 3 -# Uni4 = "MHz" # Units for axis 4 -# Uni5 = "km/s" # Units for axis 5 -# Dir2 = 0 # Plot axis 2 in reverse direction - IsA Frame # Coordinate system description - FrameA = # First component Frame - Begin CmpFrame # Compound coordinate system description - FrameA = # First component Frame - Begin CmpFrame # Compound coordinate system description - FrameA = # First component Frame - Begin TimeFrame # Description of time coordinate system - Naxes = 1 # Number of coordinate axes - Epoch = 1995.9986310746 # Julian epoch of observation - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - End Axis - IsA Frame # Coordinate system description - TmScl = "TT" # Time scale - TmOrg = 50083 # Time offset - End TimeFrame - FrameB = # Second component Frame - Begin SkyFrame # Description of celestial coordinate system - Naxes = 2 # Number of coordinate axes - Epoch = 1995.9986310746 # Julian epoch of observation - System = "ICRS" # Coordinate system type - Ax1 = # Axis number 1 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - Ax2 = # Axis number 2 - Begin SkyAxis # Celestial coordinate axis - End SkyAxis - IsA Frame # Coordinate system description - End SkyFrame - End CmpFrame - FrameB = # Second component Frame - Begin SpecFrame # Description of spectral coordinate system - Naxes = 1 # Number of coordinate axes - Epoch = 1995.9986310746 # Julian epoch of observation - System = "FREQ" # Coordinate system type - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Unit = "MHz" # Axis units - End Axis - IsA Frame # Coordinate system description - SoR = "Barycentric" # Standard of rest - UFreq = "MHz" # Preferred units for frequency - End SpecFrame - End CmpFrame - FrameB = # Second component Frame - Begin SpecFrame # Description of spectral coordinate system - Naxes = 1 # Number of coordinate axes - Domain = "REDSHIFT" # Coordinate system domain - Epoch = 1995.9986310746 # Julian epoch of observation - System = "VOPT" # Coordinate system type - Ax1 = # Axis number 1 - Begin Axis # Coordinate axis - Unit = "km/s" # Axis units - End Axis - IsA Frame # Coordinate system description - SoR = "Barycentric" # Standard of rest - UVopt = "km/s" # Preferred units for optical velocity - End SpecFrame - End CmpFrame - RegAxes = 5 # Number of axes spanned by the Region - IsA Region # An area within a coordinate system - RegionA = # First component Region - Begin Prism # Region extrusion into higher dimensions -# Title = "4-d compound coordinate system" # Title of coordinate system -# Naxes = 4 # Number of coordinate axes -# Domain = "TIME-SKY-SPECTRUM" # Coordinate system domain -# Epoch = 1995.9986310746 # Julian epoch of observation -# Lbl1 = "Modified Julian Date offset from 1996-01-01 " # Label for axis 1 -# Lbl2 = "Right ascension" # Label for axis 2 -# Lbl3 = "Declination" # Label for axis 3 -# Lbl4 = "Frequency" # Label for axis 4 -# System = "Compound" # Coordinate system type -# Uni1 = "d" # Units for axis 1 (day) -# Uni2 = "hh:mm:ss.s" # Units for axis 2 -# Uni3 = "ddd:mm:ss" # Units for axis 3 -# Uni4 = "MHz" # Units for axis 4 -# Dir2 = 0 # Plot axis 2 in reverse direction - IsA Frame # Coordinate system description - Adapt = 1 # Region adapts to coord sys changes - RegAxes = 4 # Number of axes spanned by the Region - IsA Region # An area within a coordinate system - RegionA = # First component Region - Begin Prism # Region extrusion into higher dimensions -# Title = "3-d compound coordinate system" # Title of coordinate system -# Naxes = 3 # Number of coordinate axes -# Domain = "TIME-SKY" # Coordinate system domain -# Epoch = 1995.9986310746 # Julian epoch of observation -# Lbl1 = "Modified Julian Date offset from 1996-01-01 " # Label for axis 1 -# Lbl2 = "Right ascension" # Label for axis 2 -# Lbl3 = "Declination" # Label for axis 3 -# System = "Compound" # Coordinate system type -# Uni1 = "d" # Units for axis 1 (day) -# Uni2 = "hh:mm:ss.s" # Units for axis 2 -# Uni3 = "ddd:mm:ss" # Units for axis 3 -# Dir2 = 0 # Plot axis 2 in reverse direction - IsA Frame # Coordinate system description - Adapt = 1 # Region adapts to coord sys changes - RegAxes = 3 # Number of axes spanned by the Region - IsA Region # An area within a coordinate system - RegionA = # First component Region - Begin Box # Axis intervals -# Title = "Modified Julian Date [TT] offset from 1996-01-01 00:00:00" # Title of coordinate system -# Naxes = 1 # Number of coordinate axes -# Domain = "TIME" # Coordinate system domain -# Epoch = 1995.9986310746 # Julian epoch of observation -# Lbl1 = "Modified Julian Date offset from 1996-01-01 " # Label for axis 1 -# System = "MJD" # Coordinate system type -# Uni1 = "d" # Units for axis 1 (day) - IsA Frame # Coordinate system description - Closed = 1 # Boundary is inside - Adapt = 1 # Region adapts to coord sys changes - Points = # Points defining the shape - Begin PointSet # Container for a set of points - Npoint = 2 # Number of points - Ncoord = 1 # Number of coordinates per point - X1 = 0.0104166666678793 # Coordinate values... - X2 = 0.0208333333357587 - End PointSet - Unc = # Region defining positional uncertainties. - Begin Box # Axis intervals -# Title = "Modified Julian Date [TT] offset from 1996-01-01 00:00:00" # Title of coordinate system -# Naxes = 1 # Number of coordinate axes -# Domain = "TIME" # Coordinate system domain -# Epoch = 1995.9986310746 # Julian epoch of observation -# Lbl1 = "Modified Julian Date offset from 1996-01-01 " # Label for axis 1 -# System = "MJD" # Coordinate system type -# Uni1 = "d" # Units for axis 1 (day) - IsA Frame # Coordinate system description - Adapt = 1 # Region adapts to coord sys changes - Points = # Points defining the shape - Begin PointSet # Container for a set of points - Npoint = 2 # Number of points - Ncoord = 1 # Number of coordinates per point - X1 = 0.0104166666678793 # Coordinate values... - X2 = 0.0104305555567682 - End PointSet - IsA Region # An area within a coordinate system - End Box - IsA Region # An area within a coordinate system - End Box - RegionB = # Second component Region - Begin Circle # Circular or spherical region -# Title = "ICRS coordinates" # Title of coordinate system -# Naxes = 2 # Number of coordinate axes -# Domain = "SKY" # Coordinate system domain -# Epoch = 1995.9986310746 # Julian epoch of observation -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 -# System = "ICRS" # Coordinate system type -# Uni1 = "hh:mm:ss.s" # Units for axis 1 -# Uni2 = "ddd:mm:ss" # Units for axis 2 -# Dir1 = 0 # Plot axis 1 in reverse direction -# Bot2 = -1.5707963267949 # Lowest legal axis value -# Top2 = 1.5707963267949 # Highest legal axis value - IsA Frame # Coordinate system description - Adapt = 1 # Region adapts to coord sys changes - Points = # Points defining the shape - Begin PointSet # Container for a set of points - Npoint = 2 # Number of points - Ncoord = 2 # Number of coordinates per point - X1 = 3.12413936106985 # Coordinate values... - X2 = -0.200712863979348 - X3 = 3.13304478740064 - X4 = -0.200712708456374 - End PointSet - Unc = # Region defining positional uncertainties. - Begin Box # Axis intervals -# Title = "ICRS coordinates" # Title of coordinate system -# Naxes = 2 # Number of coordinate axes -# Domain = "SKY" # Coordinate system domain -# Epoch = 1995.9986310746 # Julian epoch of observation -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 -# System = "ICRS" # Coordinate system type -# Uni1 = "hh:mm:ss.s" # Units for axis 1 -# Uni2 = "ddd:mm:ss" # Units for axis 2 -# Dir1 = 0 # Plot axis 1 in reverse direction -# Bot2 = -1.5707963267949 # Lowest legal axis value -# Top2 = 1.5707963267949 # Highest legal axis value - IsA Frame # Coordinate system description - Adapt = 1 # Region adapts to coord sys changes - Points = # Points defining the shape - Begin PointSet # Container for a set of points - Npoint = 2 # Number of points - Ncoord = 2 # Number of coordinates per point - X1 = 3.12413936106985 # Coordinate values... - X2 = -0.200712863979348 - X3 = 3.12415519494 - X4 = -0.200697348002298 - End PointSet - IsA Region # An area within a coordinate system - End Box - IsA Region # An area within a coordinate system - End Circle - End Prism - RegionB = # Second component Region - Begin PointList # Collection of points -# Title = "Frequency (Barycentric)" # Title of coordinate system -# Naxes = 1 # Number of coordinate axes -# Domain = "SPECTRUM" # Coordinate system domain -# Epoch = 1995.9986310746 # Julian epoch of observation -# Lbl1 = "Frequency" # Label for axis 1 -# System = "FREQ" # Coordinate system type -# Uni1 = "MHz" # Units for axis 1 - IsA Frame # Coordinate system description - Adapt = 1 # Region adapts to coord sys changes - Points = # Points defining the shape - Begin PointSet # Container for a set of points - Npoint = 1 # Number of points - Ncoord = 1 # Number of coordinates per point - X1 = 1420.4 # Coordinate values... - End PointSet - IsA Region # An area within a coordinate system - End PointList - End Prism - RegionB = # Second component Region - Begin Box # Axis intervals -# Title = "Optical velocity (Barycentric), rest frequency = 100000 GHz" # Title of coordinate system -# Naxes = 1 # Number of coordinate axes -# Domain = "REDSHIFT" # Coordinate system domain -# Epoch = 1995.9986310746 # Julian epoch of observation -# Lbl1 = "Optical velocity" # Label for axis 1 -# System = "VOPT" # Coordinate system type -# Uni1 = "km/s" # Units for axis 1 - IsA Frame # Coordinate system description - Closed = 1 # Boundary is inside - Adapt = 1 # Region adapts to coord sys changes - Points = # Points defining the shape - Begin PointSet # Container for a set of points - Npoint = 2 # Number of points - Ncoord = 1 # Number of coordinates per point - X1 = 1250 # Coordinate values... - X2 = 2300 - End PointSet - IsA Region # An area within a coordinate system - End Box - End Prism diff --git a/ast/ast_tester/testchannel.f b/ast/ast_tester/testchannel.f deleted file mode 100644 index ac69b2c..0000000 --- a/ast/ast_tester/testchannel.f +++ /dev/null @@ -1,88 +0,0 @@ - program testrate - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'AST_ERR' - - integer status, ch, sf, sf2 - character buff*50 - status = sai__ok - - call err_begin( status ) - call ast_begin( status ) - - - call ast_tunec( "hrdel", AST__TUNULLC, buff, status ) - if( buff .ne. '%-%^50+%s70+h%+' .and. status .eq. sai__ok ) then - call stopit( 0, status ) - endif - call ast_tunec( "hrdel", "junk", buff, status ) - call ast_tunec( "hrdel", AST__TUNULLC, buff, status ) - if( buff .ne. 'junk' .and. status .eq. sai__ok ) then - call stopit( -1, status ) - endif - - sf = ast_skyframe( ' ', status ) - ch = ast_channel( AST_NULL, AST_NULL, 'SinkFile=./fred.txt', - : status ) - if( ast_write( ch, sf, status ) .ne. 1 ) then - call stopit( 1, status ) - end if - - call ast_set( ch, 'SourceFile=./fred.txt', status ) - if( status .eq. SAI__OK ) then - sf2 = ast_read( ch, status ) - if( status .eq. AST__RDERR ) then - call err_annul( status ) - else - call stopit( 7, status ) - end if - end if - - call ast_clear( ch, 'SinkFile', status ) - - call ast_set( ch, 'SourceFile=./fred.txt', status ) - sf2 = ast_read( ch, status ) - if( sf2 .eq. AST__NULL ) call stopit( 2, status ) - if( .not. ast_equal( sf, sf2, status ) ) then - call stopit( 3, status ) - end if - - - call ast_set( ch, 'SinkFile=./fred2.txt', status ) - if( ast_write( ch, sf, status ) .ne. 1 ) then - call stopit( 4, status ) - end if - call ast_clear( ch, 'SinkFile', status ) - - call ast_set( ch, 'SourceFile=./fred2.txt', status ) - sf2 = ast_read( ch, status ) - if( sf2 .eq. AST__NULL ) call stopit( 5, status ) - if( .not. ast_equal( sf, sf2, status ) ) then - call stopit( 6, status ) - end if - - - call ast_end( status ) - call err_end( status ) - - - - if( status .eq. sai__ok ) then - write(*,*) 'All Channel tests passed' - else - write(*,*) 'Channel tests failed' - end if - - end - - - subroutine stopit( i, status ) - implicit none - include 'SAE_PAR' - integer i, status - if( status .eq. sai__ok ) then - write( *,* ) 'Error ',i - status = sai__error - end if - end diff --git a/ast/ast_tester/testchebymap.f b/ast/ast_tester/testchebymap.f deleted file mode 100644 index b0a0bba..0000000 --- a/ast/ast_tester/testchebymap.f +++ /dev/null @@ -1,475 +0,0 @@ - program testchebymap - implicit none - - include 'SAE_PAR' - include 'AST_PAR' - include 'PRM_PAR' - - integer status, lstat, cm, cm2, cm3, i, j, nco - double precision lbnd( 2 ), ubnd( 2 ), dval, lb, ub, xl(2), xu(2) - double precision tlbnd( 2 ), tubnd( 2 ), dlbnd( 2 ), dubnd( 2 ) - - double precision coeffs_1( 4*3 ), xin( 5 ), xout( 5 ), xrec( 5 ), - : yrec( 5 ), coeffs_4(4*4 ), - : work( 5 ), coeffs_2( 2*3 ), coeffs_3( 4*5 ), - : yin(5), yout(5), xi, yi, xv, yv, y, a, x, - : cofs( 100 ) - - -C f(x) = 1.5*T0(x') - 1.0*T2(x') + 2.0*T3(x') - 1.3*T4(x') - data coeffs_1 /1.5D0, 1.0D0, 0.0D0, - : -1.0D0, 1.0D0, 2.0D0, - : 2.0D0, 1.0D0, 3.0D0, - : 1.3D0, 1.0D0, 4.0D0 / - -C f(x) = 1.0*T0(x') - 2.0*T1(x') - data coeffs_2 /1.0D0, 1.0D0, 0.0D0, - : -2.0D0, 1.0D0, 1.0D0 / - - -C fx(x,y) = 1.0*T0(x')*T0(y') - 2.0*T1(x')*T2(y') + T1(y') -C fy(x,y) = 1.5*T0(x')*T0(y') - 2.5*T1(x')*T2(y') - data coeffs_3 /1.0D0, 1.0D0, 0.0D0, 0.0D0, - : -2.0D0, 1.0D0, 1.0D0, 2.0D0, - : 1.0D0, 1.0D0, 0.0D0, 1.0D0, - : 1.5D0, 2.0D0, 0.0D0, 0.0D0, - : -2.5D0, 2.0D0, 1.0D0, 2.0D0/ - -C fx(x,y) = T1(x') + T1(y') -C fy(x,y) = T1(x') - T1(y') -C -C This has the property that the coeffs of the inverse transformation are -C equal to the coeffs of the forward transformation. - data coeffs_4 /1.0D0, 1.0D0, 1.0D0, 0.0D0, - : 1.0D0, 1.0D0, 0.0D0, 1.0D0, - : 1.0D0, 2.0D0, 1.0D0, 0.0D0, - : -1.0D0, 2.0D0, 0.0D0, 1.0D0 / - - - status = sai__ok - call ast_begin( status ) - -C One-dimensional ChebyMaps, order 1: a constant equal to 1.5 - lbnd( 1 ) = -1.0D0 - lbnd( 2 ) = -1.0D0 - ubnd( 1 ) = 1.0D0 - ubnd( 2 ) = 1.0D0 - - cm = ast_chebymap( 1, 1, 1, coeffs_1, 0, 0.0D0, lbnd, ubnd, 1.0D0, - : 1.0D0, ' ', status ) - - xin( 1 ) = -1.0D0 - xin( 2 ) = -0.5D0 - xin( 3 ) = 0.0D0 - xin( 4 ) = 0.5D0 - xin( 5 ) = 1.0D0 - - call ast_tran1( cm, 5, xin, .true., xout, status ) - do i = 1, 5 - if( xout( i ) .ne. 1.5D0 ) call stopit( 0, status ) - end do - -C One-dimensional ChebyMaps, order 3: 2.5 - 2*x*x - cm = ast_chebymap( 1, 1, 2, coeffs_1, 0, 0.0D0, lbnd, ubnd, 1.0D0, - : 1.0D0, ' ', status ) - call ast_tran1( cm, 5, xin, .true., xout, status ) - do i = 1, 5 - if( xout( i ) .ne. 2.5D0 - 2.0D0*xin( i )**2 ) - : call stopit( 1, status ) - end do - -C One-dimensional ChebyMaps, order 4: 2.5 - 6*x - 2*x*x + 8*x*x*x - cm = ast_chebymap( 1, 1, 3, coeffs_1, 0, 0.0D0, lbnd, ubnd, 1.0D0, - : 1.0D0, ' ', status ) - call ast_tran1( cm, 5, xin, .true., xout, status ) - do i = 1, 5 - dval = 2.5D0-6.0D0*xin(i)-2.0D0*xin(i)**2+8.0D0*xin(i)**3 - if( xout( i ) .ne. dval ) call stopit( 2, status ) - end do - -C One-dimensional ChebyMaps, order 5 - cm = ast_chebymap( 1, 1, 4, coeffs_1, 0, 0.0D0, lbnd, ubnd, 1.0D0, - : 1.0D0, ' ', status ) - call ast_tran1( cm, 5, xin, .true., xout, status ) - - do i = 1, 5 - work( 1 ) = 1.0D0 - work( 2 ) = xin( i ) - do j = 3, 5 - work( j ) = 2.0D0 * xin( i ) * work( j - 1 ) - : - work( j - 2 ) - end do - - if( 1.5D0*work(1) - 1.0D0*work(3) + - : 2.0D0*work(4) + 1.3D0*work(5) .ne. - : xout( i ) ) call stopit( 3, status ) - - end do - -C Check the IterInverse attribute is zero. - if( ast_getl( cm, 'IterInverse', status ) ) then - call stopit( 4, status ) - end if - -c The astPolyTran method on a 1-dimensional ChebyMaps, order 2: 1 - 2*x - cm = ast_chebymap( 1, 1, 2, coeffs_2, 0, 0.0D0, lbnd, ubnd, 1.0D0, - : 1.0D0, ' ', status ) - cm2 = ast_polytran( cm, .false., 0.01D0, 0.01D0, 5, lbnd, - : ubnd, status ) - if( cm2 .eq. AST__NULL ) then - call stopit( 5, status ) - else - xin( 1 ) = -1.0D0 - xin( 2 ) = -0.5D0 - xin( 3 ) = 0.0D0 - xin( 4 ) = 0.5D0 - xin( 5 ) = 1.0D0 - call ast_tran1( cm2, 5, xin, .true., xout, status ) - call ast_tran1( cm2, 5, xout, .false., xrec, status ) - do i = 1, 5 - if( abs( xrec(i) - xin(i) ) .gt. 1.0D-3*abs( xin(i) ) ) - : call stopit( 6, status ) - end do - - call ast_chebydomain( cm2, .false., dlbnd, dubnd, status ) - if( dlbnd(1) .ne. -1.0D0 ) - : call stopit( 501, status ) - if( dubnd(1) .ne. 3.0D0 ) - : call stopit( 502, status ) - - call ast_polycoeffs( cm2, .false., 100, cofs, nco, status ) - if( nco .ne. 1 ) - : call stopit( 503, status ) - - if( abs( cofs(1) + 1.0D0 ) .gt. 1.0D-10 ) - : call stopit( 504, status ) - if( abs( cofs(2) - 1.0D0 ) .gt. 1.0D-10 ) - : call stopit( 505, status ) - if( abs( cofs(3) - 1.0D0 ) .gt. 1.0D-10 ) - : call stopit( 506, status ) - - end if - -c The astPolyTran method on a 1-dimensional ChebyMaps, order 5. - lbnd( 1 ) = -100.0D0 - ubnd( 1 ) = 100.0D0 - cm = ast_chebymap( 1, 1, 4, coeffs_1, 0, 0.0D0, lbnd, ubnd, 1.0D0, - : 1.0D0, ' ', status ) - cm2 = ast_polytran( cm, .false., 0.01D0, 0.01D0, 10, -5.0D0, - : 50.0D0, status ) - - if( cm2 .eq. AST__NULL ) then - call stopit( 7, status ) - else - xin(1) = 0.0D0; - xin(2) = 10.0D0; - xin(3) = 20.0D0; - xin(4) = 30.0D0; - xin(5) = 40.0D0; - call ast_tran1( cm2, 5, xin, .true., xout, status ) - call ast_tran1( cm2, 5, xout, .false., xrec, status ) - - do i = 1, 5 - if( abs( xrec( i ) - xin( i ) ) .gt. 0.01D0 ) - : call stopit( 8, status ) - end do - end if - -c ast_equal and ast_copy - cm3 = ast_copy( cm2, status ) - if( .not. ast_equal( cm2, cm3, status ) ) then - call stopit( 9, status ) - end if - -c astDump and astLoadChebyMap - call checkdump( cm2, status ) - - -c Simple 2d ChebyMap. -C fx(x,y) = T1(x') + T1(y') -C fy(x,y) = T1(x') - T1(y') - - lbnd(1) = -1.0D0 - lbnd(2) = -1.0D0 - ubnd(1) = 1.0D0 - ubnd(2) = 1.0D0 - - cm = ast_chebymap( 2, 2, 4, coeffs_4, 0, 0.0D0, lbnd, ubnd, - : 1.0D0, 1.0D0, ' ', status ) - - cm2 = ast_copy( cm, status ) - call ast_invert( cm2, status ) - cm3 = ast_simplify( ast_cmpmap( cm, cm2, .TRUE., ' ', status ), - : status ) - if( .not. ast_isaunitmap( cm3, status ) ) then - call stopit( 1000, status ) - end if - - xin(1) = 0.5D0 - xin(2) = 0.0D0 - xin(3) = -0.5D0 - xin(4) = 0.0D0 - - yin(1) = 0.0D0 - yin(2) = 0.5D0 - yin(3) = 0.0D0 - yin(4) = -0.5D0 - - call ast_tran2( cm, 4, xin, yin, .true., xout, yout, status ) - do i = 1, 4 - xv = xin(i) + yin(i) - yv = xin(i) - yin(i) - - if( abs( xout(i) - xv ) .gt. 1.0D-6*abs(xv) .or. - : abs( yout(i) - yv ) .gt. 1.0D-6*abs(yv) ) then - call stopit( 101, status ) - end if - end do - - cm2 = ast_polytran( cm, .false., 0.01D0, 0.01D0, 10, lbnd, - : ubnd, status ) - - if( cm2 .eq. AST__NULL ) then - call stopit( 102, status ) - else - call ast_tran2( cm2, 4, xout, yout, .false., xrec, yrec, - : status ) - do i = 1, 4 - if( abs( xrec(i) - xin(i) ) .gt. 0.01D0 .or. - : abs( yrec(i) - yin(i) ) .gt. 0.01D0 ) then - call stopit( 103, status ) - end if - end do - end if - - call ast_polycoeffs( cm2, .false., 100, cofs, nco, status ) - if( nco .ne. 4 ) then - call stopit( 104, status ) - else - do i = 1, 16 - if( abs( cofs(i) - coeffs_4(i) ) .gt. 0.01D0 ) then - call stopit( 105, status ) - end if - end do - end if - - call ast_chebydomain( cm2, .false., dlbnd, dubnd, status ) - - if( dlbnd(1) .ne. -2.0D0 ) then - call stopit( 106, status ) - else if( dlbnd(2) .ne. -2.0D0 ) then - call stopit( 107, status ) - else if( dubnd(1) .ne. 2.0D0 ) then - call stopit( 108, status ) - else if( dubnd(2) .ne. 2.0D0 ) then - call stopit( 109, status ) - end if - -* 2-dimensional ChebyMaps: forward transformation - lbnd(1) = 0.0D0 - lbnd(2) = 0.0D0 - ubnd(1) = 10.0D0 - ubnd(2) = 10.0D0 - - cm = ast_chebymap( 2, 2, 5, coeffs_3, 0, 0.0D0, lbnd, ubnd, - : 1.0D0, 1.0D0, ' ', status ) - - xin(1) = 0.0D0 - xin(2) = 2.0D0 - xin(3) = 6.0D0 - xin(4) = 10.0D0 - - yin(1) = 2.0D0 - yin(2) = 5.0D0 - yin(3) = 8.0D0 - yin(4) = 0.0D0 - - call ast_tran2( cm, 4, xin, yin, .true., xout, yout, status ) - do i = 1, 4 - xi = 2.0D0*( xin(i) - lbnd(1) )/( ubnd(1) - lbnd(1) ) - 1.0D0 - yi = 2.0D0*( yin(i) - lbnd(2) )/( ubnd(2) - lbnd(2) ) - 1.0D0 - - xv = 1 - 2*xi*(2*yi**2 - 1) + yi - yv = 1.5 - 2.5*xi*(2*yi**2 - 1) - - if( abs( xout(i) - xv ) .gt. 1.0D-6*abs(xv) .or. - : abs( yout(i) - yv ) .gt. 1.0D-6*abs(yv) ) then - call stopit( 10, status ) - end if - end do - - -* 2-dimensional ChebyMaps: fitted inverse transformation - tlbnd(1) = 4.0D0 - tlbnd(2) = 4.0D0 - tubnd(1) = 6.0D0 - tubnd(2) = 6.0D0 - cm2 = ast_polytran( cm, .false., 0.01D0, 0.01D0, 10, tlbnd, - : tubnd, status ) - - if( cm2 .eq. AST__NULL ) then - call stopit( 11, status ) - else - xin(1) = 4.0D0 - xin(2) = 4.5D0 - xin(3) = 5.0D0 - xin(4) = 5.5D0 - - yin(1) = 6.0D0 - yin(2) = 5.5D0 - yin(3) = 5.0D0 - yin(4) = 4.5D0 - - call ast_tran2( cm2, 4, xin, yin, .true., xout, yout, status ) - call ast_tran2( cm2, 4, xout, yout, .false., xrec, yrec, - : status ) - do i = 1, 4 - if( abs( xrec(i) - xin(i) ) .gt. 0.01D0 .or. - : abs( yrec(i) - yin(i) ) .gt. 0.01D0 ) then - call stopit( 12, status ) - end if - end do - end if - - -* Test recovery of coeffs - call ast_polycoeffs( cm2, .true., 0, 0.0D0, nco, status ) - if( nco .ne. 5 ) then - call stopit( 13, status ) - endif - - call ast_polycoeffs( cm2, .true., 100, cofs, nco, status ) - if( nco .ne. 5 ) then - call stopit( 14, status ) - else - do i = 1, 20 - if( cofs( i ) .ne. coeffs_3( i ) ) then - call stopit( 15, status ) - end if - end do - endif - - call ast_polycoeffs( cm2, .false., 0, 0.0D0, nco, status ) - if( nco .ne. 9 ) then - call stopit( 16, status ) - endif - - call ast_polycoeffs( cm2, .false., 100, cofs, nco, status ) - - if( nco .ne. 9 ) then - call stopit( 17, status ) - else if( abs( cofs( 1 ) - 5.0000000000000018D0 ) .gt. - : 1.0E-6 ) then - call stopit( 18, status ) - else if( abs( cofs( 13 ) - 0.35096188953505458D0 ) .gt. - : 1.0E-6 ) then - call stopit( 19, status ) - else if( cofs( 15 ) .ne. 2.0D0 ) then - call stopit( 20, status ) - end if - -* Test recovery of domain bounding box - call ast_chebydomain( cm, .true., dlbnd, dubnd, status ) - - if( dlbnd(1) .ne. lbnd(1) ) then - call stopit( 21, status ) - else if( dlbnd(2) .ne. lbnd(2) ) then - call stopit( 22, status ) - else if( dubnd(1) .ne. ubnd(1) ) then - call stopit( 23, status ) - else if( dubnd(2) .ne. ubnd(2) ) then - call stopit( 24, status ) - end if - - call ast_chebydomain( cm, .false., dlbnd, dubnd, status ) - - if( dlbnd(1) .ne. -2.0D0 ) then - call stopit( 25, status ) - else if( dlbnd(2) .ne. -1.0D0 ) then - call stopit( 26, status ) - else if( dubnd(1) .ne. 4.0D0 ) then - call stopit( 27, status ) - else if( dubnd(2) .ne. 4.0D0 ) then - call stopit( 28, status ) - end if - - - call ast_chebydomain( cm2, .true., dlbnd, dubnd, status ) - - if( dlbnd(1) .ne. lbnd(1) ) then - call stopit( 29, status ) - else if( dlbnd(2) .ne. lbnd(2) ) then - call stopit( 30, status ) - else if( dubnd(1) .ne. ubnd(1) ) then - call stopit( 31, status ) - else if( dubnd(2) .ne. ubnd(2) ) then - call stopit( 32, status ) - end if - - call ast_chebydomain( cm2, .false., dlbnd, dubnd, status ) - - if( abs( dlbnd(1) - 0.432 ) .gt. 1.0D-6 ) then - call stopit( 33, status ) - else if( abs( dlbnd(2) - 1.000816 ) .gt. 1.0D-6 ) then - call stopit( 34, status ) - else if( abs( dubnd(1) - 1.568D0 ) .gt. 1.0D-6 ) then - call stopit( 35, status ) - else if( abs( dubnd(2) - 1.9991836D0 ) .gt. 1.0D-6 ) then - call stopit( 36, status ) - end if - - - call ast_end( status ) - call ast_activememory( 'testchebymap' ); - call ast_flushmemory( 1 ) - - if( status .eq. sai__ok ) then - write(*,*) 'All ChebyMap tests passed' - else - write(*,*) 'ChebyMap tests failed' - end if - - end - - - subroutine stopit( i, status ) - implicit none - include 'SAE_PAR' - integer i, status - if( status .eq. sai__ok ) then - write( *,* ) 'Error ',i - status = sai__error - end if - end - - - subroutine checkdump( obj, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer obj, status, ch, result - - if( status .ne. sai__ok ) return - - ch = ast_channel( AST_NULL, AST_NULL, ' ', status ) - - call ast_set( ch, 'SinkFile=fred.tmp', status ) - if( ast_write( ch, obj, status ) .ne. 1 ) then - call stopit( -1, status ) - end if - call ast_clear( ch, 'SinkFile', status ) - - call ast_set( ch, 'SourceFile=fred.tmp', status ) - result = ast_read( ch, status ) - if( result .eq. ast__null ) then - call stopit( -2, status ) - end if - call ast_clear( ch, 'SourceFile', status ) - - if( .not. ast_equal( result, obj, status ) ) then - call ast_show( obj, status ) - call ast_show( result, status ) - call stopit( -3, status ) - end if - - end diff --git a/ast/ast_tester/testcmpmap.f b/ast/ast_tester/testcmpmap.f deleted file mode 100644 index bd3cad1..0000000 --- a/ast/ast_tester/testcmpmap.f +++ /dev/null @@ -1,149 +0,0 @@ - program testcmpmap - implicit none - - include 'AST_PAR' - include 'SAE_PAR' - - integer m1, m2, m3, m4, m5, status, i, in(7), out(7) - double precision x( 7 ), y(7), y2(7), matrix( 3 ) - - data matrix /-1.0D0, 1.0D0, 2.0D0 / - - status = sai__ok - call err_mark( status ) - call ast_begin( status ) - - - m1 = ast_UnitMap( 1, ' ', status ) - m2 = ast_ZoomMap( 2, 2.0D0, ' ', status ) - m3 = ast_MatrixMap( 3, 3, 1, matrix, ' ', status ) - m4 = ast_CmpMap( ast_CmpMap( m1, m2, .false., ' ', status ), m3, - : .false., ' ', status ) - - - in( 1 ) = 3 - in( 2 ) = 6 - in( 3 ) = 4 - call ast_mapsplit( m4, 3, in, out, m5, status ) - if( m5 .eq. AST__NULL ) then - call stopit( status, 'Error 1' ) - else if( ast_geti( m5, 'Nin', status ) .ne. 3 ) then - call stopit( status, 'Error 2' ) - else if( ast_geti( m5, 'Nout', status ) .ne. 3 ) then - call stopit( status, 'Error 3' ) - end if - - if( out( 1 ) .ne. 3 ) call stopit( status, 'Error 4' ) - if( out( 2 ) .ne. 4 ) call stopit( status, 'Error 5' ) - if( out( 3 ) .ne. 6 ) call stopit( status, 'Error 6' ) - - - call readobj( 'splittest1.ast', m1, status ) - in(1)= 1 - call ast_mapsplit( m1, 1, in, out, m2, status ) - if( m2 .ne. AST__NULL ) call stopit( status, 'Error 7' ) - - in(2)= 4 - in(3)= 2 - call ast_mapsplit( m1, 3, in, out, m2, status ) - if( m2 .eq. AST__NULL ) then - call stopit( status, 'Error 8' ) - else if( ast_geti( m2, 'Nin', status ) .ne. 3 ) then - call stopit( status, 'Error 9' ) - else if( ast_geti( m2, 'Nout', status ) .ne. 3 ) then - call stopit( status, 'Error 10' ) - end if - - - - x(1) = 1.0D0 - x(2) = 2.0D0 - x(3) = 4.0D0 - x(4) = 8.0D0 - call ast_trann( m1, 1,4, 1, x, .true., 4, 1, y, status ) - - x(1) = 1.0D0 - x(2) = 8.0D0 - x(3) = 2.0D0 - call ast_trann( m2, 1, 3, 1, x, .true., 3, 1, y2, status ) - - if( y2( 1 ) .ne. y( 1 ) ) then - call stopit( status, 'Error 11' ) - else if( y2( 2 ) .ne. y( 2 ) ) then - call stopit( status, 'Error 12' ) - else if( y2( 3 ) .ne. y( 4 ) ) then - call stopit( status, 'Error 13' ) - end if - - - - - - - - call ast_end( status ) - call err_rlse( status ) - -c call ast_activememory( 'testcmpmap' ) - call ast_flushmemory( 1 ) - - if( status .eq. sai__ok ) then - write(*,*) 'All cmpmap tests passed' - else - write(*,*) 'cmpmap tests failed' - end if - - end - - - - subroutine stopit( status, text ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - if( status .ne. sai__ok ) return - status = sai__error - write(*,*) text - end - - - - subroutine readobj( file, iobj, status ) - implicit none - - include 'AST_PAR' - include 'SAE_PAR' - - external chsource - integer iobj, status, ch - character file*(*) - - open( 10, status='old', file=file ) - - ch = ast_channel( chsource, AST_NULL, ' ', status ) - iobj = ast_read( ch, status ) - call ast_annul( ch, status ) - - close( 10 ) - - end - - subroutine chsource( status ) - implicit none - - include 'AST_PAR' - include 'SAE_PAR' - - integer status - character line*200 - - read( 10, '(A)', end=99 ) line - - call ast_putline( line, len( line ), status ) - return - - 99 call ast_putline( line, -1, status ) - - end - diff --git a/ast/ast_tester/testconvert.c b/ast/ast_tester/testconvert.c deleted file mode 100644 index d28c318..0000000 --- a/ast/ast_tester/testconvert.c +++ /dev/null @@ -1,232 +0,0 @@ -#define astCLASS testconvert - -#include "ast_err.h" -#include "error.h" -#include "object.h" -#include "skyframe.h" -#include "specframe.h" -#include "cmpframe.h" -#include "frame.h" -#include "unitmap.h" -#include "permmap.h" - -int main(){ - int status_value = 0; - int *status = &status_value; - - AstFrameSet *fs; - - AstSkyFrame *sf = astSkyFrame( " ", status ); - AstSpecFrame *df = astSpecFrame( " ", status ); - AstCmpFrame *cf = astCmpFrame( df, sf, " ", status ); - AstFrame *bf = astFrame( 2, "Domain=SKY", status ); - AstFrame *target, *template; - - - fs = astConvert( bf, sf, " " ); - if( fs ) { - if( !astEqual( astGetFrame( fs, AST__BASE ), bf ) && astOK ) { - astError( AST__INTER, "Error 1\n", status ); - } else if( !astEqual( astGetFrame( fs, AST__CURRENT ), sf ) && astOK ) { - astError( AST__INTER, "Error 2\n", status ); - } else if( !astIsAUnitMap( astGetMapping( fs, AST__BASE, AST__CURRENT ) ) ) { - astError( AST__INTER, "Error 3\n", status ); - } - } else { - astError( AST__INTER, "Error 4\n", status ); - } - - fs = astConvert( sf, bf, " " ); - if( fs ) { - if( !astEqual( astGetFrame( fs, AST__BASE ), sf ) && astOK ) { - astError( AST__INTER, "Error 5\n", status ); - } else if( !astEqual( astGetFrame( fs, AST__CURRENT ), bf ) && astOK ) { - astError( AST__INTER, "Error 6\n", status ); - } else if( !astIsAUnitMap( astGetMapping( fs, AST__BASE, AST__CURRENT ) ) ) { - astError( AST__INTER, "Error 7\n", status ); - } - } else { - astError( AST__INTER, "Error 8\n", status ); - } - - - astSetDomain( bf, "NOTSKY" ); - fs = astConvert( bf, sf, " " ); - if( fs ) { - astShow( fs ); - astError( AST__INTER, "Error 9\n", status ); - } - - fs = astConvert( sf, bf, " " ); - if( fs ) { - astShow( fs ); - astError( AST__INTER, "Error 10\n", status ); - } - - astClearDomain( bf ); - - fs = astConvert( bf, sf, " " ); - if( fs ) { - if( !astEqual( astGetFrame( fs, AST__BASE ), bf ) && astOK ) { - astError( AST__INTER, "Error 11\n", status ); - } else if( !astEqual( astGetFrame( fs, AST__CURRENT ), sf ) && astOK ) { - astError( AST__INTER, "Error 12\n", status ); - } else if( !astIsAUnitMap( astGetMapping( fs, AST__BASE, AST__CURRENT ) ) ) { - astError( AST__INTER, "Error 13\n", status ); - } - } else { - astError( AST__INTER, "Error 14\n", status ); - } - - fs = astConvert( sf, bf, " " ); - if( fs ) { - if( !astEqual( astGetFrame( fs, AST__BASE ), sf ) && astOK ) { - astError( AST__INTER, "Error 15\n", status ); - } else if( !astEqual( astGetFrame( fs, AST__CURRENT ), bf ) && astOK ) { - astError( AST__INTER, "Error 16\n", status ); - } else if( !astIsAUnitMap( astGetMapping( fs, AST__BASE, AST__CURRENT ) ) ) { - astError( AST__INTER, "Error 17\n", status ); - } - } else { - astError( AST__INTER, "Error 18\n", status ); - } - - - fs = astConvert( bf, cf, " " ); - if( fs ) { - if( !astEqual( astGetFrame( fs, AST__BASE ), bf ) && astOK ) { - astError( AST__INTER, "Error 19\n", status ); - } else if( !astEqual( astGetFrame( fs, AST__CURRENT ), cf ) && astOK ) { - astError( AST__INTER, "Error 20\n", status ); - } else if( !astIsAPermMap( astGetMapping( fs, AST__BASE, AST__CURRENT ) ) ) { - astError( AST__INTER, "Error 21\n", status ); - } - } else { - astError( AST__INTER, "Error 22\n", status ); - } - - fs = astConvert( cf, bf, " " ); - if( fs ) { - if( !astEqual( astGetFrame( fs, AST__BASE ), cf ) && astOK ) { - astError( AST__INTER, "Error 23\n", status ); - } else if( !astEqual( astGetFrame( fs, AST__CURRENT ), bf ) && astOK ) { - astError( AST__INTER, "Error 24\n", status ); - } else if( !astIsAPermMap( astGetMapping( fs, AST__BASE, AST__CURRENT ) ) ) { - astError( AST__INTER, "Error 25\n", status ); - } - } else { - astError( AST__INTER, "Error 26\n", status ); - } - - - astSetDomain( bf, "NOTSKY" ); - fs = astConvert( bf, cf, " " ); - if( fs ) { - astShow( fs ); - astError( AST__INTER, "Error 27\n", status ); - } - - fs = astConvert( cf, bf, " " ); - if( fs ) { - astShow( fs ); - astError( AST__INTER, "Error 28\n", status ); - } - - - astSetDomain( bf, "SKY" ); - fs = astConvert( bf, cf, " " ); - if( fs ) { - if( !astEqual( astGetFrame( fs, AST__BASE ), bf ) && astOK ) { - astError( AST__INTER, "Error 29\n", status ); - } else if( !astEqual( astGetFrame( fs, AST__CURRENT ), cf ) && astOK ) { - astError( AST__INTER, "Error 30\n", status ); - } else if( !astIsAPermMap( astGetMapping( fs, AST__BASE, AST__CURRENT ) ) ) { - astError( AST__INTER, "Error 31\n", status ); - } - } else { - astError( AST__INTER, "Error 32\n", status ); - } - - fs = astConvert( cf, bf, " " ); - if( fs ) { - if( !astEqual( astGetFrame( fs, AST__BASE ), cf ) && astOK ) { - astError( AST__INTER, "Error 33\n", status ); - } else if( !astEqual( astGetFrame( fs, AST__CURRENT ), bf ) && astOK ) { - astError( AST__INTER, "Error 34\n", status ); - } else if( !astIsAPermMap( astGetMapping( fs, AST__BASE, AST__CURRENT ) ) ) { - astError( AST__INTER, "Error 35\n", status ); - } - } else { - astError( AST__INTER, "Error 36\n", status ); - } - - - fs = astConvert( sf, cf, " " ); - if( fs ) { - if( !astEqual( astGetFrame( fs, AST__BASE ), sf ) && astOK ) { - astError( AST__INTER, "Error 37\n", status ); - } else if( !astEqual( astGetFrame( fs, AST__CURRENT ), cf ) && astOK ) { - astError( AST__INTER, "Error 38\n", status ); - } else if( !astIsAPermMap( astGetMapping( fs, AST__BASE, AST__CURRENT ) ) ) { - astError( AST__INTER, "Error 39\n", status ); - } - } else { - astError( AST__INTER, "Error 40\n", status ); - } - - fs = astConvert( cf, sf, " " ); - if( fs ) { - if( !astEqual( astGetFrame( fs, AST__BASE ), cf ) && astOK ) { - astError( AST__INTER, "Error 41\n", status ); - } else if( !astEqual( astGetFrame( fs, AST__CURRENT ), sf ) && astOK ) { - astError( AST__INTER, "Error 42\n", status ); - } else if( !astIsAPermMap( astGetMapping( fs, AST__BASE, AST__CURRENT ) ) ) { - astError( AST__INTER, "Error 43\n", status ); - } - } else { - astError( AST__INTER, "Error 44\n", status ); - } - - - fs = astFindFrame( sf, cf, " " ); - if( !fs && astOK ) { - astError( AST__INTER, "Error 45\n", status ); - } - - fs = astFindFrame( cf, sf, " " ); - if( fs && astOK ) { - astError( AST__INTER, "Error 46\n", status ); - } - - astSetMaxAxes( sf, 3 ); - astSetMinAxes( sf, 1 ); - - fs = astFindFrame( cf, sf, " " ); - if( !fs && astOK ) { - astError( AST__INTER, "Error 47\n", status ); - } else { - if( !astEqual( astGetFrame( fs, AST__BASE ), cf ) && astOK ) { - astError( AST__INTER, "Error 48\n", status ); - } else if( !astEqual( astGetFrame( fs, AST__CURRENT ), sf ) && astOK ) { - astError( AST__INTER, "Error 49\n", status ); - } else if( !astIsAPermMap( astGetMapping( fs, AST__BASE, AST__CURRENT ) ) ) { - astError( AST__INTER, "Error 50\n", status ); - } - } - - target = astFrame( 2, "Domain=ARDAPP", status ); - template = (AstFrame *) astSkyFrame( "System=GAPPT", status ); - fs = astFindFrame( target, template, " " ); - if( fs && astOK ) { - astError( AST__INTER, "Error 51\n", status ); - } - - - - - if( astOK ) { - printf(" All astConvert tests passed\n"); - } else { - printf("astConvert tests failed\n"); - } -} diff --git a/ast/ast_tester/testerror.c b/ast/ast_tester/testerror.c deleted file mode 100644 index d668879..0000000 --- a/ast/ast_tester/testerror.c +++ /dev/null @@ -1,44 +0,0 @@ -#include "ast.h" - -#define ERRVAL -1234 -static int flag; - -void myPutErr( int status_value, const char *message ); - -int main(){ - double a[2] = {0.0,0.0}; - -/* Initialise the flag that indicates if the error handler has been - called. */ - flag = 0; - -/* Register the error handler. */ - astSetPutErr( myPutErr ); - -/* Generate an error by making a ShiftMap with a negative number of axes. - The error handler will set the flag to a special value. */ - AstShiftMap *map = astShiftMap( -1, a, " " ); - -/* Clear the error status. */ - astClearStatus; - -/* Clear the error reporter so that the default error reporter is used. */ - astSetPutErr( NULL ); - -/* Report an error if the flag was not set to the correct value. */ - if( flag != ERRVAL ) { - astError( AST__INTER, "Error reporting function has not been " - "called." ); - } - - if( astOK ) { - printf(" All Error tests passed\n"); - } else { - printf("Error tests failed\n"); - } - -} - -void myPutErr( int status_value, const char *message ) { - flag = ERRVAL; -} diff --git a/ast/ast_tester/testfitschan.f b/ast/ast_tester/testfitschan.f deleted file mode 100644 index f2816c3..0000000 --- a/ast/ast_tester/testfitschan.f +++ /dev/null @@ -1,988 +0,0 @@ - program testfitschan - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - integer status, fs, fc, i, val, iwcfrm, map - character cards(10)*80, card*80 - logical there - double precision xin, yin, xout, yout - - status = sai__ok - - -c call ast_watchmemory( 225192 ) - call ast_begin( status ) - -* Create a FitsChan that will write its contents out to text file -* fred.txt when it is deleted. - fc = ast_fitschan( AST_NULL, AST_NULL, 'SinkFile=./fred.txt', - : status ) - - if( .not. ast_getl( fc, 'SipOK', status ) ) then - call stopit( 776, ' ', status ) - end if - -* Put a FITS-WCS header into it. - cards(1) = 'CRPIX1 = 45' - cards(2) = 'CRPIX2 = 45' - cards(3) = 'CRVAL1 = 45' - cards(4) = 'CRVAL2 = 89.9' - cards(5) = 'MYNAME = ' - cards(6) = 'CDELT1 = -0.01' - cards(7) = 'CDELT2 = 0.01' - cards(8) = 'CTYPE1 = ''RA---TAN''' - cards(9) = 'CTYPE2 = ''DEC--TAN''' - do i = 1, 9 - call ast_putfits( fc, cards(i), .false., status ) - end do - - call ast_seti( fc, 'Card', 2, status ) - if( .not. ast_getfitsi( fc, '.', val, status ) ) then - call stopit( 777, ' ', status ) - else if( val .ne. 45 ) then - call stopit( 778, ' ', status ) - endif - - call ast_seti( fc, 'Card', 5, status ) - if( ast_testfits( fc, '.', there, status ) ) then - call stopit( 779, ' ', status ) - else if( .not. there ) then - call stopit( 780, ' ', status ) - endif - - if( .not. ast_testfits( fc, 'CDELT1', there, status ) ) then - call stopit( 781, ' ', status ) - else if( .not. there ) then - call stopit( 782, ' ', status ) - endif - - if( ast_testfits( fc, 'ABCDEF', there, status ) ) then - call stopit( 783, ' ', status ) - else if( there ) then - call stopit( 784, ' ', status ) - endif - - call ast_seti( fc, 'Card', 10, status ) - if( ast_testfits( fc, '.', there, status ) ) then - call stopit( 785, ' ', status ) - else if( there ) then - call stopit( 786, ' ', status ) - endif - - card = ast_getc( fc, 'CardName', status ) - if( card .ne. ' ' ) call stopit( 787, ' ', status ) - -* Annul the fitschan. Only 1 ref so this should delete it. - call ast_annul( fc, status ) - -* Create another FitsChan and tell it to read headers from fred.txt. - fc = ast_fitschan( AST_NULL, AST_NULL, 'SourceFile=./fred.txt', - : status ) - -* Check it looks like the original header. - if( ast_geti( fc, 'NCard', status ) .ne. 9 ) then - write(*,*) ast_geti( fc, 'NCard', status ) - call stopit( 1000, ' ', status ) - endif - - if( ast_geti( fc, 'Nkey', status ) .ne. 9 ) then - write(*,*) ast_geti( fc, 'Nkey', status ) - call stopit( 999, ' ', status ) - endif - - call ast_clear( fc, 'Card', status ) - i = 0 - do while( ast_findfits( fc, '%f', card, .true., status ) ) - i = i + 1 - if( card .ne. cards( i ) ) then - call stopit( 1001, ' ', status ) - endif - end do - -* Annul the fitschan. - call ast_annul( fc, status ) - -* Put a simple FITS-WCS header into a FitsChan. - cards(1) = 'CRPIX1 = 45' - cards(2) = 'CRPIX2 = 45' - cards(3) = 'CRVAL1 = 45' - cards(4) = 'CRVAL2 = 89.9' - cards(5) = 'CDELT1 = -0.01' - cards(6) = 'CDELT2 = 0.01' - cards(7) = 'CTYPE1 = ''RA---TAN''' - cards(8) = 'CTYPE2 = ''DEC--TAN''' - - fc = ast_fitschan( AST_NULL, AST_NULL, 'Iwc=1', status ) - do i = 1, 8 - call ast_putfits( fc, cards(i), .false., status ) - end do - - - call ast_clear( fc, 'Card', status ) - if( ast_geti( fc, 'CardType', status ) .NE. AST__INT ) then - write(*,*) ast_geti( fc, 'CardType', status ),' should be ', - : AST__STRING - call stopit( 993, ' ', status ) - endif - - -* Indicate that the CTYPE1 card should be retained by ast_read. - if( ast_findfits( fc, 'CTYPE1', card, .FALSE., status ) ) then - call ast_retainfits( fc, status ) - endif - -* Read a FrameSet from the FitsChan. - call ast_clear( fc, 'Card', status ) - fs = ast_read( fc, status ) - if( fs .eq. AST__NULL ) then - call stopit( 1, 'No FrameSet read from FitsChan', status ) - end if - -* Check the CTYPE1 card is still present in the FitsChan. - call ast_clear( fc, 'Card', status ) - if( .not. ast_findfits( fc, 'CTYPE1', card, .FALSE., - : status ) ) then - call stopit( 2, 'CTYPE1 has not been retained', status ) - end if - -* Check the CTYPE2 card is not present in the FitsChan. - call ast_clear( fc, 'Card', status ) - if( ast_findfits( fc, 'CTYPE2', card, .FALSE., status ) ) then - call stopit( 3, 'CTYPE2 has been retained', status ) - end if - -* Check the IWC Frame is present and check the reference point -* transforms to the origin of IWC. - if( ast_geti( fs, 'Nframe', status ) .ne. 3 ) then - call stopit( 301, 'Wrong number of Frames', status ) - endif - if( ast_geti( fs, 'Current', status ) .ne. 2 ) then - call stopit( 302, 'Wrong current Frame', status ) - endif - iwcfrm = ast_getframe( fs, 3, status ) - if( ast_getc( iwcfrm, 'Domain', status ) .ne. 'IWC' ) then - call stopit( 303, 'Wrong Domain in IWC Frame', status ) - endif - - map = ast_getmapping( fs, 1, 3, status ) - xin = 45.0D0 - yin = 45.0D0 - call ast_tran2( map, 1, xin, yin, .true., xout, yout, status ) - if( xout .ne. 0.0D0 .or. yout .ne. 0.0D0 ) then - call stopit( 304, 'Wrong IWC for CRPIX position', status ) - endif - - xin = xin + 1.0D0 - call ast_tran2( map, 1, xin, yin, .true., xout, yout, status ) - if( xout .ne. -0.01D0 .or. yout .ne. 0.0D0 ) then - call stopit( 305, 'Wrong IWC for offset CRPIX position', - : status ) - endif - - map = ast_getmapping( fs, 2, 3, status ) - xin = 45.0D0*AST__DD2R - yin = 89.9D0*AST__DD2R - call ast_tran2( map, 1, xin, yin, .true., xout, yout, status ) - if( abs( xout ) .gt. 1.0D-10 .or. abs( yout ) .gt. 1.0D-10 ) then - call stopit( 306, 'Wrong IWC for CRVAL position', status ) - endif - - -* Do it again, this time with an illegal value for CRPIX2. This will -* cause ast_read to report an error. - cards(1) = 'CRPIX1 = 45' - cards(2) = 'CRPIX2 = ''fred''' - cards(3) = 'CRVAL1 = 45' - cards(4) = 'CRVAL2 = 89.9' - cards(5) = 'CDELT1 = -0.01' - cards(6) = 'CDELT2 = 0.01' - cards(7) = 'CTYPE1 = ''RA---TAN''' - cards(8) = 'CTYPE2 = ''DEC--TAN''' - - fc = ast_fitschan( AST_NULL, AST_NULL, ' ', status ) - do i = 1, 8 - call ast_putfits( fc, cards(i), .false., status ) - end do - -* Set the Clean attribute to true so that used cards are removed from the -* FitsChan even if an error occurrs in astRead. -c call ast_setl( fc, 'Clean', .true., status ) - -* Indicate that the CTYPE1 card should be retained by ast_read. - call ast_clear( fc, 'Card', status ) - if( ast_findfits( fc, 'CTYPE1', card, .FALSE., status ) ) then - call ast_retainfits( fc, status ) - endif - -* Abort if an error has occurred. - if( status .ne. sai__ok ) go to 999 - -* Read a FrameSet from the FitsChan, deferring error reporting. Check an -* error is reported by ast_read. - call ast_clear( fc, 'Card', status ) - - call err_begin( status ) - fs = ast_read( fc, status ) - - if( fs .ne. AST__NULL ) then - call stopit( 4, 'A FrameSet has been read from the FitsChan', - : status ) - - else if( status .eq. sai__ok ) then - call stopit( 5, 'No error has been reported by ast_read', - : status ) - - else - call err_annul( status ) - end if - - call err_end( status ) - -* Check the CTYPE1 card is still present in the FitsChan. - call ast_clear( fc, 'Card', status ) - if( .not. ast_findfits( fc, 'CTYPE1', card, .FALSE., - : status ) ) then - call stopit( 6, 'CTYPE1 has not been retained', status ) - end if - -* Check the CTYPE2 card is also still present in the FitsChan (because -* cards are not removed if an error is reported in ast_read unless the -* Clean attribute is set true). - call ast_clear( fc, 'Card', status ) - if( .not. ast_findfits( fc, 'CTYPE2', card, .FALSE., - : status ) ) then - call stopit( 7, 'CTYPE2 has not been retained', status ) - end if - - - - - -* Do it again, again with an illegal value for CRPIX2, but this time -* setting the Clean attribute true. - cards(1) = 'CRPIX1 = 45' - cards(2) = 'CRPIX2 = ''fred''' - cards(3) = 'CRVAL1 = 45' - cards(4) = 'CRVAL2 = 89.9' - cards(5) = 'CDELT1 = -0.01' - cards(6) = 'CDELT2 = 0.01' - cards(7) = 'CTYPE1 = ''RA---TAN''' - cards(8) = 'CTYPE2 = ''DEC--TAN''' - - fc = ast_fitschan( AST_NULL, AST_NULL, 'Clean=1', status ) - do i = 1, 8 - call ast_putfits( fc, cards(i), .false., status ) - end do - -* Indicate that the CTYPE1 card should be retained by ast_read. - call ast_clear( fc, 'Card', status ) - if( ast_findfits( fc, 'CTYPE1', card, .FALSE., status ) ) then - call ast_retainfits( fc, status ) - endif - -* Abort if an error has occurred. - if( status .ne. sai__ok ) go to 999 - -* Read a FrameSet from the FitsChan, deferring error reporting. Check an -* error is reported by ast_read. - call ast_clear( fc, 'Card', status ) - - call err_begin( status ) - fs = ast_read( fc, status ) - - if( fs .ne. AST__NULL ) then - call stopit( 8, 'A FrameSet has been read from the FitsChan', - : status ) - - else if( status .eq. sai__ok ) then - call stopit( 9, 'No error has been reported by ast_read', - : status ) - - else - call err_annul( status ) - end if - - call err_end( status ) - -* Check the CTYPE1 card is still present in the FitsChan (because of the -* call to ast_retainfits). - call ast_clear( fc, 'Card', status ) - if( .not. ast_findfits( fc, 'CTYPE1', card, .FALSE., - : status ) ) then - call stopit( 10, 'CTYPE1 has not been retained', status ) - end if - -* Check the CTYPE2 card is no longer present in the FitsChan (because -* the Clean attribute is set true). - call ast_clear( fc, 'Card', status ) - if( ast_findfits( fc, 'CTYPE2', card, .FALSE., status ) ) then - call stopit( 11, 'CTYPE2 has been retained', status ) - end if - -* Test -TAB - call checktab( status ) - call checktab2( status ) - -* Read a SIP header and then attempt to write it out. It should fail -* because the SIP header is non-linear. - call ast_emptyfits( fc, status ) - call ast_seti( fc, 'SipOK', 0, status ) - call ast_set( fc, 'SourceFile=sip.head', status ) - call ast_clear( fc, 'Card', status ) - fs = ast_read( fc, status ) - call ast_set( fc, 'Encoding=FITS-WCS', status ) - if( fs .eq. AST__NULL ) then - call stopit( 12, 'Failed to read SIP header', status ) - else if( ast_write( fc, fs, status ) .gt. 0 ) then - call stopit( 13, 'Test on SIP header non-linearity failed', - : status ) - end if - - - - - - - - - 999 continue - - call ast_end( status ) - call ast_activememory( 'testfitschan' ) - call ast_flushmemory( 1 ); - - - if( status .eq. sai__ok ) then - write(*,*) 'All FitsChan tests passed' - else - write(*,*) 'FitsChan tests failed' - end if - - end - - - subroutine stopit( errnum, text, status ) - implicit none - include 'SAE_PAR' - character text*(*) - integer errnum, status - - if( status .eq. sai__ok ) then - status = sai__error - call msg_seti( 'N', errnum ) - call msg_setc( 'T', text ) - call err_rep( ' ', 'Error ^N: ^T', status ) - end if - - end - - - subroutine checktab( status ) - implicit none - - external tabsource - - include 'SAE_PAR' - include 'AST_PAR' - include 'AST_ERR' - include 'PRM_PAR' - include 'CNF_PAR' - integer status, sf, mm, fc, fs,gf, tables, table, size, pntr1, - : nelem, pntr2, i, lm, sm, fs2, map, fc2, ncard, fs3 - character key*20,card*80 - double precision lut( 100 ), shift, x(3), y(3), y2(3) - - common /tabsrc/ tables - - if( status .ne. sai__ok ) return - - call err_begin( status ) - call ast_begin( status ) - - sf = ast_specframe( 'system=freq,unit=MHz', status ) - gf = ast_frame( 1, 'domain=GRID', status ) - mm = ast_mathmap( 1, 1, 1, 'y=1/(x*x)', 1, 'x=1/sqrt(y)', ' ', - : status ) - fs = ast_frameset( gf, ' ', status ) - call ast_addframe( fs, AST__BASE, mm, sf, status ) - - fc = ast_fitschan( ast_null, ast_null, 'Encoding=FITS-WCS', - : status ) - call ast_putfits( fc, 'NAXIS = 1', .false., status ) - call ast_putfits( fc, 'NAXIS1 = 100', .false., status ) - - - if( ast_write( fc, fs, status ) .ne. 0 ) then - call stopit( 1000, ' ', status ) - else if( ast_gettables( fc, status ) .ne. AST__NULL ) then - call stopit( 1001, ' ', status ) - endif - - call ast_setl( fc, 'TabOK', .true., status ) - - if( ast_write( fc, fs, status ) .ne. 1 ) - : call stopit( 1002, ' ', status ) - - tables = ast_gettables( fc, status ) - if( tables .eq. AST__NULL ) then - call stopit( 1003, ' ', status ) - else if( .not. ast_isakeymap( tables, status ) ) then - call stopit( 1004, ' ', status ) - else if( ast_mapsize( tables, status ) .ne. 1 ) then - call stopit( 1005, ' ', status ) - endif - - key = ast_mapkey( tables, 1, status ) - if( key .ne. 'WCS-TAB' ) then - call stopit( 1006, ' ', status ) - endif - - if( .not. ast_mapget0a( tables, 'WCS-TAB', table, - : status ) ) then - call stopit( 1007, ' ', status ) - else if( .not. ast_isafitstable( table, status ) ) then - call stopit( 1004, ' ', status ) - endif - - if( ast_geti( table, 'NColumn', status ) .ne. 2 ) then - call stopit( 1005, ' ', status ) - else if( ast_geti( table, 'NRow', status ) .ne. 1 ) then - call stopit( 1006, ' ', status ) - else if( ast_geti( table, 'ColumnLength(coords1)', status ) .ne. - : 197 ) then - call stopit( 1007, ' ', status ) - else if( ast_geti( table, 'ColumnLength(index1)', status ) .ne. - : 197 ) then - call stopit( 1008, ' ', status ) - end if - - size = ast_columnsize( table, 'COORDS1', status ) - if( size .ne. VAL__NBD*197 ) call stopit( 1009, ' ', status ) - call psx_malloc( size, pntr1, status ) - call ast_getcolumndata( table, 'Coords1', 0.0, AST__BAD, size, - : %val( cnf_pval( pntr1 ) ), nelem, - : status ) - if( nelem .ne. 197 ) call stopit( 1010, ' ', status ) - - size = ast_columnsize( table, 'INDEX1', status ) - if( size .ne. VAL__NBD*197 ) call stopit( 1011, ' ', status ) - call psx_malloc( size, pntr2, status ) - call ast_getcolumndata( table, 'inDex1', 0.0, AST__BAD, size, - : %val( cnf_pval( pntr2 ) ), nelem, - : status ) - if( nelem .ne. 197 ) call stopit( 1012, ' ', status ) - - call checkft( 197, %val( cnf_pval( pntr1 ) ), - : %val( cnf_pval( pntr2 ) ), status ) - - call psx_free( pntr1, status ) - call psx_free( pntr2, status ) - -c -------------------------------------------------------------------- - do i = 1, 100 - lut( i ) = 1.0D0/dble(i*i) - end do - - lm = ast_lutmap( 100, lut, -49.0D0, 1.0D0, ' ', status ) - - call ast_set( sf, 'System=Wave,Unit=m', status ) - call ast_removeframe( fs, AST__CURRENT, status ) - call ast_addframe( fs, AST__BASE, lm, sf, status ) - call ast_set( fs, 'System=freq', status ) - - shift = 50.0D0 - sm = ast_shiftmap( 1, shift, ' ', status ) - call ast_remapframe( fs, AST__BASE, sm, status ) - - call ast_removetables( fc, 'WCS-TAB', status ) - call ast_purgewcs( fc, status ) - - if( ast_write( fc, fs, status ) .ne. 1 ) - : call stopit( 1013, ' ', status ) - tables = ast_gettables( fc, status ) - - if( tables .eq. AST__NULL ) then - call stopit( 1014, ' ', status ) - else if( .not. ast_isakeymap( tables, status ) ) then - call stopit( 1015, ' ', status ) - else if( ast_mapsize( tables, status ) .ne. 1 ) then - call stopit( 1016, ' ', status ) - endif - - key = ast_mapkey( tables, 1, status ) - if( key .ne. 'WCS-TAB' ) then - call stopit( 1017, ' ', status ) - endif - - if( .not. ast_mapget0a( tables, 'WCS-TAB', table, - : status ) ) then - call stopit( 1018, ' ', status ) - else if( .not. ast_isafitstable( table, status ) ) then - call stopit( 1019, ' ', status ) - endif - - if( ast_geti( table, 'NColumn', status ) .ne. 1 ) then - call stopit( 1020, ' ', status ) - else if( ast_geti( table, 'NRow', status ) .ne. 1 ) then - call stopit( 1021, ' ', status ) - else if( ast_geti( table, 'ColumnLength(coords1)', status ) .ne. - : 100 ) then - call stopit( 1022, ' ', status ) - end if - - size = ast_columnsize( table, 'COORDS1', status ) - if( size .ne. VAL__NBD*100 ) call stopit( 1024, ' ', status ) - call psx_malloc( size, pntr1, status ) - call ast_getcolumndata( table, 'Coords1', 0.0, AST__BAD, size, - : %val( cnf_pval( pntr1 ) ), nelem, - : status ) - if( nelem .ne. 100 ) call stopit( 1025, ' ', status ) - - call checkft2( 100, %val( cnf_pval( pntr1 ) ), status ) - - call psx_free( pntr1, status ) - -c -------------------------------------------------------------------- - - call ast_removetables( fc, ' ', status ) - fc2 = ast_copy( fc, status ) - call ast_puttables( fc, tables, status ) - call ast_clear( fc, 'Card', status ) - - fs2 = ast_read( fc, status ) - if( fs2 .eq. ast__null ) call stopit( 1028, ' ', status ) - - if( .not. ast_equal( ast_getframe( fs, ast__current, status ), - : ast_getframe( fs2, ast__current, status ), - : status ) ) then - call stopit( 1029, ' ', status ) - endif - - map = ast_cmpmap( ast_getmapping( fs, ast__base, ast__current, - : status ), - : ast_getmapping( fs2, ast__current, ast__base, - : status ), .TRUE., ' ', status ) - - x(1) = 1.0D0; - x(2) = 50.0D0; - x(3) = 100.0D0; - call ast_tran1( map, 3, x, .true., y, status ) - - if( abs( y(1) - x(1) ) .gt. 1.0D-4 .OR. - : abs( y(2) - x(2) ) .gt. 1.0D-4 .OR. - : abs( y(3) - x(3) ) .gt. 1.0D-4 ) then - call stopit( 1030, ' ', status ) - end if - - -c -------------------------------------------------------------------- - if( .not. ast_getl( fc2, 'TabOK', status ) ) then - call stopit( 1031, ' ', status ) - endif - ncard = ast_geti( fc2, 'Ncard', status ) - - call ast_clear( fc2, 'Card', status ) - fs2 = ast_read( fc2, status ) - if( status .ne. AST__NOTAB ) then - if( status .ne. SAI__OK ) call err_flush( status ) - call stopit( 1032, ' ', status ) - else - call err_annul( status ) - end if - - call ast_setl( fc2, 'TabOK', .false., status ) - call ast_clear( fc2, 'Card', status ) - fs2 = ast_read( fc2, status ) - if( status .ne. AST__BDFTS ) then - if( status .ne. SAI__OK ) call err_flush( status ) - call stopit( 1032, ' ', status ) - else - call err_annul( status ) - end if - call ast_setl( fc2, 'TabOK', .true., status ) - - if( ncard .ne. ast_geti( fc2, 'Ncard', status ) ) then - call stopit( 1034, ' ', status ) - endif - - call ast_tablesource( fc2, tabsource, status ) - call ast_clear( fc2, 'Card', status ) - fs2 = ast_read( fc2, status ) - if( fs2 .eq. ast__null ) call stopit( 1035, ' ', status ) - - if( .not. ast_equal( ast_getframe( fs, ast__current, status ), - : ast_getframe( fs2, ast__current, status ), - : status ) ) then - call stopit( 1036, ' ', status ) - endif - - map = ast_cmpmap( ast_getmapping( fs, ast__base, ast__current, - : status ), - : ast_getmapping( fs2, ast__current, ast__base, - : status ), .TRUE., ' ', status ) - - x(1) = 1.0D0; - x(2) = 50.0D0; - x(3) = 100.0D0; - call ast_tran1( map, 3, x, .true., y, status ) - - if( abs( y(1) - x(1) ) .gt. 1.0D-4 .OR. - : abs( y(2) - x(2) ) .gt. 1.0D-4 .OR. - : abs( y(3) - x(3) ) .gt. 1.0D-4 ) then - call stopit( 1037, ' ', status ) - end if - -c -------------------------------------------------------------------- - call readobj( 'sparse.ast', fs, status ) - - fc = ast_fitschan( ast_null, ast_null, - : 'Encoding=FITS-WCS,TabOK=1', status ) - - call ast_putfits( fc, 'NAXIS = 2', .false., status ) - call ast_putfits( fc, 'NAXIS1 = 2000', .false., status ) - call ast_putfits( fc, 'NAXIS2 = 1', .false., status ) - - if( ast_write( fc, fs, status ) .ne. 1 ) then - call stopit( 1038, ' ', status ) - end if - - call ast_clear( fc, 'Card', status ) - fs2 = ast_read( fc, status ) - - call ast_invert( fs, status ) - call ast_invert( fs2, status ) - fs3 = ast_convert( fs, fs2, 'SKY-DSBSPECTRUM', status ) - if( fs3 .eq. AST__NULL ) then - call stopit( 1039, ' ', status ) - endif - - if( ast_getc( ast_getframe( fs, AST__BASE, status ), 'Domain', - : status ) .ne. 'SKY-DSBSPECTRUM' ) then - call stopit( 1040, ' ', status ) - endif - - if( ast_getc( ast_getframe( fs2, AST__BASE, status ), 'Domain', - : status ) .ne. 'SKY-DSBSPECTRUM' ) then - call stopit( 1041, ' ', status ) - endif - - call ast_invert( fs, status ) - call ast_invert( fs2, status ) - - x( 1 ) = 1.0 - x( 2 ) = 1.0 - x( 3 ) = 1.0 - call ast_trann( fs, 1, 3, 1, x, .true., 3, 1, y, status ) - call ast_trann( fs2, 1, 3, 1, x, .true., 3, 1, y2, status ) - - do i = 1, 3 - if( abs( y(i) - y2(i) ) .gt. 1.0E-8 ) then - call stopit( 1042, ' ', status ) - endif - enddo - - x( 1 ) = 10.0 - x( 2 ) = 1.0 - x( 3 ) = 1000.0 - call ast_trann( fs, 1, 3, 1, x, .true., 3, 1, y, status ) - call ast_trann( fs2, 1, 3, 1, x, .true., 3, 1, y2, status ) - - do i = 1, 3 - if( abs( y(i) - y2(i) ) .gt. 1.0E-8 ) then - call stopit( 1042, ' ', status ) - endif - enddo - - -c -------------------------------------------------------------------- - - sf = ast_frame( 1, 'domain=voltage,unit=V', status ) - gf = ast_frame( 1, 'domain=GRID', status ) - mm = ast_mathmap( 1, 1, 1, 'y=1/(x*x)', 1, 'x=1/sqrt(y)', ' ', - : status ) - fs = ast_frameset( gf, ' ', status ) - call ast_addframe( fs, AST__BASE, mm, sf, status ) - - call ast_emptyfits( fc, status ) - call ast_putfits( fc, 'NAXIS = 1', .false., status ) - call ast_putfits( fc, 'NAXIS1 = 100', .false., status ) - - if( ast_write( fc, fs, status ) .ne. 1 ) - : call stopit( 1043, ' ', status ) - - if( ast_getfitss( fc, 'CTYPE1', card, status ) ) then - if( card .ne. 'VOLT-TAB' ) call stopit( 1059, ' ', status ) - else - call stopit( 1060, ' ', status ) - endif - - tables = ast_gettables( fc, status ) - if( tables .eq. AST__NULL ) then - call stopit( 1044, ' ', status ) - else if( .not. ast_isakeymap( tables, status ) ) then - call stopit( 1045, ' ', status ) - else if( ast_mapsize( tables, status ) .ne. 1 ) then - call stopit( 1046, ' ', status ) - endif - - key = ast_mapkey( tables, 1, status ) - if( key .ne. 'WCS-TAB' ) then - call stopit( 1047, ' ', status ) - endif - - if( .not. ast_mapget0a( tables, 'WCS-TAB', table, - : status ) ) then - call stopit( 1048, ' ', status ) - else if( .not. ast_isafitstable( table, status ) ) then - call stopit( 1049, ' ', status ) - endif - - if( ast_geti( table, 'NColumn', status ) .ne. 2 ) then - call stopit( 1050, ' ', status ) - else if( ast_geti( table, 'NRow', status ) .ne. 1 ) then - call stopit( 1051, ' ', status ) - else if( ast_geti( table, 'ColumnLength(coords1)', status ) .ne. - : 197 ) then - call stopit( 1052, ' ', status ) - else if( ast_geti( table, 'ColumnLength(index1)', status ) .ne. - : 197 ) then - call stopit( 1053, ' ', status ) - end if - - size = ast_columnsize( table, 'COORDS1', status ) - - if( size .ne. VAL__NBD*197 ) call stopit( 1054, ' ', status ) - call psx_malloc( size, pntr1, status ) - call ast_getcolumndata( table, 'Coords1', 0.0, AST__BAD, size, - : %val( cnf_pval( pntr1 ) ), nelem, - : status ) - if( nelem .ne. 197 ) call stopit( 1055, ' ', status ) - - size = ast_columnsize( table, 'INDEX1', status ) - if( size .ne. VAL__NBD*197 ) call stopit( 1056, ' ', status ) - call psx_malloc( size, pntr2, status ) - call ast_getcolumndata( table, 'inDex1', 0.0, AST__BAD, size, - : %val( cnf_pval( pntr2 ) ), nelem, - : status ) - if( nelem .ne. 197 ) call stopit( 1057, ' ', status ) - - call checkft( 197, %val( cnf_pval( pntr1 ) ), - : %val( cnf_pval( pntr2 ) ), status ) - - call psx_free( pntr1, status ) - call psx_free( pntr2, status ) - - - call ast_clear( fc, 'Card', status ) - fs2 = ast_read( fc, status ) - if( fs2 .eq. AST__NULL ) - : call stopit( 1058, ' ', status ) - - call ast_invert( fs, status ) - call ast_invert( fs2, status ) - fs3 = ast_convert( fs2, fs, ' ', status ) - if( fs3 .eq. AST__NULL ) then - call stopit( 1061, ' ', status ) - endif - - if( ast_getc( ast_getframe( fs, AST__BASE, status ), 'Domain', - : status ) .ne. 'VOLTAGE' ) then - call stopit( 1062, ' ', status ) - endif - - if( ast_getc( ast_getframe( fs2, AST__BASE, status ), 'Domain', - : status ) .ne. 'VOLTAGE' ) then - call stopit( 1063, ' ', status ) - endif - - x(1) = 1.0 - x(2) = 10.0 - x(3) = 100.0 - call ast_tran1( fs3, 3, x, .true., y, status ) - if( abs( y(1) - x(1) ) .gt. 1.0D-2 .OR. - : abs( y(2) - x(2) ) .gt. 1.0D-2 .OR. - : abs( y(3) - x(3) ) .gt. 1.0D-2 ) then - call stopit( 1064, ' ', status ) - end if - - - - call ast_end( status ) - call err_end( status ) - - end - - - subroutine checkft( nelem, coords, indx, status ) - implicit none - include 'SAE_PAR' - integer nelem, status - double precision coords( nelem ), indx( nelem ) - - if( status .ne. sai__ok ) return - - if( indx( 1 ) .ne. 1.0D0 ) then - call stopit( 2001, ' ', status ) - - else if( coords( 1 ) .ne. 1.0D0 ) then - call stopit( 2002, ' ', status ) - - else if( indx( nelem ) .ne. 1.0D2 ) then - call stopit( 2003, ' ', status ) - - else if( coords( nelem ) .ne. 1.0D-4 ) then - call stopit( 2004, ' ', status ) - - else if( coords( nelem/2 ) .ne. - : indx( nelem/2 )**(-2) ) then - call stopit( 2005, ' ', status ) - end if - - end - - subroutine checkft2( nelem, coords, status ) - implicit none - include 'SAE_PAR' - integer nelem, status - double precision coords( nelem ) - - if( status .ne. sai__ok ) return - - if( abs( coords( 1 ) - 299.792458 ) .gt. 1.0D-5 ) then - call stopit( 3002, ' ', status ) - - else if( abs( coords( nelem ) - 2997924.58 ) .gt. 1.0D-1 ) then - call stopit( 3004, ' ', status ) - - end if - - end - - subroutine tabsource( fc, extnam, extver, extlevel, status ) - implicit none - include 'AST_PAR' - - integer fc, status, tables, table, extver, extlevel - character extnam*(*) - - common /tabsrc/ tables - - if( extnam .ne. 'WCS-TAB' ) then - call stopit( 1035, ' ', status ) - - else if( .not. ast_mapget0a( tables, extnam, table, - : status ) ) then - call stopit( 1036, ' ', status ) - - else if( .not. ast_isafitstable( table, status ) ) then - call stopit( 1037, ' ', status ) - - else if( extver .ne. 1 ) then - write(*,*) 'EXTVER=',extver - call stopit( 1065, ' ', status ) - - else if( extlevel .ne. 1 ) then - call stopit( 1066, ' ', status ) - - else - call ast_puttables( fc, tables, status ) - - endif - - call ast_annul( table, status ) - - end - - - - subroutine readobj( file, iobj, status ) - implicit none - - include 'AST_PAR' - include 'SAE_PAR' - - external chsource - integer iobj, status, ch - character file*(*) - - open( 10, status='old', file=file ) - - ch = ast_channel( chsource, AST_NULL, ' ', status ) - iobj = ast_read( ch, status ) - call ast_annul( ch, status ) - - close( 10 ) - - end - - subroutine chsource( status ) - implicit none - - include 'AST_PAR' - include 'SAE_PAR' - - integer status - character line*200 - - read( 10, '(A)', end=99 ) line - - call ast_putline( line, len( line ), status ) - return - - 99 call ast_putline( line, -1, status ) - - end - - - - - subroutine checktab2( status ) - implicit none - - include 'SAE_PAR' - include 'AST_PAR' - integer status, sf, mmm, mm, fc, fs, fs2, gf - - if( status .ne. sai__ok ) return - - call err_begin( status ) - call ast_begin( status ) - - sf = ast_skyframe( ' ', status ) - call ast_setd( sf, 'SkyRef(1)', 0.0001D0, status ) - call ast_setd( sf, 'SkyRef(2)', 0.0001D0, status ) - - gf = ast_frame( 2, 'domain=GRID', status ) - - mm = ast_mathmap( 1, 1, 1, 'y=(x+50)**(-2)', 1, 'x=-50+1/sqrt(y)', - : ' ', status ) - mmm = ast_cmpmap( mm, mm, .false., ' ', status ) - - fs = ast_frameset( gf, ' ', status ) - call ast_addframe( fs, AST__BASE, mmm, sf, status ) - - fc = ast_fitschan( ast_null, ast_null, 'Encoding=FITS-WCS,'// - : 'TabOK=1', status ) - call ast_putfits( fc, 'NAXIS = 2', .false., status ) - call ast_putfits( fc, 'NAXIS1 = 100', .false., status ) - call ast_putfits( fc, 'NAXIS2 = 100', .false., status ) - - if( ast_write( fc, fs, status ) .ne. 1 ) then - call stopit( 2000, ' ', status ) - endif - - call ast_clear( fc, 'Card', status ) - fs2 = ast_read( fc, status ) - if( fs2 .eq. AST__NULL ) - : call stopit( 2001, ' ', status ) - - if( abs( ast_getd( fs2, 'SkyRef(1)', status ) - 0.0001 ) .gt. - : 1E-7 ) call stopit( 2001, ' ', status ) - if( abs( ast_getd( fs2, 'SkyRef(2)', status ) - 0.0001 ) .gt. - : 1E-7 ) call stopit( 2001, ' ', status ) - - call ast_end( status ) - call err_end( status ) - - end diff --git a/ast/ast_tester/testfitstable.f b/ast/ast_tester/testfitstable.f deleted file mode 100644 index e85f065..0000000 --- a/ast/ast_tester/testfitstable.f +++ /dev/null @@ -1,590 +0,0 @@ - program testfitstable - implicit none - - include 'AST_PAR' - include 'AST_ERR' - include 'SAE_PAR' - include 'CNF_PAR' - - integer status, table, table2, dims( 7 ), header, ival, l, nval, - : icard, colsize, pntr, head, clen, oldnull, null - byte bytes(2,3),bval - logical wasset, hasnull - real rval - character cval*30, text(3)*10, card*70 - character header1(18)*30 - character header2(20)*30 - - data header1 / 'XTENSION= ''BINTABLE''', - : 'BITPIX = 8', - : 'NAXIS = 2', - : 'NAXIS1 = 10', - : 'NAXIS2 = 0', - : 'PCOUNT = 0', - : 'GCOUNT = 1', - : 'TFIELDS = 3', - : 'TFORM1 = ''6B ''', - : 'TTYPE1 = ''BYTECOL ''', - : 'TUNIT1 = ''ADU ''', - : 'TDIM1 = ''(2,3) ''', - : 'TFORM2 = ''1J ''', - : 'TTYPE2 = ''INTCOL ''', - : 'TUNIT2 = ''m ''', - : 'TFORM3 = ''0A ''', - : 'TTYPE3 = ''STRINGCOL''', - : 'TDIM3 = ''(0,3) ''' / - - - data header2 / 'XTENSION= ''BINTABLE''', - : 'BITPIX = 8', - : 'NAXIS = 2', - : 'NAXIS1 = 40', - : 'NAXIS2 = 3', - : 'PCOUNT = 0', - : 'GCOUNT = 1', - : 'TFIELDS = 3', - : 'TFORM1 = ''6B ''', - : 'TTYPE1 = ''BYTECOL ''', - : 'TUNIT1 = ''ADU ''', - : 'TNULL1 = 254', - : 'TDIM1 = ''(2,3) ''', - : 'TFORM2 = ''1J ''', - : 'TTYPE2 = ''INTCOL ''', - : 'TUNIT2 = ''m ''', - : 'TNULL2 = 2147483647', - : 'TFORM3 = ''30A ''', - : 'TTYPE3 = ''STRINGCOL''', - : 'TDIM3 = ''(10,3) ''' / - -c call ast_watchmemory(483) - - status = sai__ok - call err_mark( status ) - call ast_begin( status ) - - table = ast_fitstable( AST__NULL, ' ', status ) - - header = ast_gettableheader( table, status ) - if( ast_geti( header, 'NCard', status ) .ne. 8 ) then - call stopit( status, 'FitsTable error 1' ) - else if( .not. ast_getfitsi( header, 'NAXIS', ival, status )) then - call stopit( status, 'FitsTable error 2' ) - else if( ival .ne. 2 ) then - call stopit( status, 'FitsTable error 3' ) - else if( .not. ast_getfitsi( header, 'NAXIS1', ival, status)) then - call stopit( status, 'FitsTable error 4' ) - else if( ival .ne. 0 ) then - call stopit( status, 'FitsTable error 5' ) - else if( .not. ast_getfitsi( header, 'NAXIS2', ival, status)) then - call stopit( status, 'FitsTable error 6' ) - else if( ival .ne. 0 ) then - call stopit( status, 'FitsTable error 7' ) - endif - call ast_annul( header, status ) - - - call ast_addcolumn( table, 'JUNK', AST__OBJECTTYPE, 0, 0, 'm', - : status ) - if( status .eq. AST__NAXIN ) then - call err_annul( status ) - else if( status .eq. sai__ok ) then - call stopit( status, 'FitsTable error 8' ) - endif - - dims( 1 ) = 2 - dims( 2 ) = 3 - call ast_addcolumn( table, 'BYTECOL', AST__BYTETYPE, 2, dims, - : 'ADU', status ) - - call ast_addcolumn( table, 'INTCOL', AST__INTTYPE, 0, 0, 'm', - : status ) - - dims( 1 ) = 3 - call ast_addcolumn( table, 'STRINGCOL', AST__STRINGTYPE, 1, dims, - : ' ', status ) - - - header = ast_gettableheader( table, status ) - icard = 0 - do while( ast_findfits( header, '%f', card, .true., status ) ) - icard = icard + 1 - if( icard .gt. 18 ) then - call stopit( status, 'FitsTable error 9' ) - else if( card .ne. header1( icard ) ) then - call stopit( status, 'FitsTable error 10' ) - end if - end do - if( icard .ne. 18 ) call stopit( status, 'FitsTable error 11' ) - - - table2 = ast_fitstable( header, ' ', status ) - call ast_annul( header, status ) - - if( ast_geti( table2, 'Ncolumn', status ) .ne. 3 ) then - call stopit( status, 'FitsTable error 11a' ) - end if - - - - if( ast_geti( table2, 'ColumnLength(bytecol)', status ) - : .ne. 6 ) then - call stopit( status, 'FitsTable error 11b' ) - endif - - if( ast_geti( table2, 'ColumnNdim(bytecol)', status ) - : .ne. 2 ) then - call stopit( status, 'FitsTable error 11c' ) - end if - - if( ast_geti( table2, 'ColumnType(bytecol)', status ) - : .ne. AST__BYTETYPE ) then - call stopit( status, 'FitsTable error 11d' ) - end if - - if( ast_getc( table2, 'ColumnUnit(bytecol)', status ) - : .ne. 'ADU' ) then - call stopit( status, 'FitsTable error 11e' ) - end if - - - if( ast_geti( table2, 'ColumnLength(intcol)', status ) - : .ne. 1 ) then - call stopit( status, 'FitsTable error 11f' ) - endif - - if( ast_geti( table2, 'ColumnNdim(intcol)', status ) - : .ne. 0 ) then - call stopit( status, 'FitsTable error 11g' ) - end if - - if( ast_geti( table2, 'ColumnType(intcol)', status ) - : .ne. AST__INTTYPE ) then - call stopit( status, 'FitsTable error 11h' ) - end if - - if( ast_getc( table2, 'ColumnUnit(intcol)', status ) - : .ne. 'm' ) then - call stopit( status, 'FitsTable error 11i' ) - end if - - - if( ast_geti( table2, 'ColumnLength(StringCol)', status ) - : .ne. 3 ) then - call stopit( status, 'FitsTable error 11j' ) - endif - - if( ast_geti( table2, 'ColumnNdim(StringCol)', status ) - : .ne. 1 ) then - call stopit( status, 'FitsTable error 11k' ) - end if - - if( ast_geti( table2, 'ColumnType(StringCol)', status ) - : .ne. AST__STRINGTYPE ) then - call stopit( status, 'FitsTable error 11l' ) - end if - - if( ast_getc( table2, 'ColumnUnit(StringCol)', status ) - : .ne. ' ' ) then - call stopit( status, 'FitsTable error 11m' ) - end if - - - - bytes(1,1) = 0 - bytes(1,2) = 128 - bytes(1,3) = -127 - bytes(2,1) = 1 - bytes(2,2) = 127 - bytes(2,3) = -1 - call ast_mapput1b( table, 'BYTECOL(1)', 6, bytes, ' ', status ) - - bytes(1,1) = 0 - bytes(1,2) = 0 - bytes(1,3) = 0 - bytes(2,1) = 1 - bytes(2,2) = 1 - bytes(2,3) = 1 - call ast_mapput1b( table, 'BYTECOL(2)', 6, bytes, ' ', status ) - - call ast_mapput0i( table, 'INTCOL(2)', 10, ' ', status ) - - call ast_mapput0i( table, 'INTCOL(3)', -10, ' ', status ) - - text( 1 ) = 'hello' - text( 2 ) = ' ' - text( 3 ) = 'goodbye' - call ast_mapput1c( table, 'STRINGCOL(1)', 3, text, ' ', status ) - - text( 1 ) = ' ' - text( 2 ) = ' ' - text( 3 ) = ' ' - call ast_mapput1c( table, 'STRINGCOL(3)', 3, text, ' ', status ) - - if( ast_geti( table, 'Nrow', status ) .ne. 3 ) then - call stopit( status, 'FitsTable error 12' ) - endif - - if( ast_geti( table, 'Ncolumn', status ) .ne. 3 ) then - call stopit( status, 'FitsTable error 13' ) - endif - - head = ast_gettableheader( table, status ) - table2 = ast_fitstable( head, ' ', status ) - call ast_annul( head, status ) - - colsize = ast_columnsize( table, 'stringcol', status ) - if( colsize .ne. 90 ) then - call stopit( status, 'FitsTable error 13a' ) - else - call psx_malloc( colsize, pntr, status ) - call ast_getcolumndata( table, 'StringCol', 0.0, 0.0D0, - : colsize, %val( cnf_pval(pntr)), - : colsize, status ) - if( colsize .ne. 9 ) call stopit( status, - : 'FitsTable error 13b' ) - call checkstrings( table, %val( CNF_PVAL( pntr ) ), status ) - - clen = ast_geti( table, 'ColumnLenC(StringCol)', status ) - if( clen .ne. 10 ) call stopit( status, - : 'FitsTable error 13c' ) - - colsize = 90 - call ast_putcolumndata( table2, 'StringCol', 10, colsize, - : %val( CNF_PVAL( pntr ) ), status ) - call ast_getcolumndata( table2, 'StringCol', 0.0, 0.0D0, - : colsize, %val( cnf_pval(pntr)), - : colsize, status ) - - if( colsize .ne. 9 ) call stopit( status, - : 'FitsTable error 13d' ) - call checkstrings( table2, %val( CNF_PVAL( pntr ) ), status ) - - call psx_free( pntr, status ) - end if - - colsize = ast_columnsize( table, 'bytecol', status ) - if( colsize .ne. 18 ) then - call stopit( status, 'FitsTable error 13e' ) - else - call psx_malloc( colsize, pntr, status ) - call ast_getcolumndata( table, 'BYTECOL', 0.0, 0.0D0, colsize, - : %val( cnf_pval( pntr ) ), colsize, - : status ) - if( colsize .ne. 18 ) call stopit( status, - : 'FitsTable error 13f' ) - - null = ast_columnnull( table, 'BYTECOL', .FALSE., 0, - : wasset, hasnull, status ) - call checkbytes( table, %val( CNF_PVAL( pntr ) ), null, - : status ) - - colsize = 18 - call ast_putcolumndata( table2, 'byteCol', 0, colsize, - : %val( CNF_PVAL( pntr ) ), status ) - oldnull = ast_columnnull( table2, 'BYTECOL', .TRUE., null, - : wasset, hasnull, status ) - call ast_getcolumndata( table2, 'BYTECOL', 0.0, 0.0D0, colsize, - : %val( cnf_pval( pntr ) ), colsize, - : status ) - if( colsize .ne. 18 ) call stopit( status, - : 'FitsTable error 13g' ) - call checkbytes( table2, %val( CNF_PVAL( pntr ) ), null, - : status ) - - call psx_free( pntr, status ) - end if - - colsize = ast_columnsize( table, 'intcol', status ) - if( colsize .ne. 12 ) then - call stopit( status, 'FitsTable error 13h' ) - else - call psx_malloc( colsize, pntr, status ) - call ast_getcolumndata( table, 'INTCOL', 0.0, 0.0D0, colsize, - : %val( cnf_pval( pntr ) ), colsize, - : status ) - if( colsize .ne. 3 ) call stopit( status, - : 'FitsTable error 13i' ) - call checkints( table, %val( CNF_PVAL( pntr ) ), - : ast_columnnull( table, 'INTCOL', .FALSE., 0, - : wasset, hasnull, status ), - : status ) - - colsize = 12 - call ast_putcolumndata( table2, 'INTCol', 0, colsize, - : %val( CNF_PVAL( pntr ) ), status ) - - call ast_getcolumndata( table2, 'INTCOL', 0.0, 0.0D0, colsize, - : %val( cnf_pval( pntr ) ), colsize, - : status ) - if( colsize .ne. 3 ) call stopit( status, - : 'FitsTable error 13j' ) - call checkints( table2, %val( CNF_PVAL( pntr ) ), - : ast_columnnull( table2, 'INTCOL', .FALSE., 0, - : wasset, hasnull, status ), - : status ) - - call psx_free( pntr, status ) - end if - - - call ast_addcolumn( table, 'REALCOL', AST__FLOATTYPE, 0, 0, ' ', - : status ) - call ast_addcolumn( table2, 'REALCOL', AST__FLOATTYPE, 0, 0, ' ', - : status ) - call ast_mapput0r( table, 'REALCOL(1)', -10.0, ' ', status ) - call ast_mapput0r( table, 'REALCOL(3)', 10.0, ' ', status ) - - colsize = ast_columnsize( table, 'realcol', status ) - if( colsize .ne. 12 ) then - call stopit( status, 'FitsTable error 13k' ) - else - call psx_malloc( colsize, pntr, status ) - call ast_getcolumndata( table, 'REALCOL', -1.0, 0.0D0, colsize, - : %val( cnf_pval( pntr ) ), colsize, - : status ) - if( colsize .ne. 3 ) call stopit( status, - : 'FitsTable error 13l' ) - call checkreals( table, %val( CNF_PVAL( pntr ) ), -1.0, - : status ) - - colsize = 12 - call ast_putcolumndata( table2, 'realCol', 0, colsize, - : %val( CNF_PVAL( pntr ) ), status ) - - - call ast_mapremove( table2, 'REALCOL(2)', status ) - call ast_getcolumndata( table2, 'REALCOL', AST__NANR, 0.0D0, - : colsize, - : %val( cnf_pval( pntr ) ), colsize, - : status ) - if( colsize .ne. 3 ) call stopit( status, - : 'FitsTable error 13m' ) - call checkreals( table2, %val( CNF_PVAL( pntr ) ), AST__NANR, - : status ) - - call psx_free( pntr, status ) - end if - - call ast_removecolumn( table, 'REALCOL', status ) - - call ast_mapremove( table, 'BYTECOL(3)', status ) - call ast_mapremove( table, 'INTCOL(3)', status ) - call ast_mapremove( table, 'STRINGCOL(3)', status ) - - if( ast_geti( table, 'Nrow', status ) .ne. 3 ) then - call stopit( status, 'FitsTable error 14' ) - endif - - if( ast_geti( table, 'Ncolumn', status ) .ne. 3 ) then - call stopit( status, 'FitsTable error 15' ) - endif - - - - - header = ast_gettableheader( table, status ) - icard = 0 - do while( ast_findfits( header, '%f', card, .true., status ) ) - icard = icard + 1 - if( icard .gt. 20 ) then - call stopit( status, 'FitsTable error 16' ) - else if( card .ne. header2( icard ) ) then - call stopit( status, 'FitsTable error 17' ) - end if - end do - call ast_annul( header, status ) - if( icard .ne. 20 ) call stopit( status, 'FitsTable error 18' ) - - - - if( ast_columnnull( table, 'BYTECOL', .FALSE., 0, wasset, - : hasnull, status ) .ne. 254 ) then - call stopit( status, 'FitsTable error 19' ) - else if( wasset ) then - call stopit( status, 'FitsTable error 20' ) - else if( .not. hasnull ) then - call stopit( status, 'FitsTable error 21' ) - end if - - - - call ast_purgerows( table, status ) - if( ast_geti( table, 'Nrow', status ) .ne. 2 ) then - call stopit( status, 'FitsTable error 22' ) - endif - - if( ast_geti( table, 'Ncolumn', status ) .ne. 3 ) then - call stopit( status, 'FitsTable error 23' ) - endif - - header = ast_gettableheader( table, status ) - if( ast_getfitsi( header, 'TNULL1', ival, status ) ) then - call stopit( status, 'FitsTable error 24' ) - endif - call ast_annul( header, status ) - - if( ast_columnnull( table, 'BYTECOL', .TRUE., 11, wasset, - : hasnull, status ) .ne. 11 ) then - call stopit( status, 'FitsTable error 25' ) - else if( wasset ) then - call stopit( status, 'FitsTable error 26' ) - else if( hasnull ) then - call stopit( status, 'FitsTable error 27' ) - end if - - if( ast_columnnull( table, 'BYTECOL', .FALSE., 0, wasset, - : hasnull, status ) .ne. 11 ) then - call stopit( status, 'FitsTable error 28' ) - else if( .not. wasset ) then - call stopit( status, 'FitsTable error 29' ) - else if( hasnull ) then - call stopit( status, 'FitsTable error 30' ) - end if - - - table2 = ast_copy( table, status ) - - call ast_end( status ) - call err_rlse( status ) - -c call ast_activememory( 'testfitstable' ) - call ast_flushmemory( 1 ) - - if( status .eq. sai__ok ) then - write(*,*) 'All FitsTable tests passed' - else - write(*,*) 'FitsTable tests failed' - end if - - end - - - - subroutine stopit( status, text ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - if( status .ne. sai__ok ) return - status = sai__error - write(*,*) text - end - - - - subroutine checkbytes( table, vals, null, status ) - implicit none - include 'SAE_PAR' - integer status, table, null, i - byte vals( * ), ans( 12 ), bnull - - data ans / 0, 1, 128, 127, -127, -1, 0, 1, 0, 1, 0, 1 / - - if( status .ne. sai__ok ) return - - do i = 1, 12 - if( vals( i ) .ne. ans( i ) ) then - write(*,*) 'i,vals,ans: ',i,' ',vals(i),' ',ans(i) - call stopit( status, 'FitsTable error checkbytes 1' ) - end if - end do - - bnull = null - do i = 13, 18 - if( vals( i ) .ne. bnull ) then - call stopit( status, 'FitsTable error checkbytes 2' ) - end if - end do - - end - - subroutine checkints( table, vals, null, status ) - implicit none - include 'SAE_PAR' - integer status, table, null - integer vals( * ) - - if( status .ne. sai__ok ) return - - if( vals( 1 ) .ne. null ) then - call stopit( status, 'FitsTable error checkints 1' ) - end if - - if( vals( 2 ) .ne. 10 ) then - call stopit( status, 'FitsTable error checkints 2' ) - end if - - if( vals( 3 ) .ne. -10 ) then - call stopit( status, 'FitsTable error checkints 3' ) - end if - - end - - subroutine checkreals( table, vals, null, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, table - real vals( * ), null - - if( status .ne. sai__ok ) return - - if( vals( 1 ) .ne. -10.0 ) then - call stopit( status, 'FitsTable error checkreals 1' ) - end if - - if( null .ne. AST__NANR ) then - if( vals( 2 ) .ne. null ) then - call stopit( status, 'FitsTable error checkreals 2a' ) - end if - else - if( .not. isnan( vals( 2 ) ) ) then - call stopit( status, 'FitsTable error checkreals 2b' ) - end if - end if - - if( vals( 3 ) .ne. 10.0 ) then - call stopit( status, 'FitsTable error checkreals 3' ) - end if - - end - - subroutine checkstrings( table, vals, status ) - implicit none - include 'SAE_PAR' - integer status, table, i, start, end, j - character ans( 9 )*10 - character vals*( * ) - - data ans / 'hello', ' ', 'goodbye', '', '', '', ' ', ' ', ' ' / - - if( status .ne. sai__ok ) return - - start = 1 - end = 10 - - do i = 1, 9 - - do j = 1, 11 - if( vals( start + j - 1 : start + j - 1 ) .lt. ' ' ) then - vals( start + j - 1 : start + j - 1 ) = ' ' - endif - end do - - if( vals( start : end ) .ne. ans( i ) ) then - write(*,*) 'start,end,i : ',start,' ',end,' ',i - write(*,*) 'vals: ',vals( start : end ) - write(*,*) 'ans: ',ans( i ) - call stopit( status, 'FitsTable error checkstrings 1' ) - end if - - start = start + 10 - end = end + 10 - - end do - - end - - - - diff --git a/ast/ast_tester/testflux.f b/ast/ast_tester/testflux.f deleted file mode 100644 index f24629f..0000000 --- a/ast/ast_tester/testflux.f +++ /dev/null @@ -1,354 +0,0 @@ - program testflux - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - double precision xin, xout - integer status, sf, ff, ff2, mp, fs, sf2 - status = sai__ok - - sf = ast_specframe( 'system=freq,unit=GHz', status ) - ff = ast_Fluxframe( 123.0D0, sf, ' ', status ) - - if( ast_GetD( ff, 'specval', status ) .ne. 123.0D0 ) then - call stopit( status, 'Error 1' ) - end if - - if( ast_Test( ff, 'specval', status ) ) then - call stopit( status, 'Error 2' ) - end if - - call ast_setd( ff, 'specval', 333.3D0, status ) - if( ast_GetD( ff, 'specval', status ) .ne. 333.3D0 ) then - call stopit( status, 'Error 3' ) - end if - - if( .not. ast_Test( ff, 'specval', status ) ) then - call stopit( status, 'Error 4' ) - end if - - call ast_clear( ff, 'specval', status ) - - if( ast_GetD( ff, 'specval', status ) .ne. 123.0D0 ) then - call stopit( status, 'Error 5' ) - end if - - if( ast_Test( ff, 'specval', status ) ) then - call stopit( status, 'Error 6' ) - end if - - - call checkDump( ff, 'CheckDump 1', status ) - - - ff2 = ast_Fluxframe( 123.1D0, sf, ' ', status ) - fs = ast_convert( ff, ff2, ' ', status ) - if( fs .eq. ast__null ) then - call stopit( status, 'error 8' ) - else - mp = ast_getmapping( fs, AST__BASE, AST__CURRENT, status ) - if( .not. ast_isaunitmap( mp, status ) ) then - call stopit( status, 'error 9' ) - end if - end if - - - - - - ff = ast_Fluxframe( 123.0D0, sf, 'unit=W/m^2/Hz', status ) - if( ast_GetC( ff, 'System', status ) .ne. 'FLXDN' ) then - write(*,*) ast_GetC( ff, 'System', status ) - call stopit( status, 'error 10' ) - endif - - ff2 = ast_Fluxframe( 123.0D0, sf, 'unit=W/m^2/GHz', status ) - if( ast_GetC( ff2, 'System', status ) .ne. 'FLXDN' ) then - write(*,*) ast_GetC( ff2, 'System', status ) - call stopit( status, 'error 11' ) - endif - - fs = ast_convert( ff2, ff, ' ', status ) - if( fs .eq. ast__null ) then - call stopit( status, 'error 12' ) - else - mp = ast_getmapping( fs, AST__BASE, AST__CURRENT, status ) - if( .not. ast_isazoommap( mp, status ) ) then - call stopit( status, 'error 13' ) - else if( abs( ast_getd( mp, 'Zoom', status ) - 1.0D-9 ) - : .gt. 1.0E-24 ) then - write(*,*) ast_getd( mp, 'Zoom', status ) - call stopit( status, 'error 14' ) - end if - end if - - - ff = ast_Fluxframe( 123.0D0, sf, 'unit=W/m^2/m', status ) - if( ast_GetC( ff, 'System', status ) .ne. 'FLXDNW' ) then - write(*,*) ast_GetC( ff, 'System', status ) - call stopit( status, 'error 15' ) - endif - - sf2 = ast_specframe( 'system=freq,unit=Hz', status ) - ff2 = ast_Fluxframe( 123.0D9, sf2, 'unit=W/m^2/Angstrom', status ) - if( ast_GetC( ff2, 'System', status ) .ne. 'FLXDNW' ) then - write(*,*) ast_GetC( ff2, 'System', status ) - call stopit( status, 'error 16' ) - endif - - fs = ast_convert( ff2, ff, ' ', status ) - if( fs .eq. ast__null ) then - call stopit( status, 'error 17' ) - else - mp = ast_getmapping( fs, AST__BASE, AST__CURRENT, status ) - if( .not. ast_isazoommap( mp, status ) ) then - call stopit( status, 'error 18' ) - else if( ast_getd( mp, 'Zoom', status ) .ne. 1.0D10 ) then - write(*,*) ast_getd( mp, 'Zoom', status ) - call stopit( status, 'error 19' ) - end if - end if - - - - - ff = ast_Fluxframe( 123.0D0, sf, 'unit=W/m^2/m', status ) - if( ast_GetC( ff, 'System', status ) .ne. 'FLXDNW' ) then - write(*,*) ast_GetC( ff, 'System', status ) - call stopit( status, 'error 20' ) - endif - - sf2 = ast_specframe( 'system=wave,unit=nm', status ) - ff2 = ast_Fluxframe( 2437337.06D0, sf2, 'unit=W/m^2/Angstrom', - : status ) - if( ast_GetC( ff2, 'System', status ) .ne. 'FLXDNW' ) then - write(*,*) ast_GetC( ff2, 'System', status ) - call stopit( status, 'error 21' ) - endif - - fs = ast_convert( ff, ff2, ' ', status ) - if( fs .eq. ast__null ) then - call stopit( status, 'error 22' ) - else - mp = ast_getmapping( fs, AST__BASE, AST__CURRENT, status ) - if( .not. ast_isazoommap( mp, status ) ) then - call stopit( status, 'error 23' ) - else if( ast_getd( mp, 'Zoom', status ) .ne. 1.0D-10 ) then - write(*,*) ast_getd( mp, 'Zoom', status ) - call stopit( status, 'error 24' ) - end if - end if - - - sf = ast_specframe( 'system=freq,unit=GHz', status ) - ff = ast_Fluxframe( 123.0D0, sf, 'unit=W/m^2/Hz', status ) - sf2 = ast_specframe( 'system=wave,unit=nm', status ) - ff2 = ast_Fluxframe( 2437337.06D0, sf2, 'unit=W/m^2/m', - : status ) - fs = ast_convert( ff, ff2, ' ', status ) - if( fs .eq. ast__null ) then - call stopit( status, 'error 25' ) - else - xin = 1.0D-13 - call ast_tran1( fs, 1,xin, 1,xout, status ) - if( abs( xout - 5.04649119D0 ) .gt. 1.0D-6 ) then - call stopit( status, 'error 26' ) - end if - end if - - - sf = ast_specframe( 'system=freq,unit=GHz', status ) - ff = ast_Fluxframe( 123.0D0, sf, 'unit=W/m^2/Hz/arcsec**2', - : status ) - if( ast_getc( ff, 'System', status ) .ne. 'SFCBR' ) - : call stopit( status, 'error 27a' ) - - sf2 = ast_specframe( 'system=wave,unit=nm', status ) - ff2 = ast_Fluxframe( 2437337.06D0, sf2, 'unit=W/m^2/m/deg**2', - : status ) - if( ast_getc( ff2, 'System', status ) .ne. 'SFCBRW' ) - : call stopit( status, 'error 27b' ) - - fs = ast_convert( ff, ff2, ' ', status ) - if( fs .eq. ast__null ) then - call stopit( status, 'error 27' ) - else - xin = 1.0D-13 - call ast_tran1( fs, 1,xin, 1,xout, status ) - if( abs( xout - 65402525.8D0 ) .gt. 1.0 ) then - write(*,*) xout - 65402525.8D0 - call stopit( status, 'error 28' ) - end if - end if - - - ff = ast_Fluxframe( 123.0D0, sf, 'unit=W/m^2/Hz/arcsec**2', - : status ) - ff2 = ast_Fluxframe( 2437337.06D0, sf2, 'unit=W/m^2/m', - : status ) - - fs = ast_convert( ff, ff2, ' ', status ) - if( fs .ne. ast__null ) call stopit( status, 'error 29' ) - - - - - - - - - - - - - - - - if( status .eq. sai__ok ) then - write(*,*) 'All FluxFrame tests passed' - else - write(*,*) 'FluxFrame tests failed' - end if - - end - - subroutine stopit( status, text ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - - if( status .ne. sai__ok ) return - status = sai__error - write(*,*) text - - end - - - subroutine checkdump( obj, text, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - character text*(*) - integer obj, status, next, end, ch, result, ll, overlap - external mysource, mysink - character buf*25000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - - ch = ast_channel( mysource, mysink, ' ', status ) - - - ll = 110 - next = 1 - if( ast_write( ch, obj, status ) .ne.1 ) then - write(*,*) text - call stopit( status, 'Cannot write supplied object to '// - : 'channel' ) - end if - - next = 1 - result = ast_read( ch, status ) - if( result .eq. ast__null ) then - write(*,*) text - call stopit( status, 'Cannot read object from channel' ) - end if - - - - if( ast_getd( obj, 'specval', status ) .ne. - : ast_getd( result, 'specval', status ) ) then - call ast_Show( obj, status ) - call ast_Show( result, status ) - write(*,*) text - call stopit( status, 'Object has changed' ) - end if - - end - - subroutine sink1( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - logical fsfound, done - common /sink1com/ fsfound, done - - integer status, l - character line*200 - - if( status .ne. sai__ok ) return - call ast_getline( line, l, status ) - - if( index( line( : l ),'Unc =' ) .GT. 0 ) then - done = .true. - - else if( .not. done .and. - : index( line( : l ),'FrameSet' ) .GT. 0 ) then - fsfound= .true. - end if - - end - - subroutine mysource( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, ll - character buf*25000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - - if( next .ge. end ) then - call ast_putline( buf, -1, status ) - else - call ast_putline( buf( next : ), ll, status ) - endif - - next = next + ll - - end - - subroutine mysink( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, f, l, ll - character buf*25000 - character line*1000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - - line = ' ' - call ast_getline( line, l, status ) - call chr_fandl( line( : l ), f, l ) - buf( next : ) = line( f : l ) - l = l - f + 1 - - if( next + ll - 1 .ge. 25000 ) then - write(*,*) - call stopit( status, 'Buffer overflow in mysink!!' ) - else if( l .gt. ll ) then - write(*,*) - write(*,*) buf( next : next + l) - write(*,*) 'Line length ',l - call stopit( status, 'Line overflow in mysink!!' ) - else - end = next + l - buf( end : next + ll - 1 ) = ' ' - endif - - next = next + ll - - end - - diff --git a/ast/ast_tester/testframeset.f b/ast/ast_tester/testframeset.f deleted file mode 100644 index 0c9c52e..0000000 --- a/ast/ast_tester/testframeset.f +++ /dev/null @@ -1,391 +0,0 @@ - program testframeset - implicit none - - include 'AST_PAR' - include 'AST_ERR' - include 'SAE_PAR' - - integer status, pfrm, ffrm, p2fmap, fs, p2fmap2, result, orig - double precision ina(2), inb(2), outa(2), outb(2), xout, yout - character text*100 - -c call ast_watchmemory(100) - - - status = sai__ok - call err_mark( status ) - call ast_begin( status ) - - - pfrm = ast_frame( 2, "Domain=PIXEL", status ) - ffrm = ast_frame( 2, "Domain=FPLANE", status ) - - ina( 1 ) = 1.0 - ina( 2 ) = 1.0 - inb( 1 ) = 100.0 - inb( 2 ) = 200.0 - - outa( 1 ) = -2.5 - outa( 2 ) = -1.0 - outb( 1 ) = 2.5 - outb( 2 ) = 1.0 - p2fmap = ast_winmap( 2, ina, inb, outa, outb, ' ', status ) - - fs = ast_frameset( pfrm, ' ', status ) - call ast_addframe( fs, AST__CURRENT, p2fmap, ffrm, status ) - - call ast_setc( fs, 'Base', 'Fplane', status ) - if( ast_geti( fs, 'Base', status ) .ne. 2 ) - : call stopit( status, 'Error -3' ) - - call ast_setc( fs, 'Base', 'pixel', status ) - if( ast_geti( fs, 'Base', status ) .ne. 1 ) - : call stopit( status, 'Error -2' ) - - call ast_setc( fs, 'Current', 'PIXEL', status ) - if( ast_geti( fs, 'Current', status ) .ne. 1 ) - : call stopit( status, 'Error -1' ) - - call ast_setc( fs, 'Current', 'fplane', status ) - if( ast_geti( fs, 'Current', status ) .ne. 2 ) - : call stopit( status, 'Error 0' ) - - text = ast_getc( fs, 'AllVariants', status ) - if( text .ne. 'FPLANE' ) call stopit( status, 'Error 1' ) - - text = ast_getc( fs, 'Variant', status ) - if( text .ne. 'FPLANE' ) call stopit( status, 'Error 2' ) - - if( ast_test( fs, 'Variant', status ) ) call stopit( status, - : 'Error 3' ) - - - call ast_addvariant( FS, ast__null, 'FP1', status ) - - text = ast_getc( fs, 'AllVariants', status ) - if( text .ne. 'FP1' ) call stopit( status, 'Error 4' ) - - text = ast_getc( fs, 'Variant', status ) - if( text .ne. 'FP1' ) call stopit( status, 'Error 5' ) - - if( .not. ast_test( fs, 'Variant', status ) ) call stopit( status, - : 'Error 6' ) - - call ast_clear( fs, 'Variant', status ) - - text = ast_getc( fs, 'AllVariants', status ) - if( text .ne. 'FPLANE' ) call stopit( status, 'Error 7' ) - - text = ast_getc( fs, 'Variant', status ) - if( text .ne. 'FPLANE' ) call stopit( status, 'Error 8' ) - - if( ast_test( fs, 'Variant', status ) ) call stopit( status, - : 'Error 9' ) - - call ast_addvariant( FS, ast__null, 'FP1', status ) - - outa( 1 ) = 100.0 - outa( 2 ) = 100.0 - outb( 1 ) = 200.0 - outb( 2 ) = 200.0 - p2fmap2 = ast_winmap( 2, ina, inb, outa, outb, ' ', status ) - - call ast_invert( p2fmap, status ) - call ast_addvariant( fs, ast_simplify( - : ast_cmpmap( p2fmap, p2fmap2, 1, ' ', - : status ), status ), - : 'FP2', status ) - - text = ast_getc( fs, 'AllVariants', status ) - if( text .ne. 'FP1 FP2' ) call stopit( status, 'Error 10' ) - - text = ast_getc( fs, 'Variant', status ) - if( text .ne. 'FP2' ) call stopit( status, 'Error 11' ) - - if( .not. ast_test( fs, 'Variant', status ) ) call stopit( status, - : 'Error 12' ) - call ast_tran2( fs, 1, 50.5D0, 100.5D0, .TRUE., xout, yout, - : status ) - if( abs( xout - 150.0D0 ) .gt. 1.0E-6 .OR. - : abs( yout - 150.0D0 ) .gt. 1.0E-6 ) call stopit( status, - : 'Error 13' ) - - call ast_setc( fs, 'Variant', 'FP1', status ) - call ast_tran2( fs, 1, 50.5D0, 100.5D0, .TRUE., xout, yout, - : status ) - if( abs( xout - 0.0D0 ) .gt. 1.0E-6 .OR. - : abs( yout - 0.0D0 ) .gt. 1.0E-6 ) call stopit( status, - : 'Error 14' ) - - outa( 1 ) = -100.0 - outa( 2 ) = -100.0 - outb( 1 ) = -200.0 - outb( 2 ) = -200.0 - p2fmap2 = ast_winmap( 2, ina, inb, outa, outb, ' ', status ) - - p2fmap = ast_getmapping( fs, AST__CURRENT, AST__BASE, status ) - call ast_addvariant( fs, ast_simplify( - : ast_cmpmap( p2fmap, p2fmap2, 1, ' ', - : status ), status ), - : 'FP3', status ) - - text = ast_getc( fs, 'AllVariants', status ) - if( text .ne. 'FP1 FP2 FP3' ) call stopit( status, 'Error 15' ) - - text = ast_getc( fs, 'Variant', status ) - if( text .ne. 'FP3' ) call stopit( status, 'Error 16' ) - - if( .not. ast_test( fs, 'Variant', status ) ) call stopit( status, - : 'Error 17' ) - call ast_tran2( fs, 1, 50.5D0, 100.5D0, .TRUE., xout, yout, - : status ) - if( abs( xout + 150.0D0 ) .gt. 1.0E-6 .OR. - : abs( yout + 150.0D0 ) .gt. 1.0E-6 ) call stopit( status, - : 'Error 18' ) - - call ast_setc( fs, 'Variant', 'FP2', status ) - call ast_tran2( fs, 1, 50.5D0, 100.5D0, .TRUE., xout, yout, - : status ) - if( abs( xout - 150.0D0 ) .gt. 1.0E-6 .OR. - : abs( yout - 150.0D0 ) .gt. 1.0E-6 ) call stopit( status, - : 'Error 19' ) - - call checkdump( fs, result, status ) - - text = ast_getc( result, 'AllVariants', status ) - if( text .ne. 'FP1 FP2 FP3' ) call stopit( status, 'Error 20' ) - - text = ast_getc( result, 'Variant', status ) - if( text .ne. 'FP2' ) call stopit( status, 'Error 21' ) - - call ast_tran2( result, 1, 50.5D0, 100.5D0, .TRUE., xout, yout, - : status ) - if( abs( xout - 150.0D0 ) .gt. 1.0E-6 .OR. - : abs( yout - 150.0D0 ) .gt. 1.0E-6 ) call stopit( status, - : 'Error 22' ) - - - - orig = ast_geti( fs, 'Current', status ) - call ast_addframe( fs, AST__CURRENT, AST_UNITMAP( 2, '', status ), - : AST_FRAME( 2, "Domain=DSB", status ), status ) - call ast_tran2( fs, 1, 50.5D0, 100.5D0, .TRUE., xout, yout, - : status ) - if( abs( xout - 150.0D0 ) .gt. 1.0E-6 .OR. - : abs( yout - 150.0D0 ) .gt. 1.0E-6 ) call stopit( status, - : 'Error 23' ) - - if( status .eq. sai__ok ) then - call ast_setc( fs, 'Variant', 'FP1', status ) - if( status .eq. ast__attin ) then - call err_annul( status ) - else - call err_flush( status ) - call stopit( status, 'Error 24' ) - end if - end if - - text = ast_getc( fs, 'AllVariants', status ) - if( text .ne. 'DSB' ) call stopit( status, 'Error 25' ) - - text = ast_getc( fs, 'Variant', status ) - if( text .ne. 'DSB' ) call stopit( status, 'Error 26' ) - - if( ast_test( fs, 'Variant', status ) ) call stopit( status, - : 'Error 27' ) - - call ast_mirrorvariants( fs, orig, status ) - - text = ast_getc( fs, 'AllVariants', status ) - if( text .ne. 'FP1 FP2 FP3' ) call stopit( status, 'Error 28' ) - - text = ast_getc( fs, 'Variant', status ) - if( text .ne. 'FP2' ) call stopit( status, 'Error 29' ) - - if( .not. ast_test( fs, 'Variant', status ) ) call stopit( status, - : 'Error 30' ) - - call ast_tran2( fs, 1, 50.5D0, 100.5D0, .TRUE., xout, yout, - : status ) - if( abs( xout - 150.0D0 ) .gt. 1.0E-6 .OR. - : abs( yout - 150.0D0 ) .gt. 1.0E-6 ) call stopit( status, - : 'Error 31' ) - - call ast_set( fs, 'Variant=FP1', status ) - text = ast_getc( fs, 'Variant', status ) - if( text .ne. 'FP1' ) call stopit( status, 'Error 32' ) - - call ast_tran2( fs, 1, 50.5D0, 100.5D0, .TRUE., xout, yout, - : status ) - if( abs( xout - 0.0D0 ) .gt. 1.0E-6 .OR. - : abs( yout - 0.0D0 ) .gt. 1.0E-6 ) call stopit( status, - : 'Error 33' ) - - call checkdump( fs, result, status ) - - text = ast_getc( result, 'AllVariants', status ) - if( text .ne. 'FP1 FP2 FP3' ) call stopit( status, 'Error 34' ) - - text = ast_getc( result, 'Variant', status ) - if( text .ne. 'FP1' ) call stopit( status, 'Error 35' ) - - call ast_tran2( result, 1, 50.5D0, 100.5D0, .TRUE., xout, yout, - : status ) - if( abs( xout - 0.0D0 ) .gt. 1.0E-6 .OR. - : abs( yout - 0.0D0 ) .gt. 1.0E-6 ) call stopit( status, - : 'Error 36' ) - - result = ast_copy( fs, status ) - - text = ast_getc( result, 'AllVariants', status ) - if( text .ne. 'FP1 FP2 FP3' ) call stopit( status, 'Error 37' ) - - text = ast_getc( result, 'Variant', status ) - if( text .ne. 'FP1' ) call stopit( status, 'Error 38' ) - - call ast_tran2( result, 1, 50.5D0, 100.5D0, .TRUE., xout, yout, - : status ) - if( abs( xout - 0.0D0 ) .gt. 1.0E-6 .OR. - : abs( yout - 0.0D0 ) .gt. 1.0E-6 ) call stopit( status, - : 'Error 39' ) - - call ast_clear( fs, 'Variant', status ) - text = ast_getc( fs, 'Variant', status ) - if( text .ne. 'DSB' ) call stopit( status, 'Error 40' ) - - - - - - - call ast_end( status ) - call err_rlse( status ) - - call ast_activememory( 'testframeset' ) - call ast_flushmemory( 1 ); - - if( status .eq. sai__ok ) then - write(*,*) 'All FrameSet tests passed' - else - write(*,*) 'FrameSet tests failed' - end if - - end - - - - subroutine stopit( status, text ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - - if( status .ne. sai__ok ) return - status = sai__error - write(*,*) text - - end - - subroutine checkdump( obj, result, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - character key*30,txt1*50,txt2*50 - integer obj, status, next, end, ch, result, ll, overlap, size, - : i, type,obj1,obj2,l1,l2,nl,nrow,nrowold - external mysource, mysink - character buf*400000 - - common /ss1/ buf - common /ss2/ next, end, ll, nl - - if( status .ne. sai__ok ) return - - ch = ast_channel( mysource, mysink, ' ', status ) - - nl = 0 - ll = 110 - next = 1 - if( ast_write( ch, obj, status ) .ne.1 ) then - call stopit( status, 'Cannot write supplied object to '// - : 'channel' ) - end if - - next = 1 - nl = 0 - result = ast_read( ch, status ) - - if( result .eq. ast__null ) then - call stopit( status, 'Cannot read object from channel' ) - end if - - if( .not. ast_isaframeset( result, status ) ) then - call stopit( status, 'Object read from channel is not a '// - : 'FrameSet') - end if - - end - - subroutine mysource( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, ll, nl - character buf*400000 - - common /ss1/ buf - common /ss2/ next, end, ll,nl - - if( status .ne. sai__ok ) return - - if( next .ge. end ) then - call ast_putline( buf, -1, status ) - else - -c write(*,*) buf( next : next + ll - 1 ) - call ast_putline( buf( next : ), ll, status ) - nl = nl + 1 - endif - - next = next + ll - - end - - subroutine mysink( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, f, l, ll, nl - character buf*400000 - character line*1000 - - common /ss1/ buf - common /ss2/ next, end, ll, nl - - if( status .ne. sai__ok ) return - - line = ' ' - call ast_getline( line, l, status ) - call chr_fandl( line( : l ), f, l ) - buf( next : ) = line( f : l ) - l = l - f + 1 - - if( next + ll - 1 .ge. 400000 ) then - write(*,*) - call stopit( status, 'Buffer overflow in mysink!!' ) - else if( l .gt. ll ) then - write(*,*) - write(*,*) buf( next : next + l) - write(*,*) 'Line length ',l - call stopit( status, 'Line overflow in mysink!!' ) - else - end = next + l - buf( end : next + ll - 1 ) = ' ' - nl = nl + 1 - endif - - next = next + ll - - end - - diff --git a/ast/ast_tester/testkeymap.f b/ast/ast_tester/testkeymap.f deleted file mode 100644 index fcd5d5c..0000000 --- a/ast/ast_tester/testkeymap.f +++ /dev/null @@ -1,1369 +0,0 @@ - program testkeymap - implicit none - include 'AST_PAR' - include 'AST_ERR' - include 'SAE_PAR' - integer status,map,map2,ival,aval,l,ivec(2),avec(4),nval,i,iat, - : map1, map3, km2 - character cval*20,cvec(3)*10,key*20,cval0*40 - double precision dval, dvec(2) - logical gota, gotc, gotd, goti, gotr, gotw, lval - real rval - integer*2 sval,svec(2) - - status = sai__ok - call err_mark( status ) - call ast_begin( status ) - -c call ast_watchmemory( 29286 ) - - call testcasesens( status ) - call testsorting( status ) - - map = ast_keymap( ' ', status ) - - call ast_MapPut0s( map, 'Freds', 1999, 'com 1', status ) - call ast_MapPut0i( map, 'Fredi', 1999, 'com 1', status ) - call ast_MapPut0d( map, 'Fredd', 1999.9D0, 'com2 ', status ) - call ast_MapPut0r( map, 'Fredr', 1999.9, 'com2 ', status ) - call ast_MapPut0c( map, 'Fredc', 'Hello', ' ', status ) - call ast_MapPut0A( map, 'Freda', ast_skyframe( ' ', status ), - : ' ', status ) - - if( .not. ast_mapdefined( map, 'Freda', status ) ) then - call stopit( status, 'Error -12' ) - end if - - if( ast_maplenc( map, 'Fredi', status ) .ne. 4 ) then - write(*,*) ast_maplenc( map, 'Fredi', status ) - call stopit( status, 'Error -11' ) - end if - - if( ast_maplenc( map, 'Freda', status ) .ne. 0 ) then - write(*,*) ast_maplenc( map, 'Freda', status ) - call stopit( status, 'Error -10' ) - end if - - if( ast_maplenc( map, 'Fredc', status ) .ne. 5 ) then - write(*,*) ast_maplenc( map, 'Fredc', status ) - call stopit( status, 'Error -9' ) - end if - - if( ast_maptype( map, 'freda', status ) .ne. AST__BADTYPE) then - call stopit( status, 'Error -8' ) - end if - - if( ast_maptype( map, 'Freda', status ) .ne. AST__OBJECTTYPE) then - call stopit( status, 'Error -7' ) - end if - - if( ast_maptype( map, 'Fredc', status ) .ne. AST__STRINGTYPE) then - call stopit( status, 'Error -6' ) - end if - - if( ast_maptype( map, 'Fredd', status ) .ne. AST__DOUBLETYPE) then - call stopit( status, 'Error -5' ) - end if - - if( ast_maptype( map, 'Fredr', status ) .ne. AST__FLOATTYPE) then - call stopit( status, 'Error -5b' ) - end if - - if( ast_maptype( map, 'Fredi', status ) .ne. AST__INTTYPE ) then - call stopit( status, 'Error -4' ) - end if - - if( ast_maphaskey( map, 'fredi', status ) ) then - call stopit( status, 'Error -3' ) - end if - - if( .not. ast_maphaskey( map, 'Fredi', status ) ) then - call stopit( status, 'Error -2' ) - end if - - map2 = ast_copy( map, status ) - - - if( ast_mapsize( map2, status ) .ne. 6 ) then - write(*,*) ast_mapsize( map2, status ) - call stopit( status, 'Error 0' ) - end if - - goti = .false. - gotd = .false. - gotr = .false. - gotc = .false. - gota = .false. - gotw = .false. - - do i = 1, ast_mapsize( map2, status ) - key = ast_mapkey( map2, i, status ) - if( .not. goti .and. key .eq. 'Fredi' ) then - goti = .true. - else if( .not. gotd .and. key .eq. 'Fredd' ) then - gotd = .true. - else if( .not. gotw .and. key .eq. 'Freds' ) then - gotw = .true. - else if( .not. gotr .and. key .eq. 'Fredr' ) then - gotr = .true. - else if( .not. gotc .and. key .eq. 'Fredc' ) then - gotc = .true. - else if( .not. gota .and. key .eq. 'Freda' ) then - gota = .true. - else - call stopit( status, 'Error badkey' ) - endif - end do - - if( .not. ( goti .AND. gotd .AND. gotc - : .AND. gota .and. gotr .and. gotw) ) then - call stopit( status, 'Error nokey' ) - endif - - if( ast_maplength( map2, 'Fredi', status ) .ne. 1 ) then - write(*,*) ast_maplength( map2, 'Fredi', status ) - call stopit( status, 'Error -1' ) - end if - - if( .not. ast_mapget0i( map2, 'Fredi', ival, status ) ) then - call stopit( status, 'Error 1' ) - else if( ival .ne. 1999 ) then - write(*,*) ival - call stopit( status, 'Error 2' ) - end if - - if( .not. ast_mapget0s( map2, 'Freds', sval, status ) ) then - call stopit( status, 'Error 1' ) - else if( sval .ne. 1999 ) then - write(*,*) ival - call stopit( status, 'Error 2B' ) - end if - - if( .not. ast_mapget0d( map2, 'Fredd', dval, status ) ) then - call stopit( status, 'Error 3' ) - else if( dval .ne. 1999.9D0 ) then - write(*,*) dval - 1999.9D0 - call stopit( status, 'Error 4' ) - end if - - if( .not. ast_mapget0r( map2, 'Fredr', rval, status ) ) then - call stopit( status, 'Error 3b' ) - else if( rval .ne. 1999.9 ) then - write(*,*) rval - 1999.9 - call stopit( status, 'Error 4b' ) - end if - - if( .not. ast_mapget0c( map2, 'Fredc', cval, l, status ) ) then - call stopit( status, 'Error 5' ) - else if( l .ne. 5 ) then - write(*,*) l - call stopit( status, 'Error 6' ) - else if( cval( :l ) .ne. 'Hello' ) then - write(*,*) cval( :l ) - call stopit( status, 'Error 7' ) - end if - - if( .not. ast_mapgetc( map2, 'Fredc', cval, l, status ) ) then - call stopit( status, 'Error 5b' ) - else if( l .ne. 5 ) then - write(*,*) l - call stopit( status, 'Error 6b' ) - else if( cval( :l ) .ne. 'Hello' ) then - write(*,*) cval( :l ) - call stopit( status, 'Error 7b' ) - end if - - if( .not. ast_mapget0a( map2, 'Freda', aval, status ) ) then - call stopit( status, 'Error 8' ) - else if( .not. ast_IsASkyFrame( aval, STATUS ) ) then - call stopit( status, 'Error 9' ) - end if - - if( .not. ast_mapget0d( map2, 'Fredi', dval, status ) ) then - call stopit( status, 'Error 10' ) - else if( dval .ne. 1999 ) then - write(*,*) dval - call stopit( status, 'Error 11' ) - end if - - if( .not. ast_mapget0r( map2, 'Fredi', rval, status ) ) then - call stopit( status, 'Error 10b' ) - else if( rval .ne. 1999 ) then - call stopit( status, 'Error 11b' ) - end if - - if( .not. ast_mapget0c( map2, 'Fredi', cval, l, status ) ) then - call stopit( status, 'Error 12' ) - else if( l .ne. 4 ) then - write(*,*) l - call stopit( status, 'Error 13a' ) - else if( cval( :l ) .ne. '1999' ) then - write(*,*) cval - call stopit( status, 'Error 13' ) - end if - - if( .not. ast_mapget0i( map2, 'Fredd', ival, status ) ) then - call stopit( status, 'Error 14' ) - else if( ival .ne. 2000.0 ) then - write(*,*) ival - call stopit( status, 'Error 15' ) - end if - - if( .not. ast_mapget0s( map2, 'Fredd', sval, status ) ) then - call stopit( status, 'Error 14b' ) - else if( sval .ne. 2000.0 ) then - write(*,*) sval - call stopit( status, 'Error 15b' ) - end if - - if( .not. ast_mapget0c( map2, 'Fredd', cval, l, status ) ) then - call stopit( status, 'Error 16' ) - else if( l .ne. 6 ) then - write(*,*) l - call stopit( status, 'Error 17a' ) - else if( cval( :l ) .ne. '1999.9' ) then - write(*,*) cval - call stopit( status, 'Error 17' ) - end if - - - ivec(1) = -10 - ivec(2) = -10 - if( .not. ast_mapget1i( map2, 'Fredi', 2, nval, ivec, - : status ) ) then - call stopit( status, 'Error 18' ) - else if( nval .ne. 1 ) then - write(*,*) nval - call stopit( status, 'Error 19' ) - else if( ivec( 1 ) .ne. 1999 ) then - write(*,*) ivec( 1 ) - call stopit( status, 'Error 20' ) - else if( ivec( 2 ) .ne. -10 ) then - write(*,*) ivec( 2 ) - call stopit( status, 'Error 21' ) - end if - - - dvec(1) = -10.0D0 - dvec(2) = -10.0D0 - if( .not. ast_mapget1d( map2, 'Fredd', 2, nval, dvec, - : status ) ) then - call stopit( status, 'Error 22' ) - else if( nval .ne. 1 ) then - write(*,*) nval - call stopit( status, 'Error 23' ) - else if( dvec( 1 ) .ne. 1999.9D0 ) then - write(*,*) dvec( 1 ) - call stopit( status, 'Error 24' ) - else if( dvec( 2 ) .ne. -10.0D0 ) then - write(*,*) dvec( 2 ) - call stopit( status, 'Error 25' ) - end if - - avec(1) = AST__NULL - avec(2) = AST__NULL - if( .not. ast_mapget1a( map2, 'Freda', 2, nval, avec, - : status ) ) then - call stopit( status, 'Error 26' ) - else if( nval .ne. 1 ) then - write(*,*) nval - call stopit( status, 'Error 27' ) - else if( .not. ast_IsASkyFrame( avec( 1 ), STATUS ) ) then - write(*,*) ast_getc( avec( 1 ), 'class', status ) - call stopit( status, 'Error 28' ) - else if( avec( 2 ) .ne. AST__NULL ) then - write(*,*) ast_getc( avec( 2 ), 'class', status ) - call stopit( status, 'Error 29' ) - end if - - - ivec(1)=1999 - ivec(2)=0 - call ast_mapput1i( map, 'Fredi', 2, ivec, 'com 1', STATUS ) - - if( ast_maplength( map, 'Fredi', status ) .ne. 2 ) then - write(*,*) ast_maplength( map, 'Fredi', status ) - call stopit( status, 'Error 29b' ) - - end if - - svec(1)=1999 - svec(2)=0 - call ast_mapput1s( map, 'Freds', 2, svec, 'com 1', STATUS ) - - if( ast_maplength( map, 'Freds', status ) .ne. 2 ) then - write(*,*) ast_maplength( map, 'Freds', status ) - call stopit( status, 'Error 29c' ) - - end if - - dvec(1)=1999.9D0 - dvec(2)=-0.01D0 - call ast_mapput1d( map, 'Fredd', 2, dvec, 'com2', STATUS ) - - cvec(1)='Hello' - cvec(2)=' ' - cvec(3)=' Hello' - call ast_mapput1c( map, 'Fredc', 3, cvec, ' ', STATUS ) - - if( ast_maplenc( map, 'Fredc', status ) .ne. len(cvec(3)) ) then - write(*,*) ast_maplenc( map, 'Fredc', status ) - call stopit( status, 'Error 29c' ) - end if - - avec(1) = ast_skyframe( ' ', status ) - avec(2) = AST__NULL - avec(3) = ast_specframe( ' ', status ) - avec(4) = AST__NULL - call ast_mapput1a( map, 'Freda', 4, avec, ' ', STATUS ) - - map2 = ast_copy( map, status ) - - if( .not. ast_mapget0i( map2, 'Fredi', ival, status ) ) then - call stopit( status, 'Error A1' ) - else if( ival .ne. 1999 ) then - write(*,*) ival - call stopit( status, 'Error A2' ) - end if - - if( .not. ast_mapget0d( map2, 'Fredd', dval, status ) ) then - call stopit( status, 'Error A3' ) - else if( dval .ne. 1999.9D0 ) then - write(*,*) dval - 1999.9D0 - call stopit( status, 'Error A4' ) - end if - - if( .not. ast_mapget0c( map2, 'Fredc', cval, l, status ) ) then - call stopit( status, 'Error A5' ) - else if( l .ne. 10 ) then - write(*,*) l - call stopit( status, 'Error A6' ) - else if( cval( :l ) .ne. 'Hello ' ) then - write(*,*) cval( :l ) - call stopit( status, 'Error A7' ) - end if - - if( .not. ast_mapget0a( map2, 'Freda', aval, status ) ) then - call stopit( status, 'Error A8' ) - else if( .not. ast_IsASkyFrame( aval, STATUS ) ) then - call stopit( status, 'Error A9' ) - end if - - if( .not. ast_mapget0d( map2, 'Fredi', dval, status ) ) then - call stopit( status, 'Error A10' ) - else if( dval .ne. 1999 ) then - write(*,*) dval - call stopit( status, 'Error A11' ) - end if - - if( .not. ast_mapget0c( map2, 'Fredi', cval, l, status ) ) then - call stopit( status, 'Error A12' ) - else if( l .ne. 4 ) then - write(*,*) l - call stopit( status, 'Error A13a' ) - else if( cval( :l ) .ne. '1999' ) then - write(*,*) cval - call stopit( status, 'Error A13' ) - end if - - if( .not. ast_mapget0i( map2, 'Fredd', ival, status ) ) then - call stopit( status, 'Error A14' ) - else if( ival .ne. 2000.0 ) then - write(*,*) ival - call stopit( status, 'Error A15' ) - end if - - if( .not. ast_mapget0c( map2, 'Fredd', cval, l, status ) ) then - call stopit( status, 'Error A16' ) - else if( l .ne. 6 ) then - write(*,*) l - call stopit( status, 'Error A17a' ) - else if( cval( :l ) .ne. '1999.9' ) then - write(*,*) cval - call stopit( status, 'Error A17' ) - end if - - -c Read vector entries as vectors. - if( .not. ast_mapget1i( map2, 'Fredi', 2, nval, ivec, - : status ) ) then - call stopit( status, 'Error B1' ) - else if( nval .ne. 2 ) then - write(*,*) nval - call stopit( status, 'Error B2a' ) - else if( ivec( 1 ) .ne. 1999 ) then - write(*,*) ivec( 1 ) - call stopit( status, 'Error B2b' ) - else if( ivec( 2 ) .ne. 0 ) then - write(*,*) ivec( 2 ) - call stopit( status, 'Error B2c' ) - end if - - if( .not. ast_mapget1d( map2, 'Fredd', 2, nval, dvec, - : status ) ) then - call stopit( status, 'Error B3' ) - else if( nval .ne. 2 ) then - write(*,*) nval - call stopit( status, 'Error B4a' ) - else if( dvec( 1 ) .ne. 1999.9D0 ) then - write(*,*) dvec( 1 ) - call stopit( status, 'Error B4b' ) - else if( dvec( 2 ) .ne. -0.01D0 ) then - write(*,*) dvec( 2 ) - call stopit( status, 'Error B4c' ) - end if - - if( .not. ast_mapget1a( map2, 'Freda', 4, nval, avec, - : status ) ) then - call stopit( status, 'Error B5' ) - else if( nval .ne. 4 ) then - write(*,*) nval - call stopit( status, 'Error B6a' ) - else if( .not. ast_isaskyframe( avec( 1 ), status ) ) then - write(*,*) ast_getc( avec( 1 ), 'class', status ) - call stopit( status, 'Error B6b' ) - else if( avec( 2 ) .NE. AST__NULL ) then - write(*,*) ast_getc( avec( 2 ), 'class', status ) - call stopit( status, 'Error B6c' ) - else if( .not. ast_isaspecframe( avec( 3 ), status ) ) then - write(*,*) ast_getc( avec( 3 ), 'class', status ) - call stopit( status, 'Error B6d' ) - else if( avec( 4 ) .ne. AST__NULL ) then - write(*,*) ast_getc( avec( 4 ), 'class', status ) - call stopit( status, 'Error B6e' ) - end if - - - if( .not. ast_mapget1c( map2, 'Fredc', 3, nval, cvec, - : status ) ) then - call stopit( status, 'Error B7' ) - else if( nval .ne. 3 ) then - write(*,*) nval - call stopit( status, 'Error B8a' ) - else if( cvec( 1 ) .ne. 'Hello ' ) then - write(*,*) cvec( 1 ) - call stopit( status, 'Error B8b' ) - else if( cvec( 2 ) .ne. ' ' ) then - write(*,*) cvec( 2 ) - call stopit( status, 'Error B8c' ) - else if( cvec( 3 ) .ne. ' Hello ' ) then - write(*,*) cvec( 2 ) - call stopit( status, 'Error B8d' ) - end if - -c Read entire vector as a single string. - if( .not. ast_mapgetc( map2, 'Fredc', cval0, l, status ) ) then - call stopit( status, 'Error BB1' ) - else if( l .ne. 34 ) then - call stopit( status, 'Error BB2' ) - else if( cval0 .ne. '(Hello , , Hello )' ) then - call stopit( status, 'Error BB3' ) - end if - -c Read single elements of vector entries as scalars. - if( .not. ast_mapgetelemi( map2, 'Fredi', 1, ivec, - : status ) ) then - call stopit( status, 'Error B1z' ) - else if( ivec( 1 ) .ne. 1999 ) then - write(*,*) ivec( 1 ) - call stopit( status, 'Error B2bz' ) - end if - - if( .not. ast_mapgetelemd( map2, 'Fredd', 2, dvec, - : status ) ) then - call stopit( status, 'Error B3z' ) - else if( dvec( 1 ) .ne. -0.01D0 ) then - write(*,*) dvec( 1 ) - call stopit( status, 'Error B4cz' ) - end if - - if( .not. ast_mapgetelema( map2, 'Freda', 3, avec, - : status ) ) then - call stopit( status, 'Error B5z' ) - else if( .not. ast_isaspecframe( avec( 1 ), status ) ) then - write(*,*) ast_getc( avec( 1 ), 'class', status ) - call stopit( status, 'Error B6dz' ) - end if - - - if( .not. ast_mapgetelemc( map2, 'Fredc', 3, cval0, - : status ) ) then - call stopit( status, 'Error B7z' ) - else if( cval0 .ne. ' Hello ' ) then - write(*,*) cval0 - call stopit( status, 'Error B8dz' ) - end if - - - call ast_mapremove( map2, 'Bert', status ) - call ast_mapremove( map2, 'Fredc', status ) - if( ast_mapget1c( map2, 'Fredc', 3, nval, cvec, status ) ) then - call stopit( status, 'Error C1' ) - endif - - - call checkDump( map2, 'checkDump 1 ', status ) - - call ast_Annul( map, status ) - call ast_Annul( map2, status ) - - - map = ast_keymap( ' ', status ) - - do i = 1, 500 - key = 'Fred' - iat = 4 - call chr_puti( i, key, iat ) - call ast_MapPut0i( map, key, i, ' ', status ) - end do - - if( ast_mapsize( map, status ) .ne. 500 ) then - call stopit( status, 'Error d1 ' ) - end if - - if( ast_maptype( map, 'Fred123', status ) .ne. AST__INTTYPE ) then - call stopit( status, 'Error d2 ' ) - end if - - if( .not. ast_mapget0c( map, 'Fred489', cval, l, status ) ) then - call stopit( status, 'Error d2 ' ) - else if( cval( : l ) .ne. '489' ) then - call stopit( status, 'Error d3 ' ) - end if - - call checkDump( map, 'checkDump 2 ', status ) - - - -c Test putting single elements into vector entries. - map = ast_keymap( ' ', status ) - - ivec(1) = 1 - ivec(2) = 2 - call ast_mapput1i( map, 'Fredi', 2, ivec, 'com 1', STATUS ) - - call ast_mapputelemi( map, 'Fredi', 1, -1, STATUS ) - if( .not. ast_mapgetelemi( map, 'Fredi', 1, ival, - : status ) ) then - call stopit( status, 'Error GETELEM_1' ) - else if( ival .ne. -1 ) then - write(*,*) ival - call stopit( status, 'Error GETELEM_2' ) - end if - - call ast_mapputelemi( map, 'Fredi', 10, -2, STATUS ) - if( .not. ast_mapgetelemi( map, 'Fredi', 3, ival, - : status ) ) then - call stopit( status, 'Error GETELEM_3' ) - else if( ival .ne. -2 ) then - write(*,*) ival - call stopit( status, 'Error GETELEM_4' ) - end if - - call ast_mapputelemi( map, 'Fredi', 0, -3, STATUS ) - if( .not. ast_mapgetelemi( map, 'Fredi', 4, ival, - : status ) ) then - call stopit( status, 'Error GETELEM_5' ) - else if( ival .ne. -3 ) then - write(*,*) ival - call stopit( status, 'Error GETELEM_6' ) - end if - - if( ast_maplength( map, 'Fredi', status ) .ne. 4 ) then - write(*,*) ast_maplength( map, 'Fredi', status ) - call stopit( status, 'Error GETELEM_7' ) - end if - - map2 = ast_keymap( ' ', status ) - call ast_mapputelema( map2, 'A A', 1, map, STATUS ) - if( ast_maplength( map2, 'A A', status ) .ne. 1 ) then - write(*,*) ast_maplength( map, 'Fredi', status ) - call stopit( status, 'Error GETELEM_8' ) - end if - - if( .not. ast_mapgetelema( map2, 'A A', 1, map3, - : status ) ) then - call stopit( status, 'Error GETELEM_9' ) - else if( .not. ast_mapgetelemi( map3, 'Fredi', 4, ival, - : status ) ) then - call stopit( status, 'Error GETELEM_10' ) - else if( ival .ne. -3 ) then - write(*,*) ival - call stopit( status, 'Error GETELEM_11' ) - end if - - if( status .eq. sai__ok ) then - call ast_mapputelema( map2, 'A A', 1, map2, STATUS ) - if( status .eq. ast__kycir ) then - call err_annul( status ) - else - call stopit( status, 'Error GETELEM_12' ) - end if - end if - - call ast_mapput0c( map, ' B', 'Hello', ' ', status ) - - - call ast_setl( map, 'MapLocked', .TRUE., status ) - if( status .eq. sai__ok ) then - call ast_mapput0c( map, ' BZZ', 'Bye Bye', ' ', STATUS ) - if( status .eq. AST__BADKEY ) then - call err_annul( status ) - call ast_clear( map, 'maplocked', status ) - else - call stopit( status, 'Error GETELEM_12B' ) - end if - end if - - call ast_mapput0c( map, ' BZZ', 'Bye Bye', ' ', STATUS ) - km2 = ast_keymap( ' ', status ) - call ast_mapput0a( map, ' BZY', km2, ' ', STATUS ) - call ast_mapput0c( km2, ' BZZ', 'Bye Bye', ' ', STATUS ) - - call ast_setl( map, 'MapLocked', .TRUE., status ) - call ast_mapput0c( map, ' BZZ', 'You Bye', ' ', STATUS ) - call ast_mapput0c( km2, ' BZZ', 'You Bye', ' ', STATUS ) - if( status .eq. sai__ok ) then - call ast_mapput0c( km2, ' BZA', 'No Bye', ' ', STATUS ) - if( status .eq. AST__BADKEY ) then - call err_annul( status ) - call ast_clear( map, 'maplocked', status ) - call ast_mapput0c( km2, ' BZA', 'No Bye', ' ', STATUS ) - else - call stopit( status, 'Error GETELEM_12C' ) - end if - end if - - if( ast_getl( km2, 'KeyError', status ) ) then - call stopit( status, 'Error GETELEM_12D' ) - end if - - call ast_setl( map, 'KeyError', .TRUE., status ) - - if( .not. ast_getl( km2, 'KeyError', status ) ) then - call stopit( status, 'Error GETELEM_12E' ) - end if - - if( status .eq. sai__ok ) then - lval = ast_mapget0c( km2, 'FRED', cval, l, status ) - if( status .eq. AST__MPKER ) then - call err_annul( status ) - call ast_clear( map, 'keyerror', status ) - lval = ast_mapget0c( km2, 'FRED', cval, l, status ) - else - call stopit( status, 'Error GETELEM_12F' ) - end if - endif - - - - - - - - - call ast_mapputelemc( map, ' B ', 3, 'YES YES', STATUS ) - - if( ast_maplength( map, ' B', status ) .ne. 2 ) then - write(*,*) ast_maplength( map, ' B', status ) - call stopit( status, 'Error GETELEM_13' ) - - else if( .not. ast_mapgetelemc( map, ' B ', 2, cval0, - : status ) ) then - call stopit( status, 'Error GETELEM_14' ) - - else if( cval0 .ne. 'YES YES' ) then - write(*,*) cval0 - call stopit( status, 'Error GETELEM_15' ) - end if - - call ast_annul( map, status ) - - -C Test ast_mapcopy - map = ast_keymap( ' ', status ) - map1 = ast_keymap( ' ', status ) - map2 = ast_keymap( ' ', status ) - map3 = ast_keymap( ' ', status ) - - call ast_mapput0i( map1, 'a1', 1, ' ', status ) - call ast_mapput0i( map1, 'a2', 2, ' ', status ) - call ast_mapput0i( map1, 'a3', 3, ' ', status ) - - call ast_mapput0c( map, 'aa1', 'Yes', ' ', status ) - call ast_mapput0i( map, 'aa2', 2, ' ', status ) - call ast_mapput0a( map, 'aa3', map1, ' ', status ) - - call ast_mapput0i( map2, 'b1', 10, ' ', status ) - call ast_mapput0i( map2, 'b2', 20, ' ', status ) - call ast_mapput0i( map2, 'b3', 30, ' ', status ) - - call ast_mapput0c( map3, 'bb1', 'No', ' ', status ) - call ast_mapput0i( map3, 'aa2', 20, ' ', status ) - call ast_mapput0a( map3, 'bb3', map2, ' ', status ) - - call ast_mapcopy( map, map3, status ) - - if( ast_mapsize( map, status ) .ne. 5 ) then - write(*,*) ast_mapsize( map, status ) - call stopit( status, 'Error MAPCOPY_0' ) - end if - - if( .not. ast_mapget0c( map, 'aa1', cval, l, status ) ) then - call stopit( status, 'Error MAPCOPY_1' ) - else if( cval .ne. 'Yes' ) then - write(*,*) cval - call stopit( status, 'Error MAPCOPY_2' ) - end if - - if( .not. ast_mapget0i( map, 'aa2', ival, status ) ) then - call stopit( status, 'Error MAPCOPY_3' ) - else if( ival .ne. 20 ) then - write(*,*) ival - call stopit( status, 'Error MAPCOPY_4' ) - end if - - if( .not. ast_mapget0a( map, 'aa3', aval, status ) ) then - call stopit( status, 'Error MAPCOPY_5' ) - else if( .not. ast_isakeymap( aval, status ) ) then - write(*,*) ast_getc( aval, 'Class' ) - call stopit( status, 'Error MAPCOPY_6' ) - - if( .not. ast_mapget0i( aval, 'a1', ival, status ) ) then - call stopit( status, 'Error MAPCOPY_7' ) - else if( ival .ne. 1 ) then - write(*,*) ival - call stopit( status, 'Error MAPCOPY_8' ) - end if - - if( .not. ast_mapget0i( aval, 'a2', ival, status ) ) then - call stopit( status, 'Error MAPCOPY_9' ) - else if( ival .ne. 20 ) then - write(*,*) ival - call stopit( status, 'Error MAPCOPY_10' ) - end if - - if( .not. ast_mapget0i( aval, 'a3', ival, status ) ) then - call stopit( status, 'Error MAPCOPY_11' ) - else if( ival .ne. 3 ) then - write(*,*) ival - call stopit( status, 'Error MAPCOPY_12' ) - end if - end if - - if( .not. ast_mapget0c( map, 'bb1', cval, l, status ) ) then - call stopit( status, 'Error MAPCOPY_13' ) - else if( cval .ne. 'No' ) then - write(*,*) cval - call stopit( status, 'Error MAPCOPY_14' ) - end if - - if( .not. ast_mapget0a( map, 'bb3', aval, status ) ) then - call stopit( status, 'Error MAPCOPY_15' ) - else if( .not. ast_isakeymap( aval, status ) ) then - write(*,*) ast_getc( aval, 'Class' ) - call stopit( status, 'Error MAPCOPY_16' ) - - if( .not. ast_mapget0i( aval, 'b1', ival, status ) ) then - call stopit( status, 'Error MAPCOPY_17' ) - else if( ival .ne. 10 ) then - write(*,*) ival - call stopit( status, 'Error MAPCOPY_18' ) - end if - - if( .not. ast_mapget0i( aval, 'b2', ival, status ) ) then - call stopit( status, 'Error MAPCOPY_19' ) - else if( ival .ne. 20 ) then - write(*,*) ival - call stopit( status, 'Error MAPCOPY_20' ) - end if - - if( .not. ast_mapget0i( aval, 'b3', ival, status ) ) then - call stopit( status, 'Error MAPCOPY_21' ) - else if( ival .ne. 30 ) then - write(*,*) ival - call stopit( status, 'Error MAPCOPY_22' ) - end if - end if - - - map = ast_keymap( ' ', status ) - map1 = ast_keymap( ' ', status ) - map2 = ast_keymap( ' ', status ) - map3 = ast_keymap( ' ', status ) - - call ast_mapput0i( map1, 'a1', 1, ' ', status ) - call ast_mapput0i( map1, 'a2', 2, ' ', status ) - call ast_mapput0i( map1, 'a3', 3, ' ', status ) - - call ast_mapput0c( map, 'aa1', 'Yes', ' ', status ) - call ast_mapput0i( map, 'aa2', 2, ' ', status ) - call ast_mapput0a( map, 'aa3', map1, ' ', status ) - - call ast_mapput0i( map2, 'b1', 10, ' ', status ) - call ast_mapput0i( map2, 'b2', 20, ' ', status ) - call ast_mapput0i( map2, 'b3', 30, ' ', status ) - - call ast_mapput0i( map3, 'aa1', 0, ' ', status ) - call ast_mapput0i( map3, 'aa2', 20, ' ', status ) - call ast_mapput0a( map3, 'aa3', map2, ' ', status ) - - call ast_mapcopy( map, map3, status ) - - if( ast_mapsize( map, status ) .ne. 3 ) then - write(*,*) ast_mapsize( map, status ) - call stopit( status, 'Error MAPCOPY_23' ) - end if - - if( .not. ast_mapget0i( map, 'aa1', ival, status ) ) then - call stopit( status, 'Error MAPCOPY_24' ) - else if( ival .ne. 0 ) then - write(*,*) ival - call stopit( status, 'Error MAPCOPY_25' ) - end if - - if( .not. ast_mapget0i( map, 'aa2', ival, status ) ) then - call stopit( status, 'Error MAPCOPY_26' ) - else if( ival .ne. 20 ) then - write(*,*) ival - call stopit( status, 'Error MAPCOPY_27' ) - end if - - if( .not. ast_mapget0a( map, 'aa3', aval, status ) ) then - call stopit( status, 'Error MAPCOPY_28' ) - else if( .not. ast_isakeymap( aval, status ) ) then - write(*,*) ast_getc( aval, 'Class' ) - call stopit( status, 'Error MAPCOPY_29' ) - - if( .not. ast_mapget0i( aval, 'a1', ival, status ) ) then - call stopit( status, 'Error MAPCOPY_30' ) - else if( ival .ne. 1 ) then - write(*,*) ival - call stopit( status, 'Error MAPCOPY_31' ) - end if - - if( .not. ast_mapget0i( aval, 'a2', ival, status ) ) then - call stopit( status, 'Error MAPCOPY_32' ) - else if( ival .ne. 20 ) then - write(*,*) ival - call stopit( status, 'Error MAPCOPY_33' ) - end if - - if( .not. ast_mapget0i( aval, 'a3', ival, status ) ) then - call stopit( status, 'Error MAPCOPY_34' ) - else if( ival .ne. 3 ) then - write(*,*) ival - call stopit( status, 'Error MAPCOPY_35' ) - end if - - if( .not. ast_mapget0i( aval, 'b1', ival, status ) ) then - call stopit( status, 'Error MAPCOPY_36' ) - else if( ival .ne. 10 ) then - write(*,*) ival - call stopit( status, 'Error MAPCOPY_37' ) - end if - - if( .not. ast_mapget0i( aval, 'b2', ival, status ) ) then - call stopit( status, 'Error MAPCOPY_38' ) - else if( ival .ne. 20 ) then - write(*,*) ival - call stopit( status, 'Error MAPCOPY_39' ) - end if - - if( .not. ast_mapget0i( aval, 'b3', ival, status ) ) then - call stopit( status, 'Error MAPCOPY_40' ) - else if( ival .ne. 30 ) then - write(*,*) ival - call stopit( status, 'Error MAPCOPY_41' ) - end if - - end if - - - map = ast_keymap( ' ', status ) - map1 = ast_keymap( ' ', status ) - map2 = ast_keymap( ' ', status ) - map3 = ast_keymap( ' ', status ) - - call ast_mapput0i( map1, 'a1', 1, ' ', status ) - call ast_mapput0i( map1, 'a2', 2, ' ', status ) - call ast_mapput0i( map1, 'a3', 3, ' ', status ) - - call ast_mapput0c( map, 'aa1', 'Yes', ' ', status ) - call ast_mapput0i( map, 'aa2', 2, ' ', status ) - call ast_mapput0a( map, 'aa3', map1, ' ', status ) - - call ast_mapput0i( map2, 'b1', 10, ' ', status ) - call ast_mapput0i( map2, 'b2', 20, ' ', status ) - call ast_mapput0i( map2, 'b3', 30, ' ', status ) - - call ast_mapput0i( map3, 'aa1', 0, ' ', status ) - call ast_mapput0i( map3, 'aa2', 20, ' ', status ) - call ast_mapput0a( map3, 'aa3', map2, ' ', status ) - - call ast_setl( map, 'MapLocked', .TRUE., status ) - if( status .eq. SAI__OK ) then - call ast_mapcopy( map, map3, status ) - if( status .eq. AST__BADKEY ) then - call err_annul( status ) - else - call stopit( status, 'Error MAPCOPY_42' ) - end if - end if - - -C Test AST_MAPPUTU and undefined values - map = ast_keymap( ' ', status ) - call ast_mapputu( map, 'GG', 'A comment', status ) - if( ast_mapdefined( map, 'GG', status ) ) then - call stopit( status, 'Error UNDEF_0' ) - else if( ast_mapget0i( map, 'GG', ival, status ) ) then - call stopit( status, 'Error UNDEF_1' ) - else if( ast_mapget0s( map, 'GG', sval, status ) ) then - call stopit( status, 'Error UNDEF_1B' ) - else if( ast_mapget0c( map, 'GG', cval, l, status ) ) then - call stopit( status, 'Error UNDEF_2' ) - else if( ast_mapget0a( map, 'GG', aval, status ) ) then - call stopit( status, 'Error UNDEF_3' ) - else if( ast_mapget1i( map, 'GG', 2, nval, ivec, - : status ) ) then - call stopit( status, 'Error UNDEF_4' ) - else if( ast_mapgetelemc( map, 'gg', 1, cval, status ) ) then - call stopit( status, 'Error UNDEF_5' ) - else if( .not. ast_maphaskey( map, 'GG', status ) ) then - call stopit( status, 'Error UNDEF_6' ) - end if - - if( ast_maptype( map, 'GG', status ) .ne. AST__UNDEFTYPE ) then - write(*,*) ast_maptype( map, 'GG', status ) - call stopit( status, 'Error UNDEF_7' ) - else if( ast_mapsize( map, status ) .ne. 1 ) then - call stopit( status, 'Error UNDEF_8' ) - end if - - call ast_mapput0i( map, 'GG', 0, ' ', status ) - if( .not. ast_mapget0i( map, 'GG', ival, status ) ) then - call stopit( status, 'Error UNDEF_9' ) - else if( ival .ne. 0 ) then - call stopit( status, 'Error UNDEF_10' ) - endif - - call ast_maprename( map, 'GG', 'GGNEW', status ) - if( ast_maphaskey( map, 'GG', status ) ) then - call stopit( status, 'Error RENAME_1' ) - else if( .not. ast_mapget0i( map, 'GGNEW', ival, status ) ) then - call stopit( status, 'Error RENAME_2' ) - else if( ival .ne. 0 ) then - call stopit( status, 'Error RENAME_3' ) - endif - - call ast_maprename( map, 'GGNEW', 'GG', status ) - if( ast_maphaskey( map, 'GGNEW', status ) ) then - call stopit( status, 'Error RENAME_4' ) - else if( .not. ast_mapget0i( map, 'GG', ival, status ) ) then - call stopit( status, 'Error RENAME_5' ) - else if( ival .ne. 0 ) then - call stopit( status, 'Error RENAME_6' ) - endif - - - - - - - call ast_end( status ) - - call ast_activememory( ' ' ) - call ast_flushmemory( 1 ); - - call err_rlse( status ) - - if( status .eq. sai__ok ) then - write(*,*) 'All KeyMap tests passed' - else - write(*,*) 'KeyMap tests failed' - end if - - end - - subroutine stopit( status, text ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - - if( status .ne. sai__ok ) return - status = sai__error - write(*,*) text - - end - - subroutine checkdump( obj, text, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - character text*(*),key*30,txt1*50,txt2*50 - integer obj, status, next, end, ch, result, ll, overlap, size, - : i, type,obj1,obj2,l1,l2,nl - external mysource, mysink - character buf*400000 - - common /ss1/ buf - common /ss2/ next, end, ll, nl - - if( status .ne. sai__ok ) return - - ch = ast_channel( mysource, mysink, ' ', status ) - - - nl = 0 - ll = 110 - next = 1 - if( ast_write( ch, obj, status ) .ne.1 ) then - write(*,*) text - call stopit( status, 'Cannot write supplied object to '// - : 'channel' ) - end if - - next = 1 - nl = 0 - result = ast_read( ch, status ) - - if( result .eq. ast__null ) then - write(*,*) text - call stopit( status, 'Cannot read object from channel' ) - end if - - size = ast_mapsize( result, status ) - if( ast_mapsize( obj, status ) .ne. size ) then - write(*,*) size, ast_mapsize( obj, status ) - call stopit( status, 'checkDump 1' ) - else - do i = 1, size - key = ast_mapkey( result, i, status ) - type = ast_maptype( result, key, status ) - if( ast_maptype( obj, key, status ) .ne. type ) then - write(*,*) type, ast_maptype( obj, key, status ) - call stopit( status, 'checkDump 4' ) - else - - if( type .eq. AST__OBJECTTYPE ) then - - if( .not. ast_mapGet0A( result, key, obj1, - : status ) ) call stopit( status, 'checkDump 5' ) - if( .not. ast_mapGet0A( obj, key, obj2, - : status ) ) call stopit( status, 'checkDump 6' ) - if( ast_GetC( obj1, 'class', status ) .ne. - : ast_GetC( obj2, 'class', status ) ) then - call stopit( status, 'checkDump 7' ) - end if - - else - - if( .not. ast_mapGet0C( result, key, txt1, l1, - : status ) ) call stopit( status, 'checkDump 8' ) - if( .not. ast_mapGet0C( obj, key, txt2, l2, - : status ) ) call stopit( status, 'checkDump 9' ) - if( txt1( : l1 ) .ne. txt2( : l2 ) .or. - : l1 .ne. l2 ) then - call stopit( status, 'checkDump 10' ) - end if - - end if - end if - end do - end if - - end - - subroutine mysource( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, ll, nl - character buf*400000 - - common /ss1/ buf - common /ss2/ next, end, ll,nl - - if( status .ne. sai__ok ) return - - if( next .ge. end ) then - call ast_putline( buf, -1, status ) - else - call ast_putline( buf( next : ), ll, status ) - nl = nl + 1 - endif - - next = next + ll - - end - - subroutine mysink( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, f, l, ll, nl - character buf*400000 - character line*1000 - - common /ss1/ buf - common /ss2/ next, end, ll, nl - - if( status .ne. sai__ok ) return - - line = ' ' - call ast_getline( line, l, status ) - call chr_fandl( line( : l ), f, l ) - buf( next : ) = line( f : l ) - l = l - f + 1 - - if( next + ll - 1 .ge. 400000 ) then - write(*,*) - call stopit( status, 'Buffer overflow in mysink!!' ) - else if( l .gt. ll ) then - write(*,*) - write(*,*) buf( next : next + l) - write(*,*) 'Line length ',l - call stopit( status, 'Line overflow in mysink!!' ) - else - end = next + l - buf( end : next + ll - 1 ) = ' ' - nl = nl + 1 - endif - - next = next + ll - - end - - - - subroutine testsorting( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - integer status, km, i - character keys(5)*15 - character skeys(5)*15 - character key*( AST__SZCHR ) - - - data keys / 'ABC', 'zzzzzzzzzzz', 'this_is_a_key', 'HE-HE', 'A' / - data skeys / 'A', 'ABC', 'HE-HE', 'this_is_a_key', 'zzzzzzzzzzz' / - - - if( status .ne. sai__ok ) return - -C Value Age sorting... - -C First test adding entries into an already sorted KeyMap - - km = ast_keymap( 'Sortby=AgeDown', status ) - - do i = 1, 5 - call ast_mapput0i( km, keys(i), i, ' ', status ) - end do - - do i = 1, 5 - key = ast_mapkey( km, i, status ) - if( key .ne. keys(i) .and. status .eq. SAI__OK ) then - write(*,*) 'Key ',i,' is ',key,' (should be ',keys(i),')' - call stopit( status, 'Error Sort 1' ) - return - end if - end do - -C Now test sorting existing entries in a KeyMap. - call ast_set( km, 'Sortby=AgeUp', status ) - - do i = 1, 5 - key = ast_mapkey( km, i, status ) - if( key .ne. keys(6-i) .and. status .eq. SAI__OK ) then - write(*,*) 'Key ',i,' is ',key,' (should be ',keys(6-i),')' - call stopit( status, 'Error Sort 2' ) - return - end if - end do - - -C Changing the value of an existing entry should change its position in -C the list. - call ast_mapput0i( km, keys(1), 10, ' ', status ) - call ast_set( km, 'Sortby=AgeDown', status ) - - do i = 1, 5 - key = ast_mapkey( km, i, status ) - if( i .eq. 5 ) then - if( key .ne. keys(1) .and. status .eq. SAI__OK ) then - write(*,*) 'Key ',1,' is ',key,' (should be ',keys(1),')' - call stopit( status, 'Error Sort 2b' ) - return - end if - else if( key .ne. keys(i+1) .and. status .eq. SAI__OK ) then - write(*,*) 'Key ',i+1,' is ',key,' (should be ',keys(i+1), - : ')' - call stopit( status, 'Error Sort 2c' ) - return - end if - end do - - call ast_annul( km, status ) - - -C Key Age sorting... - -C First test adding entries into an already sorted KeyMap - - km = ast_keymap( 'Sortby=KeyAgeDown', status ) - - do i = 1, 5 - call ast_mapput0i( km, keys(i), i, ' ', status ) - end do - - do i = 1, 5 - key = ast_mapkey( km, i, status ) - if( key .ne. keys(i) .and. status .eq. SAI__OK ) then - write(*,*) 'Key ',i,' is ',key,' (should be ',keys(i),')' - call stopit( status, 'Error Sort 0' ) - return - end if - end do - -C Now test sorting existing entries in a KeyMap. - call ast_set( km, 'Sortby=KeyAgeUp', status ) - - do i = 1, 5 - key = ast_mapkey( km, i, status ) - if( key .ne. keys(6-i) .and. status .eq. SAI__OK ) then - write(*,*) 'Key ',i,' is ',key,' (should be ',keys(6-i),')' - call stopit( status, 'Error Sort -1' ) - return - end if - end do - - -C Changing the value of an existing entry should not change its position -C in the list. - call ast_mapput0i( km, keys(1), 10, ' ', status ) - call ast_set( km, 'Sortby=KeyAgeDown', status ) - - do i = 1, 5 - key = ast_mapkey( km, i, status ) - if( key .ne. keys(i) .and. status .eq. SAI__OK ) then - write(*,*) 'Key ',i,' is ',key,' (should be ',keys(i),')' - call stopit( status, 'Error Sort -2' ) - return - end if - end do - - call ast_annul( km, status ) - - - -C Key sorting... - -C First test adding entries into an already sorted KeyMap - - km = ast_keymap( 'Sortby=KeyUp', status ) - - do i = 1, 5 - call ast_mapput0i( km, keys(i), i, ' ', status ) - end do - - do i = 1, 5 - key = ast_mapkey( km, i, status ) - if( key .ne. skeys(i) .and. status .eq. SAI__OK ) then - write(*,*) 'Key ',i,' is ',key,' (should be ',skeys(i),')' - call stopit( status, 'Error Sort 3' ) - return - end if - end do - -C Now test sorting existing entries in a KeyMap. - call ast_set( km, 'Sortby=KeyDown', status ) - - do i = 1, 5 - key = ast_mapkey( km, i, status ) - if( key .ne. skeys(6-i) .and. status .eq. SAI__OK ) then - write(*,*) 'Key ',i,' is ',key,' (should be ',skeys(6-i),')' - call stopit( status, 'Error Sort 4' ) - return - end if - end do - - call ast_annul( km, status ) - - - - - end - - - - - subroutine testcasesens( status ) - implicit none - include 'AST_PAR' - include 'AST_ERR' - include 'SAE_PAR' - - integer status, map, l - character sval*( AST__SZCHR ) - - if( status .ne. sai__ok ) return - - map = ast_keymap( 'KeyCase=0', status ) - call ast_mapput0i( map, 'Freds', 1999, 'com 1', status ) - - if( .not. ast_maphaskey( map, 'fReDs', status ) ) then - call stopit( status, 'Error case 1' ) - endif - - if( ast_mapkey( map, 1, status ) .ne. 'FREDS' ) then - call stopit( status, 'Error case 2' ) - endif - - if( .not. ast_mapget0c( map, 'freds', sval, l, status ) ) then - call stopit( status, 'Error case 3' ) - else if( sval .ne. '1999' ) then - call stopit( status, 'Error case 4' ) - else if( l .ne. 4 ) then - call stopit( status, 'Error case 4b' ) - end if - - call ast_setl( map, 'KeyCase', 0, status ); - - if( status .eq. sai__ok ) then - call ast_clear( map, 'KeyCase', status ) - if( status .eq. AST__NOWRT ) then - call err_annul( status ) - else if( status .eq. sai__ok ) then - call stopit( status, 'Error case 5' ) - end if - end if - - if( ast_mapsize( map, status ) .ne. 1 ) then - call stopit( status, 'Error case 6' ) - end if - - call ast_mapremove( map, 'freDs', status ) - - if( ast_mapsize( map, status ) .ne. 0 ) then - call stopit( status, 'Error case 7' ) - end if - - call ast_clear( map, 'KeyCase', status ) - call ast_mapput0i( map, 'Freds', 1999, 'com 1', status ) - if( ast_maphaskey( map, ' fReDs', status ) ) then - call stopit( status, 'Error case 8' ) - endif - - - call ast_annul( map, status ) - - end - - - - diff --git a/ast/ast_tester/testlutmap.f b/ast/ast_tester/testlutmap.f deleted file mode 100644 index e183375..0000000 --- a/ast/ast_tester/testlutmap.f +++ /dev/null @@ -1,177 +0,0 @@ - program testlutmap - implicit none - - include 'AST_PAR' - include 'SAE_PAR' - - integer lm, status, i - double precision lut1( 10 ), x( 7 ), y(7) - - status = sai__ok - call err_mark( status ) - call ast_begin( status ) - - - data lut1/ -1D0, 0D0, 1D0, 2D0, 3D0, 4D0, 5D0, 6D0, 7D0, 8D0 / - - - - - lm = ast_lutmap( 10, lut1, -1.0D0, 1.0D0, ' ', status ) - x( 1 ) = -2.0D0 - x( 2 ) = -1.0D0 - x( 3 ) = -0.5D0 - x( 4 ) = 3.0D0 - x( 5 ) = 7.5D0 - x( 6 ) = 8.0D0 - x( 7 ) = 8.5D0 - - call ast_tran1( lm, 7, x, .TRUE., y, status ) - - do i = 1, 7 - if( x( i ) .ne. y( i ) ) then - call stopit( status, "Error 1" ); - end if - end do - - call ast_tran1( lm, 7, y, .FALSE., x, status ) - - do i = 1, 7 - if( x( i ) .ne. y( i ) ) then - call stopit( status, "Error 2" ); - end if - end do - - - - - lut1( 1 ) = lut1( 2 ) - lm = ast_lutmap( 10, lut1, -1.0D0, 1.0D0, ' ', status ) - x( 1 ) = -2.0D0 - x( 2 ) = -1.0D0 - x( 3 ) = -0.5D0 - x( 4 ) = 0.5D0 - x( 5 ) = 3.0D0 - x( 6 ) = 8.0D0 - x( 7 ) = 8.5D0 - - call ast_tran1( lm, 7, x, .TRUE., y, status ) - - do i = 1, 3 - if( y( i ) .ne. 0.0 ) then - call stopit( status, "Error 3" ); - end if - end do - - do i = 4, 7 - if( x( i ) .ne. y( i ) ) then - call stopit( status, "Error 4" ); - end if - end do - - call ast_tran1( lm, 7, y, .FALSE., x, status ) - - do i = 1, 3 - if( x( i ) .ne. AST__BAD ) then - call stopit( status, "Error 5" ); - end if - end do - - do i = 4, 7 - if( x( i ) .ne. y( i ) ) then - call stopit( status, "Error 6" ); - end if - end do - - - lut1( 5 ) = AST__BAD - lm = ast_lutmap( 10, lut1, -1.0D0, 1.0D0, ' ', status ) - x( 1 ) = -2.0D0 - x( 2 ) = -1.0D0 - x( 3 ) = -0.5D0 - x( 4 ) = 0.5D0 - x( 5 ) = 3.0D0 - x( 6 ) = 8.0D0 - x( 7 ) = 8.5D0 - - call ast_tran1( lm, 7, x, .TRUE., y, status ) - - do i = 1, 3 - if( y( i ) .ne. 0.0 ) then - call stopit( status, "Error 7" ); - end if - end do - - if( y( 5 ) .ne. AST__BAD ) then - call stopit( status, "Error 8" ); - end if - y(5) = x( 5 ) - - do i = 4, 7 - if( x( i ) .ne. y( i ) ) then - call stopit( status, "Error 9" ); - end if - end do - - call ast_tran1( lm, 7, y, .FALSE., x, status ) - - do i = 1, 3 - if( x( i ) .ne. AST__BAD ) then - call stopit( status, "Error 10" ); - end if - end do - - if( x( 5 ) .ne. AST__BAD ) then - call stopit( status, "Error 11" ); - end if - x(5) = y( 5 ) - - do i = 4, 7 - if( x( i ) .ne. y( i ) ) then - call stopit( status, "Error 12" ); - end if - end do - - - - - - - - - - - - - - - - - call ast_end( status ) - call err_rlse( status ) - -c call ast_activememory( 'testlutmap' ) - call ast_flushmemory( 1 ) - - if( status .eq. sai__ok ) then - write(*,*) 'All LutMap tests passed' - else - write(*,*) 'LutMap tests failed' - end if - - end - - - - subroutine stopit( status, text ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - if( status .ne. sai__ok ) return - status = sai__error - write(*,*) text - end - - - diff --git a/ast/ast_tester/testmapping.f b/ast/ast_tester/testmapping.f deleted file mode 100644 index a02dd5b..0000000 --- a/ast/ast_tester/testmapping.f +++ /dev/null @@ -1,85 +0,0 @@ - program testmapping - implicit none - - include 'AST_PAR' - include 'SAE_PAR' - - integer status, pm - double precision coeff(20), fit(6), lbnd(2), ubnd(2) - - data coeff / 1.0, 1.0, 0.0, 0.0, - : 2.0, 1.0, 1.0, 0.0, - : 1.0, 2.0, 0.0, 0.0, - : 3.0, 2.0, 0.0, 1.0, - : 3.0, 1.0, 0.0, 2.0 / - - - - status = sai__ok - call err_mark( status ) - call ast_begin( status ) - - pm = ast_polymap( 2, 2, 4, coeff, 0, coeff, ' ', status ) - - lbnd( 1 ) = -1.0D0 - lbnd( 2 ) = -1.0D0 - ubnd( 1 ) = 1.0D0 - ubnd( 2 ) = 1.0D0 - if( ast_linearapprox(pm, lbnd, ubnd, 0.001D0, fit, status) ) then - if( fit(1) .ne. 1.0D0 .or. fit(2) .ne. 1.0D0 .or. - : fit(3) .ne. 2.0D0 .or. fit(4) .ne. 0.0D0 .or. - : fit(5) .ne. 0.0D0 .or. fit(6) .ne. 3.0D0 ) then - call stopit( status, 'Error 0' ) - end if - else - call stopit( status, 'Error 1' ) - end if - - coeff( 13 ) = AST__BAD - pm = ast_polymap( 2, 2, 4, coeff, 0, coeff, ' ', status ) - - if( ast_linearapprox(pm, lbnd, ubnd, 0.001D0, fit, status) ) then - if( fit(1) .ne. 1.0D0 .or. fit(2) .ne. AST__BAD .or. - : fit(3) .ne. 2.0D0 .or. fit(4) .ne. 0.0D0 .or. - : fit(5) .ne. AST__BAD .or. fit(6) .ne. AST__BAD ) then - call stopit( status, 'Error 2' ) - end if - else - call stopit( status, 'Error 3' ) - end if - - pm = ast_polymap( 2, 2, 5, coeff, 0, coeff, ' ', status ) - - if( ast_linearapprox(pm, lbnd, ubnd, 0.001D0, fit, status) ) then - write(*,*) fit - call stopit( status, 'Error 4' ) - end if - - - - - call ast_end( status ) - call err_rlse( status ) - - if( status .eq. sai__ok ) then - write(*,*) 'All Mapping tests passed' - else - write(*,*) 'Mapping tests failed' - end if - - end - - - - subroutine stopit( status, text ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - if( status .ne. sai__ok ) return - status = sai__error - write(*,*) text - end - - - diff --git a/ast/ast_tester/testnormmap.f b/ast/ast_tester/testnormmap.f deleted file mode 100644 index 2c57ee6..0000000 --- a/ast/ast_tester/testnormmap.f +++ /dev/null @@ -1,94 +0,0 @@ - program testnormmap - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'PRM_PAR' - - integer status, m, m2, m3, f, perm(3) - double precision at(3), bt(3) - - call ast_begin( status ) - - - status = sai__ok - - f = ast_cmpframe( ast_specframe( ' ', status ), - : ast_skyframe( ' ', status ), ' ', status ) - - perm( 1 ) = 3 - perm( 2 ) = 1 - perm( 3 ) = 2 - call ast_permaxes( f, perm, status ) - m = ast_normmap( f, ' ', status ) - - if( ast_geti( m, 'nin', status ) .ne. 3 ) call stopit( 1, status ) - if( ast_geti( m, 'nout', status ) .ne. 3 ) call stopit( 2, status) - - if( .not. ast_getl( m, 'TranForward', status ) ) call stopit( 3, - : status ) - if( .not. ast_getl( m, 'TranInverse', status ) ) call stopit( 4, - : status ) - - - m2 = ast_copy( m, status ) - call ast_invert( m2, status ) - m3 = ast_simplify( ast_cmpmap( m, m2, .true., ' ', status ), - : status ) - if( .not. ast_isaunitmap( m3, status ) ) call stopit( 5, status ) - - - at( 1 ) = 2.0D0 - at( 2 ) = 3.0D4 - at( 3 ) = 1.0D0 - - call ast_trann( m, 1, 3, 1, at, 1, 3, 1, bt, status ) - - if( abs( bt(1)-1.14159265D0) .gt. 1.0D-6 ) then - write(*,*) bt(1)-1.14159265D0 - call stopit(6,status) - end if - if( bt(2) .ne. 3.0D4 ) call stopit(7,status) - if( abs( bt(3)-4.14159265D0) .gt. 1.0D-6 ) call stopit(8,status) - - - - -* Test adjacent identical NormMaps are simplified to a single NormMap. - m2 = ast_cmpmap( ast_cmpmap( m, ast_copy( m, status ), .true., - : ' ', status ), - : ast_cmpmap( m, ast_copy( m, status ), .true., - : ' ', status ), .true., ' ', status ) - m3 = ast_simplify( m2, status ) - if( .not. ast_isanormmap( m3, status ) ) call stopit( 9, status ) - -* Test NormMap that encapsulate a basic Frame are simplified to a UnitMap. - m = ast_normmap( ast_frame(2, ' ', status ), ' ', status ) - m2 = ast_simplify( m, status ) - if( .not. ast_isaunitmap( m2, status ) ) call stopit( 10, status ) - - - - - - call ast_end( status ) - - call ast_flushmemory( 1 ) - - if( status .eq. sai__ok ) then - write(*,*) 'All NormMap tests passed' - else - write(*,*) 'NormMap tests failed' - end if - - end - - - subroutine stopit( i, status ) - implicit none - include 'SAE_PAR' - integer i, status - if( status .eq. sai__ok ) then - write( *,* ) 'Error ',i - status = sai__error - end if - end diff --git a/ast/ast_tester/testobject.c b/ast/ast_tester/testobject.c deleted file mode 100644 index c1c1972..0000000 --- a/ast/ast_tester/testobject.c +++ /dev/null @@ -1,120 +0,0 @@ -#include "ast.h" -#include <stdio.h> -#include <string.h> - -int main(){ - const char *routine; - const char *file; - int i; - int line; - char *pickle1; - char *pickle2; - AstSkyFrame *sf = astSkyFrame( " " ); - AstFrame *bf = astFrame( 2, "Domain=SKY" ); - AstFrameSet *fs = astConvert( bf, sf, " " ); - AstKeyMap *km; - void *p; - - if( fs ) { - pickle1 = astToString( fs ); - AstFrameSet *fs2 = astFromString( pickle1 ); - pickle2 = astToString( fs2 ); - if( pickle1 && pickle2 ) { - if( strcmp( pickle1, pickle2 ) && astOK ) { - astError( AST__INTER, "Error 1\n" ); - } - } else if( astOK ) { - astError( AST__INTER, "Error 2\n" ); - } - - - pickle1 = astFree( pickle1 ); - pickle2 = astFree( pickle2 ); - - if( fs2 && !astEqual( fs, fs2 ) && astOK ) { - astError( AST__INTER, "Error 3\n" ); - } - - astCreatedAt( bf, &routine, &file, &line ); - if( ( !routine || strcmp( routine, "main" ) ) && astOK ) { - astError( AST__INTER, "Error 31\n" ); - } - if( ( !file || strcmp( file, "testobject.c" ) ) && astOK ) { - astError( AST__INTER, "Error 32\n" ); - } - if( line != 13 && astOK ) { - astError( AST__INTER, "Error 33 (line is %d)\n", line ); - } - - - km = astActiveObjects( NULL, 0, 0 ); - if( !km && astOK ) { - astError( AST__INTER, "Error 34\n" ); - } else { - int nkey = astMapSize( km ); - if( nkey != 3 && astOK ) { - astError( AST__INTER, "Error 35 (nkey is %d)\n", nkey ); - } - - astSetC( km, "SortBy", "KeyUp" ); - for( i=0; i < 3; i++ ){ - const char *key = astMapKey( km, i ); - if( i == 0 ) { - if( strcmp( key, "Frame" ) && astOK ) { - astError( AST__INTER, "Error 36 (key 0 is '%s')\n", key ); - } else if( astMapLength(km,key) != 1 && astOK ) { - astError( AST__INTER, "Error 361 (%d)\n", astMapLength(km,key) ); - } else if( ( !astMapGetElemP( km, key, 0, &p ) || ( p != bf ) ) && astOK ) { - astError( AST__INTER, "Error 362\n" ); - } else { - astCreatedAt( p, &routine, &file, &line ); - if( ( !routine || strcmp( routine, "main" ) ) && astOK ) { - astError( AST__INTER, "Error 363\n" ); - } - if( ( !file || strcmp( file, "testobject.c" ) ) && astOK ) { - astError( AST__INTER, "Error 364\n" ); - } - if( line != 13 && astOK ) { - astError( AST__INTER, "Error 365 (line is %d)\n", line ); - } - } - } else if( i == 1 ) { - if( strcmp( key, "FrameSet" ) && astOK ) { - astError( AST__INTER, "Error 37 (key 1 is '%s')\n", key ); - } else if( astMapLength(km,key) != 2 && astOK ) { - astError( AST__INTER, "Error 371 (%d)\n", astMapLength(km,key) ); - } else if( ( !astMapGetElemP( km, key, 1, &p ) || ( p != fs2 ) ) && astOK ) { - astError( AST__INTER, "Error 372\n" ); - } else { - astCreatedAt( p, &routine, &file, &line ); - if( ( !routine || strcmp( routine, "main" ) ) && astOK ) { - astError( AST__INTER, "Error 373\n" ); - } - if( ( !file || strcmp( file, "testobject.c" ) ) && astOK ) { - astError( AST__INTER, "Error 374\n" ); - } - if( line != 20 && astOK ) { - astError( AST__INTER, "Error 375 (line is %d)\n", line ); - } - } - } else { - if( strcmp( key, "SkyFrame" ) && astOK ) { - astError( AST__INTER, "Error 38 (key 2 is '%s')\n", key ); - } else if( astMapLength(km,key) != 1 && astOK ) { - astError( AST__INTER, "Error 381 (%d)\n", astMapLength(km,key) ); - } - } - } - } - km = astAnnul( km ); - - } else if( astOK ){ - astError( AST__INTER, "Error 4\n" ); - } - - if( astOK ) { - printf(" All Object tests passed\n"); - } else { - printf("Object tests failed\n"); - } -} diff --git a/ast/ast_tester/testplot3d.f b/ast/ast_tester/testplot3d.f deleted file mode 100644 index 66a6858..0000000 --- a/ast/ast_tester/testplot3d.f +++ /dev/null @@ -1,1357 +0,0 @@ - program testplot3d - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - integer fset, plot3d, status, pgbeg - real gbox(6), lbnd(3), ubnd(3) - double precision bbox(6) - integer readtest - logical ok, pg3d_autocamera - character device*30 - - status = sai__ok - -c call ast_watchmemory( 130836 ) - call ast_begin( status ) - - lbnd( 1 ) = -1.0 - lbnd( 2 ) = -1.0 - lbnd( 3 ) = -1.0 - ubnd( 1 ) = 1.0 - ubnd( 2 ) = 1.0 - ubnd( 3 ) = 1.0 - - if( iargc() .gt. 0 ) then - call getarg( 1, device ) - else - device = '/XSERVE' - end if - ok = ( pgbeg( 0, device, 1, 1 ) .eq. 1 ) - - if( .not. ok ) write(*,*) 'PGPLOT OPEN FIALED' - - call pgask( .false. ) - - call pgpage - call pgwnad( 0.0, 1.0, 0.0, 1.0 ) - - ok = pg3d_autocamera( lbnd, ubnd ) -c - gbox(1) = lbnd(1) - gbox(2) = lbnd(2) - gbox(3) = lbnd(3) - gbox(4) = ubnd(1) - gbox(5) = ubnd(2) - gbox(6) = ubnd(3) - - bbox(1) = -1.0 - bbox(2) = -1.0 - bbox(3) = -1.0 - bbox(4) = 1.0 - bbox(5) = 1.0 - bbox(6) = 1.0 - - plot3d = ast_plot3d( AST__NULL, gbox, bbox, 'minticklen=0', - : status ) - call checkdump( plot3d, 'CheckDump test 1', status ) - call ast_annul( plot3d, status ) - bbox(1) = 0.5 - bbox(2) = 0.5 - bbox(3) = 0.5 - bbox(4) = 155.5 - bbox(5) = 107.5 - bbox(6) = 1640.5 - plot3d = ast_plot3d( readtest( "plot3d-test1.ast", status ), gbox, - : bbox, ' ' , status ) -c call checkdump( plot3d, 'CheckDump test 2', status ) -c call ast_set( plot3d, "System(1)=galactic,system(3)=freq", -c : status ) -c call ast_grid( plot3d, status ) - call explore( plot3d, status ) - call pgend - call ast_end( status ) - call ast_activememory( 'testplot3d' ) - call ast_flushmemory( 1 ) - - if( status .eq. sai__ok ) then - write(*,*) 'All Plot3D tests passed' - else - write(*,*) 'Plot3D tests failed' - end if - - end - - subroutine checkdump( obj, text, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - character text*(*) - integer obj, status, next, end, ch, result, ll, overlap - external mysource, mysink, mysink2 - character buf*400000,buf2*400000 - common /ss1/ buf - common /ss2/ next, end, ll - common /ss3/ buf2 - if( status .ne. sai__ok ) return - call ast_begin( status ) - ch = ast_channel( mysource, mysink, ' ', status ) - ll = 200 - next = 1 - if( ast_write( ch, obj, status ) .ne.1 ) then - write(*,*) text - call stopit( status, 'Cannot write supplied object to '// - : 'channel' ) - end if - next = 1 - result = ast_read( ch, status ) - if( result .eq. ast__null ) then - write(*,*) text - call stopit( status, 'Cannot read object from channel' ) - end if - - ll = 200 - next = 1 - ch = ast_channel( AST_NULL, mysink2, ' ', status ) - if( ast_write( ch, obj, status ) .ne.1 ) then - write(*,*) text - call stopit( status, 'Cannot write copied object to '// - : 'channel' ) - end if - if( buf .ne. buf2 ) then - call ast_Show( obj, status ) - call ast_Show( result, status ) - write(*,*) text - call stopit( status, 'Object has changed' ) - end if - call ast_end( status ) - end - subroutine mysource( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, ll - character buf*400000 - common /ss1/ buf - common /ss2/ next, end, ll - if( status .ne. sai__ok ) return - if( next .ge. end ) then - call ast_putline( buf, -1, status ) - else - call ast_putline( buf( next : ), ll, status ) - endif - next = next + ll - end - subroutine mysink( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, f, l, ll - character buf*400000 - character line*1000 - common /ss1/ buf - common /ss2/ next, end, ll - if( status .ne. sai__ok ) return - line = ' ' - call ast_getline( line, l, status ) - call chr_fandl( line( : l ), f, l ) - buf( next : ) = line( f : l ) - l = l - f + 1 - if( next + ll - 1 .ge. 400000 ) then - write(*,*) - call stopit( status, 'Buffer overflow in mysink!!' ) - else if( l .gt. ll ) then - write(*,*) - write(*,*) line( f : l ) - write(*,*) 'Line length ',l - call stopit( status, 'Line overflow in mysink!!' ) - else - end = next + l - buf( end : next + ll - 1 ) = ' ' - endif - next = next + ll - end - subroutine mysink2( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, f, l, ll - character buf2*400000 - character line*1000 - common /ss3/ buf2 - common /ss2/ next, end, ll - if( status .ne. sai__ok ) return - line = ' ' - call ast_getline( line, l, status ) - call chr_fandl( line( : l ), f, l ) - buf2( next : ) = line( f : l ) - l = l - f + 1 - if( next + ll - 1 .ge. 400000 ) then - write(*,*) - call stopit( status, 'Buffer overflow in mysink2!!' ) - else if( l .gt. ll ) then - write(*,*) - write(*,*) buf2( next : next + l) - write(*,*) 'Line length ',l - call stopit( status, 'Line overflow in mysink2!!' ) - else - end = next + l - buf2( end : next + ll - 1 ) = ' ' - endif - next = next + ll - end - - subroutine stopit( status, text ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - if( status .ne. sai__ok ) return - status = sai__error - write(*,*) text - end - - integer function readtest( name, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - character name*(*) - integer status, ch - external mysource3 - readtest = AST__NULL - if( status .ne. sai__ok ) return - open( unit=1, file=name, status='old' ) - ch = ast_channel( mysource3, ast_null, ' ', status ) - readtest = ast_read( ch, status ) - call ast_annul( ch, status ) - close(1) - end - - subroutine mysource3( status ) - integer status - character buffer*200 - read( 1, '(A)', end = 99 ) buffer - call ast_putline( buffer, len( buffer ), status ) - return - 99 call ast_putline( buffer, -1, status ) - - end - - - subroutine explore( plot3d, status ) - implicit none - include 'AST_PAR' - include 'SAE_PAR' - - real common_par - integer common_map - logical use_common - double precision common_x, common_y - common /ss4/ common_par,common_x,common_y,common_map,use_common - - real pi - parameter( pi = 3.1415927 ) - integer diag, plot3d, status, iopt, i, iclose - logical more, draw, ok, pg3d_findnearest, lval, pg3d_seteye, - : pg3d_setup - character settings*40, attr*20, corn(8)*3, text*40,just*4 - real xc(8), yc(8), zc(8) - double precision pos(3),x,y - real up(3), eye(3) - integer type, map - integer readtest - data xc /-1, 1, -1, 1, -1, 1, -1, 1 / - data yc /-1, -1, 1, 1, -1, -1, 1, 1 / - data zc /-1, -1, -1, -1, 1, 1, 1, 1 / - data corn/ 'lll', 'ull', 'lul', 'uul', - : 'llu', 'ulu', 'luu', 'uuu' / - if( status .ne. sai__ok ) return - eye( 1 ) = -3 - eye( 2 ) = 4 - eye( 3 ) = 3 - ok = pg3d_seteye( eye ) - up( 1 ) = 0.0 - up( 2 ) = -0.03 - up( 3 ) = 1.0 - ok = pg3d_setup( up ) - diag = 1 - common_x = AST__BAD - common_y = AST__BAD - common_map = AST__NULL - use_common = .false. - - call drawit( diag, plot3d, status ) - more = .true. - do while( more ) - - write(*,*) ' 0 - exit' - write(*,*) ' 1 - move forward' - write(*,*) ' 2 - move backwards' - write(*,*) ' 3 - rotate right' - write(*,*) ' 4 - rotate left' - write(*,*) ' 5 - rotate up' - write(*,*) ' 6 - rotate down' - write(*,*) ' 7 - rotate right continuous' - write(*,*) ' 8 - set attribute values' - write(*,*) ' 9 - get an attribute value' - write(*,*) ' 10 - clear an attribute value' - write(*,*) ' 11 - test an attribute value' - write(*,*) ' 12 - show the plot3d (big!)' - write(*,*) ' 13 - Draw a border' - write(*,*) ' 14 - Draw a marker' - write(*,*) ' 15 - Draw a text string' - write(*,*) ' 16 - Draw az-el diagram' - write(*,*) ' 17 - Draw grid-box diagram' - write(*,*) ' 18 - Vary parameter continuously' - write(*,*) ' 19 - Next figure' - write(*,*) ' 20 - Set Mapping' - write(*,*) ' 21 - Mark mapped position' - write(*,'(A,$)' ) 'Option: ' - read(*,*) iopt - - draw = .true. - if( iopt .eq. 0 ) then - draw = .false. - more = .false. - else if( iopt .eq. 1 ) then - call pg3d_forward( 0.1 ) - else if( iopt .eq. 2 ) then - call pg3d_forward( -0.1 ) - else if( iopt .eq. 3 ) then - call pg3d_rotateeye( 4, 7.0 ) - else if( iopt .eq. 4 ) then - call pg3d_rotateeye( 3, 7.0 ) - else if( iopt .eq. 5 ) then - call pg3d_rotateeye( 1, 7.0 ) - else if( iopt .eq. 6 ) then - call pg3d_rotateeye( 2, 7.0 ) - else if( iopt .eq. 7 ) then - do i = 0, 360, 7 - call pg3d_rotateeye( 4, 7.0 ) - call pgpage - call drawit( diag, plot3d, status ) - call pause - end do - draw = .false. - else if( iopt .eq. 8 ) then - write( *, '(A,$)' ) 'Attribute settings: ' - read( *, '(A)' ) settings - call ast_set( plot3d, settings, status ) - else if( iopt .eq. 9 ) then - write( *, '(A,$)' ) 'Attribute name to get: ' - read( *, '(A)' ) attr - write(*,*) ast_getc( plot3d, attr, status ) - draw = .false. - else if( iopt .eq. 10 ) then - write( *, '(A,$)' ) 'Attribute name to clear: ' - read( *, '(A)' ) attr - call ast_clear( plot3d, attr, status ) - else if( iopt .eq. 11 ) then - write( *, '(A,$)' ) 'Attribute name to test: ' - read( *, '(A)' ) attr - write(*,*) ast_test( plot3d, attr, status ) - draw = .false. - else if( iopt .eq. 12 ) then - call ast_show( plot3d, status ) - draw = .false. - else if( iopt .eq. 13 ) then - lval = ast_border( plot3d, status ) - draw = .false. - else if( iopt .eq. 14 ) then - write(*,'(A,$)') 'Marker X coord: ' - read(*,*) pos(1) - write(*,'(A,$)') 'Marker Y coord: ' - read(*,*) pos(2) - write(*,'(A,$)') 'Marker Z coord: ' - read(*,*) pos(3) - write(*,'(A,$)') 'Marker type: ' - read(*,*) type - call ast_mark( plot3d, 1, 3, 1, pos, type, status ) - draw = .false. - else if( iopt .eq. 15 ) then - write(*,'(A,$)') 'Text X coord: ' - read(*,*) pos(1) - write(*,'(A,$)') 'Text Y coord: ' - read(*,*) pos(2) - write(*,'(A,$)') 'Text Z coord: ' - read(*,*) pos(3) - write(*,'(A,$)') 'Text: ' - read(*,*) text - write(*,'(A,$)') 'Justification: ' - read(*,*) just - write(*,'(A,$)') 'Up X: ' - read(*,*) up(1) - write(*,'(A,$)') 'Up Y: ' - read(*,*) up(2) - write(*,'(A,$)') 'Up Z: ' - read(*,*) up(3) - call ast_text( plot3d, text, pos, up, just, status ) - draw = .false. - else if( iopt .eq. 16 ) then - diag = 2 - else if( iopt .eq. 17 ) then - diag = 1 - else if( iopt .eq. 18 ) then - use_common = .true. - do i = 0, 90, 1 - common_par = pi*i/180.0; - call pgpage - call drawit( diag, plot3d, status ) - call pause - end do - draw = .false. - use_common = .false. - else if( iopt .eq. 19 ) then - diag = diag + 1 - write(*,*) 'Drawing diag ',diag - - else if( iopt .eq. 20 ) then - write(*,'(A,$)') 'Supply a 2-in, 2-out Mapping (outputs '// - : 'are (long,lat)):' - read(*,*) text - common_map = readtest( text, status ) - draw = .false. - - else if( iopt .eq. 21 ) then - write(*,'(A,$)') 'Value for input 1: ' - read(*,*) common_x - write(*,'(A,$)') 'Value for input 2: ' - read(*,*) common_y - - else - draw = .false. - write(*,*) 'Bad option ',iopt - end if - - if( draw ) then - call pgpage -c ok = pg3d_findnearest( 8, xc, yc, zc, iclose ) -c call ast_setc( plot3d, 'RootCorner', corn( iclose + 1 ), -c : status ) - call drawit( diag, plot3d, status ) - end if - - if( status .ne. sai__ok ) call err_flush( status ) - end do - - end - - subroutine pause - implicit none - integer i - double precision a - a = 1.0D0 - do i = 1, 2000000 - a = tan( a ) - end do - end - - subroutine drawit( diag, plot3d, status ) - implicit none - include 'AST_PAR' - include 'SAE_PAR' - integer NP - parameter ( NP = 50 ) - integer w1, w2 - real rd, pi - parameter( w1 = 6, w2 = 3, rd = 1.5, pi = 3.1415927 ) - - real common_par - integer common_map - logical use_common - double precision common_x, common_y - common /ss4/ common_par,common_x,common_y,common_map,use_common - - double precision dlat, dlon, up, north - integer diag, plot3d, status, i, j, azelmap - real x(NP), y(NP), z(NP), axlen, a1, a2, r(3), u(3), n(3), - : ang, k, cen(3), norm(3), start(3), lon, lat, origin(3), - : theta,phi - if( status .ne. sai__ok ) return - - if( diag .eq. 1 ) then - call ast_grid( plot3d, status ) - - else - axlen = 1.8 - a1 = 0.1 - a2 = a1*0.6 - lon = pi*210.0/180.0 - if( use_common ) then - lat = common_par - else - lat = pi*25.0/180.0 - endif - - do while( lat .gt. pi ) - lat = lat - 2*pi - end do - - do while( lat .lt. -pi ) - lat = lat + 2*pi - end do - - if( lat .gt. pi/2 ) then - lat = pi - lat - lon = lon + pi - - else if( lat .lt. -pi/2 ) then - lat = -pi - lat - lon = lon + pi - end if - - do while( lon .gt. 2*pi ) - lon = lon - 2*pi - end do - - do while( lon .lt. 0 ) - lon = lon + 2*pi - end do - - -c+ Fig1 (part a) - if( diag .eq. 2 ) then - call pgslw( w2 ) - cen(1) = 0.0 - cen(2) = 0.0 - cen(3) = 0.0 - call s2c( lon - pi/2, 0.0, 1.0, norm ) - call s2c( lon, 0.0, rd*0.6, start ) - call pgsci( 10 ) - call pgscr( 10, 0.0, 0.0, 1.0 ) - call arc( cen, norm, start, -lat, -rd*0.1 ) - - u(1)=0 - u(2)=0 - u(3)=1 - call s2c( lon, lat/2.2, rd*0.7, r ) - call g3dtext( 'el', r, 'CL', u, norm ) - - norm(1)=0 - norm(2)=0 - norm(3)=-1 - start(1)=rd*0.6 - start(2)=0 - start(3)=0 - call arc( cen, norm, start, lon, rd*0.1 ) - - call s2c( 110.0/180.0*PI, 0.0, rd*0.7, r ) - call g3dtext( 'az', r, 'TC', r, norm ) - - call pgsci( 1 ) - endif - - origin(1) = 0.0 - origin(2) = 0.0 - origin(3) = 0.0 - call axes( origin, axlen, '(north) u', '(east) v', - : '(zenith) w', w1, w2, 'X', 0.0, 0.0, 0.0 ) - -* Quadrant from (0,0,1) to (-1,0,0) - cen(1) = 0.0 - cen(2) = 0.0 - cen(3) = 0.0 - call s2c( (int(2*lon/pi)-1)*pi/2, 0.0, 1.0, norm ) - start(1) = 0.0 - start(2) = 0.0 - start(3) = rd - call pgslw( w2 ) - call arc( cen, norm, start, pi/2, 0.0 ) - -* Quadrant from (0,0,1) to (0,-1,0) - call s2c( int(2*lon/pi)*pi/2, 0.0, 1.0, norm ) - call arc( cen, norm, start, pi/2, 0.0 ) - -* Quadrant from (-1,0,0) to (0,-1,0) - norm(1) = 0.0 - norm(2) = 0.0 - norm(3) = 1.0 - call s2c( (int(2*lon/pi)+1)*pi/2, 0.0, rd, start ) - call arc( cen, norm, start, pi/2, 0.0 ) - -* Dashed red quadrant at az = lon degs - call s2c( lon-pi/2, 0.0, 1.0, norm ) - start(1) = 0.0 - start(2) = 0.0 - start(3) = rd - call pgsci( 10 ) - call pgscr( 10, 1.0, 0.0, 0.0 ) - call pgsls( 2 ) - call pgslw( 2 ) - call arc( cen, norm, start, pi/2, 0.0 ) - -* Dashed red line of latitude at el = lat degs - cen(1) = 0.0 - cen(2) = 0.0 - cen(3) = sin(lat)*rd - norm(1) = 0.0 - norm(2) = 0.0 - norm(3) = 1.0 - call s2c( (int(2*lon/pi)+1)*pi/2, lat, rd, start ) - call arc( cen, norm, start, pi/2, 0.0 ) - -* Dashed red line from centre to az=lon el=0 - x( 1 ) = 0.0 - y( 1 ) = 0.0 - z( 1 ) = 0.0 - x( 2 ) = cos(lon)*rd - y( 2 ) = sin(lon)*rd - z( 2 ) = 0.0 - call g3dline( 2, x, y, z ) - -* Solid red line from centre to az=210 el=45 - x( 1 ) = 0.0 - y( 1 ) = 0.0 - z( 1 ) = 0.0 - call s2c( lon, lat, rd, origin ) - x( 2 ) = origin(1) - y( 2 ) = origin(2) - z( 2 ) = origin(3) - call pgsls( 1 ) - call g3dline( 2, x, y, z ) - -c+ Fig1 - (part b) - if( diag .eq. 2 ) then - call pgscr( 10, 0.0, 0.6, 0.0 ) - call s2c( lon, lat, rd, origin ) - call axes( origin, 0.2*axlen, 'daz', 'del', ' ', w1, w2, - : 'ZYZ', lon, (pi/2 - lat), pi/2 ) - endif - - -c+ Fig2 - if( diag .eq. 3 ) then - call pgscr( 10, 0.6, 0.6, 0.0 ) - call s2c( lon, lat, rd, origin ) - call axes( origin, 0.4*axlen, 'UP', 'N', ' ', w1, w2, - : 'ZYZ', lon, (pi/2 - lat), lat ) - - - call pgscr( 10, 0.0, 0.0, 1.0 ) - call s2c( lon+0.22, lat, rd, start ) - call s2c( lon, lat, rd, cen ) - call s2c( lon, lat, rd, norm ) - call arc( cen, norm, start, -(lat-0.05), -rd*0.02 ) - - call s2c( lon+0.25, lat*1.1, rd, r ) - norm(1) = 0 - norm(2) = 0 - norm(3) = 0 - u(1) = 0 - u(2) = 0 - u(3) = 1.0 - call g3dtext( 'el', r, 'CR', u, norm ) - - endif - - -c+ Fig3 - if( diag .eq. 4 ) then - call pgscr( 10, 0.0, 0.0, 1.0 ) - call s2c( lon, lat, rd, origin ) - do i = 1, 4 - theta = i*5.0*pi/180.0 - cen(1) = cos(theta)*origin(1) - cen(2) = cos(theta)*origin(2) - cen(3) = cos(theta)*origin(3) - call s2c( lon + theta, lat, rd, start ) - call arc( cen, cen, start, 2*pi, 0.05 ) - end do - - - cen(1)=0 - cen(2)=0 - cen(3)=0 - - call s2c( pi, pi/2-pi/2, rd, start ) - call s2c( pi+pi/2, 0.0, 1.0, norm ) - - call rotvec( 'ZYZ', lon, pi/2-lat, lat, norm ) - call rotvec( 'ZYZ', lon, pi/2-lat, lat, start ) - call arc( cen, norm, start, pi/2, 0.0 ) - - - call pgscr( 10, 0.0, 1.0, 1.0 ) - call s2c( lon, lat, rd, origin ) - call axes( origin, 0.2*axlen, 'y', 'x', ' ', w1, w2, - : 'ZYZ', lon, (pi/2 - lat), lat ) - endif - - -c+ Fig4 - if( diag .eq. 5 ) then - call pgscr( 10, 0.0, 0.0, 1.0 ) - call s2c( lon, lat, rd, origin ) - do i = 1, 4 - theta = i*5.0*pi/180.0 - cen(1) = cos(theta)*origin(1) - cen(2) = cos(theta)*origin(2) - cen(3) = cos(theta)*origin(3) - call s2c( lon + theta, lat, rd, start ) - call arc( cen, cen, start, 2*pi, 0.05 ) - end do - - - cen(1)=0 - cen(2)=0 - cen(3)=0 - - call s2c( pi, pi/2-pi/2, rd, start ) - call s2c( pi+pi/2, 0.0, 1.0, norm ) - - call rotvec( 'ZYZ', lon, pi/2-lat, lat, norm ) - call rotvec( 'ZYZ', lon, pi/2-lat, lat, start ) - call arc( cen, norm, start, pi/2, 0.0 ) - - - call pgscr( 10, 0.0, 1.0, 1.0 ) - call s2c( lon, lat, 0.0, origin ) - call axes( origin, rd, 'b', 'a', 'c', w1, w2, - : 'ZYZ', lon, (pi/2 - lat), pi/2 + lat ) - endif - -c+ Fig5 - if( diag .eq. 6 ) then - call pgscr( 10, 0.0, 1.0, 1.0 ) - call s2c( lon, lat, 0.0, origin ) - call axes( origin, rd, 'b', 'a', 'c', w1, w2, - : 'ZYZ', lon, (pi/2 - lat), pi/2 + lat ) - - - call pgscr( 10, 0.0, 0.0, 1.0 ) - call axes( origin, rd, 'b''', 'a''', 'c''', w1, w2, - : 'ZYZ', lon, (pi/2 - lat), pi/2 ) - - call pgsci( 1 ) - call s2c( lon, lat, 1.0, norm ) - start(1) = 0.0 - start(2) = 0.0 - start(3) = rd*0.5 - call s2c( lon, lat, 0.0, cen ) - call arc( cen, norm, start, -lat, 0.0 ) - - call pgsci( 1 ) - call s2c( 0.5*( lon - pi/2), lat/2+0.2, rd*0.55, r ) - norm(1) = 0 - norm(2) = 0 - norm(3) = 0 - u(1) = 0 - u(2) = 0 - u(3) = 1.0 - call g3dtext( 'el', r, 'CR', u, norm ) - endif - -c+ Fig6 - if( diag .eq. 7 ) then - call s2c( lon, lat, 0.0, origin ) - - call pgscr( 10, 0.0, 0.0, 1.0 ) - call axes( origin, rd, 'b''', 'a''', 'c''', w1, w2, - : 'ZYZ', lon, (pi/2 - lat), pi ) - - call pgscr( 10, 0.0, 1.0, 0.0 ) - call axes( origin, rd, 'b''''', 'a''''', 'c''''', w1, w2, - : 'ZYZ', lon, 0.0, pi ) - - endif - - - - - - if( diag .eq. 8 ) then - call pgscr( 10, 0.0, 1.0, 1.0 ) - call s2c( lon, lat, 0.0, origin ) - call axes( origin, rd, 'a', 'b', 'c', w1, w2, - : 'ZYZ', 0.0, 0.0, 0.0 ) - end if - - if( diag .eq. 9 ) then - call pgscr( 10, 0.0, 1.0, 1.0 ) - call s2c( lon, lat, 0.0, origin ) - call axes( origin, rd, 'a', 'b', 'c', w1, w2, - : 'ZYZ', lon, 0.0, 0.0 ) - end if - - if( diag .eq. 10 ) then - call pgscr( 10, 0.0, 1.0, 1.0 ) - call s2c( lon, lat, 0.0, origin ) - call axes( origin, rd, 'a', 'b', 'c', w1, w2, - : 'ZYZ', lon, pi/2-lat, 0.0 ) - end if - - if( diag .eq. 11 ) then - call pgscr( 10, 0.0, 1.0, 1.0 ) - call s2c( lon, lat, 0.0, origin ) - call axes( origin, rd, 'a', 'b', 'c', w1, w2, - : 'ZYZ', lon, pi/2-lat, lat ) - end if - - - - - - - - - - - -c if( common_map .ne. AST__NULL .and. -c ; common_x .ne. AST__BAD .and. -c : common_y .ne. AST__BAD ) then -c call ast_tran2( common_map, 1, common_x, common_y, .true., -c : dlon, dlat, status ) -c call s2c( real(dlon), real(dlat), rd, cen ) -c call pgsci( 10 ) -c call pgscr( 10, 1.0, 0.0, 1.0 ) -c call g3dmark( cen, 2 ) -c end if - - call pgsci( 1 ) - call pgslw( 4 ) - call pgsls( 1 ) - - end if - - end - - subroutine arc( cen, normal, start, ang, arrow ) - implicit none - real cen(3), normal(3), start(3), ang, arrow, ut(3), ur(3) - integer np - parameter( NP = 50 ) - integer i - real v1(3), v2( 3 ), v1l, v2l, x(NP), y(NP), z(NP), a, ca, sa, - : t1(3), t2(3), n(3) - call copy( normal, n ) - call norm( n ) - call sub( start, cen, v1 ) - call cross( n, v1, t1 ) - call cross( t1, n, v1 ) - call mod( v1, v1l ) - call cross( v1, n, v2 ) - call mod( v2, v2l ) - do i = 1, 3 - v1( i ) = v1(i)/v1l - v2( i ) = v2(i)/v2l - end do - - do i = 1, NP - a = ang*( i - 1 )/( NP - 1 ) - ca = cos(a) - sa = sin(a) - x(i) = v1l*( v1(1)*ca + v2(1)*sa ) + cen(1) - y(i) = v1l*( v1(2)*ca + v2(2)*sa ) + cen(2) - z(i) = v1l*( v1(3)*ca + v2(3)*sa ) + cen(3) - end do - call g3dline( NP, x, y, z ) - if( arrow .ne. 0.0 ) then - ca = cos(ang) - sa = sin(ang) - do i = 1, 3 - ut(i) = sa*v1(i)-ca*v2(i) - ur(i) = ca*v1(i)+sa*v2(i) - end do - x(1) = x(NP) + arrow*( ut(1) - 0.5*ur(1) ) - y(1) = y(NP) + arrow*( ut(2) - 0.5*ur(2) ) - z(1) = z(NP) + arrow*( ut(3) - 0.5*ur(3) ) - x(2) = x(NP) - y(2) = y(NP) - z(2) = z(NP) - x(3) = x(NP) + arrow*( ut(1) + 0.5*ur(1) ) - y(3) = y(NP) + arrow*( ut(2) + 0.5*ur(2) ) - z(3) = z(NP) + arrow*( ut(3) + 0.5*ur(3) ) - call g3dline( 3, x, y, z ) - end if - end - subroutine s2c( lon, lat, r, p ) - implicit none - real lon, lat, r, p(3), k - p( 3 ) = r*sin(lat) - k = r*cos(lat) - p( 1 ) = k*cos(lon) - p( 2 ) = k*sin(lon) - end - - subroutine axes( origin, axlen, tx, ty, tz, w1, w2, order, phi, - : theta, psi ) - implicit none - character order*(*),tx*(*), ty*(*), tz*(*) - real phi, theta, psi - double precision rmat(3,3),va,vb - real axlen, a1, a2, mat(3,3),x(10),y(10),z(10),r(3),u(3),n(3), - : origin(3), sn - integer w1, w2 - a1 = 0.05 - a2 = a1*0.6 - sn = 0.0 - call deuler( order, dble(phi), dble(theta), dble(psi), rmat ) - mat(1,1) = rmat(1,1) - mat(1,2) = rmat(1,2) - mat(1,3) = rmat(1,3) - mat(2,1) = rmat(2,1) - mat(2,2) = rmat(2,2) - mat(2,3) = rmat(2,3) - mat(3,1) = rmat(3,1) - mat(3,2) = rmat(3,2) - mat(3,3) = rmat(3,3) -cc* X axis with arrow and label - if( tx .ne. ' ' ) then - x(1) = axlen - y(1) = 0.0 - z(1) = 0.0 - x(2) = -axlen - y(2) = 0.0 - z(2) = 0.0 - call mxv( mat, 2, x, y, z, origin ) - call pgslw( w1 ) - call g3dline( 2, x, y, z ) - x(1) = axlen - a1 - y(1) = -a2 - z(1) = 0.0 - x(2) = axlen - y(2) = 0.0 - z(2) = 0.0 - x(3) = axlen - a1 - y(3) = a2 - z(3) = 0.0 - call mxv( mat, 3, x, y, z, origin ) - call g3dline( 3, x, y, z ) - r(1) = axlen + a1 - r(2) = 0.0 - r(3) = a2 - u(1) = 0.0 - u(2) = 0.0 - u(3) = 1.0 - n(1) = 0.0 - n(2) = sn - n(3) = 0.0 - - call pgslw( w2 ) - call mxv2( mat, r, .true., origin ) - call g3dtext( tx, r, 'BR', u, n ) - call pgslw( w1 ) - end if -c* Y axis with arrow and label - if( ty .ne. ' ' ) then - x(1) = 0.0 - y(1) = -axlen - z(1) = 0.0 - x(2) = 0.0 - y(2) = axlen - z(2) = 0.0 - call mxv( mat, 2, x, y, z, origin ) - call g3dline( 2, x, y, z ) - x(1) = -a2 - y(1) = axlen - a1 - z(1) = 0.0 - x(2) = 0.0 - y(2) = axlen - z(2) = 0.0 - x(3) = a2 - y(3) = axlen - a1 - z(3) = 0.0 - call mxv( mat, 3, x, y, z, origin ) - call g3dline( 3, x, y, z ) - r(1) = 0.0 - r(2) = axlen + a1 - r(3) = a2 - u(1) = 0.0 - u(2) = 0.0 - u(3) = 1.0 - n(1) = sn - n(2) = 0.0 - n(3) = 0.0 - - call pgslw( w2 ) - call mxv2( mat, r, .true., origin ) - call g3dtext( ty, r, 'BR', u, n ) - call pgslw( w1 ) - end if -c* Z axis with arrow and label - if( tz .ne. ' ' ) then - x(1) = 0.0 - y(1) = 0.0 - z(1) = axlen - x(2) = 0.0 - y(2) = 0.0 - z(2) = 0.0 - call mxv( mat, 2, x, y, z, origin ) - call g3dline( 2, x, y, z ) - x(1) = -a2 - y(1) = 0.0 - z(1) = axlen - a1 - x(2) = 0.0 - y(2) = 0.0 - z(2) = axlen - x(3) = a2 - y(3) = 0.0 - z(3) = axlen - a1 - call mxv( mat, 3, x, y, z, origin ) - call g3dline( 3, x, y, z ) - r(1) = 0.0 - r(2) = 0.0 - r(3) = axlen + a1 - u(1) = 0.0 - u(2) = 0.0 - u(3) = 1.0 - n(1) = 0.0 - n(2) = 0.0 - n(3) = 0.0 - - call pgslw( w2 ) - call mxv2( mat, r, .true., origin ) - call g3dtext( tz, r, 'CR', u, n ) - call pgslw( w1 ) - end if - end - - subroutine mxv( mat, n, x, y, z, origin ) - implicit none - integer n, i - real x(n), y(n), z(n), mat(3,3), va(3),vb(3),origin(3) - do i = 1, n - va(1)= x(i) - va(2)= y(i) - va(3)= z(i) - call sla_mxv( mat, va, vb ) - x(i) = vb(1) + origin(1) - y(i) = vb(2) + origin(2) - z(i) = vb(3) + origin(3) - end do - end - - subroutine mxv2( mat, r, move, origin ) - implicit none - real r(3), mat(3,3), vb(3), origin(3) - logical move - call sla_mxv( mat, r, vb ) - if( move ) then - r(1) = vb(1) + origin(1) - r(2) = vb(2) + origin(2) - r(3) = vb(3) + origin(3) - else - r(1) = vb(1) - r(2) = vb(2) - r(3) = vb(3) - end if - end - - subroutine deuler( order, phi, theta, psi, rmat ) - implicit none - character order*(*) - double precision phi, theta, psi, rmat(3,3), t(3), smat(3,3) - double precision ang, v(3), ux(3), uy(3), uz(3), tmat(3,3), - : axvec(3) - integer n, i, j - n = len( order ) - do i = 1, 3 - ux(i) = 0.0D0 - uy(i) = 0.0D0 - uz(i) = 0.0D0 - do j = 1, 3 - rmat(i,j) = 0.0 - end do - rmat(i,i) = 1.0 - end do - ux(1) = 1.0D0 - uy(2) = 1.0D0 - uz(3) = 1.0D0 - do i = 1, 3 - if( i .le. n ) then - if( i .eq. 1 ) then - ang = phi - else if( i .eq. 2 ) then - ang = theta - else - ang = psi - end if - if( order( i : i ) .eq. 'X' ) then - do j = 1, 3 - axvec(j) = -ux(j)*ang - end do - else if( order( i : i ) .eq. 'Y' ) then - do j = 1, 3 - axvec(j) = -uy(j)*ang - end do - else if( order( i : i ) .eq. 'Z' ) then - do j = 1, 3 - axvec(j) = -uz(j)*ang - end do - else - write(*,*) 'Bad axis label (',order(i:i),') in deuler!!!' - end if - call sla_dav2m( axvec, tmat ) - do j = 1, 3 - smat(1,j) = rmat(1,j) - smat(2,j) = rmat(2,j) - smat(3,j) = rmat(3,j) - end do - call sla_dmxm( tmat, smat, rmat ) - call sla_dmxv( tmat, ux, v ) - ux(1) = v(1) - ux(2) = v(2) - ux(3) = v(3) - call sla_dmxv( tmat, uy, v ) - uy(1) = v(1) - uy(2) = v(2) - uy(3) = v(3) - call sla_dmxv( tmat, uz, v ) - uz(1) = v(1) - uz(2) = v(2) - uz(3) = v(3) - end if - end do - end - - subroutine rotvec( order, phi, theta, psi, v ) - implicit none - character order*(*) - real phi, theta, psi,v(3),vt(3) - double precision rmat(3,3) - real mat(3,3) - call deuler( order, dble(phi), dble(theta), dble(psi), rmat ) - mat(1,1) = rmat(1,1) - mat(1,2) = rmat(1,2) - mat(1,3) = rmat(1,3) - mat(2,1) = rmat(2,1) - mat(2,2) = rmat(2,2) - mat(2,3) = rmat(2,3) - mat(3,1) = rmat(3,1) - mat(3,2) = rmat(3,2) - mat(3,3) = rmat(3,3) - call sla_mxv( mat, v, vt ) - v(1) = vt(1) - v(2) = vt(2) - v(3) = vt(3) - end - - subroutine cross( a, b, c ) - implicit none - real a(3), b(3), c(3) - c(1) = a(2)*b(3) - a(3)*b(2) - c(2) = - a(1)*b(3) + a(3)*b(1) - c(3) = a(1)*b(2) - a(2)*b(1) - end - - subroutine sub( a, b, c ) - implicit none - real a(3), b(3), c(3) - c(1) = a(1) - b(1) - c(2) = a(2) - b(2) - c(3) = a(3) - b(3) - end - - subroutine add( a, b, c ) - implicit none - real a(3), b(3), c(3) - c(1) = a(1) + b(1) - c(2) = a(2) + b(2) - c(3) = a(3) + b(3) - end - - subroutine dot( a, b, c ) - implicit none - real a(3), b(3), c - c = a(1)*b(1) + a(2)*b(2) + a(3)*b(3) - end - - subroutine mod( a, c ) - implicit none - real a(3), c - c = sqrt( a(1)*a(1) + a(2)*a(2) + a(3)*a(3) ) - end - - subroutine copy( a, b ) - implicit none - real a(3), b(3) - b(1) = a(1) - b(2) = a(2) - b(3) = a(3) - end - - subroutine norm( a ) - implicit none - real a(3), b - call mod( a, b ) - if( b .ne. 0.0 ) then - a(1) = a(1)/b - a(2) = a(2)/b - a(3) = a(3)/b - end if - end - - subroutine g3dtext( t, r, j, u, n ) - implicit none - character*(*) t, j - real r(3), u(3), n(3), r2(3),u2(3),n2(3) - integer junk, ast_g3dtext - - call copy( r, r2 ) - call copy( u, u2 ) - call copy( n, n2 ) - r2(2) = -r2(2) - u2(2) = -u2(2) - n2(2) = -n2(2) - - junk = ast_g3dtext( t, r2, j, u2, n2 ) - end - - subroutine g3dline( n, x, y, z ) - implicit none - integer i, n - logical junk, ast_g3dline - real x(n), y(n), z(n) - - do i = 1, n - y(i)=-y(i) - end do - - junk = ast_g3dline( n, x, y, z ) - - do i = 1, n - y(i)=-y(i) - end do - - end - - subroutine g3dmark( pos, type ) - implicit none - real pos(3) - integer type - logical junk, ast_g3dmark - - pos(2) = -pos(2) - junk = ast_g3dmark( 1, pos(1), pos(2), pos(3), type, pos ) - pos(2) = -pos(2) - - end - - - - - - subroutine maketanmap( new, lon, lat, rot, azelmap, status ) - implicit none - - include 'SAE_PAR' - include 'AST_PAR' - - logical new - double precision lon, lat, rot - integer azelmap, status - - double precision mmt( 2 ), mat(9), mat1(9), mat2(3) - integer tanmap, tmap, sphmap, wcsmap, m1, m2, m3, c0, c1, matmap1, - : matmap2 - double precision pi, piby2 - - if( status .ne. sai__ok ) return - - pi = 3.1415927D0 - piby2 = pi/2.0 - - c0 = ast_SphMap( 'UnitRadius=1', status ) - wcsmap = ast_WcsMap( 2, AST__TAN, 1, 2, ' ', status ) - call ast_Invert( wcsmap, status ) - call ast_Invert( c0, status ) - c1 = ast_CmpMap( wcsmap, c0, .true., ' ', status ) - call ast_Invert( c0, status ) - - if( new ) then - mmt( 1 ) = -1.0 - mmt( 2 ) = -1.0 - tmap = ast_MatrixMap( 2, 2, 1, mmt, ' ', status ) - -* Note, sla_deuler groups columns in the returned matrix, but slaDeuler -* groups rows. AST always expects rows to be grouped, so transpose the -* matrices returned by sla_deuler. - call sla_Deuler( 'Z', -rot, 0.0D0, 0.0D0, mat1 ) - call trans( mat1 ) - m1 = ast_MatrixMap( 3, 3, 0, mat1, ' ', status ) - - call sla_Deuler( 'Y', (PIBY2-lat), 0.0D0, 0.0D0, mat1 ) - call trans( mat1 ) - m2 = ast_MatrixMap( 3, 3, 0, mat1, ' ', status ) - - call sla_Deuler( 'Z', (lon-PI), 0.0D0, 0.0D0, mat1 ) - call trans( mat1 ) - m3 = ast_MatrixMap( 3, 3, 0, mat1, ' ', status ) - - matmap1 = ast_CmpMap( m1, ast_CmpMap( m2, m3, .true., ' ', - : status ), - : .TRUE., ' ', status ) - - mat2( 1 ) = 1.0 - mat2( 2 ) = -1.0 - mat2( 3 ) = 1.0 - matmap2 = ast_MatrixMap( 3, 3, 1, mat2, ' ', status ) - - m1 = ast_CmpMap( c1, matmap1, .true., ' ', status ) - m2 = ast_CmpMap( m1, matmap2, .true., ' ', status ) - tanmap = ast_CmpMap( m2, c0, .true., ' ', status ) - azelmap = ast_CmpMap( tmap, tanmap, .true., ' ', status ) - - else - -* Note, sla_deuler groups columns in the returned matrix, but slaDeuler -* groups rows. AST always expects rows to be grouped, so transpose the -* matrices returned by sla_deuler. - call sla_Deuler( 'Z', rot, 0.0D0, 0.0D0, mat1 ) - call trans( mat1 ) - m1 = ast_MatrixMap( 3, 3, 0, mat1, ' ', status ) - - call sla_Deuler( 'Y', -(PIBY2-lat), 0.0D0, 0.0D0, mat1 ) - call trans( mat1 ) - m2 = ast_MatrixMap( 3, 3, 0, mat1, ' ', status ) - - call sla_Deuler( 'Z', -lon, 0.0D0, 0.0D0, mat1 ) - call trans( mat1 ) - m3 = ast_MatrixMap( 3, 3, 0, mat1, ' ', status ) - - - matmap1 = ast_CmpMap( m1, ast_CmpMap( m2, m3, .true., ' ', - : status ), - : .TRUE., ' ', status ) - - m1 = ast_CmpMap( c1, matmap1, .true., ' ', status ) - - - - - - - mmt( 1 ) = -1.0 - mmt( 2 ) = 1.0 - tmap = ast_MatrixMap( 2, 2, 1, mmt, ' ', status ) - m2 = ast_CmpMap( tmap, m1, .true., ' ', status ) - - - - - - - azelmap = ast_CmpMap( m2, c0, .true., ' ', status ) - - end if - - end - - subroutine trans( mat ) - implicit none - double precision t, mat(9) - - t = mat(8) - mat(8) = mat(6) - mat(6) = t - - t = mat(3) - mat(3) = mat(7) - mat(7) = t - - t = mat(2) - mat(2) = mat(4) - mat(4) = t - - end diff --git a/ast/ast_tester/testpolymap.f b/ast/ast_tester/testpolymap.f deleted file mode 100644 index 1251894..0000000 --- a/ast/ast_tester/testpolymap.f +++ /dev/null @@ -1,319 +0,0 @@ - program testpolymap - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'PRM_PAR' - - integer status, pm, pm2, i, maxord, nco - double precision coeff( 16 ), lbnd( 2 ), ubnd( 2 ), - : xin(3), yin(3), xout(3), yout(3), errlim, - : xin2(3), yin2(3), coeff_1d(6), acc, - : coeff2( 24 ), coeff3( 6*4 ), err, maxacc, - : cofs( 20 ) - - data coeff / 1.0, 1.0, 0.0, 0.0, - : 2.0, 1.0, 1.0, 0.0, - : 1.0, 2.0, 0.0, 0.0, - : 3.0, 2.0, 0.0, 1.0 / - - data coeff2 / 1.0, 1.0, 0.0, 0.0, - : 2.0, 1.0, 1.0, 0.0, - : 1.0, 1.0, 0.0, 1.0, - : 1.0, 2.0, 0.0, 0.0, - : 1.0, 2.0, 1.0, 0.0, - : 2.0, 2.0, 0.0, 1.0 / - -c data coeff3 / -0.1, 1.0, 0.0, 0.0, -c : 0.99, 1.0, 1.0, 0.0, -c : 1.0E-4, 1.0, 1.0, 1.0, -c : -1.0E-9, 1.0, 2.0, 1.0, -c : -0.1, 2.0, 0.0, 0.0, -c : 0.99, 2.0, 0.0, 1.0, -c : 1.0E-4, 2.0, 1.0, 1.0, -c : -1.0E-9, 2.0, 1.0, 2.0 / - - data coeff3 / -0.1, 1.0, 0.0, 0.0, - : 0.99, 1.0, 1.0, 0.0, - : 1.0E-4, 1.0, 1.0, 1.0, - : -0.1, 2.0, 0.0, 0.0, - : 0.99, 2.0, 0.0, 1.0, - : 1.0E-4, 2.0, 1.0, 1.0 / - - - data coeff_1d / 1.0, 1.0, 0.0, - : 2.0, 1.0, 1.0 / - - data lbnd / -10.0D2, -10.0D2 / - data ubnd / 10.0D2, 10.0D2 / - - - - status = sai__ok - call ast_begin( status ) - -c call ast_watchmemory( 131 ) - - acc = 1.0D-7 - errlim = 1000*acc - maxacc = 1.0D-3 - maxord = 10 - - pm = ast_polymap( 2, 2, 4, coeff, 0, coeff, ' ', status ) - - call ast_polycoeffs( pm, .true., 0, 0.0D0, nco, status ) - if( nco .ne. 4 ) then - call stopit( -1, status ) - endif - - call ast_polycoeffs( pm, .false., 0, 0.0D0, nco, status ) - if( nco .ne. 0 ) then - call stopit( -2, status ) - endif - - call ast_polycoeffs( pm, .true., 20, cofs, nco, status ) - if( nco .ne. 4 ) then - call stopit( -3, status ) - else - do i = 1, 16 - if( cofs( i ) .ne. coeff( i ) ) then - call stopit( -4, status ) - end if - end do - endif - - pm2 = ast_polytran( pm, .FALSE., acc, maxacc, maxord, lbnd, - : ubnd, status ) - - xin( 1 ) = 1.0d0 - xin( 2 ) = 100.0d0 - xin( 3 ) = -50.0d0 - yin( 1 ) = 1.0d0 - yin( 2 ) = 100.0d0 - yin( 3 ) = -50.0d0 - - call ast_tran2( pm2, 3, xin, yin, .true., xout, yout, - : status ) - call ast_tran2( pm2, 3, xout, yout, .false., xin2, yin2, - : status ) - - do i = 1, 3 - if( abs( xin( i ) - xin2( i ) ) .gt. errlim ) then - call stopit( 1, status ) - endif - if( abs( yin( i ) - yin2( i ) ) .gt. errlim ) then - call stopit( 2, status ) - endif - end do - - - - call ast_setl( pm2, 'IterInverse', .TRUE., status ) - call ast_tran2( pm2, 3, xout, yout, .false., xin2, yin2, - : status ) - do i = 1, 3 - if( abs( xin( i ) - xin2( i ) ) .gt. errlim ) then - call stopit( 1001, status ) - endif - if( abs( yin( i ) - yin2( i ) ) .gt. errlim ) then - call stopit( 1002, status ) - endif - end do - - - - - - pm = ast_polymap( 1, 1, 2, coeff_1d, 0, coeff_1d, ' ', status ) - pm2 = ast_polytran( pm, .FALSE., acc, maxacc, maxord, lbnd, - : ubnd, status ) - - xin( 1 ) = 1.0d0 - xin( 2 ) = 100.0d0 - xin( 3 ) = -50.0d0 - - call ast_tran1( pm2, 3, xin, .true., xout, status ) - call ast_tran1( pm2, 3, xout, .false., xin2, status ) - - do i = 1, 3 - if( abs( xin( i ) - xin2( i ) ) .gt. errlim ) then - call stopit( 3, status ) - endif - end do - - call ast_setl( pm2, 'IterInverse', .TRUE., status ) - call ast_tran1( pm2, 3, xout, .false., xin2, status ) - - do i = 1, 3 - if( abs( xin( i ) - xin2( i ) ) .gt. errlim ) then - call stopit( 3001, status ) - endif - end do - - - - - pm = ast_polymap( 2, 2, 6, coeff2, 0, coeff2, ' ', status ) - pm2 = ast_polytran( pm, .FALSE., acc, maxacc, maxord, lbnd, - : ubnd, status ) - - xin( 1 ) = 1.0d0 - xin( 2 ) = 100.0d0 - xin( 3 ) = -50.0d0 - yin( 1 ) = 1.0d0 - yin( 2 ) = 100.0d0 - yin( 3 ) = -50.0d0 - - call ast_tran2( pm2, 3, xin, yin, .true., xout, yout, - : status ) - call ast_tran2( pm2, 3, xout, yout, .false., xin2, yin2, - : status ) - - do i = 1, 3 - if( abs( xin( i ) - xin2( i ) ) .gt. errlim ) then - call stopit( 4, status ) - endif - if( abs( yin( i ) - yin2( i ) ) .gt. errlim ) then - call stopit( 5, status ) - endif - end do - - call ast_setl( pm2, 'IterInverse', .TRUE., status ) - call ast_tran2( pm2, 3, xout, yout, .false., xin2, yin2, - : status ) - - do i = 1, 3 - if( abs( xin( i ) - xin2( i ) ) .gt. errlim ) then - call stopit( 4001, status ) - endif - if( abs( yin( i ) - yin2( i ) ) .gt. errlim ) then - call stopit( 5001, status ) - endif - end do - - - - - - - - pm = ast_polymap( 2, 2, 6, coeff3, 0, coeff3, ' ', status ) - pm2 = ast_polytran( pm, .FALSE., acc, maxacc, maxord, lbnd, - : ubnd, status ) - - xin( 1 ) = 1.0d0 - xin( 2 ) = 100.0d0 - xin( 3 ) = -50.0d0 - yin( 1 ) = 1.0d0 - yin( 2 ) = 100.0d0 - yin( 3 ) = -50.0d0 - - call ast_tran2( pm2, 3, xin, yin, .true., xout, yout, - : status ) - call ast_tran2( pm2, 3, xout, yout, .false., xin2, yin2, - : status ) - - do i = 1, 3 - if( abs( xin( i ) - xin2( i ) ) .gt. errlim ) then - write(*,*) i, xin( i ), xin2( i ), errlim - call stopit( 6, status ) - endif - if( abs( yin( i ) - yin2( i ) ) .gt. errlim ) then - call stopit( 7, status ) - endif - end do - - - call ast_setl( pm2, 'IterInverse', .TRUE., status ) - call ast_tran2( pm2, 3, xout, yout, .false., xin2, yin2, - : status ) - - do i = 1, 3 - if( abs( xin( i ) - xin2( i ) ) .gt. errlim ) then - write(*,*) i, xin( i ), xin2( i ), errlim - call stopit( 6001, status ) - endif - if( abs( yin( i ) - yin2( i ) ) .gt. errlim ) then - call stopit( 7001, status ) - endif - end do - - - - if( .not. ast_getl( pm, 'TranForward', status ) ) then - call stopit( 8001, status ) - else if( .not. ast_getl( pm, 'IterInverse', status ) ) then - call stopit( 8002, status ) - else if( .not. ast_getl( pm, 'TranInverse', status ) ) then - call stopit( 8003, status ) - endif - - call ast_setl( pm, 'IterInverse', .FALSE., status ) - - if( .not. ast_getl( pm, 'TranForward', status ) ) then - call stopit( 8004, status ) - else if( ast_getl( pm, 'IterInverse', status ) ) then - call stopit( 8005, status ) - else if( ast_getl( pm, 'TranInverse', status ) ) then - call stopit( 8006, status ) - endif - - call ast_invert( pm, status ) - - if( ast_getl( pm, 'TranForward', status ) ) then - call stopit( 8007, status ) - else if( ast_getl( pm, 'IterInverse', status ) ) then - call stopit( 8008, status ) - else if( .not. ast_getl( pm, 'TranInverse', status ) ) then - call stopit( 8009, status ) - endif - - call ast_setl( pm, 'IterInverse', .TRUE., status ) - - if( .not. ast_getl( pm, 'TranForward', status ) ) then - call stopit( 8010, status ) - else if( .not. ast_getl( pm, 'IterInverse', status ) ) then - call stopit( 8011, status ) - else if( .not. ast_getl( pm, 'TranInverse', status ) ) then - call stopit( 8012, status ) - endif - - call ast_invert( pm, status ) - - if( .not. ast_getl( pm, 'TranForward', status ) ) then - call stopit( 8013, status ) - else if( .not. ast_getl( pm, 'IterInverse', status ) ) then - call stopit( 8014, status ) - else if( .not. ast_getl( pm, 'TranInverse', status ) ) then - call stopit( 8015, status ) - endif - - - - - - - - - - call ast_end( status ) - call ast_activememory( 'testpolymap' ); - call ast_flushmemory( 1 ) - - if( status .eq. sai__ok ) then - write(*,*) 'All PolyMap tests passed' - else - write(*,*) 'PolyMap tests failed' - end if - - end - - - subroutine stopit( i, status ) - implicit none - include 'SAE_PAR' - integer i, status - if( status .eq. sai__ok ) then - write( *,* ) 'Error ',i - status = sai__error - end if - end diff --git a/ast/ast_tester/testrate.f b/ast/ast_tester/testrate.f deleted file mode 100644 index 4803294..0000000 --- a/ast/ast_tester/testrate.f +++ /dev/null @@ -1,344 +0,0 @@ - program testrate - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'PRM_PAR' - - integer status, m, outp(4), inp(4), c1, c2, c3, c4 - double precision at(4), r, mat(4), b1(2), b2(2), a1(2), - : a2(4) - - status = sai__ok - - at(1) = 10.0D0 - at(2) = 1.2D6 - -* UnitMap - m = ast_unitmap( 2, ' ', status ) - - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. 1.0D0 ) call stopit( 1, r, status ) - r = ast_rate( m, at, 2, 1, status ) - if( r .ne. 0.0D0 ) call stopit( 2, r, status ) - - call ast_invert( m, status ) - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. 1.0D0 ) call stopit( 202, r, status ) - -* ZoomMap - m = ast_zoommap( 2, 2.0D0, ' ', status ) - - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. 2.0D0 ) call stopit( 3, r, status ) - r = ast_rate( m, at, 2, 1, status ) - if( r .ne. 0.0D0 ) call stopit( 4, r, status ) - - call ast_invert( m, status ) - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. 0.5D0 ) call stopit( 402, r, status ) - -* MatrixMap - m = ast_matrixmap( 2, 2, 2, mat, ' ', status ) - - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. 1.0D0 ) call stopit( 5, r, status ) - r = ast_rate( m, at, 2, 1, status ) - if( r .ne. 0.0D0 ) call stopit( 6, r, status ) - - call ast_invert( m, status ) - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. 1.0D0 ) call stopit( 602, r, status ) - r = ast_rate( m, at, 1, 2, status ) - if( r .ne. 0.0D0 ) call stopit( 603, r, status ) - - mat(1)= -2.0D0 - mat(2)= 1.5D0 - m = ast_matrixmap( 2, 2, 1, mat, ' ', status ) - - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. -2.0D0 ) call stopit( 7, r, status ) - r = ast_rate( m, at, 2, 2, status ) - if( r .ne. 1.5D0 ) call stopit( 8, r, status ) - r = ast_rate( m, at, 1, 2, status ) - if( r .ne. 0.0D0 ) call stopit( 9, r, status ) - r = ast_rate( m, at, 2, 1, status ) - if( r .ne. 0.0D0 ) call stopit( 10, r, status ) - - call ast_invert( m, status ) - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. -0.5D0 ) call stopit( 1002, r, status ) - - mat(1)= 1.2D0 - mat(2)= 1.6D0 - mat(3)= -1.6D0 - mat(4)= 2.2D0 - m = ast_matrixmap( 2, 2, 0, mat, ' ', status ) - - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. 1.2D0 ) call stopit( 11, r, status ) - r = ast_rate( m, at, 2, 2, status ) - if( r .ne. 2.2D0 ) call stopit( 12, r, status ) - r = ast_rate( m, at, 1, 2, status ) - if( r .ne. 1.6D0 ) call stopit( 13, r, status ) - r = ast_rate( m, at, 2, 1, status ) - if( r .ne. -1.6D0 ) call stopit( 14, r, status ) - - call ast_invert( m, status ) - - r = ast_rate( m, at, 1, 1, status ) - if( abs( r - 0.423076923 ) .gt. 1.0E-6 ) call stopit( 15, r, - : status ) - - r = ast_rate( m, at, 2, 2, status ) - if( abs( r - 0.230769231 ) .gt. 1.0E-6 ) call stopit( 16, r, - : status ) - - r = ast_rate( m, at, 1, 2, status ) - if( abs( r + 0.307692308 ) .gt. 1.0E-6 ) call stopit( 17, r, - : status ) - - r = ast_rate( m, at, 2, 1, status ) - if( abs( r - 0.307692308 ) .gt. 1.0E-6 ) call stopit( 18, r, - : status ) - - -* ShiftMap - mat(1) = -1.2D0 - mat(2) = 1.2D0 - m = ast_shiftmap( 2, mat, ' ', status ) - - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. 1.0D0 ) call stopit( 20, r, status ) - r = ast_rate( m, at, 2, 1, status ) - if( r .ne. 0.0D0 ) call stopit( 21, r, status ) - - call ast_invert( m, status ) - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. 1.0D0 ) call stopit( 23, r, status ) - - -* WinMap - a1( 1 ) = 0.0D0 - a1( 2 ) = 0.0D0 - a2( 1 ) = 1.0D0 - a2( 2 ) = 1.0D0 - b1( 1 ) = 0.5D0 - b1( 2 ) = 0.5D0 - b2( 1 ) = 2.5D0 - b2( 2 ) = 2.5D0 - m = ast_winmap( 2, a1, a2, b1, b2, ' ', status ) - - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. 2.0D0 ) call stopit( 24, r, status ) - r = ast_rate( m, at, 2, 1, status ) - if( r .ne. 0.0D0 ) call stopit( 25, r, status ) - - r = ast_rate( m, at, 2, 2, status ) - if( r .ne. 2.0D0 ) call stopit( 26, r, status ) - r = ast_rate( m, at, 1, 2, status ) - if( r .ne. 0.0D0 ) call stopit( 27, r, status ) - - - call ast_invert( m, status ) - - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. 0.5D0 ) call stopit( 29, r, status ) - r = ast_rate( m, at, 2, 1, status ) - if( r .ne. 0.0D0 ) call stopit( 30, r, status ) - - r = ast_rate( m, at, 2, 2, status ) - if( r .ne. 0.5D0 ) call stopit( 31, r, status ) - r = ast_rate( m, at, 1, 2, status ) - if( r .ne. 0.0D0 ) call stopit( 32, r, status ) - - - -* PermMap - outp(1)=2 - outp(2)=1 - inp(1)=1 - inp(2)=2 - m = ast_permmap( 2, inp, 2, outp, 0.0D0, ' ', status ) - - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. 0.0D0 ) call stopit( 34, r, status ) - - r = ast_rate( m, at, 2, 1, status ) - if( r .ne. 1.0D0 ) call stopit( 35, r, status ) - - r = ast_rate( m, at, 2, 2, status ) - if( r .ne. 0.0D0 ) call stopit( 37, r, status ) - - r = ast_rate( m, at, 1, 2, status ) - if( r .ne. 1.0D0 ) call stopit( 38, r, status ) - - call ast_invert( m, status ) - - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. 1.0D0 ) call stopit( 40, r, status ) - - r = ast_rate( m, at, 2, 1, status ) - if( r .ne. 0.0D0 ) call stopit( 41, r, status ) - - r = ast_rate( m, at, 2, 2, status ) - if( r .ne. 1.0D0 ) call stopit( 43, r, status ) - - r = ast_rate( m, at, 1, 2, status ) - if( r .ne. 0.0D0 ) call stopit( 44, r, status ) - -* TranMap - a1( 1 ) = 0.0D0 - a1( 2 ) = 0.0D0 - a2( 1 ) = 1.0D0 - a2( 2 ) = 1.0D0 - b1( 1 ) = 0.5D0 - b1( 2 ) = 0.5D0 - b2( 1 ) = 2.5D0 - b2( 2 ) = 2.5D0 - c1 = ast_winmap( 2, a1, a2, b1, b2, ' ', status ) - - mat(1)= 1.2D0 - mat(2)= 1.6D0 - mat(3)= -1.6D0 - mat(4)= 2.2D0 - c2 = ast_matrixmap( 2, 2, 0, mat, ' ', status ) - - m = ast_tranmap( c1, c2, ' ', status ) - - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. 2.0D0 ) call stopit( 46, r, status ) - r = ast_rate( m, at, 2, 1, status ) - if( r .ne. 0.0D0 ) call stopit( 47, r, status ) - - r = ast_rate( m, at, 2, 2, status ) - if( r .ne. 2.0D0 ) call stopit( 48, r, status ) - r = ast_rate( m, at, 1, 2, status ) - if( r .ne. 0.0D0 ) call stopit( 49, r, status ) - - call ast_invert( m, status ) - - r = ast_rate( m, at, 1, 1, status ) - if( abs( r - 0.423076923 ) .gt. 1.0E-6 ) call stopit( 51, r, - : status ) - r = ast_rate( m, at, 2, 2, status ) - if( abs( r - 0.230769231 ) .gt. 1.0E-6 ) call stopit( 52, r, - : status ) - r = ast_rate( m, at, 1, 2, status ) - if( abs( r + 0.307692308 ) .gt. 1.0E-6 ) call stopit( 53, r, - : status ) - r = ast_rate( m, at, 2, 1, status ) - if( abs( r - 0.307692308 ) .gt. 1.0E-6 ) call stopit( 54, r, - : status ) - - -* CmpMap - mat(1) = -1.0D0 - mat(2) = 1.0D0 - c1 = ast_shiftmap( 2, mat, ' ', status ) - mat(1)= 1.0D0 - mat(2)= 2.0D0 - mat(3)= -2.0D0 - mat(4)= 3.0D0 - c2 = ast_matrixmap( 2, 2, 0, mat, ' ', status ) - c3 = ast_cmpmap( c1, c2, 0, ' ', status ) - - outp(1) = 3 - outp(2) = 4 - outp(3) = 1 - outp(4) = 2 - inp(1) = 3 - inp(2) = 4 - inp(3) = 1 - inp(4) = 2 - c1 = ast_permmap( 4, inp, 4, outp, 0.0D0, ' ', status ) - c2 = ast_ZoomMap( 4, 0.25D0, ' ', status ) - call ast_invert( c2, status ) - - c4 = ast_cmpmap( c1, c2, 1, ' ', status ) - call ast_invert( c4, status ) - - m = ast_cmpmap( c3, c4, 1, ' ', status ) - - call ast_invert( c2, status ) - call ast_invert( c3, status ) - call ast_invert( c4, status ) - - at(1) = 1.0D0 - at(2) = 2.0D0 - at(3) = 3.0D0 - at(4) = 4.0D0 - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. 0.0D0 ) call stopit( 55, r, status ) - - r = ast_rate( m, at, 1, 2, status ) - if( r .ne. 0.0D0 ) call stopit( 56, r, status ) - - r = ast_rate( m, at, 1, 3, status ) - if( abs( r - 0.25D0 ) .gt. 1.0D-6 ) call stopit( 57, r, status ) - - r = ast_rate( m, at, 1, 4, status ) - if( r .ne. 0.5D0 ) call stopit( 58, r, status ) - - r = ast_rate( m, at, 3, 1, status ) - if( r .ne. 0.25D0 ) call stopit( 59, r, status ) - - r = ast_rate( m, at, 3, 2, status ) - if( r .ne. 0.0D0 ) call stopit( 60, r, status ) - - r = ast_rate( m, at, 3, 3, status ) - if( r .ne. 0.0D0 ) call stopit( 61, r, status ) - - r = ast_rate( m, at, 3, 4, status ) - if( r .ne. 0.0D0 ) call stopit( 62, r, status ) - - - call ast_invert( m, status ) - - r = ast_rate( m, at, 1, 1, status ) - if( r .ne. 0.0D0 ) call stopit( 63, r, status ) - - r = ast_rate( m, at, 1, 2, status ) - if( r .ne. 0.0D0 ) call stopit( 64, r, status ) - - r = ast_rate( m, at, 1, 3, status ) - if( r .ne. 4.0D0 ) call stopit( 65, r, status ) - - r = ast_rate( m, at, 1, 4, status ) - if( r .ne. 0.0D0 ) call stopit( 66, r, status ) - - r = ast_rate( m, at, 3, 1, status ) - if( abs( r - 12.0D0/7.0D0 ) .gt. 1.0D-6 ) - : call stopit( 67, r, status ) - - r = ast_rate( m, at, 3, 2, status ) - if( abs( r - (-8.0D0/7.0D0) ) .gt. 1.0D-6 ) - : call stopit( 68, r, status ) - - r = ast_rate( m, at, 3, 3, status ) - if( r .ne. 0.0D0 ) call stopit( 69, r, status ) - - r = ast_rate( m, at, 3, 4, status ) - if( r .ne. 0.0D0 ) call stopit( 70, r, status ) - - - - - if( status .eq. sai__ok ) then - write(*,*) 'All AST_RATE tests passed' - else - write(*,*) 'AST_RATE tests failed' - end if - - end - - - subroutine stopit( i, r, status ) - implicit none - include 'SAE_PAR' - integer i, status - double precision r - if( status .eq. sai__ok ) then - write( *,* ) 'Error ',i,': ',r - status = sai__error - end if - end diff --git a/ast/ast_tester/testratemap.f b/ast/ast_tester/testratemap.f deleted file mode 100644 index 720a4b9..0000000 --- a/ast/ast_tester/testratemap.f +++ /dev/null @@ -1,148 +0,0 @@ - program testratemap - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'PRM_PAR' - - integer status, m, outp(4), inp(4), c1, c2, c3, c4, rm - double precision at(4), r, mat(4), b1(2), b2(2), a1(2), - : a2(4) - - status = sai__ok - - at(1) = 10.0D0 - at(2) = 1.2D6 - - mat(1) = -1.0D0 - mat(2) = 1.0D0 - c1 = ast_shiftmap( 2, mat, ' ', status ) - mat(1)= 1.0D0 - mat(2)= 2.0D0 - mat(3)= -2.0D0 - mat(4)= 3.0D0 - c2 = ast_matrixmap( 2, 2, 0, mat, ' ', status ) - c3 = ast_cmpmap( c1, c2, 0, ' ', status ) - - outp(1) = 3 - outp(2) = 4 - outp(3) = 1 - outp(4) = 2 - inp(1) = 3 - inp(2) = 4 - inp(3) = 1 - inp(4) = 2 - c1 = ast_permmap( 4, inp, 4, outp, 0.0D0, ' ', status ) - c2 = ast_ZoomMap( 4, 0.25D0, ' ', status ) - call ast_invert( c2, status ) - - c4 = ast_cmpmap( c1, c2, 1, ' ', status ) - call ast_invert( c4, status ) - - m = ast_cmpmap( c3, c4, 1, ' ', status ) - - call ast_invert( c2, status ) - call ast_invert( c3, status ) - call ast_invert( c4, status ) - - rm = ast_ratemap( m, 1, 1, ' ', status ) - at(1) = 1.0D0 - at(2) = 2.0D0 - at(3) = 3.0D0 - at(4) = 4.0D0 - call ast_trann( rm, 1, 4, 1, at, 1, 1, 1, r, status ) - if( r .ne. 0.0D0 ) call stopit( 1, r, status ) - - if( .not. ast_getl( rm, 'TranForward', status ) ) call stopit( 2, - : r, status ) - - if( ast_getl( rm, 'TranInverse', status ) ) call stopit( 3, r, - : status ) - - rm = ast_ratemap( m, 1, 2, ' ', status ) - call ast_trann( rm, 1, 4, 1, at, 1, 1, 1, r, status ) - if( r .ne. 0.0D0 ) call stopit( 4, r, status ) - - rm = ast_ratemap( m, 1, 3, ' ', status ) - call ast_trann( rm, 1, 4, 1, at, 1, 1, 1, r, status ) - if( abs( r - 0.25D0 ) .gt. 1.0D-6 ) call stopit( 5, r, status ) - - rm = ast_ratemap( m, 1, 4, ' ', status ) - call ast_trann( rm, 1, 4, 1, at, 1, 1, 1, r, status ) - if( r .ne. 0.5D0 ) call stopit( 6, r, status ) - - rm = ast_ratemap( m, 3, 1, ' ', status ) - call ast_trann( rm, 1, 4, 1, at, 1, 1, 1, r, status ) - if( r .ne. 0.25D0 ) call stopit( 7, r, status ) - - rm = ast_ratemap( m, 3, 2, ' ', status ) - call ast_trann( rm, 1, 4, 1, at, 1, 1, 1, r, status ) - if( r .ne. 0.0D0 ) call stopit( 8, r, status ) - - rm = ast_ratemap( m, 3, 3, ' ', status ) - call ast_trann( rm, 1, 4, 1, at, 1, 1, 1, r, status ) - if( r .ne. 0.0D0 ) call stopit( 9, r, status ) - - rm = ast_ratemap( m, 3, 4, ' ', status ) - call ast_trann( rm, 1, 4, 1, at, 1, 1, 1, r, status ) - if( r .ne. 0.0D0 ) call stopit( 10, r, status ) - - call ast_invert( m, status ) - - rm = ast_ratemap( m, 1, 1, ' ', status ) - call ast_trann( rm, 1, 4, 1, at, 1, 1, 1, r, status ) - if( r .ne. 0.0D0 ) call stopit( 11, r, status ) - - rm = ast_ratemap( m, 1, 2, ' ', status ) - call ast_trann( rm, 1, 4, 1, at, 1, 1, 1, r, status ) - if( r .ne. 0.0D0 ) call stopit( 12, r, status ) - - rm = ast_ratemap( m, 1, 3, ' ', status ) - call ast_trann( rm, 1, 4, 1, at, 1, 1, 1, r, status ) - if( r .ne. 4.0D0 ) call stopit( 13, r, status ) - - rm = ast_ratemap( m, 1, 4, ' ', status ) - call ast_trann( rm, 1, 4, 1, at, 1, 1, 1, r, status ) - if( r .ne. 0.0D0 ) call stopit( 14, r, status ) - - rm = ast_ratemap( m, 3, 1, ' ', status ) - call ast_trann( rm, 1, 4, 1, at, 1, 1, 1, r, status ) - if( abs( r - 12.0D0/7.0D0 ) .gt. 1.0E-6 ) - : call stopit( 15, r, status ) - - rm = ast_ratemap( m, 3, 2, ' ', status ) - call ast_trann( rm, 1, 4, 1, at, 1, 1, 1, r, status ) - if( abs( r - (-8.0D0/7.0D0) ) .gt. 1.0E-6 ) - : call stopit( 16, r, status ) - - rm = ast_ratemap( m, 3, 3, ' ', status ) - call ast_trann( rm, 1, 4, 1, at, 1, 1, 1, r, status ) - if( r .ne. 0.0D0 ) call stopit( 17, r, status ) - - rm = ast_ratemap( m, 3, 4, ' ', status ) - call ast_trann( rm, 1, 4, 1, at, 1, 1, 1, r, status ) - if( r .ne. 0.0D0 ) call stopit( 18, r, status ) - - - - - - - if( status .eq. sai__ok ) then - write(*,*) 'All RateMap tests passed' - else - write(*,*) 'RateMap tests failed' - end if - - end - - - subroutine stopit( i, r, status ) - implicit none - include 'SAE_PAR' - integer i, status - double precision r - if( status .eq. sai__ok ) then - write( *,* ) 'Error ',i,': ',r - status = sai__error - end if - end diff --git a/ast/ast_tester/testrebin.f b/ast/ast_tester/testrebin.f deleted file mode 100644 index 5ec976f..0000000 --- a/ast/ast_tester/testrebin.f +++ /dev/null @@ -1,4176 +0,0 @@ - program testrebin - implicit none - include 'SAE_PAR' - external test1, test2, test3, test4, test5, test6, test7, test8, - : test9 - integer status - status = sai__ok - - call ast_begin( status ) - - call tester( test7, status ) - call tester( test8, status ) - call tester( test9, status ) - call tester( test1, status ) - call tester( test2, status ) - call tester( test3, status ) - call tester( test4, status ) - call tester( test5, status ) - call tester( test6, status ) - - call ast_end( status ) - call ast_flushmemory( 1 ) - - - if( status .eq. sai__ok ) then - write(*,*) 'All AST_REBIN tests passed' - else - write(*,*) 'AST_REBIN tests failed' - end if - - end - - - - -* -* Do a given test with a all data types and spread functions. -* - subroutine tester( testfun, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'PRM_PAR' - include 'CNF_PAR' - - integer m, lbnd_in(10), ubnd_in(10), ipin, ipin_var, - : lbnd_out(10), ubnd_out(10), lbnd(10), ubnd(10), ipout, - : ipout_var, status, nin, nout, i, nel_in, nel_out, - : spreads(6), j - character types(3)*15, name*20 - double precision tol, params(20) - external testfun - - data types/ '_DOUBLE', '_REAL', '_INTEGER' / - - data spreads/ AST__SINC, AST__NEAREST, AST__LINEAR, - : AST__SINCSINC, AST__SINCCOS, AST__SINCGAUSS / - - - if( status .ne. sai__ok ) return - -* Get the scalar properties of the test. - call testfun( 0, name, types(1), - : lbnd_in, ubnd_in, ipin, ipin_var, - : lbnd_out, ubnd_out, ipout, ipout_var, - : lbnd, ubnd, m, params, tol, j, status ) - -* Get the number of input and output axes. - nin = ast_geti( m, 'Nin', status ) - nout = ast_geti( m, 'Nout', status ) - -* Get no. of pixels in entire input array. - nel_in = 1 - do i = 1, nin - nel_in = nel_in*( ubnd_in( i ) - lbnd_in( i ) + 1 ) - end do - -* Get no. of pixels in entire output array. - nel_out = 1 - do i = 1, nout - nel_out = nel_out*( ubnd_out( i ) - lbnd_out( i ) + 1 ) - end do - -* Loop round all data types. - do i = 1, 3 - -* Allocate memory for input and output data and variance arrays - call psx_calloc( nel_in, types(i), ipin, status ) - call psx_calloc( nel_in, types(i), ipin_var, status ) - - call psx_calloc( nel_out, types(i), ipout, status ) - call psx_calloc( nel_out, types(i), ipout_var, status ) - -* Loop round all spread functions - do j = 1, 6 - -* Get the scalar properties of the test. This may change the Mapping. - call testfun( 0, name, types(i), - : lbnd_in, ubnd_in, ipin, ipin_var, - : lbnd_out, ubnd_out, ipout, ipout_var, - : lbnd, ubnd, m, params, tol, spreads(j), status ) - -* Fill the input data and variance arrays using the supplied function. - call testfun( 1, name, types(i), - : lbnd_in, ubnd_in, ipin, ipin_var, - : lbnd_out, ubnd_out, ipout, ipout_var, - : lbnd, ubnd, m, params, tol, spreads(j), - : status ) - -* Rebin the input data using the AST function appropriate to the -* supplied data type. - if( types(i) .eq. '_REAL' ) then - call ast_rebinr( m, 0.0D0, nin, lbnd_in, ubnd_in, - : %val( cnf_pval( ipin )), %val( cnf_pval(ipin_var )), - : spreads(j), params, - : AST__USEBAD+AST__USEVAR, tol, 100, VAL__BADR, - : nout, lbnd_out, ubnd_out, - : lbnd, ubnd, %val( cnf_pval( ipout )), - : %val( cnf_pval( ipout_var )), status ) - - else if( types(i) .eq. '_DOUBLE' ) then - call ast_rebind( m, 0.0D0, nin, lbnd_in, ubnd_in, - : %val( cnf_pval( ipin )), %val( cnf_pval(ipin_var )), - : spreads(j), params, - : AST__USEBAD+AST__USEVAR, tol, 100, VAL__BADD, - : nout, lbnd_out, ubnd_out, - : lbnd, ubnd, %val( cnf_pval( ipout ) ), - : %val( cnf_pval( ipout_var )), status ) - - else if( types(i) .eq. '_INTEGER' ) then - call ast_rebini( m, 0.0D0, nin, lbnd_in, ubnd_in, - : %val( cnf_pval( ipin )), %val( cnf_pval(ipin_var )), - : spreads(j), params, - : AST__USEBAD+AST__USEVAR, tol, 100, VAL__BADI, - : nout, lbnd_out, ubnd_out, - : lbnd, ubnd, %val( cnf_pval( ipout )), - : %val( cnf_pval( ipout_var )), status ) - - else if( status .eq. sai__ok ) then - status = SAI__ERROR - call msg_setc( 'T', types(i) ) - call err_rep( ' ', 'Bad data type (^T) supplied to '// - : 'rebin', status ) - end if - -* Call the supplied function to test the results. - call testfun( 2, name, types(i), - : lbnd_in, ubnd_in, ipin, ipin_var, - : lbnd_out, ubnd_out, ipout, ipout_var, - : lbnd, ubnd, m, params, tol, - : spreads(j), status ) - -* Report the data type and spread function if an error occurred, and -* abort. - if( status .ne. sai__ok ) then - call msg_seti( 'sf', j ) - call msg_setc( 'dt', types( i ) ) - call msg_setc( 't', name ) - call err_rep( ' ', '^t failed: Spread function ^sf '// - : 'data type ^dt', status ) - go to 999 - end if - - end do - -* Free resources. - call psx_free( ipout, status ) - call psx_free( ipout_var, status ) - call psx_free( ipin, status ) - call psx_free( ipin_var, status ) - end do - - 999 continue - - end - - LOGICAL FUNCTION EQUALB( A, B ) - IMPLICIT NONE - BYTE A, B - EQUALB = ( A .EQ. B ) - END - - LOGICAL FUNCTION EQUALD( A, B ) - IMPLICIT NONE - INCLUDE 'PRM_PAR' - DOUBLE PRECISION A, B - IF( A .NE. 0.0D0 .AND. B .NE. 0.0D0 ) THEN - EQUALD = ( ABS( A - B ) .LE. 1.0E9*ABS( A + B )*VAL__EPSD ) - ELSE - EQUALD = ( ABS( A + B ) .LE. 1.0D-11 ) - END IF - - END - - LOGICAL FUNCTION MYEQUALD( A, B ) - IMPLICIT NONE - DOUBLE PRECISION A, B - LOGICAL EQUALD - MYEQUALD = EQUALD( A, B ) - END - - LOGICAL FUNCTION EQUALI( A, B ) - IMPLICIT NONE - INTEGER A, B - EQUALI = ( A .EQ. B ) - - END - - LOGICAL FUNCTION EQUALR( A, B ) - IMPLICIT NONE - INCLUDE 'PRM_PAR' - REAL A, B - - IF( A .NE. 0.0 .AND. B .NE. 0.0 ) THEN - EQUALR = ( ABS( A - B ) .LE. 50.0*ABS( A + B )*VAL__EPSR ) - ELSE - EQUALR = ( ABS( A + B ) .LE. 1.0E-11 ) - END IF - - END - - LOGICAL FUNCTION EQUALW( A, B ) - IMPLICIT NONE - INTEGER*2 A, B - EQUALW = ( A .EQ. B ) - END - - - - -* ----------------------------------------------- -* Test 7 -* - - SUBROUTINE TEST7( DO, NAME, TYPE, - : LBND_IN, UBND_IN, IPIN, IPIN_VAR, - : LBND_OUT, UBND_OUT, IPOUT, IPOUT_VAR, - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - - INTEGER M, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : LBND(*), UBND(*), IPIN, IPIN_VAR, IPOUT, IPOUT_VAR, - : STATUS, DO, J - DOUBLE PRECISION TOL, PARAMS(*) - CHARACTER TYPE*(*), NAME*(*) - - IF( STATUS .NE. SAI__OK ) RETURN - - NAME = 'TEST7' - -* Fill the input data and variance arrays if required. - IF( TYPE .EQ. '_REAL' ) THEN - CALL TEST7R( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_DOUBLE' ) THEN - CALL TEST7D( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_INTEGER' ) THEN - CALL TEST7I( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( STATUS .EQ. SAI__OK ) then - STATUS = SAI__ERROR - CALL MSG_SETC( 'T', TYPE ) - CALL ERR_REP( ' ', 'Bad data type (^T) supplied to TEST7', - : STATUS ) - END IF - - END - - - - - SUBROUTINE TEST7D( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, NZ - DOUBLE PRECISION IN(*), IN_VAR(*), OUT(*), OUT_VAR(*), SUM, KT - DOUBLE PRECISION TOL, PARAMS(*), K - LOGICAL EQUALD, MYEQUALD, GOOD - - IF( STATUS .NE. SAI__OK ) RETURN - - K = MIN( 1000.0D0, NUM_DTOD( VAL__MAXD )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = 10 - UBND_IN( 1 ) = 19 - LBND_OUT( 1 ) = 12 - UBND_OUT( 1 ) = 20 - LBND( 1 ) = 11 - UBND( 1 ) = 17 - M = AST_SHIFTMAP( 1, 1.5D0, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.1 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - DO I = LBND_IN(1), UBND_IN(1) - IN( I - LBND_IN(1) + 1 ) = 0 - IN_VAR( I - LBND_IN(1) + 1 ) = K - END DO - IN( 14 - LBND_IN(1) + 1 ) = K - -* Otherwise check output data and variance arrays look right. - ELSE - - SUM = 0 - DO I = LBND_OUT(1), UBND_OUT(1) - IF( OUT( I - LBND_OUT(1) + 1) .NE. VAL__BADD ) THEN - SUM = SUM + OUT( I - LBND_OUT(1) + 1) - END IF - END DO - - KT = K - - - IF( 'D' .EQ. 'R' .OR. 'D' .EQ. 'D' ) THEN - GOOD = EQUALD( SUM, KT ) - ELSE - GOOD = ( ABS( SUM - KT ) .LT. 3 ) - END IF - - IF( .NOT. GOOD ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'K', dble( KT ) ) - CALL MSG_SETD( 'S', dble( SUM ) ) - CALL ERR_REP( ' ', 'TEST7D Data sum is ^S should be ^K', - : STATUS ) - END IF - - IF( SPREAD .EQ. AST__NEAREST ) THEN - NZ = 0 - DO I = LBND_OUT(1), UBND_OUT(1) - IF( OUT( I - LBND_OUT(1) + 1) .NE. 0 .AND. - : OUT( I - LBND_OUT(1) + 1) .NE. VAL__BADD ) THEN - IF( NZ .EQ. 0 ) THEN - NZ = NZ + 1 - IF( OUT( I - LBND_OUT(1) + 1) .NE. KT ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'D1', - : DBLE( OUT( I - LBND_OUT(1) + 1))) - CALL MSG_SETD( 'K', dble( KT ) ) - CALL ERR_REP( ' ', 'TEST7D ^I: ^D1 ^K', - : STATUS ) - END IF - ELSE - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'D1', - : DBLE( OUT( I - LBND_OUT(1) + 1))) - CALL ERR_REP( ' ', 'TEST7D ^I: ^D1', - : STATUS ) - END IF - END IF - END DO - - ELSE - DO I = 0, 3 - IF( .NOT. EQUALD( OUT( 15 - I - LBND_OUT(1) + 1 ), - : OUT( 16 + I - LBND_OUT(1) + 1 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I1', 15 - I ) - CALL MSG_SETI( 'I2', 16 + I ) - CALL MSG_SETD( 'D1', - : DBLE( OUT( 15 - I - LBND_OUT(1) + 1))) - CALL MSG_SETD( 'D2', - : DBLE( OUT( 16 + I - LBND_OUT(1) + 1))) - CALL ERR_REP( ' ', 'TEST7D ^I1 (^D1) != '// - : '^I2 (^D2)', STATUS ) - END IF - END DO - END IF - - END IF - - END - - - SUBROUTINE TEST7I( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, NZ - INTEGER IN(*), IN_VAR(*), OUT(*), OUT_VAR(*), SUM, KT - DOUBLE PRECISION TOL, PARAMS(*), K - LOGICAL EQUALI, MYEQUALD, GOOD - - IF( STATUS .NE. SAI__OK ) RETURN - - K = MIN( 1000.0D0, NUM_ITOD( VAL__MAXI )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = 10 - UBND_IN( 1 ) = 19 - LBND_OUT( 1 ) = 12 - UBND_OUT( 1 ) = 20 - LBND( 1 ) = 11 - UBND( 1 ) = 17 - M = AST_SHIFTMAP( 1, 1.5D0, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.1 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - DO I = LBND_IN(1), UBND_IN(1) - IN( I - LBND_IN(1) + 1 ) = 0 - IN_VAR( I - LBND_IN(1) + 1 ) = K - END DO - IN( 14 - LBND_IN(1) + 1 ) = K - -* Otherwise check output data and variance arrays look right. - ELSE - - SUM = 0 - DO I = LBND_OUT(1), UBND_OUT(1) - IF( OUT( I - LBND_OUT(1) + 1) .NE. VAL__BADI ) THEN - SUM = SUM + OUT( I - LBND_OUT(1) + 1) - END IF - END DO - - KT = K - - - IF( 'I' .EQ. 'R' .OR. 'I' .EQ. 'D' ) THEN - GOOD = EQUALI( SUM, KT ) - ELSE - GOOD = ( ABS( SUM - KT ) .LT. 3 ) - END IF - - IF( .NOT. GOOD ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'K', dble( KT ) ) - CALL MSG_SETD( 'S', dble( SUM ) ) - CALL ERR_REP( ' ', 'TEST7I Data sum is ^S should be ^K', - : STATUS ) - END IF - - IF( SPREAD .EQ. AST__NEAREST ) THEN - NZ = 0 - DO I = LBND_OUT(1), UBND_OUT(1) - IF( OUT( I - LBND_OUT(1) + 1) .NE. 0 .AND. - : OUT( I - LBND_OUT(1) + 1) .NE. VAL__BADI ) THEN - IF( NZ .EQ. 0 ) THEN - NZ = NZ + 1 - IF( OUT( I - LBND_OUT(1) + 1) .NE. KT ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'D1', - : DBLE( OUT( I - LBND_OUT(1) + 1))) - CALL MSG_SETD( 'K', dble( KT ) ) - CALL ERR_REP( ' ', 'TEST7I ^I: ^D1 ^K', - : STATUS ) - END IF - ELSE - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'D1', - : DBLE( OUT( I - LBND_OUT(1) + 1))) - CALL ERR_REP( ' ', 'TEST7I ^I: ^D1', - : STATUS ) - END IF - END IF - END DO - - ELSE - DO I = 0, 3 - IF( .NOT. EQUALI( OUT( 15 - I - LBND_OUT(1) + 1 ), - : OUT( 16 + I - LBND_OUT(1) + 1 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I1', 15 - I ) - CALL MSG_SETI( 'I2', 16 + I ) - CALL MSG_SETD( 'D1', - : DBLE( OUT( 15 - I - LBND_OUT(1) + 1))) - CALL MSG_SETD( 'D2', - : DBLE( OUT( 16 + I - LBND_OUT(1) + 1))) - CALL ERR_REP( ' ', 'TEST7I ^I1 (^D1) != '// - : '^I2 (^D2)', STATUS ) - END IF - END DO - END IF - - END IF - - END - - - SUBROUTINE TEST7R( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, NZ - REAL IN(*), IN_VAR(*), OUT(*), OUT_VAR(*), SUM, KT - DOUBLE PRECISION TOL, PARAMS(*), K - LOGICAL EQUALR, MYEQUALD, GOOD - - IF( STATUS .NE. SAI__OK ) RETURN - - K = MIN( 1000.0D0, NUM_RTOD( VAL__MAXR )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = 10 - UBND_IN( 1 ) = 19 - LBND_OUT( 1 ) = 12 - UBND_OUT( 1 ) = 20 - LBND( 1 ) = 11 - UBND( 1 ) = 17 - M = AST_SHIFTMAP( 1, 1.5D0, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.1 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - DO I = LBND_IN(1), UBND_IN(1) - IN( I - LBND_IN(1) + 1 ) = 0 - IN_VAR( I - LBND_IN(1) + 1 ) = K - END DO - IN( 14 - LBND_IN(1) + 1 ) = K - -* Otherwise check output data and variance arrays look right. - ELSE - - SUM = 0 - DO I = LBND_OUT(1), UBND_OUT(1) - IF( OUT( I - LBND_OUT(1) + 1) .NE. VAL__BADR ) THEN - SUM = SUM + OUT( I - LBND_OUT(1) + 1) - END IF - END DO - - KT = K - - - IF( 'R' .EQ. 'R' .OR. 'R' .EQ. 'D' ) THEN - GOOD = EQUALR( SUM, KT ) - ELSE - GOOD = ( ABS( SUM - KT ) .LT. 3 ) - END IF - - IF( .NOT. GOOD ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'K', dble( KT ) ) - CALL MSG_SETD( 'S', dble( SUM ) ) - CALL ERR_REP( ' ', 'TEST7R Data sum is ^S should be ^K', - : STATUS ) - END IF - - IF( SPREAD .EQ. AST__NEAREST ) THEN - NZ = 0 - DO I = LBND_OUT(1), UBND_OUT(1) - IF( OUT( I - LBND_OUT(1) + 1) .NE. 0 .AND. - : OUT( I - LBND_OUT(1) + 1) .NE. VAL__BADR ) THEN - IF( NZ .EQ. 0 ) THEN - NZ = NZ + 1 - IF( OUT( I - LBND_OUT(1) + 1) .NE. KT ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'D1', - : DBLE( OUT( I - LBND_OUT(1) + 1))) - CALL MSG_SETD( 'K', dble( KT ) ) - CALL ERR_REP( ' ', 'TEST7R ^I: ^D1 ^K', - : STATUS ) - END IF - ELSE - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'D1', - : DBLE( OUT( I - LBND_OUT(1) + 1))) - CALL ERR_REP( ' ', 'TEST7R ^I: ^D1', - : STATUS ) - END IF - END IF - END DO - - ELSE - DO I = 0, 3 - IF( .NOT. EQUALR( OUT( 15 - I - LBND_OUT(1) + 1 ), - : OUT( 16 + I - LBND_OUT(1) + 1 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I1', 15 - I ) - CALL MSG_SETI( 'I2', 16 + I ) - CALL MSG_SETD( 'D1', - : DBLE( OUT( 15 - I - LBND_OUT(1) + 1))) - CALL MSG_SETD( 'D2', - : DBLE( OUT( 16 + I - LBND_OUT(1) + 1))) - CALL ERR_REP( ' ', 'TEST7R ^I1 (^D1) != '// - : '^I2 (^D2)', STATUS ) - END IF - END DO - END IF - - END IF - - END - - - - -* ----------------------------------------------- -* Test 8 -* - - SUBROUTINE TEST8( DO, NAME, TYPE, - : LBND_IN, UBND_IN, IPIN, IPIN_VAR, - : LBND_OUT, UBND_OUT, IPOUT, IPOUT_VAR, - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - - INTEGER M, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : LBND(*), UBND(*), IPIN, IPIN_VAR, IPOUT, IPOUT_VAR, - : STATUS, DO, J - DOUBLE PRECISION TOL, PARAMS(*) - CHARACTER TYPE*(*), NAME*(*) - - IF( STATUS .NE. SAI__OK ) RETURN - - NAME = 'TEST8' - -* Fill the input data and variance arrays if required. - IF( TYPE .EQ. '_REAL' ) THEN - CALL TEST8R( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_DOUBLE' ) THEN - CALL TEST8D( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_INTEGER' ) THEN - CALL TEST8I( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( STATUS .EQ. SAI__OK ) then - STATUS = SAI__ERROR - CALL MSG_SETC( 'T', TYPE ) - CALL ERR_REP( ' ', 'Bad data type (^T) supplied to TEST8', - : STATUS ) - END IF - - END - - - - - SUBROUTINE TEST8D( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, J, K, NZ, - : II, JJ, KK - DOUBLE PRECISION IN(*), IN_VAR(*), OUT(*), OUT_VAR(*), SUM, KT - DOUBLE PRECISION TOL, PARAMS(*), KFAC, SHIFTS(2) - LOGICAL EQUALD, GOOD - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 10000.0D0, NUM_DTOD( VAL__MAXD )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = -2 - UBND_IN( 1 ) = 3 - LBND_OUT( 1 ) = -2 - UBND_OUT( 1 ) = 3 - LBND( 1 ) = -2 - UBND( 1 ) = 3 - LBND_IN( 2 ) = 0 - UBND_IN( 2 ) = 5 - LBND_OUT( 2 ) = 0 - UBND_OUT( 2 ) = 5 - LBND( 2 ) = 0 - UBND( 2 ) = 5 - SHIFTS(1) = 0.5D0 - SHIFTS(2) = -0.5D0 - M = AST_SHIFTMAP( 2, SHIFTS, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = 0 - IN_VAR( K ) = KFAC - K = K + 1 - END DO - END DO - IN( 21 ) = KFAC - -* Otherwise check output data and variance arrays look right. - ELSE - K = 0 - SUM = 0 - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - IF( OUT( K ) .NE. VAL__BADD ) THEN - SUM = SUM + OUT( K ) - END IF - END DO - END DO - - KT = KFAC - - IF( 'D' .EQ. 'R' .OR. 'D' .EQ. 'D' ) THEN - GOOD = EQUALD( SUM, KT ) - ELSE - GOOD = ( ABS( SUM - KT ) .LT. 5 ) - END IF - - IF( .NOT. GOOD ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'K', dble( KT ) ) - CALL MSG_SETD( 'S', dble( SUM ) ) - CALL ERR_REP( ' ', 'TEST8D Data sum is ^S should be ^K', - : STATUS ) - GO TO 999 - END IF - - IF( SPREAD .EQ. AST__NEAREST ) THEN - NZ = 0 - K = 0 - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - IF( OUT( K ) .NE. 0 .AND. - : OUT( K ) .NE. VAL__BADD ) THEN - IF( NZ .EQ. 0 ) THEN - NZ = NZ + 1 - IF( OUT( K ) .NE. KT ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'K', K ) - CALL MSG_SETD( 'D1', DBLE( OUT( K ))) - CALL MSG_SETD( 'KT', DBLE( KT ) ) - CALL ERR_REP( ' ', 'TEST8D ^K: ^D1 ^KT', - : STATUS ) - GO TO 999 - END IF - ELSE - STATUS = SAI__ERROR - CALL MSG_SETI( 'K', K ) - CALL MSG_SETD( 'D1', DBLE( OUT( K ))) - CALL ERR_REP( ' ', 'TEST8D ^K: ^D1', - : STATUS ) - GO TO 999 - END IF - END IF - END DO - END DO - ELSE - K = 0 - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - II = 1 - I - JJ = 5 - J - IF( II .GE. LBND_OUT(1) .AND. - : II .LE. UBND_OUT(1) .AND. - : JJ .GE. LBND_OUT(2) .AND. - : JJ .LE. UBND_OUT(2) ) THEN - KK = 6*JJ + ( II + 3 ) - - IF( .NOT. EQUALD( OUT( KK ), OUT( K ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'KK', KK ) - CALL MSG_SETI( 'K', K ) - CALL MSG_SETD( 'D1', DBLE( OUT(KK) ) ) - CALL MSG_SETD( 'D2', DBLE( OUT(K) ) ) - CALL ERR_REP( ' ', 'TEST8D ^KK (^D1) != '// - : '^K (^D2)', STATUS ) - GO TO 999 - END IF - END IF - END DO - END DO - END IF - - END IF - - 999 CONTINUE - - END - - - - SUBROUTINE TEST8I( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, J, K, NZ, - : II, JJ, KK - INTEGER IN(*), IN_VAR(*), OUT(*), OUT_VAR(*), SUM, KT - DOUBLE PRECISION TOL, PARAMS(*), KFAC, SHIFTS(2) - LOGICAL EQUALI, GOOD - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 10000.0D0, NUM_ITOD( VAL__MAXI )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = -2 - UBND_IN( 1 ) = 3 - LBND_OUT( 1 ) = -2 - UBND_OUT( 1 ) = 3 - LBND( 1 ) = -2 - UBND( 1 ) = 3 - LBND_IN( 2 ) = 0 - UBND_IN( 2 ) = 5 - LBND_OUT( 2 ) = 0 - UBND_OUT( 2 ) = 5 - LBND( 2 ) = 0 - UBND( 2 ) = 5 - SHIFTS(1) = 0.5D0 - SHIFTS(2) = -0.5D0 - M = AST_SHIFTMAP( 2, SHIFTS, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = 0 - IN_VAR( K ) = KFAC - K = K + 1 - END DO - END DO - IN( 21 ) = KFAC - -* Otherwise check output data and variance arrays look right. - ELSE - K = 0 - SUM = 0 - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - IF( OUT( K ) .NE. VAL__BADI ) THEN - SUM = SUM + OUT( K ) - END IF - END DO - END DO - - KT = KFAC - - IF( 'I' .EQ. 'R' .OR. 'I' .EQ. 'D' ) THEN - GOOD = EQUALI( SUM, KT ) - ELSE - GOOD = ( ABS( SUM - KT ) .LT. 5 ) - END IF - - IF( .NOT. GOOD ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'K', dble( KT ) ) - CALL MSG_SETD( 'S', dble( SUM ) ) - CALL ERR_REP( ' ', 'TEST8I Data sum is ^S should be ^K', - : STATUS ) - GO TO 999 - END IF - - IF( SPREAD .EQ. AST__NEAREST ) THEN - NZ = 0 - K = 0 - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - IF( OUT( K ) .NE. 0 .AND. - : OUT( K ) .NE. VAL__BADI ) THEN - IF( NZ .EQ. 0 ) THEN - NZ = NZ + 1 - IF( OUT( K ) .NE. KT ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'K', K ) - CALL MSG_SETD( 'D1', DBLE( OUT( K ))) - CALL MSG_SETD( 'KT', DBLE( KT ) ) - CALL ERR_REP( ' ', 'TEST8I ^K: ^D1 ^KT', - : STATUS ) - GO TO 999 - END IF - ELSE - STATUS = SAI__ERROR - CALL MSG_SETI( 'K', K ) - CALL MSG_SETD( 'D1', DBLE( OUT( K ))) - CALL ERR_REP( ' ', 'TEST8I ^K: ^D1', - : STATUS ) - GO TO 999 - END IF - END IF - END DO - END DO - ELSE - K = 0 - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - II = 1 - I - JJ = 5 - J - IF( II .GE. LBND_OUT(1) .AND. - : II .LE. UBND_OUT(1) .AND. - : JJ .GE. LBND_OUT(2) .AND. - : JJ .LE. UBND_OUT(2) ) THEN - KK = 6*JJ + ( II + 3 ) - - IF( .NOT. EQUALI( OUT( KK ), OUT( K ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'KK', KK ) - CALL MSG_SETI( 'K', K ) - CALL MSG_SETD( 'D1', DBLE( OUT(KK) ) ) - CALL MSG_SETD( 'D2', DBLE( OUT(K) ) ) - CALL ERR_REP( ' ', 'TEST8I ^KK (^D1) != '// - : '^K (^D2)', STATUS ) - GO TO 999 - END IF - END IF - END DO - END DO - END IF - - END IF - - 999 CONTINUE - - END - - - - SUBROUTINE TEST8R( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, J, K, NZ, - : II, JJ, KK - REAL IN(*), IN_VAR(*), OUT(*), OUT_VAR(*), SUM, KT - DOUBLE PRECISION TOL, PARAMS(*), KFAC, SHIFTS(2) - LOGICAL EQUALR, GOOD - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 10000.0D0, NUM_RTOD( VAL__MAXR )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = -2 - UBND_IN( 1 ) = 3 - LBND_OUT( 1 ) = -2 - UBND_OUT( 1 ) = 3 - LBND( 1 ) = -2 - UBND( 1 ) = 3 - LBND_IN( 2 ) = 0 - UBND_IN( 2 ) = 5 - LBND_OUT( 2 ) = 0 - UBND_OUT( 2 ) = 5 - LBND( 2 ) = 0 - UBND( 2 ) = 5 - SHIFTS(1) = 0.5D0 - SHIFTS(2) = -0.5D0 - M = AST_SHIFTMAP( 2, SHIFTS, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = 0 - IN_VAR( K ) = KFAC - K = K + 1 - END DO - END DO - IN( 21 ) = KFAC - -* Otherwise check output data and variance arrays look right. - ELSE - K = 0 - SUM = 0 - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - IF( OUT( K ) .NE. VAL__BADR ) THEN - SUM = SUM + OUT( K ) - END IF - END DO - END DO - - KT = KFAC - - IF( 'R' .EQ. 'R' .OR. 'R' .EQ. 'D' ) THEN - GOOD = EQUALR( SUM, KT ) - ELSE - GOOD = ( ABS( SUM - KT ) .LT. 5 ) - END IF - - IF( .NOT. GOOD ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'K', dble( KT ) ) - CALL MSG_SETD( 'S', dble( SUM ) ) - CALL ERR_REP( ' ', 'TEST8R Data sum is ^S should be ^K', - : STATUS ) - GO TO 999 - END IF - - IF( SPREAD .EQ. AST__NEAREST ) THEN - NZ = 0 - K = 0 - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - IF( OUT( K ) .NE. 0 .AND. - : OUT( K ) .NE. VAL__BADR ) THEN - IF( NZ .EQ. 0 ) THEN - NZ = NZ + 1 - IF( OUT( K ) .NE. KT ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'K', K ) - CALL MSG_SETD( 'D1', DBLE( OUT( K ))) - CALL MSG_SETD( 'KT', DBLE( KT ) ) - CALL ERR_REP( ' ', 'TEST8R ^K: ^D1 ^KT', - : STATUS ) - GO TO 999 - END IF - ELSE - STATUS = SAI__ERROR - CALL MSG_SETI( 'K', K ) - CALL MSG_SETD( 'D1', DBLE( OUT( K ))) - CALL ERR_REP( ' ', 'TEST8R ^K: ^D1', - : STATUS ) - GO TO 999 - END IF - END IF - END DO - END DO - ELSE - K = 0 - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - II = 1 - I - JJ = 5 - J - IF( II .GE. LBND_OUT(1) .AND. - : II .LE. UBND_OUT(1) .AND. - : JJ .GE. LBND_OUT(2) .AND. - : JJ .LE. UBND_OUT(2) ) THEN - KK = 6*JJ + ( II + 3 ) - - IF( .NOT. EQUALR( OUT( KK ), OUT( K ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'KK', KK ) - CALL MSG_SETI( 'K', K ) - CALL MSG_SETD( 'D1', DBLE( OUT(KK) ) ) - CALL MSG_SETD( 'D2', DBLE( OUT(K) ) ) - CALL ERR_REP( ' ', 'TEST8R ^KK (^D1) != '// - : '^K (^D2)', STATUS ) - GO TO 999 - END IF - END IF - END DO - END DO - END IF - - END IF - - 999 CONTINUE - - END - - - - - -* ----------------------------------------------- -* Test 9 -* - - SUBROUTINE TEST9( DO, NAME, TYPE, - : LBND_IN, UBND_IN, IPIN, IPIN_VAR, - : LBND_OUT, UBND_OUT, IPOUT, IPOUT_VAR, - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - - INTEGER M, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : LBND(*), UBND(*), IPIN, IPIN_VAR, IPOUT, IPOUT_VAR, - : STATUS, DO, J - DOUBLE PRECISION TOL, PARAMS(*) - CHARACTER TYPE*(*), NAME*(*) - - IF( STATUS .NE. SAI__OK ) RETURN - - NAME = 'TEST9' - -* Fill the input data and variance arrays if required. - IF( TYPE .EQ. '_REAL' ) THEN - CALL TEST9R( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_DOUBLE' ) THEN - CALL TEST9D( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_INTEGER' ) THEN - CALL TEST9I( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( STATUS .EQ. SAI__OK ) then - STATUS = SAI__ERROR - CALL MSG_SETC( 'T', TYPE ) - CALL ERR_REP( ' ', 'Bad data type (^T) supplied to TEST9', - : STATUS ) - END IF - - END - - - - - SUBROUTINE TEST9D( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, J, K, L, K2 - DOUBLE PRECISION IN(*), IN_VAR(*), OUT(*), OUT_VAR(*), KT, SUM - DOUBLE PRECISION TOL, PARAMS(*), KFAC, SHIFTS(3), G(3), W - LOGICAL EQUALD, GOOD, MYEQUALD - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 10000.0D0, NUM_DTOD( VAL__MAXD )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = 0 - UBND_IN( 1 ) = 6 - LBND_OUT( 1 ) = 0 - UBND_OUT( 1 ) = 6 - LBND( 1 ) = 0 - UBND( 1 ) = 6 - LBND_IN( 2 ) = 0 - UBND_IN( 2 ) = 6 - LBND_OUT( 2 ) = 0 - UBND_OUT( 2 ) = 6 - LBND( 2 ) = 0 - UBND( 2 ) = 6 - LBND_IN( 3 ) = 0 - UBND_IN( 3 ) = 6 - LBND_OUT( 3 ) = 0 - UBND_OUT( 3 ) = 6 - LBND( 3 ) = 0 - UBND( 3 ) = 6 - - IF( SPREAD .EQ. AST__NEAREST ) THEN - SHIFTS(1) = 1.7D0 - SHIFTS(2) = 2.1D0 - SHIFTS(3) = -1.2D0 - ELSE - SHIFTS(1) = 0.5D0 - SHIFTS(2) = 0.0D0 - SHIFTS(3) = -0.5D0 - END IF - - M = AST_SHIFTMAP( 3, SHIFTS, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO L = LBND_IN(3), UBND_IN(3) - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = 0 - IN_VAR( K ) = K - K = K + 1 - END DO - END DO - END DO - IN( 172 ) = KFAC - -* Otherwise check output data and variance arrays look right. - ELSE - K = 0 - SUM = 0 - DO L = LBND_OUT(3), UBND_OUT(3) - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - IF( OUT( K ) .NE. VAL__BADD ) THEN - SUM = SUM + OUT( K ) - END IF - END DO - END DO - END DO - - KT = KFAC - - IF( 'D' .EQ. 'R' .OR. 'D' .EQ. 'D' ) THEN - GOOD = EQUALD( SUM, KT ) - ELSE - GOOD = ( ABS( SUM - KT ) .LT. 5 ) - END IF - - IF( .NOT. GOOD ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'K', dble( KT ) ) - CALL MSG_SETD( 'S', dble( SUM ) ) - CALL ERR_REP( ' ', 'TEST9D Data sum is ^S should be ^K', - : STATUS ) - GO TO 999 - END IF - - IF( SPREAD .EQ. AST__NEAREST ) THEN - K = 0 - DO L = LBND_OUT(3), UBND_OUT(3) - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - IF( K .EQ. 139 ) THEN - IF( .NOT. EQUALD( OUT(K), KT ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'K', DBLE( KT ) ) - CALL MSG_SETD( 'O', DBLE( OUT(K) ) ) - CALL ERR_REP( ' ', 'TEST9D El. 139 is '// - : '^O should be ^K', STATUS ) - GO TO 999 - END IF - ELSE - IF( .NOT. EQUALD( OUT(K), 0.0D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'K', K ) - CALL MSG_SETD( 'O', DBLE( OUT(K) ) ) - CALL ERR_REP( ' ', 'TEST9D El. ^K is '// - : '^O should be zero', STATUS ) - GO TO 999 - END IF - END IF - END DO - END DO - END DO - ELSE - - G(1) = 0.0 - G(2) = 0.0 - G(3) = 0.0 - W = 0.0 - K = 0 - DO L = LBND_OUT(3), UBND_OUT(3) - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - G(1) = G(1) + DBLE( I*OUT( k ) ) - G(2) = G(2) + DBLE( J*OUT( K ) ) - G(3) = G(3) + DBLE( L*OUT( K ) ) - W = W + DBLE( OUT( K ) ) - END DO - END DO - END DO - - IF( .NOT. MYEQUALD( G(1)/W, 3.5D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'A', G(1)/W ) - CALL ERR_REP( ' ', 'TEST9D Mean X is ^A '// - : ' should be 3.5', STATUS ) - GO TO 999 - ELSE IF( .NOT. MYEQUALD( G(2)/W, 3.0D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'A', G(2)/W ) - CALL ERR_REP( ' ', 'TEST9D Mean Y is ^A '// - : ' should be 3.0', STATUS ) - GO TO 999 - ELSE IF( .NOT. MYEQUALD( G(3)/W, 2.5D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'A', G(3)/W ) - CALL ERR_REP( ' ', 'TEST9D Mean Z is ^A '// - : ' should be 2.5', STATUS ) - GO TO 999 - END IF - - END IF - END IF - - 999 CONTINUE - - END - - - - SUBROUTINE TEST9I( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, J, K, L, K2 - INTEGER IN(*), IN_VAR(*), OUT(*), OUT_VAR(*), KT, SUM - DOUBLE PRECISION TOL, PARAMS(*), KFAC, SHIFTS(3), G(3), W - LOGICAL EQUALI, GOOD, MYEQUALD - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 10000.0D0, NUM_ITOD( VAL__MAXI )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = 0 - UBND_IN( 1 ) = 6 - LBND_OUT( 1 ) = 0 - UBND_OUT( 1 ) = 6 - LBND( 1 ) = 0 - UBND( 1 ) = 6 - LBND_IN( 2 ) = 0 - UBND_IN( 2 ) = 6 - LBND_OUT( 2 ) = 0 - UBND_OUT( 2 ) = 6 - LBND( 2 ) = 0 - UBND( 2 ) = 6 - LBND_IN( 3 ) = 0 - UBND_IN( 3 ) = 6 - LBND_OUT( 3 ) = 0 - UBND_OUT( 3 ) = 6 - LBND( 3 ) = 0 - UBND( 3 ) = 6 - - IF( SPREAD .EQ. AST__NEAREST ) THEN - SHIFTS(1) = 1.7D0 - SHIFTS(2) = 2.1D0 - SHIFTS(3) = -1.2D0 - ELSE - SHIFTS(1) = 0.5D0 - SHIFTS(2) = 0.0D0 - SHIFTS(3) = -0.5D0 - END IF - - M = AST_SHIFTMAP( 3, SHIFTS, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO L = LBND_IN(3), UBND_IN(3) - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = 0 - IN_VAR( K ) = K - K = K + 1 - END DO - END DO - END DO - IN( 172 ) = KFAC - -* Otherwise check output data and variance arrays look right. - ELSE - K = 0 - SUM = 0 - DO L = LBND_OUT(3), UBND_OUT(3) - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - IF( OUT( K ) .NE. VAL__BADI ) THEN - SUM = SUM + OUT( K ) - END IF - END DO - END DO - END DO - - KT = KFAC - - IF( 'I' .EQ. 'R' .OR. 'I' .EQ. 'D' ) THEN - GOOD = EQUALI( SUM, KT ) - ELSE - GOOD = ( ABS( SUM - KT ) .LT. 5 ) - END IF - - IF( .NOT. GOOD ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'K', dble( KT ) ) - CALL MSG_SETD( 'S', dble( SUM ) ) - CALL ERR_REP( ' ', 'TEST9I Data sum is ^S should be ^K', - : STATUS ) - GO TO 999 - END IF - - IF( SPREAD .EQ. AST__NEAREST ) THEN - K = 0 - DO L = LBND_OUT(3), UBND_OUT(3) - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - IF( K .EQ. 139 ) THEN - IF( .NOT. EQUALI( OUT(K), KT ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'K', DBLE( KT ) ) - CALL MSG_SETD( 'O', DBLE( OUT(K) ) ) - CALL ERR_REP( ' ', 'TEST9I El. 139 is '// - : '^O should be ^K', STATUS ) - GO TO 999 - END IF - ELSE - IF( .NOT. EQUALI( OUT(K), 0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'K', K ) - CALL MSG_SETD( 'O', DBLE( OUT(K) ) ) - CALL ERR_REP( ' ', 'TEST9I El. ^K is '// - : '^O should be zero', STATUS ) - GO TO 999 - END IF - END IF - END DO - END DO - END DO - ELSE - - G(1) = 0.0 - G(2) = 0.0 - G(3) = 0.0 - W = 0.0 - K = 0 - DO L = LBND_OUT(3), UBND_OUT(3) - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - G(1) = G(1) + DBLE( I*OUT( k ) ) - G(2) = G(2) + DBLE( J*OUT( K ) ) - G(3) = G(3) + DBLE( L*OUT( K ) ) - W = W + DBLE( OUT( K ) ) - END DO - END DO - END DO - - IF( .NOT. MYEQUALD( G(1)/W, 3.5D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'A', G(1)/W ) - CALL ERR_REP( ' ', 'TEST9I Mean X is ^A '// - : ' should be 3.5', STATUS ) - GO TO 999 - ELSE IF( .NOT. MYEQUALD( G(2)/W, 3.0D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'A', G(2)/W ) - CALL ERR_REP( ' ', 'TEST9I Mean Y is ^A '// - : ' should be 3.0', STATUS ) - GO TO 999 - ELSE IF( .NOT. MYEQUALD( G(3)/W, 2.5D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'A', G(3)/W ) - CALL ERR_REP( ' ', 'TEST9I Mean Z is ^A '// - : ' should be 2.5', STATUS ) - GO TO 999 - END IF - - END IF - END IF - - 999 CONTINUE - - END - - - - SUBROUTINE TEST9R( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, J, K, L, K2 - REAL IN(*), IN_VAR(*), OUT(*), OUT_VAR(*), KT, SUM - DOUBLE PRECISION TOL, PARAMS(*), KFAC, SHIFTS(3), G(3), W - LOGICAL EQUALR, GOOD, MYEQUALD - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 10000.0D0, NUM_RTOD( VAL__MAXR )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = 0 - UBND_IN( 1 ) = 6 - LBND_OUT( 1 ) = 0 - UBND_OUT( 1 ) = 6 - LBND( 1 ) = 0 - UBND( 1 ) = 6 - LBND_IN( 2 ) = 0 - UBND_IN( 2 ) = 6 - LBND_OUT( 2 ) = 0 - UBND_OUT( 2 ) = 6 - LBND( 2 ) = 0 - UBND( 2 ) = 6 - LBND_IN( 3 ) = 0 - UBND_IN( 3 ) = 6 - LBND_OUT( 3 ) = 0 - UBND_OUT( 3 ) = 6 - LBND( 3 ) = 0 - UBND( 3 ) = 6 - - IF( SPREAD .EQ. AST__NEAREST ) THEN - SHIFTS(1) = 1.7D0 - SHIFTS(2) = 2.1D0 - SHIFTS(3) = -1.2D0 - ELSE - SHIFTS(1) = 0.5D0 - SHIFTS(2) = 0.0D0 - SHIFTS(3) = -0.5D0 - END IF - - M = AST_SHIFTMAP( 3, SHIFTS, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO L = LBND_IN(3), UBND_IN(3) - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = 0 - IN_VAR( K ) = K - K = K + 1 - END DO - END DO - END DO - IN( 172 ) = KFAC - -* Otherwise check output data and variance arrays look right. - ELSE - K = 0 - SUM = 0 - DO L = LBND_OUT(3), UBND_OUT(3) - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - IF( OUT( K ) .NE. VAL__BADR ) THEN - SUM = SUM + OUT( K ) - END IF - END DO - END DO - END DO - - KT = KFAC - - IF( 'R' .EQ. 'R' .OR. 'R' .EQ. 'D' ) THEN - GOOD = EQUALR( SUM, KT ) - ELSE - GOOD = ( ABS( SUM - KT ) .LT. 5 ) - END IF - - IF( .NOT. GOOD ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'K', dble( KT ) ) - CALL MSG_SETD( 'S', dble( SUM ) ) - CALL ERR_REP( ' ', 'TEST9R Data sum is ^S should be ^K', - : STATUS ) - GO TO 999 - END IF - - IF( SPREAD .EQ. AST__NEAREST ) THEN - K = 0 - DO L = LBND_OUT(3), UBND_OUT(3) - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - IF( K .EQ. 139 ) THEN - IF( .NOT. EQUALR( OUT(K), KT ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'K', DBLE( KT ) ) - CALL MSG_SETD( 'O', DBLE( OUT(K) ) ) - CALL ERR_REP( ' ', 'TEST9R El. 139 is '// - : '^O should be ^K', STATUS ) - GO TO 999 - END IF - ELSE - IF( .NOT. EQUALR( OUT(K), 0.0E0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'K', K ) - CALL MSG_SETD( 'O', DBLE( OUT(K) ) ) - CALL ERR_REP( ' ', 'TEST9R El. ^K is '// - : '^O should be zero', STATUS ) - GO TO 999 - END IF - END IF - END DO - END DO - END DO - ELSE - - G(1) = 0.0 - G(2) = 0.0 - G(3) = 0.0 - W = 0.0 - K = 0 - DO L = LBND_OUT(3), UBND_OUT(3) - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - K = K + 1 - G(1) = G(1) + DBLE( I*OUT( k ) ) - G(2) = G(2) + DBLE( J*OUT( K ) ) - G(3) = G(3) + DBLE( L*OUT( K ) ) - W = W + DBLE( OUT( K ) ) - END DO - END DO - END DO - - IF( .NOT. MYEQUALD( G(1)/W, 3.5D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'A', G(1)/W ) - CALL ERR_REP( ' ', 'TEST9R Mean X is ^A '// - : ' should be 3.5', STATUS ) - GO TO 999 - ELSE IF( .NOT. MYEQUALD( G(2)/W, 3.0D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'A', G(2)/W ) - CALL ERR_REP( ' ', 'TEST9R Mean Y is ^A '// - : ' should be 3.0', STATUS ) - GO TO 999 - ELSE IF( .NOT. MYEQUALD( G(3)/W, 2.5D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'A', G(3)/W ) - CALL ERR_REP( ' ', 'TEST9R Mean Z is ^A '// - : ' should be 2.5', STATUS ) - GO TO 999 - END IF - - END IF - END IF - - 999 CONTINUE - - END - - - - - -* ----------------------------------------------- -* Test 1 -* - - SUBROUTINE TEST1( DO, NAME, TYPE, - : LBND_IN, UBND_IN, IPIN, IPIN_VAR, - : LBND_OUT, UBND_OUT, IPOUT, IPOUT_VAR, - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - - INTEGER M, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : LBND(*), UBND(*), IPIN, IPIN_VAR, IPOUT, IPOUT_VAR, - : STATUS, DO, J - DOUBLE PRECISION TOL, PARAMS(*) - CHARACTER TYPE*(*), NAME*(*) - - IF( STATUS .NE. SAI__OK ) RETURN - - NAME = 'TEST1' - -* Fill the input data and variance arrays if required. - IF( TYPE .EQ. '_REAL' ) THEN - CALL TEST1R( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_DOUBLE' ) THEN - CALL TEST1D( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_INTEGER' ) THEN - CALL TEST1I( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( STATUS .EQ. SAI__OK ) then - STATUS = SAI__ERROR - CALL MSG_SETC( 'T', TYPE ) - CALL ERR_REP( ' ', 'Bad data type (^T) supplied to TEST1', - : STATUS ) - END IF - - END - - - - - SUBROUTINE TEST1D( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : LBND(*), UBND(*), STATUS, M, I, SPREAD - DOUBLE PRECISION IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - LOGICAL EQUALD, IGNORE - DOUBLE PRECISION TOL, PARAMS(*), K - - IF( STATUS .NE. SAI__OK ) RETURN - - K = MIN( 1000.0D0, NUM_DTOD( VAL__MAXD )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = 10 - UBND_IN( 1 ) = 19 - LBND_OUT( 1 ) = 12 - UBND_OUT( 1 ) = 20 - LBND( 1 ) = 11 - UBND( 1 ) = 17 - M = AST_UNITMAP( 1, ' ', STATUS ) - IF( SPREAD .EQ. AST__GAUSS ) THEN - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - ELSE - PARAMS(1) = 2.0 - PARAMS(2) = 0.5 - END IF - TOL = 0.1 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - DO I = LBND_IN(1), UBND_IN(1) - IN( I - LBND_IN(1) + 1 ) = I*K - IN_VAR( I - LBND_IN(1) + 1 ) = I - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - DO I = LBND_OUT(1), UBND(1) - IGNORE = ( SPREAD .EQ. AST__GAUSS .AND. - : ( I .LE. LBND_OUT(1) + 1 .OR. - : I .GE. UBND(1) - 1 ) ) - IF( IGNORE ) THEN - - ELSE IF( .NOT. EQUALD( OUT( I - LBND_OUT(1) + 1 ), - : IN( I - LBND_IN(1) + 1 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT( I - LBND_OUT(1) + 1 ) ) ) - CALL MSG_SETD( 'B', DBLE( IN( I - LBND_IN(1) + 1 ) ) ) - CALL ERR_REP( ' ', 'TEST1D ^I: data ^V != ^B', STATUS ) - RETURN - ELSE IF( .NOT. EQUALD( OUT_VAR( I - LBND_OUT(1) + 1 ), - : IN_VAR( I - LBND_IN(1) + 1 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT_VAR(I-LBND_OUT(1)+1) ) ) - CALL MSG_SETD( 'B', DBLE( IN_VAR(I-LBND_IN(1)+1) ) ) - CALL ERR_REP( ' ', 'TEST1D ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END DO - DO I = UBND(1) + 1, UBND_OUT(1) - IF( .NOT. EQUALD( OUT( I - LBND_OUT(1) + 1 ), - : 0.0D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT( I - LBND_OUT(1) + 1))) - CALL ERR_REP( ' ', 'TEST1D ^I: ^V != 0.0', STATUS ) - RETURN - ELSE IF( .NOT. EQUALD( OUT_VAR( I - LBND_OUT(1) + 1 ), - : 0.0D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT_VAR(I-LBND_OUT(1)+1))) - CALL ERR_REP( ' ', 'TEST1D ^I: variance ^V != 0.0', - : STATUS ) - RETURN - END IF - END DO - - END IF - - END - - - - SUBROUTINE TEST1I( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : LBND(*), UBND(*), STATUS, M, I, SPREAD - INTEGER IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - LOGICAL EQUALI, IGNORE - DOUBLE PRECISION TOL, PARAMS(*), K - - IF( STATUS .NE. SAI__OK ) RETURN - - K = MIN( 1000.0D0, NUM_ITOD( VAL__MAXI )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = 10 - UBND_IN( 1 ) = 19 - LBND_OUT( 1 ) = 12 - UBND_OUT( 1 ) = 20 - LBND( 1 ) = 11 - UBND( 1 ) = 17 - M = AST_UNITMAP( 1, ' ', STATUS ) - IF( SPREAD .EQ. AST__GAUSS ) THEN - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - ELSE - PARAMS(1) = 2.0 - PARAMS(2) = 0.5 - END IF - TOL = 0.1 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - DO I = LBND_IN(1), UBND_IN(1) - IN( I - LBND_IN(1) + 1 ) = I*K - IN_VAR( I - LBND_IN(1) + 1 ) = I - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - DO I = LBND_OUT(1), UBND(1) - IGNORE = ( SPREAD .EQ. AST__GAUSS .AND. - : ( I .LE. LBND_OUT(1) + 1 .OR. - : I .GE. UBND(1) - 1 ) ) - IF( IGNORE ) THEN - - ELSE IF( .NOT. EQUALI( OUT( I - LBND_OUT(1) + 1 ), - : IN( I - LBND_IN(1) + 1 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT( I - LBND_OUT(1) + 1 ) ) ) - CALL MSG_SETD( 'B', DBLE( IN( I - LBND_IN(1) + 1 ) ) ) - CALL ERR_REP( ' ', 'TEST1I ^I: data ^V != ^B', STATUS ) - RETURN - ELSE IF( .NOT. EQUALI( OUT_VAR( I - LBND_OUT(1) + 1 ), - : IN_VAR( I - LBND_IN(1) + 1 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT_VAR(I-LBND_OUT(1)+1) ) ) - CALL MSG_SETD( 'B', DBLE( IN_VAR(I-LBND_IN(1)+1) ) ) - CALL ERR_REP( ' ', 'TEST1I ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END DO - DO I = UBND(1) + 1, UBND_OUT(1) - IF( .NOT. EQUALI( OUT( I - LBND_OUT(1) + 1 ), - : 0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT( I - LBND_OUT(1) + 1))) - CALL ERR_REP( ' ', 'TEST1I ^I: ^V != 0.0', STATUS ) - RETURN - ELSE IF( .NOT. EQUALI( OUT_VAR( I - LBND_OUT(1) + 1 ), - : 0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT_VAR(I-LBND_OUT(1)+1))) - CALL ERR_REP( ' ', 'TEST1I ^I: variance ^V != 0.0', - : STATUS ) - RETURN - END IF - END DO - - END IF - - END - - - - SUBROUTINE TEST1R( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : LBND(*), UBND(*), STATUS, M, I, SPREAD - REAL IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - LOGICAL EQUALR, IGNORE - DOUBLE PRECISION TOL, PARAMS(*), K - - IF( STATUS .NE. SAI__OK ) RETURN - - K = MIN( 1000.0D0, NUM_RTOD( VAL__MAXR )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = 10 - UBND_IN( 1 ) = 19 - LBND_OUT( 1 ) = 12 - UBND_OUT( 1 ) = 20 - LBND( 1 ) = 11 - UBND( 1 ) = 17 - M = AST_UNITMAP( 1, ' ', STATUS ) - IF( SPREAD .EQ. AST__GAUSS ) THEN - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - ELSE - PARAMS(1) = 2.0 - PARAMS(2) = 0.5 - END IF - TOL = 0.1 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - DO I = LBND_IN(1), UBND_IN(1) - IN( I - LBND_IN(1) + 1 ) = I*K - IN_VAR( I - LBND_IN(1) + 1 ) = I - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - DO I = LBND_OUT(1), UBND(1) - IGNORE = ( SPREAD .EQ. AST__GAUSS .AND. - : ( I .LE. LBND_OUT(1) + 1 .OR. - : I .GE. UBND(1) - 1 ) ) - IF( IGNORE ) THEN - - ELSE IF( .NOT. EQUALR( OUT( I - LBND_OUT(1) + 1 ), - : IN( I - LBND_IN(1) + 1 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT( I - LBND_OUT(1) + 1 ) ) ) - CALL MSG_SETD( 'B', DBLE( IN( I - LBND_IN(1) + 1 ) ) ) - CALL ERR_REP( ' ', 'TEST1R ^I: data ^V != ^B', STATUS ) - RETURN - ELSE IF( .NOT. EQUALR( OUT_VAR( I - LBND_OUT(1) + 1 ), - : IN_VAR( I - LBND_IN(1) + 1 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT_VAR(I-LBND_OUT(1)+1) ) ) - CALL MSG_SETD( 'B', DBLE( IN_VAR(I-LBND_IN(1)+1) ) ) - CALL ERR_REP( ' ', 'TEST1R ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END DO - DO I = UBND(1) + 1, UBND_OUT(1) - IF( .NOT. EQUALR( OUT( I - LBND_OUT(1) + 1 ), - : 0.0E0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT( I - LBND_OUT(1) + 1))) - CALL ERR_REP( ' ', 'TEST1R ^I: ^V != 0.0', STATUS ) - RETURN - ELSE IF( .NOT. EQUALR( OUT_VAR( I - LBND_OUT(1) + 1 ), - : 0.0E0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT_VAR(I-LBND_OUT(1)+1))) - CALL ERR_REP( ' ', 'TEST1R ^I: variance ^V != 0.0', - : STATUS ) - RETURN - END IF - END DO - - END IF - - END - - - - - -* ----------------------------------------------- -* Test 2 -* - - SUBROUTINE TEST2( DO, NAME, TYPE, - : LBND_IN, UBND_IN, IPIN, IPIN_VAR, - : LBND_OUT, UBND_OUT, IPOUT, IPOUT_VAR, - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - - INTEGER M, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : LBND(*), UBND(*), IPIN, IPIN_VAR, IPOUT, IPOUT_VAR, - : STATUS, DO, J - DOUBLE PRECISION TOL, PARAMS(*) - CHARACTER TYPE*(*), NAME*(*) - - IF( STATUS .NE. SAI__OK ) RETURN - - NAME = 'TEST2' - -* Fill the input data and variance arrays if required. - IF( TYPE .EQ. '_REAL' ) THEN - CALL TEST2R( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_DOUBLE' ) THEN - CALL TEST2D( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_INTEGER' ) THEN - CALL TEST2I( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( STATUS .EQ. SAI__OK ) then - STATUS = SAI__ERROR - CALL MSG_SETC( 'T', TYPE ) - CALL ERR_REP( ' ', 'Bad data type (^T) supplied to TEST2', - : STATUS ) - END IF - - END - - - - - SUBROUTINE TEST2D( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : LBND(*), UBND(*), STATUS, M, I, J, K, SPREAD - DOUBLE PRECISION IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - DOUBLE PRECISION TOL, PARAMS(*), KFAC - LOGICAL EQUALD - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 1000.0D0, NUM_DTOD( VAL__MAXD )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = -1 - UBND_IN( 1 ) = 2 - LBND_OUT( 1 ) = 0 - UBND_OUT( 1 ) = 3 - LBND( 1 ) = -1 - UBND( 1 ) = 1 - LBND_IN( 2 ) = 3 - UBND_IN( 2 ) = 6 - LBND_OUT( 2 ) = 2 - UBND_OUT( 2 ) = 5 - LBND( 2 ) = 3 - UBND( 2 ) = 6 - M = AST_UNITMAP( 2, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = K*KFAC - IN_VAR( K ) = K - K = K + 1 - END DO - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - K = 1 - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - IF( K .LE. 4 .OR. MOD( K, 4 ) .EQ. 0 .OR. - : MOD( K, 4 ) .EQ. 3 ) THEN - IF( .NOT. EQUALD( OUT( K ), 0.0D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - CALL ERR_REP( ' ', 'TEST2D ^I: ^V != 0', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALD( OUT_VAR( K ), 0.0D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ))) - CALL ERR_REP( ' ', 'TEST2D ^I: variance ^V '// - : '!= 0', STATUS ) - RETURN - END IF - ELSE - IF( .NOT. EQUALD( OUT( K ), IN( K - 3 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADD ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN( K - 3 ) ) ) - CALL ERR_REP( ' ', 'TEST2D ^I: data ^V != ^B', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALD( OUT( K ), IN( K-3 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADD ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN_VAR( K - 3 ) ) ) - CALL ERR_REP( ' ', - : 'TEST2D ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END IF - K = K + 1 - END DO - END DO - - END IF - - END - - - - SUBROUTINE TEST2I( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : LBND(*), UBND(*), STATUS, M, I, J, K, SPREAD - INTEGER IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - DOUBLE PRECISION TOL, PARAMS(*), KFAC - LOGICAL EQUALI - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 1000.0D0, NUM_ITOD( VAL__MAXI )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = -1 - UBND_IN( 1 ) = 2 - LBND_OUT( 1 ) = 0 - UBND_OUT( 1 ) = 3 - LBND( 1 ) = -1 - UBND( 1 ) = 1 - LBND_IN( 2 ) = 3 - UBND_IN( 2 ) = 6 - LBND_OUT( 2 ) = 2 - UBND_OUT( 2 ) = 5 - LBND( 2 ) = 3 - UBND( 2 ) = 6 - M = AST_UNITMAP( 2, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = K*KFAC - IN_VAR( K ) = K - K = K + 1 - END DO - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - K = 1 - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - IF( K .LE. 4 .OR. MOD( K, 4 ) .EQ. 0 .OR. - : MOD( K, 4 ) .EQ. 3 ) THEN - IF( .NOT. EQUALI( OUT( K ), 0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - CALL ERR_REP( ' ', 'TEST2I ^I: ^V != 0', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALI( OUT_VAR( K ), 0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ))) - CALL ERR_REP( ' ', 'TEST2I ^I: variance ^V '// - : '!= 0', STATUS ) - RETURN - END IF - ELSE - IF( .NOT. EQUALI( OUT( K ), IN( K - 3 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADI ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN( K - 3 ) ) ) - CALL ERR_REP( ' ', 'TEST2I ^I: data ^V != ^B', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALI( OUT( K ), IN( K-3 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADI ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN_VAR( K - 3 ) ) ) - CALL ERR_REP( ' ', - : 'TEST2I ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END IF - K = K + 1 - END DO - END DO - - END IF - - END - - - - SUBROUTINE TEST2R( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : LBND(*), UBND(*), STATUS, M, I, J, K, SPREAD - REAL IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - DOUBLE PRECISION TOL, PARAMS(*), KFAC - LOGICAL EQUALR - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 1000.0D0, NUM_RTOD( VAL__MAXR )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = -1 - UBND_IN( 1 ) = 2 - LBND_OUT( 1 ) = 0 - UBND_OUT( 1 ) = 3 - LBND( 1 ) = -1 - UBND( 1 ) = 1 - LBND_IN( 2 ) = 3 - UBND_IN( 2 ) = 6 - LBND_OUT( 2 ) = 2 - UBND_OUT( 2 ) = 5 - LBND( 2 ) = 3 - UBND( 2 ) = 6 - M = AST_UNITMAP( 2, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = K*KFAC - IN_VAR( K ) = K - K = K + 1 - END DO - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - K = 1 - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - IF( K .LE. 4 .OR. MOD( K, 4 ) .EQ. 0 .OR. - : MOD( K, 4 ) .EQ. 3 ) THEN - IF( .NOT. EQUALR( OUT( K ), 0.0E0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - CALL ERR_REP( ' ', 'TEST2R ^I: ^V != 0', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALR( OUT_VAR( K ), 0.0E0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ))) - CALL ERR_REP( ' ', 'TEST2R ^I: variance ^V '// - : '!= 0', STATUS ) - RETURN - END IF - ELSE - IF( .NOT. EQUALR( OUT( K ), IN( K - 3 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADR ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN( K - 3 ) ) ) - CALL ERR_REP( ' ', 'TEST2R ^I: data ^V != ^B', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALR( OUT( K ), IN( K-3 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADR ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN_VAR( K - 3 ) ) ) - CALL ERR_REP( ' ', - : 'TEST2R ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END IF - K = K + 1 - END DO - END DO - - END IF - - END - - - - - -* ----------------------------------------------- -* Test 3 -* - - SUBROUTINE TEST3( DO, NAME, TYPE, - : LBND_IN, UBND_IN, IPIN, IPIN_VAR, - : LBND_OUT, UBND_OUT, IPOUT, IPOUT_VAR, - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - - INTEGER M, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : LBND(*), UBND(*), IPIN, IPIN_VAR, IPOUT, IPOUT_VAR, - : STATUS, DO, J - DOUBLE PRECISION TOL, PARAMS(*) - CHARACTER TYPE*(*), NAME*(*) - - IF( STATUS .NE. SAI__OK ) RETURN - - NAME = 'TEST3' - -* Fill the input data and variance arrays if required. - IF( TYPE .EQ. '_REAL' ) THEN - CALL TEST3R( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_DOUBLE' ) THEN - CALL TEST3D( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_INTEGER' ) THEN - CALL TEST3I( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( STATUS .EQ. SAI__OK ) then - STATUS = SAI__ERROR - CALL MSG_SETC( 'T', TYPE ) - CALL ERR_REP( ' ', 'Bad data type (^T) supplied to TEST3', - : STATUS ) - END IF - - END - - - - - SUBROUTINE TEST3D( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, J, K, L, K2 - DOUBLE PRECISION IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - DOUBLE PRECISION TOL, PARAMS(*), KFAC - LOGICAL EQUALD - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 1000.0D0, NUM_DTOD( VAL__MAXD )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = -1 - UBND_IN( 1 ) = 2 - LBND_OUT( 1 ) = 0 - UBND_OUT( 1 ) = 3 - LBND( 1 ) = -1 - UBND( 1 ) = 1 - LBND_IN( 2 ) = 3 - UBND_IN( 2 ) = 6 - LBND_OUT( 2 ) = 2 - UBND_OUT( 2 ) = 5 - LBND( 2 ) = 3 - UBND( 2 ) = 6 - LBND_IN( 3 ) = -1 - UBND_IN( 3 ) = 1 - LBND_OUT( 3 ) = 0 - UBND_OUT( 3 ) = 2 - LBND( 3 ) = -1 - UBND( 3 ) = 1 - M = AST_UNITMAP( 3, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO L = LBND_IN(3), UBND_IN(3) - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = K*KFAC - IN_VAR( K ) = K - K = K + 1 - END DO - END DO - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - K = 1 - DO L = LBND_OUT(3), UBND_OUT(3) - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - - K2 = MOD( K - 1, 16 ) + 1 - IF( K2 .LE. 4 .OR. MOD( K2, 4 ) .EQ. 0 .OR. - : MOD( K2, 4 ) .EQ. 3 .OR. - : L .EQ. 2 ) THEN - IF( .NOT. EQUALD( OUT( K ), 0.0D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADD ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST3D ^I: ^V != 0', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALD( OUT_VAR( K ), - ; 0.0D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT_VAR( K ) .NE. VAL__BADD ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ))) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST3D ^I: variance ^V '// - : '!= 0', STATUS ) - RETURN - END IF - ELSE - IF( .NOT. EQUALD( OUT( K ), IN( K + 13 ))) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADD ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN( K+13 ) ) ) - CALL ERR_REP( ' ', 'TEST3D ^I: data ^V != ^B', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALD( OUT( K ), IN(K+13) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADD ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN_VAR( K+13 ) ) ) - CALL ERR_REP( ' ', - : 'TEST3D ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END IF - K = K + 1 - END DO - END DO - END DO - END IF - - END - - - - SUBROUTINE TEST3I( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, J, K, L, K2 - INTEGER IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - DOUBLE PRECISION TOL, PARAMS(*), KFAC - LOGICAL EQUALI - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 1000.0D0, NUM_ITOD( VAL__MAXI )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = -1 - UBND_IN( 1 ) = 2 - LBND_OUT( 1 ) = 0 - UBND_OUT( 1 ) = 3 - LBND( 1 ) = -1 - UBND( 1 ) = 1 - LBND_IN( 2 ) = 3 - UBND_IN( 2 ) = 6 - LBND_OUT( 2 ) = 2 - UBND_OUT( 2 ) = 5 - LBND( 2 ) = 3 - UBND( 2 ) = 6 - LBND_IN( 3 ) = -1 - UBND_IN( 3 ) = 1 - LBND_OUT( 3 ) = 0 - UBND_OUT( 3 ) = 2 - LBND( 3 ) = -1 - UBND( 3 ) = 1 - M = AST_UNITMAP( 3, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO L = LBND_IN(3), UBND_IN(3) - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = K*KFAC - IN_VAR( K ) = K - K = K + 1 - END DO - END DO - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - K = 1 - DO L = LBND_OUT(3), UBND_OUT(3) - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - - K2 = MOD( K - 1, 16 ) + 1 - IF( K2 .LE. 4 .OR. MOD( K2, 4 ) .EQ. 0 .OR. - : MOD( K2, 4 ) .EQ. 3 .OR. - : L .EQ. 2 ) THEN - IF( .NOT. EQUALI( OUT( K ), 0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADI ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST3I ^I: ^V != 0', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALI( OUT_VAR( K ), - ; 0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT_VAR( K ) .NE. VAL__BADI ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ))) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST3I ^I: variance ^V '// - : '!= 0', STATUS ) - RETURN - END IF - ELSE - IF( .NOT. EQUALI( OUT( K ), IN( K + 13 ))) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADI ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN( K+13 ) ) ) - CALL ERR_REP( ' ', 'TEST3I ^I: data ^V != ^B', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALI( OUT( K ), IN(K+13) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADI ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN_VAR( K+13 ) ) ) - CALL ERR_REP( ' ', - : 'TEST3I ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END IF - K = K + 1 - END DO - END DO - END DO - END IF - - END - - - - SUBROUTINE TEST3R( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, J, K, L, K2 - REAL IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - DOUBLE PRECISION TOL, PARAMS(*), KFAC - LOGICAL EQUALR - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 1000.0D0, NUM_RTOD( VAL__MAXR )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = -1 - UBND_IN( 1 ) = 2 - LBND_OUT( 1 ) = 0 - UBND_OUT( 1 ) = 3 - LBND( 1 ) = -1 - UBND( 1 ) = 1 - LBND_IN( 2 ) = 3 - UBND_IN( 2 ) = 6 - LBND_OUT( 2 ) = 2 - UBND_OUT( 2 ) = 5 - LBND( 2 ) = 3 - UBND( 2 ) = 6 - LBND_IN( 3 ) = -1 - UBND_IN( 3 ) = 1 - LBND_OUT( 3 ) = 0 - UBND_OUT( 3 ) = 2 - LBND( 3 ) = -1 - UBND( 3 ) = 1 - M = AST_UNITMAP( 3, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO L = LBND_IN(3), UBND_IN(3) - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = K*KFAC - IN_VAR( K ) = K - K = K + 1 - END DO - END DO - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - K = 1 - DO L = LBND_OUT(3), UBND_OUT(3) - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - - K2 = MOD( K - 1, 16 ) + 1 - IF( K2 .LE. 4 .OR. MOD( K2, 4 ) .EQ. 0 .OR. - : MOD( K2, 4 ) .EQ. 3 .OR. - : L .EQ. 2 ) THEN - IF( .NOT. EQUALR( OUT( K ), 0.0E0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADR ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST3R ^I: ^V != 0', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALR( OUT_VAR( K ), - ; 0.0E0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT_VAR( K ) .NE. VAL__BADR ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ))) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST3R ^I: variance ^V '// - : '!= 0', STATUS ) - RETURN - END IF - ELSE - IF( .NOT. EQUALR( OUT( K ), IN( K + 13 ))) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADR ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN( K+13 ) ) ) - CALL ERR_REP( ' ', 'TEST3R ^I: data ^V != ^B', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALR( OUT( K ), IN(K+13) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADR ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN_VAR( K+13 ) ) ) - CALL ERR_REP( ' ', - : 'TEST3R ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END IF - K = K + 1 - END DO - END DO - END DO - END IF - - END - - - - - -* ----------------------------------------------- -* Test 4 -* - - SUBROUTINE TEST4( DO, NAME, TYPE, - : LBND_IN, UBND_IN, IPIN, IPIN_VAR, - : LBND_OUT, UBND_OUT, IPOUT, IPOUT_VAR, - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - - INTEGER M, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : LBND(*), UBND(*), IPIN, IPIN_VAR, IPOUT, IPOUT_VAR, - : STATUS, DO, J - DOUBLE PRECISION TOL, PARAMS(*) - CHARACTER TYPE*(*), NAME*(*) - - IF( STATUS .NE. SAI__OK ) RETURN - - NAME = 'TEST4' - -* Fill the input data and variance arrays if required. - IF( TYPE .EQ. '_REAL' ) THEN - CALL TEST4R( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_DOUBLE' ) THEN - CALL TEST4D( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_INTEGER' ) THEN - CALL TEST4I( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( STATUS .EQ. SAI__OK ) then - STATUS = SAI__ERROR - CALL MSG_SETC( 'T', TYPE ) - CALL ERR_REP( ' ', 'Bad data type (^T) supplied to TEST4', - : STATUS ) - END IF - - END - - - - - SUBROUTINE TEST4D( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I - DOUBLE PRECISION IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - DOUBLE PRECISION TOL, PARAMS(*), K - LOGICAL EQUALD - - IF( STATUS .NE. SAI__OK ) RETURN - - K = MIN( 1000.0D0, NUM_DTOD( VAL__MAXD )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = 10 - UBND_IN( 1 ) = 19 - LBND_OUT( 1 ) = 12 - UBND_OUT( 1 ) = 20 - LBND( 1 ) = 11 - UBND( 1 ) = 17 - M = AST_SHIFTMAP( 1, 3.0D0, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.1 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - DO I = LBND_IN(1), UBND_IN(1) - IN( I - LBND_IN(1) + 1 ) = I*K - IN_VAR( I - LBND_IN(1) + 1 ) = I - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - - DO I = LBND_OUT(1), LBND(1) + 2 - IF( .NOT. EQUALD( OUT( I - LBND_OUT(1) + 1 ), - : 0.0D0) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT( I - LBND_OUT(1) + 1 ) ) ) - CALL ERR_REP( ' ', 'TEST4D ^I: ^V != BAD', STATUS ) - RETURN - ELSE IF( .NOT. EQUALD( OUT_VAR( I - LBND_OUT(1) + 1 ), - : 0.0D0) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT_VAR(I-LBND_OUT(1)+1) ) ) - CALL ERR_REP( ' ', 'TEST4D ^I: variance ^V != BAD', - : STATUS ) - RETURN - END IF - END DO - - DO I = LBND(1) + 3, UBND_OUT(1) - IF( .NOT. EQUALD( OUT( I - LBND_OUT(1) + 1 ), - : IN( I - 3 - LBND_IN(1) + 1 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - IF( OUT( I - LBND_OUT(1) + 1 ) .NE. VAL__BADD ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( I - LBND_OUT(1) + 1))) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN( I -3 - LBND_IN(1) + 1 ) ) ) - CALL ERR_REP( ' ', 'TEST4D ^I: data ^V != ^B', STATUS ) - RETURN - ELSE IF( .NOT. EQUALD( OUT_VAR( I - LBND_OUT(1) + 1 ), - : IN_VAR( I - 3 - LBND_IN(1) + 1 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - IF( OUT_VAR(I-LBND_OUT(1)+1) .NE. VAL__BADD ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR(I-LBND_OUT(1)+1))) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN_VAR(I-3-LBND_IN(1)+1) ) ) - CALL ERR_REP( ' ', 'TEST4D ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END DO - - END IF - - END - - SUBROUTINE TEST4I( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I - INTEGER IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - DOUBLE PRECISION TOL, PARAMS(*), K - LOGICAL EQUALI - - IF( STATUS .NE. SAI__OK ) RETURN - - K = MIN( 1000.0D0, NUM_ITOD( VAL__MAXI )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = 10 - UBND_IN( 1 ) = 19 - LBND_OUT( 1 ) = 12 - UBND_OUT( 1 ) = 20 - LBND( 1 ) = 11 - UBND( 1 ) = 17 - M = AST_SHIFTMAP( 1, 3.0D0, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.1 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - DO I = LBND_IN(1), UBND_IN(1) - IN( I - LBND_IN(1) + 1 ) = I*K - IN_VAR( I - LBND_IN(1) + 1 ) = I - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - - DO I = LBND_OUT(1), LBND(1) + 2 - IF( .NOT. EQUALI( OUT( I - LBND_OUT(1) + 1 ), - : 0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT( I - LBND_OUT(1) + 1 ) ) ) - CALL ERR_REP( ' ', 'TEST4I ^I: ^V != BAD', STATUS ) - RETURN - ELSE IF( .NOT. EQUALI( OUT_VAR( I - LBND_OUT(1) + 1 ), - : 0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT_VAR(I-LBND_OUT(1)+1) ) ) - CALL ERR_REP( ' ', 'TEST4I ^I: variance ^V != BAD', - : STATUS ) - RETURN - END IF - END DO - - DO I = LBND(1) + 3, UBND_OUT(1) - IF( .NOT. EQUALI( OUT( I - LBND_OUT(1) + 1 ), - : IN( I - 3 - LBND_IN(1) + 1 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - IF( OUT( I - LBND_OUT(1) + 1 ) .NE. VAL__BADI ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( I - LBND_OUT(1) + 1))) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN( I -3 - LBND_IN(1) + 1 ) ) ) - CALL ERR_REP( ' ', 'TEST4I ^I: data ^V != ^B', STATUS ) - RETURN - ELSE IF( .NOT. EQUALI( OUT_VAR( I - LBND_OUT(1) + 1 ), - : IN_VAR( I - 3 - LBND_IN(1) + 1 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - IF( OUT_VAR(I-LBND_OUT(1)+1) .NE. VAL__BADI ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR(I-LBND_OUT(1)+1))) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN_VAR(I-3-LBND_IN(1)+1) ) ) - CALL ERR_REP( ' ', 'TEST4I ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END DO - - END IF - - END - - SUBROUTINE TEST4R( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I - REAL IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - DOUBLE PRECISION TOL, PARAMS(*), K - LOGICAL EQUALR - - IF( STATUS .NE. SAI__OK ) RETURN - - K = MIN( 1000.0D0, NUM_RTOD( VAL__MAXR )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = 10 - UBND_IN( 1 ) = 19 - LBND_OUT( 1 ) = 12 - UBND_OUT( 1 ) = 20 - LBND( 1 ) = 11 - UBND( 1 ) = 17 - M = AST_SHIFTMAP( 1, 3.0D0, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.1 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - DO I = LBND_IN(1), UBND_IN(1) - IN( I - LBND_IN(1) + 1 ) = I*K - IN_VAR( I - LBND_IN(1) + 1 ) = I - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - - DO I = LBND_OUT(1), LBND(1) + 2 - IF( .NOT. EQUALR( OUT( I - LBND_OUT(1) + 1 ), - : 0.0E0) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT( I - LBND_OUT(1) + 1 ) ) ) - CALL ERR_REP( ' ', 'TEST4R ^I: ^V != BAD', STATUS ) - RETURN - ELSE IF( .NOT. EQUALR( OUT_VAR( I - LBND_OUT(1) + 1 ), - : 0.0E0) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETD( 'V', DBLE( OUT_VAR(I-LBND_OUT(1)+1) ) ) - CALL ERR_REP( ' ', 'TEST4R ^I: variance ^V != BAD', - : STATUS ) - RETURN - END IF - END DO - - DO I = LBND(1) + 3, UBND_OUT(1) - IF( .NOT. EQUALR( OUT( I - LBND_OUT(1) + 1 ), - : IN( I - 3 - LBND_IN(1) + 1 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - IF( OUT( I - LBND_OUT(1) + 1 ) .NE. VAL__BADR ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( I - LBND_OUT(1) + 1))) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN( I -3 - LBND_IN(1) + 1 ) ) ) - CALL ERR_REP( ' ', 'TEST4R ^I: data ^V != ^B', STATUS ) - RETURN - ELSE IF( .NOT. EQUALR( OUT_VAR( I - LBND_OUT(1) + 1 ), - : IN_VAR( I - 3 - LBND_IN(1) + 1 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - IF( OUT_VAR(I-LBND_OUT(1)+1) .NE. VAL__BADR ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR(I-LBND_OUT(1)+1))) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN_VAR(I-3-LBND_IN(1)+1) ) ) - CALL ERR_REP( ' ', 'TEST4R ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END DO - - END IF - - END - - - -* ----------------------------------------------- -* Test 5 -* - - SUBROUTINE TEST5( DO, NAME, TYPE, - : LBND_IN, UBND_IN, IPIN, IPIN_VAR, - : LBND_OUT, UBND_OUT, IPOUT, IPOUT_VAR, - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - - INTEGER M, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : LBND(*), UBND(*), IPIN, IPIN_VAR, IPOUT, IPOUT_VAR, - : STATUS, DO, J - DOUBLE PRECISION TOL, PARAMS(*) - CHARACTER TYPE*(*), NAME*(*) - - IF( STATUS .NE. SAI__OK ) RETURN - - NAME = 'TEST5' - -* Fill the input data and variance arrays if required. - IF( TYPE .EQ. '_REAL' ) THEN - CALL TEST5R( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_DOUBLE' ) THEN - CALL TEST5D( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_INTEGER' ) THEN - CALL TEST5I( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( STATUS .EQ. SAI__OK ) then - STATUS = SAI__ERROR - CALL MSG_SETC( 'T', TYPE ) - CALL ERR_REP( ' ', 'Bad data type (^T) supplied to TEST5', - : STATUS ) - END IF - - END - - - - - SUBROUTINE TEST5D( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, J, K - DOUBLE PRECISION IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - DOUBLE PRECISION TOL, PARAMS(*), KFAC, SHIFTS(2) - LOGICAL EQUALD - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 1000.0D0, NUM_DTOD( VAL__MAXD )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = -1 - UBND_IN( 1 ) = 2 - LBND_OUT( 1 ) = 0 - UBND_OUT( 1 ) = 3 - LBND( 1 ) = -1 - UBND( 1 ) = 1 - LBND_IN( 2 ) = 3 - UBND_IN( 2 ) = 6 - LBND_OUT( 2 ) = 2 - UBND_OUT( 2 ) = 5 - LBND( 2 ) = 3 - UBND( 2 ) = 6 - SHIFTS(1) = 3.0D0 - SHIFTS(2) = -1.0D0 - M = AST_SHIFTMAP( 2, SHIFTS, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = K*KFAC - IN_VAR( K ) = K - K = K + 1 - END DO - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - K = 1 - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - IF( MOD( K - 1, 4 ) .LT. 2 ) THEN - IF( .NOT. EQUALD( OUT( K ), 0.0D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADD ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST5D ^I: ^V != BAD', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALD( OUT_VAR( K ), - : 0.0D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT_VAR( K ) .NE. VAL__BADD ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ))) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST5D ^I: variance ^V '// - : '!= BAD', STATUS ) - RETURN - END IF - ELSE - IF( .NOT. EQUALD( OUT( K ), IN( K - 2 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADD ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN( K - 2 ) ) ) - CALL ERR_REP( ' ', 'TEST5D ^I: data ^V != ^B', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALD( OUT( K ), IN( K-2 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADD ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN_VAR( K - 2 ) ) ) - CALL ERR_REP( ' ', - : 'TEST5D ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END IF - K = K + 1 - END DO - END DO - - END IF - - END - - - - SUBROUTINE TEST5I( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, J, K - INTEGER IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - DOUBLE PRECISION TOL, PARAMS(*), KFAC, SHIFTS(2) - LOGICAL EQUALI - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 1000.0D0, NUM_ITOD( VAL__MAXI )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = -1 - UBND_IN( 1 ) = 2 - LBND_OUT( 1 ) = 0 - UBND_OUT( 1 ) = 3 - LBND( 1 ) = -1 - UBND( 1 ) = 1 - LBND_IN( 2 ) = 3 - UBND_IN( 2 ) = 6 - LBND_OUT( 2 ) = 2 - UBND_OUT( 2 ) = 5 - LBND( 2 ) = 3 - UBND( 2 ) = 6 - SHIFTS(1) = 3.0D0 - SHIFTS(2) = -1.0D0 - M = AST_SHIFTMAP( 2, SHIFTS, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = K*KFAC - IN_VAR( K ) = K - K = K + 1 - END DO - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - K = 1 - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - IF( MOD( K - 1, 4 ) .LT. 2 ) THEN - IF( .NOT. EQUALI( OUT( K ), 0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADI ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST5I ^I: ^V != BAD', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALI( OUT_VAR( K ), - : 0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT_VAR( K ) .NE. VAL__BADI ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ))) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST5I ^I: variance ^V '// - : '!= BAD', STATUS ) - RETURN - END IF - ELSE - IF( .NOT. EQUALI( OUT( K ), IN( K - 2 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADI ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN( K - 2 ) ) ) - CALL ERR_REP( ' ', 'TEST5I ^I: data ^V != ^B', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALI( OUT( K ), IN( K-2 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADI ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN_VAR( K - 2 ) ) ) - CALL ERR_REP( ' ', - : 'TEST5I ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END IF - K = K + 1 - END DO - END DO - - END IF - - END - - - - SUBROUTINE TEST5R( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, J, K - REAL IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - DOUBLE PRECISION TOL, PARAMS(*), KFAC, SHIFTS(2) - LOGICAL EQUALR - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 1000.0D0, NUM_RTOD( VAL__MAXR )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = -1 - UBND_IN( 1 ) = 2 - LBND_OUT( 1 ) = 0 - UBND_OUT( 1 ) = 3 - LBND( 1 ) = -1 - UBND( 1 ) = 1 - LBND_IN( 2 ) = 3 - UBND_IN( 2 ) = 6 - LBND_OUT( 2 ) = 2 - UBND_OUT( 2 ) = 5 - LBND( 2 ) = 3 - UBND( 2 ) = 6 - SHIFTS(1) = 3.0D0 - SHIFTS(2) = -1.0D0 - M = AST_SHIFTMAP( 2, SHIFTS, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = K*KFAC - IN_VAR( K ) = K - K = K + 1 - END DO - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - K = 1 - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - IF( MOD( K - 1, 4 ) .LT. 2 ) THEN - IF( .NOT. EQUALR( OUT( K ), 0.0E0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADR ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST5R ^I: ^V != BAD', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALR( OUT_VAR( K ), - : 0.0E0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT_VAR( K ) .NE. VAL__BADR ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ))) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST5R ^I: variance ^V '// - : '!= BAD', STATUS ) - RETURN - END IF - ELSE - IF( .NOT. EQUALR( OUT( K ), IN( K - 2 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADR ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN( K - 2 ) ) ) - CALL ERR_REP( ' ', 'TEST5R ^I: data ^V != ^B', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALR( OUT( K ), IN( K-2 ) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADR ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN_VAR( K - 2 ) ) ) - CALL ERR_REP( ' ', - : 'TEST5R ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END IF - K = K + 1 - END DO - END DO - - END IF - - END - - - - - -* ----------------------------------------------- -* Test 6 -* - - SUBROUTINE TEST6( DO, NAME, TYPE, - : LBND_IN, UBND_IN, IPIN, IPIN_VAR, - : LBND_OUT, UBND_OUT, IPOUT, IPOUT_VAR, - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - - INTEGER M, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : LBND(*), UBND(*), IPIN, IPIN_VAR, IPOUT, IPOUT_VAR, - : STATUS, DO, J - DOUBLE PRECISION TOL, PARAMS(*) - CHARACTER TYPE*(*), NAME*(*) - - IF( STATUS .NE. SAI__OK ) RETURN - - NAME = 'TEST6' - -* Fill the input data and variance arrays if required. - IF( TYPE .EQ. '_REAL' ) THEN - CALL TEST6R( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_DOUBLE' ) THEN - CALL TEST6D( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( TYPE .EQ. '_INTEGER' ) THEN - CALL TEST6I( DO, LBND_IN, UBND_IN, %VAL(CNF_PVAL(IPIN)), - : %VAL(CNF_PVAL(IPIN_VAR)), LBND_OUT, UBND_OUT, - : %VAL(CNF_PVAL(IPOUT)),%VAL(CNF_PVAL(IPOUT_VAR)), - : LBND, UBND, M, PARAMS, TOL, J, STATUS ) - - ELSE IF( STATUS .EQ. SAI__OK ) then - STATUS = SAI__ERROR - CALL MSG_SETC( 'T', TYPE ) - CALL ERR_REP( ' ', 'Bad data type (^T) supplied to TEST6', - : STATUS ) - END IF - - END - - - - - SUBROUTINE TEST6D( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, J, K, L, K2 - DOUBLE PRECISION IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - DOUBLE PRECISION TOL, PARAMS(*), KFAC, SHIFTS(3) - LOGICAL EQUALD - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 1000.0D0, NUM_DTOD( VAL__MAXD )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = -1 - UBND_IN( 1 ) = 2 - LBND_OUT( 1 ) = 0 - UBND_OUT( 1 ) = 3 - LBND( 1 ) = -1 - UBND( 1 ) = 1 - LBND_IN( 2 ) = 3 - UBND_IN( 2 ) = 6 - LBND_OUT( 2 ) = 2 - UBND_OUT( 2 ) = 5 - LBND( 2 ) = 3 - UBND( 2 ) = 6 - LBND_IN( 3 ) = -1 - UBND_IN( 3 ) = 1 - LBND_OUT( 3 ) = 0 - UBND_OUT( 3 ) = 2 - LBND( 3 ) = -1 - UBND( 3 ) = 1 - SHIFTS(1) = 3.0D0 - SHIFTS(2) = -1.0D0 - SHIFTS(3) = 1.0D0 - M = AST_SHIFTMAP( 3, SHIFTS, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO L = LBND_IN(3), UBND_IN(3) - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = K*KFAC - IN_VAR( K ) = K - K = K + 1 - END DO - END DO - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - K = 1 - DO L = LBND_OUT(3), UBND_OUT(3) - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - - K2 = MOD( K - 1, 16 ) + 1 - IF( MOD( K2 - 1, 4 ) .LT. 2 ) THEN - IF( .NOT. EQUALD( OUT( K ), 0.0D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADD ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST6D ^I: ^V != BAD', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALD( OUT_VAR( K ), - : 0.0D0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT_VAR( K ) .NE. VAL__BADD ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ))) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST6D ^I: variance ^V '// - : '!= BAD', STATUS ) - RETURN - END IF - ELSE - IF( .NOT. EQUALD( OUT( K ), IN( K - 2 ))) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADD ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN( K-2 ) ) ) - CALL ERR_REP( ' ', 'TEST6D ^I: data ^V != ^B', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALD( OUT( K ), IN(K-2) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADD ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN_VAR( K-2 ) ) ) - CALL ERR_REP( ' ', - : 'TEST6D ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END IF - K = K + 1 - END DO - END DO - END DO - END IF - - END - - - - SUBROUTINE TEST6I( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, J, K, L, K2 - INTEGER IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - DOUBLE PRECISION TOL, PARAMS(*), KFAC, SHIFTS(3) - LOGICAL EQUALI - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 1000.0D0, NUM_ITOD( VAL__MAXI )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = -1 - UBND_IN( 1 ) = 2 - LBND_OUT( 1 ) = 0 - UBND_OUT( 1 ) = 3 - LBND( 1 ) = -1 - UBND( 1 ) = 1 - LBND_IN( 2 ) = 3 - UBND_IN( 2 ) = 6 - LBND_OUT( 2 ) = 2 - UBND_OUT( 2 ) = 5 - LBND( 2 ) = 3 - UBND( 2 ) = 6 - LBND_IN( 3 ) = -1 - UBND_IN( 3 ) = 1 - LBND_OUT( 3 ) = 0 - UBND_OUT( 3 ) = 2 - LBND( 3 ) = -1 - UBND( 3 ) = 1 - SHIFTS(1) = 3.0D0 - SHIFTS(2) = -1.0D0 - SHIFTS(3) = 1.0D0 - M = AST_SHIFTMAP( 3, SHIFTS, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO L = LBND_IN(3), UBND_IN(3) - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = K*KFAC - IN_VAR( K ) = K - K = K + 1 - END DO - END DO - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - K = 1 - DO L = LBND_OUT(3), UBND_OUT(3) - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - - K2 = MOD( K - 1, 16 ) + 1 - IF( MOD( K2 - 1, 4 ) .LT. 2 ) THEN - IF( .NOT. EQUALI( OUT( K ), 0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADI ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST6I ^I: ^V != BAD', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALI( OUT_VAR( K ), - : 0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT_VAR( K ) .NE. VAL__BADI ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ))) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST6I ^I: variance ^V '// - : '!= BAD', STATUS ) - RETURN - END IF - ELSE - IF( .NOT. EQUALI( OUT( K ), IN( K - 2 ))) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADI ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN( K-2 ) ) ) - CALL ERR_REP( ' ', 'TEST6I ^I: data ^V != ^B', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALI( OUT( K ), IN(K-2) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADI ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN_VAR( K-2 ) ) ) - CALL ERR_REP( ' ', - : 'TEST6I ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END IF - K = K + 1 - END DO - END DO - END DO - END IF - - END - - - - SUBROUTINE TEST6R( DO, LBND_IN, UBND_IN, IN, IN_VAR, LBND_OUT, - : UBND_OUT, OUT, OUT_VAR, LBND, UBND, M, - : PARAMS, TOL, SPREAD, STATUS ) - - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'PRM_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'CNF_PAR' - INCLUDE 'NUM_DEC' - INCLUDE 'NUM_DEF' - - INTEGER DO, LBND_IN(*), UBND_IN(*), LBND_OUT(*), UBND_OUT(*), - : SPREAD, LBND(*), UBND(*), STATUS, M, I, J, K, L, K2 - REAL IN(*), IN_VAR(*), OUT(*), OUT_VAR(*) - DOUBLE PRECISION TOL, PARAMS(*), KFAC, SHIFTS(3) - LOGICAL EQUALR - - IF( STATUS .NE. SAI__OK ) RETURN - - KFAC = MIN( 1000.0D0, NUM_RTOD( VAL__MAXR )/20.0 ) - -* Return the scalar parameters of the test if required. - IF( DO .EQ. 0 ) THEN - LBND_IN( 1 ) = -1 - UBND_IN( 1 ) = 2 - LBND_OUT( 1 ) = 0 - UBND_OUT( 1 ) = 3 - LBND( 1 ) = -1 - UBND( 1 ) = 1 - LBND_IN( 2 ) = 3 - UBND_IN( 2 ) = 6 - LBND_OUT( 2 ) = 2 - UBND_OUT( 2 ) = 5 - LBND( 2 ) = 3 - UBND( 2 ) = 6 - LBND_IN( 3 ) = -1 - UBND_IN( 3 ) = 1 - LBND_OUT( 3 ) = 0 - UBND_OUT( 3 ) = 2 - LBND( 3 ) = -1 - UBND( 3 ) = 1 - SHIFTS(1) = 3.0D0 - SHIFTS(2) = -1.0D0 - SHIFTS(3) = 1.0D0 - M = AST_SHIFTMAP( 3, SHIFTS, ' ', STATUS ) - PARAMS(1) = 2.0 - PARAMS(2) = 2.0 - TOL = 0.0 - -* Fill the input data and variance arrays if required. - ELSE IF( DO .EQ. 1 ) THEN - K = 1 - DO L = LBND_IN(3), UBND_IN(3) - DO J = LBND_IN(2), UBND_IN(2) - DO I = LBND_IN(1), UBND_IN(1) - IN( K ) = K*KFAC - IN_VAR( K ) = K - K = K + 1 - END DO - END DO - END DO - -* Otherwise check output data and variance arrays look right. - ELSE - K = 1 - DO L = LBND_OUT(3), UBND_OUT(3) - DO J = LBND_OUT(2), UBND_OUT(2) - DO I = LBND_OUT(1), UBND_OUT(1) - - K2 = MOD( K - 1, 16 ) + 1 - IF( MOD( K2 - 1, 4 ) .LT. 2 ) THEN - IF( .NOT. EQUALR( OUT( K ), 0.0E0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADR ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST6R ^I: ^V != BAD', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALR( OUT_VAR( K ), - : 0.0E0 ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT_VAR( K ) .NE. VAL__BADR ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ))) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL ERR_REP( ' ', 'TEST6R ^I: variance ^V '// - : '!= BAD', STATUS ) - RETURN - END IF - ELSE - IF( .NOT. EQUALR( OUT( K ), IN( K - 2 ))) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADR ) THEN - CALL MSG_SETD( 'V', DBLE( OUT( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN( K-2 ) ) ) - CALL ERR_REP( ' ', 'TEST6R ^I: data ^V != ^B', - : STATUS ) - RETURN - ELSE IF( .NOT. EQUALR( OUT( K ), IN(K-2) ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', K ) - IF( OUT( K ) .NE. VAL__BADR ) THEN - CALL MSG_SETD( 'V', DBLE( OUT_VAR( K ) ) ) - ELSE - CALL MSG_SETC( 'V', 'BAD' ) - END IF - CALL MSG_SETD( 'B', DBLE( IN_VAR( K-2 ) ) ) - CALL ERR_REP( ' ', - : 'TEST6R ^I: variance ^V != ^B', - : STATUS ) - RETURN - END IF - END IF - K = K + 1 - END DO - END DO - END DO - END IF - - END - - - diff --git a/ast/ast_tester/testrebinseq.f b/ast/ast_tester/testrebinseq.f deleted file mode 100644 index 3ab4e43..0000000 --- a/ast/ast_tester/testrebinseq.f +++ /dev/null @@ -1,1580 +0,0 @@ - program testrebin - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - integer status - double precision params(2) - character ch - status = sai__ok - - call ast_begin( status ) - - params(1) = 1.5 - params(2) = 1 - - call tests( 1, AST__GAUSS, params, status ) - call tests( 2, AST__GAUSS, params, status ) - call tests( 3, AST__GAUSS, params, status ) - call tests( 1, AST__NEAREST, params, status ) - call tests( 2, AST__NEAREST, params, status ) - call tests( 3, AST__NEAREST, params, status ) - call tests( 1, AST__LINEAR, params, status ) - call tests( 2, AST__LINEAR, params, status ) - call tests( 3, AST__LINEAR, params, status ) - - call ast_end( status ) - call ast_flushmemory( 1 ) - - if( status .eq. sai__ok ) then - write(*,*) 'All AST_REBINSEQ tests passed' - else - write(*,*) 'AST_REBINSEQ tests failed' - end if - - end - - subroutine tests( NDIM, SPREAD, params, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - integer spread, status, ndim - double precision params(2) - - if( status .ne. sai__ok ) return - - call test1( NDIM, SPREAD, params, status ) - call test2( NDIM, SPREAD, params, status ) - call test3( NDIM, SPREAD, params, status ) - call test4( NDIM, SPREAD, params, status ) - call test5( NDIM, SPREAD, params, status ) - call test6( NDIM, SPREAD, params, status ) - call test7( NDIM, SPREAD, params, status ) - call test8( NDIM, SPREAD, params, status ) - call test9( NDIM, SPREAD, params, status ) - call test10( NDIM, SPREAD, params, status ) - call test11( NDIM, SPREAD, params, status ) - call test12( NDIM, SPREAD, params, status ) - - if( status .ne. SAI__OK ) then - call msg_seti( 'N', ndim ) - - if( spread .eq. AST__GAUSS ) then - call msg_setc( 'S', 'AST__GAUSS' ) - else if( spread .eq. AST__NEAREST ) then - call msg_setc( 'S', 'AST__NEAREST' ) - else if( spread .eq. AST__LINEAR ) then - call msg_setc( 'S', 'AST__LINEAR' ) - endif - call err_rep( ' ', 'Spread=^S (^N-dimensional)', status ) - endif - - end - - - - - SUBROUTINE ADDNOISE( N, ARRAY, SIGMA, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'PRM_PAR' - - INTEGER BUFSIZE - PARAMETER ( BUFSIZE = 100 ) - - INTEGER N, STATUS, MM, IAT, NUSED, I - DOUBLE PRECISION ARRAY( N ) - DOUBLE PRECISION SIGMA - DOUBLE PRECISION NOISE( BUFSIZE ) - DOUBLE PRECISION JUNK( BUFSIZE ) - - CHARACTER FWD(1)*80 - CHARACTER INV(1)*80 - - DATA JUNK/ BUFSIZE*0.0D0 / - - IF( STATUS .NE. SAI__OK ) RETURN - - FWD(1) = 'Y=Gauss(0.0,' - IAT = 12 - CALL CHR_PUTD( SIGMA, FWD(1), IAT ) - CALL CHR_APPND( ')', FWD(1), IAT ) - INV(1) = 'X' - - MM = AST_MATHMAP( 1, 1, 1, FWD, 1, INV, ' ', STATUS ) - - NUSED = BUFSIZE - DO I = 1, N - IF( NUSED .EQ. BUFSIZE ) THEN - CALL AST_TRAN1( MM, BUFSIZE, JUNK, .TRUE., NOISE, STATUS ) - NUSED = 0 - END IF - NUSED = NUSED + 1 - ARRAY( I ) = ARRAY( I ) + NOISE( NUSED ) - END DO - - CALL AST_ANNUL( MM, STATUS ) - - END - - - - - - - SUBROUTINE TEST1( NDIM, SPREAD, PARAMS, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'PRM_PAR' - - INTEGER SPREAD, STATUS, NDIM - - INTEGER NX, NY, JHI - PARAMETER( NX = 100 ) - PARAMETER( NY = 200 ) - - - REAL IN( NX, NY ) - REAL OUT( NX, NY ) - DOUBLE PRECISION PARAMS(2), WEIGHTS( NX, NY ) - INTEGER MAP, LBND_IN(3), UBND_IN(3), LBND_OUT(3), UBND_OUT(3), - : FLAGS, I, J - INTEGER*8 NUSED - - IF( STATUS .NE. SAI__OK ) RETURN - CALL AST_BEGIN( STATUS ) - - DO I = 1, NX - DO J = 1, NY - IN( I, J ) = 1.0 - END DO - END DO - - LBND_IN( 1 ) = 0 - LBND_IN( 2 ) = 1 - LBND_IN( 3 ) = 1 - UBND_IN( 1 ) = NX - 1 - UBND_IN( 2 ) = NY - UBND_IN( 3 ) = 1 - - LBND_OUT( 1 ) = 0 - LBND_OUT( 2 ) = 1 - LBND_OUT( 3 ) = 1 - UBND_OUT( 1 ) = NX - 1 - UBND_OUT( 2 ) = NY - UBND_OUT( 3 ) = 1 - - FLAGS = AST__REBININIT + AST__REBINEND - - MAP = AST_UNITMAP( NDIM, ' ', STATUS ) - CALL AST_REBINSEQR( MAP, 0.0D0, NDIM, LBND_IN, UBND_IN, IN, IN, - : spread, PARAMS, FLAGS, 0.01D0, 50, VAL__BADR, - : NDIM, LBND_OUT, UBND_OUT, LBND_IN, UBND_IN, - : out, OUT, WEIGHTS, NUSED, STATUS ) - - IF( NDIM .EQ. 1 ) THEN - JHI = 1 - ELSE - JHI = ny - ENDIF - - DO I = 1, NX - DO J = 1, JHI - IF( ABS( OUT( I, J ) - 1.0 ) .GT. 1.0E-6 .AND. - : STATUS .EQ. SAI__OK ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETI( 'J', J ) - CALL MSG_SETR( 'V', OUT(I,J) ) - CALL ERR_REP( ' ', 'Output pixel (^I,^J) should be '// - : '1.0 but is ^V', status ) - END IF - END DO - END DO - - CALL AST_END( STATUS ) - IF( STATUS .NE. SAI__OK ) THEN - CALL ERR_REP( ' ', 'test1 failed', STATUS ) - END IF - - END - - - - SUBROUTINE TEST2( NDIM, SPREAD, PARAMS, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'PRM_PAR' - - INTEGER SPREAD, STATUS, NDIM - - INTEGER NX, NY, JHI - PARAMETER( NX = 100 ) - PARAMETER( NY = 200 ) - - - DOUBLE PRECISION IN( NX, NY ) - DOUBLE PRECISION OUT( NX, NY ) - DOUBLE PRECISION PARAMS(2), WEIGHTS( NX, NY ) - INTEGER MAP, LBND_IN(3), UBND_IN(3), LBND_OUT(3), UBND_OUT(3), - : FLAGS, I, J - INTEGER*8 NUSED - - IF( STATUS .NE. SAI__OK ) RETURN - CALL AST_BEGIN( STATUS ) - - DO I = 1, NX - DO J = 1, NY - IN( I, J ) = 1.0D0 - END DO - END DO - - LBND_IN( 1 ) = 0 - LBND_IN( 2 ) = 1 - UBND_IN( 1 ) = NX - 1 - UBND_IN( 2 ) = NY - - LBND_OUT( 1 ) = 0 - LBND_OUT( 2 ) = 1 - UBND_OUT( 1 ) = NX - 1 - UBND_OUT( 2 ) = NY - - LBND_IN( 3 ) = 1 - UBND_IN( 3 ) = 1 - LBND_OUT( 3 ) = 1 - UBND_OUT( 3 ) = 1 - - FLAGS = AST__REBININIT - - MAP = AST_UNITMAP( NDIM, ' ', STATUS ) - - DO I = 1, 3 - IF( I .EQ. 3 ) FLAGS = AST__REBINEND - CALL AST_REBINSEQD( MAP, 0.0D0, ndim, LBND_IN, UBND_IN, IN, IN, - : spread, PARAMS, FLAGS, 0.01D0, 50, VAL__BADD, - : ndim, LBND_OUT, UBND_OUT, LBND_IN, UBND_IN, - : OUT, OUT, WEIGHTS, NUSED, STATUS ) - END DO - - IF( NDIM .EQ. 1 ) THEN - JHI = 1 - ELSE - JHI = ny - ENDIF - - DO I = 1, NX - DO J = 1, JHI - IF( ABS( OUT( I, J ) - 1.0D0 ) .GT. 1.0E-6 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETI( 'J', J ) - CALL MSG_SETD( 'V', OUT(I,J) ) - CALL ERR_REP( ' ', 'Output pixel (^I,^J) should be '// - : '1.0 but is ^V', status ) - END IF - END DO - END DO - - CALL AST_END( STATUS ) - IF( STATUS .NE. SAI__OK ) THEN - CALL ERR_REP( ' ', 'test2 failed', STATUS ) - END IF - - END - - - - - - SUBROUTINE TEST3( NDIM, SPREAD, PARAMS, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'PRM_PAR' - - INTEGER SPREAD, STATUS, NDIM - - INTEGER NX, NY - PARAMETER( NX = 100 ) - PARAMETER( NY = 200 ) - - INTEGER IN( NX, NY ) - INTEGER OUT( NX, NY ) - DOUBLE PRECISION PARAMS(2), WEIGHTS( NX, NY ) - INTEGER MAP, LBND_IN(3), UBND_IN(3), LBND_OUT(3), UBND_OUT(3), - : FLAGS, I, J, JHI - INTEGER*8 NUSED - - IF( STATUS .NE. SAI__OK ) RETURN - CALL AST_BEGIN( STATUS ) - - DO I = 1, NX - DO J = 1, NY - IN( I, J ) = 1.0D0 - END DO - END DO - - LBND_IN( 1 ) = 0 - LBND_IN( 2 ) = 1 - UBND_IN( 1 ) = NX - 1 - UBND_IN( 2 ) = NY - - LBND_OUT( 1 ) = 0 - LBND_OUT( 2 ) = 1 - UBND_OUT( 1 ) = NX - 1 - UBND_OUT( 2 ) = NY - - LBND_IN( 3 ) = 1 - UBND_IN( 3 ) = 1 - LBND_OUT( 3 ) = 1 - UBND_OUT( 3 ) = 1 - - FLAGS = AST__REBININIT + AST__NONORM - - MAP = AST_UNITMAP( NDIM, ' ', STATUS ) - - DO I = 1, 3 - CALL AST_REBINSEQI( MAP, 0.0D0, ndim, LBND_IN, UBND_IN, IN, IN, - : spread, PARAMS, FLAGS, 0.01D0, 50, VAL__BADI, - : ndim, LBND_OUT, UBND_OUT, LBND_IN, UBND_IN, - : OUT, OUT, WEIGHTS, NUSED, STATUS ) - FLAGS = AST__NONORM - END DO - - IF( NDIM .EQ. 1 ) THEN - JHI = 1 - ELSE - JHI = ny - ENDIF - - DO I = 1, NX - DO J = 1, JHI - IF( OUT( I, J ) .NE. 3 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETI( 'J', J ) - CALL MSG_SETI( 'V', OUT(I,J) ) - CALL ERR_REP( ' ', 'Output pixel (^I,^J) should be '// - : '3 but is ^V', status ) - END IF - END DO - END DO - - CALL AST_END( STATUS ) - IF( STATUS .NE. SAI__OK ) THEN - CALL ERR_REP( ' ', 'test3 failed', STATUS ) - END IF - - END - - - - - - - SUBROUTINE TEST4( NDIM, SPREAD, PARAMS, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'PRM_PAR' - - INTEGER SPREAD, STATUS, NDIM - - INTEGER NX, NY - PARAMETER( NX = 100 ) - PARAMETER( NY = 200 ) - - REAL IN( NX, NY ) - REAL OUT( NX, NY ) - DOUBLE PRECISION PARAMS(2), WEIGHTS( NX, NY ), INA(3), - : INB(3), OUTA(3), OUTB(3), SUM, ANSWER - INTEGER MAP, LBND_IN(3), UBND_IN(3), LBND_OUT(3), UBND_OUT(3), - : FLAGS, I, J, LBOXG(3), UBOXG(3), JHI - INTEGER*8 NUSED - - IF( STATUS .NE. SAI__OK ) RETURN - CALL AST_BEGIN( STATUS ) - - DO I = 1, NX - DO J = 1, NY - IN( I, J ) = 1.0 - END DO - END DO - - LBND_IN( 1 ) = 0 - LBND_IN( 2 ) = 1 - UBND_IN( 1 ) = NX - 1 - UBND_IN( 2 ) = NY - - LBND_OUT( 1 ) = 0 - LBND_OUT( 2 ) = 1 - UBND_OUT( 1 ) = NX - 1 - UBND_OUT( 2 ) = NY - - LBND_IN( 3 ) = 1 - UBND_IN( 3 ) = 1 - LBND_OUT( 3 ) = 1 - UBND_OUT( 3 ) = 1 - - FLAGS = AST__REBININIT + AST__REBINEND + AST__CONSERVEFLUX - - INA( 1 ) = LBND_IN( 1 ) - INA( 2 ) = LBND_IN( 2 ) - INA( 3 ) = LBND_IN( 3 ) - INB( 1 ) = UBND_IN( 1 ) - INB( 2 ) = UBND_IN( 2 ) - INB( 3 ) = UBND_IN( 3 ) + 1.0D0 - - OUTA( 1 ) = 0.75*LBND_OUT( 1 ) + 0.25*UBND_OUT( 1 ) - OUTA( 2 ) = 0.75*LBND_OUT( 2 ) + 0.25*UBND_OUT( 2 ) - OUTA( 3 ) = INA( 3 ) - OUTB( 1 ) = 0.25*LBND_OUT( 1 ) + 0.75*UBND_OUT( 1 ) - OUTB( 2 ) = 0.25*LBND_OUT( 2 ) + 0.75*UBND_OUT( 2 ) - OUTB( 3 ) = INB( 3 ) - - MAP = AST_WINMAP( NDIM, INA, INB, OUTA, OUTB, ' ', STATUS ) - CALL AST_REBINSEQR( MAP, 0.0D0, ndim, LBND_IN, UBND_IN, IN, IN, - : spread, PARAMS, FLAGS, 0.01D0, 1000, - : VAL__BADR, - : ndim, LBND_OUT, UBND_OUT, LBND_IN, UBND_IN, - : OUT, OUT, WEIGHTS, NUSED, STATUS ) - - LBOXG( 1 ) = VAL__MAXI - LBOXG( 2 ) = VAL__MAXI - UBOXG( 1 ) = VAL__MINI - UBOXG( 2 ) = VAL__MINI - - SUM = 0.0D0 - - IF( NDIM .EQ. 1 ) THEN - JHI = 1 - ELSE - JHI = ny - ENDIF - - DO I = 1, NX - DO J = 1, JHI - - IF( OUT(I,J) .NE. VAL__BADR ) THEN - SUM = SUM + OUT(I,J) - IF( I .LT. LBOXG(1) ) THEN - LBOXG(1) = I - ELSE IF( I .GT. UBOXG(1) ) THEN - UBOXG(1) = I - ENDIF - IF( J .LT. LBOXG(2) ) THEN - LBOXG(2) = J - ELSE IF( J .GT. UBOXG(2) ) THEN - UBOXG(2) = J - ENDIF - ENDIF - END DO - END DO - - IF( NDIM .EQ. 1 ) THEN - - IF( ( ( SPREAD .EQ. AST__GAUSS ) .AND. ( - : LBOXG( 1 ) .NE. 24 .OR. - : UBOXG( 1 ) .NE. 77 )) .OR. ( - : ( SPREAD .EQ. AST__NEAREST ) .AND. ( - : LBOXG( 1 ) .NE. 26 .OR. - : UBOXG( 1 ) .NE. 75 )) .OR. ( - : ( SPREAD .EQ. AST__LINEAR ) .AND. ( - : LBOXG( 1 ) .NE. 25 .OR. - : UBOXG( 1 ) .NE. 76 ) ) ) THEN - STATUS = SAI__ERROR - CALL ERR_REP( ' ', 'Good pixel bounding box is wrong', - : STATUS ) - write(*,*) LBOXG, UBOXG - END IF - - IF( SPREAD .EQ. AST__NEAREST ) THEN - ANSWER = 100.0 - ELSE IF( SPREAD .EQ. AST__GAUSS ) THEN - ANSWER = 108.0 - ELSE IF( SPREAD .EQ. AST__LINEAR ) THEN - ANSWER = 104.0 - ELSE - ANSWER = -1 - END IF - - else - - IF( ( ( SPREAD .EQ. AST__GAUSS ) .AND. ( - : LBOXG( 1 ) .NE. 24 .OR. - : LBOXG( 2 ) .NE. 49 .OR. - : UBOXG( 1 ) .NE. 77 .OR. - : UBOXG( 2 ) .NE. 152 ) ) .OR. ( - : ( SPREAD .EQ. AST__NEAREST ) .AND. ( - : LBOXG( 1 ) .NE. 26 .OR. - : LBOXG( 2 ) .NE. 51 .OR. - : UBOXG( 1 ) .NE. 75 .OR. - : UBOXG( 2 ) .NE. 150 ) ) .OR. ( - : ( SPREAD .EQ. AST__LINEAR ) .AND. ( - : LBOXG( 1 ) .NE. 25 .OR. - : LBOXG( 2 ) .NE. 50 .OR. - : UBOXG( 1 ) .NE. 76 .OR. - : UBOXG( 2 ) .NE. 151 ) ) ) THEN - STATUS = SAI__ERROR - CALL ERR_REP( ' ', 'Good pixel bounding box is wrong', - : STATUS ) - write(*,*) LBOXG, UBOXG - END IF - - IF( SPREAD .EQ. AST__NEAREST ) THEN - ANSWER = 20000.0 - ELSE IF( SPREAD .EQ. AST__GAUSS ) THEN - ANSWER = 22464.0 - ELSE IF( SPREAD .EQ. AST__LINEAR ) THEN - ANSWER = 21216.0 - ELSE - ANSWER = -1 - END IF - endif - - IF( ABS( SUM - ANSWER ) .GT. 0.01 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', SUM ) - CALL MSG_SETD( 'W', ANSWER ) - CALL ERR_REP( ' ', 'Total output data sum is ^V (should '// - : 'be ^W).', STATUS ) - END IF - - CALL AST_END( STATUS ) - IF( STATUS .NE. SAI__OK ) THEN - CALL ERR_REP( ' ', 'test4 failed', STATUS ) - END IF - - END - - - - SUBROUTINE TEST5( NDIM, SPREAD, PARAMS, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'PRM_PAR' - - INTEGER SPREAD, STATUS, NDIM - - INTEGER NX_IN, NY_IN - PARAMETER( NX_IN = 100 ) - PARAMETER( NY_IN = 200 ) - - INTEGER BORDER_OUT - PARAMETER( BORDER_OUT = 10 ) - - INTEGER NX_OUT, NY_OUT - PARAMETER( NX_OUT = NX_IN + 2*BORDER_OUT ) - PARAMETER( NY_OUT = NY_IN + 2*BORDER_OUT ) - - DOUBLE PRECISION IN( NX_IN, NY_IN ) - DOUBLE PRECISION OUT( NX_OUT, NY_OUT ) - DOUBLE PRECISION PARAMS(2), WEIGHTS( NX_OUT, NY_OUT ), INA(3), - : INB(3), OUTA(3), OUTB(3), SUM, VA, VB - INTEGER MAP, LBND_IN(3), UBND_IN(3), LBND_OUT(3), UBND_OUT(3), - : K, FLAGS, I, J, LBOXG(3), UBOXG(3), JHI - INTEGER*8 NUSED - - IF( STATUS .NE. SAI__OK ) RETURN - CALL AST_BEGIN( STATUS ) - - LBND_IN( 1 ) = 0 - LBND_IN( 2 ) = 1 - UBND_IN( 1 ) = NX_IN - 1 - UBND_IN( 2 ) = NY_IN - - LBND_OUT( 1 ) = LBND_IN( 1 ) - BORDER_OUT - LBND_OUT( 2 ) = LBND_IN( 2 ) - BORDER_OUT - UBND_OUT( 1 ) = UBND_IN( 1 ) + BORDER_OUT - UBND_OUT( 2 ) = UBND_IN( 2 ) + BORDER_OUT - - LBND_IN( 3 ) = 1 - UBND_IN( 3 ) = 1 - LBND_OUT( 3 ) = 1 - UBND_OUT( 3 ) = 1 - - FLAGS = AST__REBININIT + AST__NONORM - - INA( 1 ) = LBND_IN( 1 ) - INA( 2 ) = LBND_IN( 2 ) - INA( 3 ) = LBND_IN( 3 ) - INB( 1 ) = UBND_IN( 1 ) - INB( 2 ) = UBND_IN( 2 ) - INB( 3 ) = UBND_IN( 3 ) + 1.0D0 - - DO K = 1, 3 - - DO I = 1, NX_IN - DO J = 1, NY_IN - IN( I, J ) = K - END DO - END DO - - VA = (k-1)*0.25 - VB = VA + 0.5 - - OUTA( 1 ) = VB*LBND_IN( 1 ) + VA*UBND_IN( 1 ) - OUTA( 2 ) = VB*LBND_IN( 2 ) + VA*UBND_IN( 2 ) - OUTB( 1 ) = VA*LBND_IN( 1 ) + VB*UBND_IN( 1 ) - OUTB( 2 ) = VA*LBND_IN( 2 ) + VB*UBND_IN( 2 ) - OUTA( 3 ) = INA( 3 ) - OUTB( 3 ) = INB( 3 ) - - MAP = AST_WINMAP( NDIM, INA, INB, OUTA, OUTB, ' ', STATUS ) - CALL AST_REBINSEQD( MAP, 0.0D0, ndim, LBND_IN, UBND_IN, IN, IN, - : spread, PARAMS, FLAGS, 0.01D0, 50, VAL__BADD, - : ndim, LBND_OUT, UBND_OUT, LBND_IN, UBND_IN, - : OUT, OUT, WEIGHTS, NUSED, STATUS ) - - FLAGS = AST__NONORM - END DO - - IF( NDIM .EQ. 1 ) THEN - JHI = 1 - ELSE - JHI = ny_out - ENDIF - - SUM = 0.0D0 - - DO I = 1, NX_OUT - DO J = 1, JHI - IF( OUT(I,J) .NE. VAL__BADR ) THEN - SUM = SUM + OUT(I,J) - ENDIF - END DO - END DO - - IF( NDIM .EQ. 1 ) THEN - IF( ABS( SUM - 600 ) .GT. 1.0E-3 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', SUM ) - CALL ERR_REP( ' ', 'Total output data sum is ^V (should '// - : 'be 600).', STATUS ) - - END IF - - IF( ABS( OUT(20,1) - 2.0 ) .GT. 1.0E-6 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', OUT(20,1) ) - CALL ERR_REP( ' ', 'Output pixel (20) should be 2, '// - : 'is ^V', STATUS ) - - ELSE IF( ABS( OUT(50,1) - 6.0 ) .GT. 1.0E-6 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', OUT(50,1) ) - CALL ERR_REP( ' ', 'Output pixel (50) should be 6, '// - : 'is ^V', STATUS ) - - ELSE IF( ABS( OUT(70,1) - 10.0 ) .GT. 1.0E-6 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', OUT(70,1) ) - CALL ERR_REP( ' ', 'Output pixel (70) should be 10, '// - : 'is ^V', STATUS ) - - ELSE IF( ABS( OUT(100,1) - 6.0 ) .GT. 1.0E-6 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', OUT(100,1) ) - CALL ERR_REP( ' ', 'Output pixel (100) should be 6, '// - : 'is ^V', STATUS ) - END IF - - ELSE IF( NDIM .EQ. 2 ) THEN - IF( ABS( SUM - 120000 ) .GT. 1.0E-3 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', SUM ) - CALL ERR_REP( ' ', 'Total output data sum is ^V (should '// - : 'be 120000).', STATUS ) - - END IF - - IF( ABS( OUT(40,40) - 4.0 ) .GT. 1.0E-6 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', OUT(40,40) ) - CALL ERR_REP( ' ', 'Output pixel (40,40) should be 4, '// - : 'is ^V', STATUS ) - - ELSE IF( ABS( OUT(50,90) - 12.0 ) .GT. 1.0E-6 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', OUT(50,90) ) - CALL ERR_REP( ' ', 'Output pixel (50,90) should be 12, '// - : 'is ^V', STATUS ) - - ELSE IF( ABS( OUT(70,80) - 8.0 ) .GT. 1.0E-6 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', OUT(70,80) ) - CALL ERR_REP( ' ', 'Output pixel (70,80) should be 8, '// - : 'is ^V', STATUS ) - - ELSE IF( ABS( OUT(70,130) - 20.0 ) .GT. 1.0E-6 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', OUT(70,130) ) - CALL ERR_REP( ' ', 'Output pixel (70,130) should be 20, '// - : 'is ^V', STATUS ) - - ELSE IF( ABS( OUT(20,130) - 0.0 ) .GT. 1.0E-6 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', OUT(20,130) ) - CALL ERR_REP( ' ', 'Output pixel (20,130) should be 0, '// - : 'is ^V', STATUS ) - - END IF - END IF - - CALL AST_END( STATUS ) - IF( STATUS .NE. SAI__OK ) THEN - CALL ERR_REP( ' ', 'test5 failed', STATUS ) - END IF - - END - - - - - SUBROUTINE TEST6( NDIM, SPREAD, PARAMS, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'PRM_PAR' - - INTEGER SPREAD, STATUS, NDIM - - INTEGER NK - PARAMETER( NK = 3 ) - - INTEGER NX_IN, NY_IN - PARAMETER( NX_IN = 100 ) - PARAMETER( NY_IN = 200 ) - - INTEGER BORDER_OUT - PARAMETER( BORDER_OUT = 10 ) - - INTEGER NX_OUT, NY_OUT - PARAMETER( NX_OUT = NX_IN + 2*BORDER_OUT ) - PARAMETER( NY_OUT = NY_IN + 2*BORDER_OUT ) - - DOUBLE PRECISION IN( NX_IN, NY_IN ), ANSWER - DOUBLE PRECISION OUT( NX_OUT, NY_OUT ), MNVAL, MXVAL - DOUBLE PRECISION PARAMS(2), WEIGHTS( NX_OUT, NY_OUT ), INA(3), - : INB(3), OUTA(3), OUTB(3), SUM, VA, VB - INTEGER MAP, LBND_IN(3), UBND_IN(3), LBND_OUT(3), UBND_OUT(3), - : K, FLAGS, I, J, LBOXG(3), UBOXG(3), JHI - INTEGER*8 NUSED - - IF( STATUS .NE. SAI__OK ) RETURN - CALL AST_BEGIN( STATUS ) - - LBND_IN( 1 ) = 0 - LBND_IN( 2 ) = 1 - UBND_IN( 1 ) = NX_IN - 1 - UBND_IN( 2 ) = NY_IN - - LBND_OUT( 1 ) = LBND_IN( 1 ) - BORDER_OUT - LBND_OUT( 2 ) = LBND_IN( 2 ) - BORDER_OUT - UBND_OUT( 1 ) = UBND_IN( 1 ) + BORDER_OUT - UBND_OUT( 2 ) = UBND_IN( 2 ) + BORDER_OUT - - LBND_IN( 3 ) = 1 - UBND_IN( 3 ) = 1 - LBND_OUT( 3 ) = 1 - UBND_OUT( 3 ) = 1 - - INA( 1 ) = LBND_IN( 1 ) - INA( 2 ) = LBND_IN( 2 ) - INA( 3 ) = LBND_IN( 3 ) - INB( 1 ) = UBND_IN( 1 ) - INB( 2 ) = UBND_IN( 2 ) - INB( 3 ) = UBND_IN( 3 ) + 1.0D0 - - DO K = 1, NK - - FLAGS = AST__CONSERVEFLUX - IF( K .EQ. 1 ) FLAGS = FLAGS + AST__REBININIT - IF( K .EQ. NK ) FLAGS = FLAGS + AST__REBINEND - - DO I = 1, NX_IN - DO J = 1, NY_IN - IN( I, J ) = K - END DO - END DO - - VA = (k-1)*0.25 - VB = VA + 0.5 - - OUTA( 1 ) = VB*LBND_IN( 1 ) + VA*UBND_IN( 1 ) - OUTA( 2 ) = VB*LBND_IN( 2 ) + VA*UBND_IN( 2 ) - OUTB( 1 ) = VA*LBND_IN( 1 ) + VB*UBND_IN( 1 ) - OUTB( 2 ) = VA*LBND_IN( 2 ) + VB*UBND_IN( 2 ) - OUTA( 3 ) = INA( 3 ) - OUTB( 3 ) = INB( 3 ) - - MAP = AST_WINMAP( NDIM, INA, INB, OUTA, OUTB, ' ', STATUS ) - CALL AST_REBINSEQD( MAP, 0.0D0, ndim, LBND_IN, UBND_IN, IN, IN, - : spread, PARAMS, FLAGS, 0.01D0, 50, VAL__BADD, - : ndim, LBND_OUT, UBND_OUT, LBND_IN, UBND_IN, - : OUT, OUT, WEIGHTS, NUSED, STATUS ) - - END DO - - IF( NDIM .EQ. 1 ) THEN - JHI = 1 - ELSE - JHI = ny_out - ENDIF - - SUM = 0.0D0 - MXVAL = VAL__MIND - MNVAL = VAL__MAXD - DO I = 1, NX_OUT - DO J = 1, JHI - IF( OUT(I,J) .NE. VAL__BADD ) THEN - SUM = SUM + OUT(I,J) - IF( OUT(I,J) .GT. MXVAL ) MXVAL = OUT(I,J) - IF( OUT(I,J) .lT. MnVAL ) MNVAL = OUT(I,J) - ENDIF - END DO - END DO - - IF( NDIM .eq. 1 ) THEN - IF( SPREAD .EQ. AST__GAUSS ) THEN - ANSWER = 414.0D0 - ELSE IF( SPREAD .EQ. AST__NEAREST ) THEN - ANSWER = 399.4D0 - ELSE IF( SPREAD .EQ. AST__LINEAR ) THEN - ANSWER = 400.0D0 - ELSE - ANSWER = -1.0 - END IF - - IF( ABS( SUM - ANSWER ) .GT. 1.0D-3 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', SUM ) - CALL MSG_SETD( 'W', ANSWER ) - CALL ERR_REP( ' ', 'Total output data sum is ^V (should '// - : 'be ^W).', STATUS ) - - ELSE IF( ABS( MXVAL - 6 ) .GT. 1.0E-6 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', MXVAL ) - CALL ERR_REP( ' ', 'Max value is ^V (should be 6).', - : STATUS ) - - ELSE IF( ABS( MNVAL - 2 ) .GT. 1.0E-6 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', MNVAL ) - CALL ERR_REP( ' ', 'Min value is ^V (should be 2).', - : STATUS ) - - END IF - - ELSE IF( NDIM .eq. 2 ) THEN - IF( SPREAD .EQ. AST__GAUSS ) THEN - ANSWER = 109011.729592723D0 - ELSE IF( SPREAD .EQ. AST__NEAREST ) THEN - ANSWER = 100716.666666667D0 - ELSE IF( SPREAD .EQ. AST__LINEAR ) THEN - ANSWER = 102816.0D0 - ELSE - ANSWER = -1.0 - END IF - - IF( ABS( SUM - ANSWER ) .GT. 1.0D-3 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', SUM ) - CALL MSG_SETD( 'W', ANSWER ) - CALL ERR_REP( ' ', 'Total output data sum is ^V (should '// - : 'be ^W).', STATUS ) - - ELSE IF( ABS( MXVAL - 12 ) .GT. 1.0E-6 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', MXVAL ) - CALL ERR_REP( ' ', 'Max value is ^V (should be 12).', - : STATUS ) - - ELSE IF( ABS( MNVAL - 4 ) .GT. 1.0E-6 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', MNVAL ) - CALL ERR_REP( ' ', 'Min value is ^V (should be 4).', - : STATUS ) - - END IF - END IF - - CALL AST_END( STATUS ) - IF( STATUS .NE. SAI__OK ) THEN - CALL ERR_REP( ' ', 'test6 failed', STATUS ) - END IF - - END - - - SUBROUTINE TEST7( NDIM, SPREAD, PARAMS, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'PRM_PAR' - - INTEGER SPREAD, STATUS, NDIM - - INTEGER NX, NY - PARAMETER( NX = 100 ) - PARAMETER( NY = 200 ) - - - REAL IN( NX, NY ) - REAL OUT( NX, NY ) - DOUBLE PRECISION PARAMS(2), WEIGHTS( NX, NY ) - INTEGER MAP, LBND_IN(3), UBND_IN(3), LBND_OUT(3), UBND_OUT(3), - : JHI, FLAGS, I, J - INTEGER*8 NUSED - - IF( STATUS .NE. SAI__OK ) RETURN - CALL AST_BEGIN( STATUS ) - - DO I = 1, NX - DO J = 1, NY - IN( I, J ) = 1.0 - END DO - END DO - - LBND_IN( 1 ) = 0 - LBND_IN( 2 ) = 1 - UBND_IN( 1 ) = NX - 1 - UBND_IN( 2 ) = NY - - LBND_OUT( 1 ) = 0 - LBND_OUT( 2 ) = 1 - UBND_OUT( 1 ) = NX - 1 - UBND_OUT( 2 ) = NY - - LBND_IN( 3 ) = 1 - UBND_IN( 3 ) = 1 - LBND_OUT( 3 ) = 1 - UBND_OUT( 3 ) = 1 - - FLAGS = AST__REBININIT + AST__REBINEND - - MAP = AST_ZOOMMAP( NDIM, 0.5D0, ' ', STATUS ) - CALL AST_REBINSEQR( MAP, 0.0D0, ndim, LBND_IN, UBND_IN, IN, IN, - : spread, PARAMS, FLAGS, 0.01D0, 50, VAL__BADR, - : ndim, LBND_OUT, UBND_OUT, LBND_IN, UBND_IN, - : OUT, OUT, WEIGHTS, NUSED, STATUS ) - - IF( NDIM .EQ. 1 ) THEN - JHI = 1 - ELSE - JHI = ny - ENDIF - - DO I = 1, NX - DO J = 1, JHI - IF( ABS( OUT( I, J ) - 1.0 ) .GT. 1.0E-6 .AND. - : OUT( I, J ) .NE. VAL__BADR ) THEN - STATUS = SAI__ERROR - CALL MSG_SETI( 'I', I ) - CALL MSG_SETI( 'J', J ) - CALL MSG_SETR( 'V', OUT(I,J) ) - CALL ERR_REP( ' ', 'Output pixel (^I,^J) should be '// - : '1.0 but is ^V', status ) - END IF - END DO - END DO - - CALL AST_END( STATUS ) - IF( STATUS .NE. SAI__OK ) THEN - CALL ERR_REP( ' ', 'test7 failed', STATUS ) - END IF - - END - - - SUBROUTINE TEST8( NDIM, SPREAD, PARAMS, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'PRM_PAR' - - INTEGER SPREAD, STATUS, NDIM - - INTEGER NX, NY - PARAMETER( NX = 100 ) - PARAMETER( NY = 200 ) - - - REAL IN( NX, NY ) - REAL OUT( NX, NY ) - DOUBLE PRECISION PARAMS(2), WEIGHTS( NX, NY ), SHIFTS(3), SUM - INTEGER MAP, LBND_IN(3), UBND_IN(3), LBND_OUT(3), UBND_OUT(3), - : FLAGS, I, J, JHI - INTEGER*8 NUSED - - IF( STATUS .NE. SAI__OK ) RETURN - CALL AST_BEGIN( STATUS ) - - DO I = 1, NX - DO J = 1, NY - IN( I, J ) = 1.0 - END DO - END DO - - LBND_IN( 1 ) = 0 - LBND_IN( 2 ) = 1 - UBND_IN( 1 ) = NX - 1 - UBND_IN( 2 ) = NY - - LBND_OUT( 1 ) = 0 - LBND_OUT( 2 ) = 1 - UBND_OUT( 1 ) = NX - 1 - UBND_OUT( 2 ) = NY - - LBND_IN( 3 ) = 1 - UBND_IN( 3 ) = 1 - LBND_OUT( 3 ) = 1 - UBND_OUT( 3 ) = 1 - - FLAGS = AST__REBININIT + AST__REBINEND + AST__NONORM - - SHIFTS(1) = 5.0D0 - SHIFTS(2) = 5.0D0 - - if( ndim .lt. 3 ) then - MAP = AST_CMPMAP( AST_ZOOMMAP( NDIM, 0.5D0, ' ', STATUS ), - : AST_SHIFTMAP( NDIM, SHIFTS, ' ', STATUS ), - : .TRUE., ' ', STATUS ) - else - MAP = AST_CMPMAP( AST_CMPMAP( AST_ZOOMMAP( 2, 0.5D0, ' ', - : STATUS ), - : AST_SHIFTMAP( 2, SHIFTS, ' ', - : STATUS ), - : .TRUE., ' ', STATUS ), - : AST_UNITMAP( 1, ' ', STATUS ), .FALSE., - : ' ', STATUS ) - endif - - CALL AST_REBINSEQR( MAP, 0.0D0, ndim, LBND_IN, UBND_IN, IN, IN, - : spread, PARAMS, FLAGS, 0.01D0, 50, VAL__BADR, - : ndim, LBND_OUT, UBND_OUT, LBND_IN, UBND_IN, - : OUT, OUT, WEIGHTS, NUSED, STATUS ) - - IF( NDIM .EQ. 1 ) THEN - JHI = 1 - ELSE - JHI = ny - ENDIF - - SUM = 0.0D0 - DO I = 1, NX - DO J = 1, JHI - if( out(i,j) .ne. VAL__BADR ) then - SUM = SUM + DBLE(OUT(I,J)) - end if - END DO - END DO - - IF( SUM .NE. SUM ) THEN - STATUS = SAI__ERROR - CALL ERR_REP( ' ', 'Total output data sum is NaN', STATUS ) - - ELSE IF( ABS( SUM - NX*JHI ) .GT. SUM*1.0D-7 ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', SUM ) - CALL MSG_SETD( 'W', DBLE( NX*JHI) ) - CALL ERR_REP( ' ', 'Total output data sum is ^V (should '// - : 'be ^W).', STATUS ) - END IF - - CALL AST_END( STATUS ) - IF( STATUS .NE. SAI__OK ) THEN - CALL ERR_REP( ' ', 'test8 failed', STATUS ) - END IF - - END - - - SUBROUTINE TEST9( NDIM, SPREAD, PARAMS, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'PRM_PAR' - - INTEGER SPREAD, STATUS, NDIM - - INTEGER SIZE - PARAMETER( SIZE = 20000 ) - - INTEGER NX1, NY1 - PARAMETER( NX1 = SIZE ) - PARAMETER( NY1 = 1 ) - - INTEGER NX2, NY2 - PARAMETER( NX2 = SIZE/200 ) - PARAMETER( NY2 = 200 ) - - DOUBLE PRECISION SIGMA - PARAMETER ( SIGMA = 0.1 ) - - REAL*8 IN( size ), VIN( size ) - REAL*8 OUT( size ), VOUT( size ) - DOUBLE PRECISION PARAMS(2), WEIGHTS( size ) - DOUBLE PRECISION REALVAR,MEANVAR,SUM,SUM2,SUM3 - INTEGER MAP, LBND_IN(3), UBND_IN(3), LBND_OUT(3), UBND_OUT(3), - : FLAGS, I, J, NVAL, JHI, JLO, NX, NY, ILO, IHI, k - INTEGER*8 NUSED - - IF( STATUS .NE. SAI__OK ) RETURN - CALL AST_BEGIN( STATUS ) - - DO I = 1, size - IN( I ) = 1.0D0 - VIN( I ) = SIGMA**2 - END DO - - CALL ADDNOISE( size, IN, SIGMA, STATUS ) - - IF( NDIM .EQ. 1 ) THEN - NX = NX1 - Ny = NY1 - ELSE - NX = NX2 - Ny = NY2 - END IF - - LBND_IN( 1 ) = 0 - LBND_IN( 2 ) = 1 - UBND_IN( 1 ) = NX - 1 - UBND_IN( 2 ) = NY - - LBND_OUT( 1 ) = 0 - LBND_OUT( 2 ) = 1 - UBND_OUT( 1 ) = NX - 1 - UBND_OUT( 2 ) = NY - - LBND_IN( 3 ) = 1 - UBND_IN( 3 ) = 1 - LBND_OUT( 3 ) = 1 - UBND_OUT( 3 ) = 1 - - FLAGS = AST__REBININIT + AST__REBINEND + AST__NONORM + AST__USEVAR - - MAP = AST_ZOOMMAP( NDIM, 0.5D0, ' ', STATUS ) - CALL AST_REBINSEQD( MAP, 0.0D0, ndim, LBND_IN, UBND_IN, IN, VIN, - : spread, PARAMS, FLAGS, 0.01D0, 50, VAL__BADD, - : ndim, LBND_OUT, UBND_OUT, LBND_IN, UBND_IN, - : OUT, VOUT, WEIGHTS, NUSED, STATUS ) - - IF( NDIM .EQ. 1 ) THEN - ILO = 6 - IHI = NINT(0.45*NX1) - JLO = 1 - JHI = 1 - ELSE - ILO = 6 - IHI = 41 - JLO = 8 - JHI = 91 - ENDIF - - SUM = 0.0D0 - SUM2 = 0.0D0 - SUM3 = 0.0D0 - NVAL = 0 - - DO I = ILO, IHI - DO J = JLO, JHI - K = ( J - 1 )*NX + I - IF( OUT(K) .NE. VAL__BADD ) THEN - SUM = SUM + OUT(K) - SUM2 = SUM2 + OUT(K)**2 - SUM3 = SUM3 + VOUT(K) - NVAL = NVAL + 1 - END IF - END DO - END DO - - SUM = SUM/NVAL - REALVAR = SUM2/NVAL - SUM*SUM - MEANVAR = SUM3/NVAL - IF( ABS( REALVAR - MEANVAR ) .GT. - : 0.05*( REALVAR + MEANVAR ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', REALVAR ) - CALL MSG_SETD( 'W', MEANVAR ) - CALL ERR_REP( ' ', 'Real variance is ^V - estimate is ^W.', - : STATUS ) - END IF - - CALL AST_END( STATUS ) - IF( STATUS .NE. SAI__OK ) THEN - CALL ERR_REP( ' ', 'test9 failed', STATUS ) - END IF - - END - - - SUBROUTINE TEST10( NDIM, SPREAD, PARAMS, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'PRM_PAR' - - INTEGER SPREAD, STATUS, NDIM - - INTEGER SIZE - PARAMETER( SIZE = 20000 ) - - INTEGER NX1, NY1 - PARAMETER( NX1 = SIZE ) - PARAMETER( NY1 = 1 ) - - INTEGER NX2, NY2 - PARAMETER( NX2 = SIZE/200 ) - PARAMETER( NY2 = 200 ) - - DOUBLE PRECISION SIGMA - PARAMETER ( SIGMA = 0.1 ) - - REAL*8 IN( size ), VIN( size ) - REAL*8 OUT( size ), VOUT( size ) - DOUBLE PRECISION PARAMS(2), WEIGHTS( size ) - DOUBLE PRECISION REALVAR,MEANVAR,SUM,SUM2,SUM3 - INTEGER MAP, LBND_IN(3), UBND_IN(3), LBND_OUT(3), UBND_OUT(3), - : FLAGS, I, J, NVAL, JHI, JLO, ILO, IHI, NX, NY, K - INTEGER*8 NUSED - - IF( STATUS .NE. SAI__OK ) RETURN - CALL AST_BEGIN( STATUS ) - - DO I = 1, SIZE - IN( I ) = 1.0D0 - VIN( I ) = SIGMA**2 - END DO - - CALL ADDNOISE( SIZE, IN, SIGMA, STATUS ) - - IF( NDIM .EQ. 1 ) THEN - NX = NX1 - Ny = NY1 - ELSE - NX = NX2 - Ny = NY2 - END IF - - LBND_IN( 1 ) = 0 - LBND_IN( 2 ) = 1 - UBND_IN( 1 ) = NX - 1 - UBND_IN( 2 ) = NY - - LBND_OUT( 1 ) = 0 - LBND_OUT( 2 ) = 1 - UBND_OUT( 1 ) = NX - 1 - UBND_OUT( 2 ) = NY - - LBND_IN( 3 ) = 1 - UBND_IN( 3 ) = 1 - LBND_OUT( 3 ) = 1 - UBND_OUT( 3 ) = 1 - - FLAGS = AST__REBININIT + AST__REBINEND + AST__CONSERVEFLUX - : + AST__USEVAR - - MAP = AST_ZOOMMAP( NDIM, 0.5D0, ' ', STATUS ) - CALL AST_REBINSEQD( MAP, 0.0D0, ndim, LBND_IN, UBND_IN, IN, VIN, - : spread, PARAMS, FLAGS, 0.01D0, 50, VAL__BADD, - : ndim, LBND_OUT, UBND_OUT, LBND_IN, UBND_IN, - : OUT, VOUT, WEIGHTS, NUSED, STATUS ) - - IF( NDIM .EQ. 1 ) THEN - ILO = 6 - IHI = NINT(0.45*NX1) - JLO = 1 - JHI = 1 - ELSE - ILO = 6 - IHI = 41 - JLO = 8 - JHI = 91 - ENDIF - - SUM = 0.0D0 - SUM2 = 0.0D0 - SUM3 = 0.0D0 - NVAL = 0 - - DO I = ILO,IHI - DO J = JLO, JHI - K = ( J - 1 )*NX + I - IF( OUT(K) .NE. VAL__BADD ) THEN - SUM = SUM + OUT(K) - SUM2 = SUM2 + OUT(K)**2 - SUM3 = SUM3 + VOUT(K) - NVAL = NVAL + 1 - END IF - END DO - END DO - - SUM = SUM/NVAL - REALVAR = SUM2/NVAL - SUM*SUM - MEANVAR = SUM3/NVAL - - IF( ABS( REALVAR - MEANVAR ) .GT. - : 0.05*( REALVAR + MEANVAR ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', REALVAR ) - CALL MSG_SETD( 'W', MEANVAR ) - CALL ERR_REP( ' ', 'Real variance is ^V - estimate is ^W.', - : STATUS ) - END IF - - CALL AST_END( STATUS ) - IF( STATUS .NE. SAI__OK ) THEN - CALL ERR_REP( ' ', 'test10 failed', STATUS ) - END IF - - END - - SUBROUTINE TEST11( NDIM, SPREAD, PARAMS, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'PRM_PAR' - - INTEGER SPREAD, STATUS, NDIM - - INTEGER SIZE - PARAMETER( SIZE = 20000 ) - - INTEGER NX1, NY1 - PARAMETER( NX1 = SIZE ) - PARAMETER( NY1 = 1 ) - - INTEGER NX2, NY2 - PARAMETER( NX2 = SIZE/200 ) - PARAMETER( NY2 = 200 ) - - DOUBLE PRECISION SIGMA - PARAMETER ( SIGMA = 0.1 ) - - REAL*8 IN( SIZE ), VIN( SIZE ) - REAL*8 OUT( SIZE ), VOUT( SIZE ) - DOUBLE PRECISION PARAMS(2), WEIGHTS( SIZE, 2 ) - DOUBLE PRECISION REALVAR,MEANVAR,SUM,SUM2,SUM3 - INTEGER MAP, LBND_IN(3), UBND_IN(3), LBND_OUT(3), UBND_OUT(3), - : FLAGS, I, J, NVAL, JLO, JHI, NX, NY, ILO, IHI, K - INTEGER*8 NUSED - - IF( STATUS .NE. SAI__OK ) RETURN - CALL AST_BEGIN( STATUS ) - - DO I = 1, SIZE - IN( I ) = 1.0D0 - VIN( I ) = SIGMA**2 - END DO - - CALL ADDNOISE( SIZE, IN, SIGMA, STATUS ) - - IF( NDIM .EQ. 1 ) THEN - NX = NX1 - Ny = NY1 - ELSE - NX = NX2 - Ny = NY2 - END IF - - LBND_IN( 1 ) = 0 - LBND_IN( 2 ) = 1 - UBND_IN( 1 ) = NX - 1 - UBND_IN( 2 ) = NY - - LBND_OUT( 1 ) = 0 - LBND_OUT( 2 ) = 1 - UBND_OUT( 1 ) = NX - 1 - UBND_OUT( 2 ) = NY - - LBND_IN( 3 ) = 1 - UBND_IN( 3 ) = 1 - LBND_OUT( 3 ) = 1 - UBND_OUT( 3 ) = 1 - - FLAGS = AST__REBININIT + AST__REBINEND + AST__GENVAR - - MAP = AST_ZOOMMAP( NDIM, 0.5D0, ' ', STATUS ) - CALL AST_REBINSEQD( MAP, 0.0D0, ndim, LBND_IN, UBND_IN, IN, VIN, - : spread, PARAMS, FLAGS, 0.01D0, 50, VAL__BADD, - : ndim, LBND_OUT, UBND_OUT, LBND_IN, UBND_IN, - : OUT, VOUT, WEIGHTS, NUSED, STATUS ) - - IF( NDIM .EQ. 1 ) THEN - ILO = 6 - IHI = NINT(0.45*NX1) - JLO = 1 - JHI = 1 - ELSE - ILO = 6 - IHI = 41 - JLO = 8 - JHI = 91 - ENDIF - - SUM = 0.0D0 - SUM2 = 0.0D0 - SUM3 = 0.0D0 - NVAL = 0 - - DO I = ILO,IHI - DO J = JLO, JHI - K = ( J - 1 )*NX + I - IF( OUT(K) .NE. VAL__BADD ) THEN - SUM = SUM + OUT(K) - SUM2 = SUM2 + OUT(K)**2 - SUM3 = SUM3 + VOUT(K) - NVAL = NVAL + 1 - END IF - END DO - END DO - - SUM = SUM/NVAL - REALVAR = SUM2/NVAL - SUM*SUM - MEANVAR = SUM3/NVAL - IF( ABS( REALVAR - MEANVAR ) .GT. - : 0.05*( REALVAR + MEANVAR ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', REALVAR ) - CALL MSG_SETD( 'W', MEANVAR ) - CALL ERR_REP( ' ', 'Real variance is ^V - estimate is ^W.', - : STATUS ) - END IF - - CALL AST_END( STATUS ) - IF( STATUS .NE. SAI__OK ) THEN - CALL ERR_REP( ' ', 'test11 failed', STATUS ) - END IF - - END - - - SUBROUTINE TEST12( NDIM, SPREAD, PARAMS, STATUS ) - IMPLICIT NONE - INCLUDE 'SAE_PAR' - INCLUDE 'AST_PAR' - INCLUDE 'PRM_PAR' - - INTEGER SPREAD, STATUS, NDIM - - INTEGER SIZE - PARAMETER( SIZE = 20000 ) - - INTEGER NX1, NY1 - PARAMETER( NX1 = SIZE ) - PARAMETER( NY1 = 1 ) - - INTEGER NX2, NY2 - PARAMETER( NX2 = SIZE/200 ) - PARAMETER( NY2 = 200 ) - - DOUBLE PRECISION SIGMA - PARAMETER ( SIGMA = 0.1 ) - - REAL*8 IN( SIZE ), VIN( SIZE ) - REAL*8 OUT( SIZE ), VOUT( SIZE ) - DOUBLE PRECISION PARAMS(2), WEIGHTS( SIZE, 2 ) - DOUBLE PRECISION REALVAR,MEANVAR,SUM,SUM2,SUM3 - INTEGER MAP, LBND_IN(3), UBND_IN(3), LBND_OUT(3), UBND_OUT(3), - : FLAGS, I, J, NVAL,jlo, jhi,NX, NY, ILO, IHI, K - INTEGER*8 NUSED - - IF( STATUS .NE. SAI__OK ) RETURN - CALL AST_BEGIN( STATUS ) - - DO I = 1, SIZE - IN( I ) = 1.0D0 - VIN( I ) = SIGMA**2 - END DO - - CALL ADDNOISE( SIZE, IN, SIGMA, STATUS ) - - IF( NDIM .EQ. 1 ) THEN - NX = NX1 - Ny = NY1 - ELSE - NX = NX2 - Ny = NY2 - END IF - - LBND_IN( 1 ) = 0 - LBND_IN( 2 ) = 1 - UBND_IN( 1 ) = NX - 1 - UBND_IN( 2 ) = NY - - LBND_OUT( 1 ) = 0 - LBND_OUT( 2 ) = 1 - UBND_OUT( 1 ) = NX - 1 - UBND_OUT( 2 ) = NY - - LBND_IN( 3 ) = 1 - UBND_IN( 3 ) = 1 - LBND_OUT( 3 ) = 1 - UBND_OUT( 3 ) = 1 - - FLAGS = AST__REBININIT + AST__REBINEND + AST__GENVAR + - : AST__CONSERVEFLUX + AST__VARWGT - - MAP = AST_ZOOMMAP( NDIM, 0.5D0, ' ', STATUS ) - CALL AST_REBINSEQD( MAP, 0.0D0, ndim, LBND_IN, UBND_IN, IN, VIN, - : spread, PARAMS, FLAGS, 0.01D0, 50, VAL__BADD, - : ndim, LBND_OUT, UBND_OUT, LBND_IN, UBND_IN, - : OUT, VOUT, WEIGHTS, NUSED, STATUS ) - - IF( NDIM .EQ. 1 ) THEN - ILO = 6 - IHI = NINT(0.45*NX1) - JLO = 1 - JHI = 1 - ELSE - ILO = 6 - IHI = 41 - JLO = 8 - JHI = 91 - ENDIF - - SUM = 0.0D0 - SUM2 = 0.0D0 - SUM3 = 0.0D0 - NVAL = 0 - - DO I = ILO,IHI - DO J = JLO, JHI - K = ( J - 1 )*NX + I - IF( OUT(K) .NE. VAL__BADD ) THEN - SUM = SUM + OUT(K) - SUM2 = SUM2 + OUT(K)**2 - SUM3 = SUM3 + VOUT(K) - NVAL = NVAL + 1 - END IF - END DO - END DO - - SUM = SUM/NVAL - REALVAR = SUM2/NVAL - SUM*SUM - MEANVAR = SUM3/NVAL - IF( ABS( REALVAR - MEANVAR ) .GT. - : 0.05*( REALVAR + MEANVAR ) ) THEN - STATUS = SAI__ERROR - CALL MSG_SETD( 'V', REALVAR ) - CALL MSG_SETD( 'W', MEANVAR ) - CALL ERR_REP( ' ', 'Real variance is ^V - estimate is ^W.', - : STATUS ) - END IF - - CALL AST_END( STATUS ) - IF( STATUS .NE. SAI__OK ) THEN - CALL ERR_REP( ' ', 'test12 failed', STATUS ) - END IF - - END - - diff --git a/ast/ast_tester/testregions.f b/ast/ast_tester/testregions.f deleted file mode 100644 index 201ab17..0000000 --- a/ast/ast_tester/testregions.f +++ /dev/null @@ -1,4032 +0,0 @@ - program testregions - implicit none - include 'SAE_PAR' - integer status - - status = sai__ok - -c call ast_watchmemory( 282905 ) - - call ast_begin( status ) - call checkConvex( status ) - call checkRemoveRegions( status ) - call checkInterval( status ) - call checkEllipse( status ) - call checkPrism( status ) - call checkPolygon( status ) - call checkCircle( status ) - call checkBox( status ) - call checkNullRegion( status ) - call generalChecks( status ) - call checkCmpRegion( status ) - call checkPointList( status ) - - call ast_end( status ) - -c call ast_activememory( 'testregions' ) - - if( status .eq. sai__ok ) then - write(*,*) 'All Region tests passed' - else - write(*,*) 'Region tests failed' - end if - - end - - - subroutine generalChecks( status ) - implicit none - include 'AST_PAR' - include 'PRM_PAR' - include 'SAE_PAR' - - integer status, frm1, frm2, frm3, reg1, reg2, reg3, reg4, reg5 - double precision lbnd(3), ubnd(3), p1(2), p2(2) - - if( status .ne.sai__ok ) return - - call ast_begin( status ) - - - - lbnd(1) = 0.0D0 - lbnd(2) = AST__BAD - ubnd(1) = AST__BAD - ubnd(2) = 0.0D0 - frm1 = ast_frame( 2, ' ', status ) - reg1 = ast_interval( frm1, lbnd, ubnd, AST__NULL, ' ', status ) - - call ast_getregionbounds( reg1, lbnd, ubnd, status ) - if( lbnd(1) .ne. 0.0D0 ) call stopit( status, 'General 1' ) - if( lbnd(2) .gt. 0.99*val__mind ) call stopit( status, - : 'General 2' ) - if( ubnd(1) .lt. 0.99*val__maxd ) call stopit( status, - : 'General 3' ) - if( ubnd(2) .ne. 0.0D0 ) call stopit( status, 'General 4' ) - - - - p1(1) = 0.0D0 - p1(2) = 0.0D0 - p2(1) = 1.0D0 - reg2 = ast_circle( frm1, 1, p1, p2, AST__NULL, ' ', status ) - - call ast_getregionbounds( reg2, lbnd, ubnd, status ) - if( lbnd(1) .ne. -1.0D0 ) call stopit( status, 'General 5' ) - if( lbnd(2) .ne. -1.0D0 ) call stopit( status, 'General 6' ) - if( ubnd(1) .ne. 1.0D0 ) call stopit( status, 'General 7' ) - if( ubnd(2) .ne. 1.0D0 ) call stopit( status, 'General 8' ) - - - - reg3 = ast_cmpregion( reg1, reg2, AST__OR, ' ', status ) - - call ast_getregionbounds( reg3, lbnd, ubnd, status ) - if( lbnd(1) .ne. -1.0D0 ) call stopit( status, 'General 9' ) - if( lbnd(2) .gt. 0.99*val__mind ) call stopit( status, - : 'General 10' ) - if( ubnd(1) .lt. 0.99*val__maxd ) call stopit( status, - : 'General 11' ) - if( ubnd(2) .ne. 1.0D0 ) call stopit( status, 'General 12' ) - - - - lbnd(1) = -1.0D0 - ubnd(1) = 1.0D0 - frm2 = ast_frame( 1, ' ', status ) - reg4 = ast_interval( frm2, lbnd, ubnd, AST__NULL, ' ', status ) - - call ast_getregionbounds( reg4, lbnd, ubnd, status ) - if( lbnd(1) .ne. -1.0D0 ) call stopit( status, 'General 13' ) - if( ubnd(1) .ne. 1.0D0 ) call stopit( status, 'General 14' ) - - - - reg5 = ast_prism( reg3, reg4, ' ', status ) - - call ast_getregionbounds( reg5, lbnd, ubnd, status ) - if( lbnd(1) .ne. -1.0D0 ) call stopit( status, 'General 15' ) - if( lbnd(2) .gt. 0.99*val__mind ) call stopit( status, - : 'General 16' ) - if( ubnd(1) .lt. 0.99*val__maxd ) call stopit( status, - : 'General 17' ) - if( ubnd(2) .ne. 1.0D0 ) call stopit( status, 'General 18' ) - if( lbnd(3) .ne. -1.0D0 ) call stopit( status, 'General 19' ) - if( ubnd(3) .ne. 1.0D0 ) call stopit( status, 'General 20' ) - - - - call ast_negate( reg2, status ) - reg3 = ast_cmpregion( reg1, reg2, AST__OR, ' ', status ) - - call ast_getregionbounds( reg3, lbnd, ubnd, status ) - if( lbnd(1) .gt. 0.99*val__mind ) call stopit( status, - : 'General 21' ) - if( lbnd(2) .gt. 0.99*val__mind ) call stopit( status, - : 'General 22' ) - if( ubnd(1) .lt. 0.99*val__maxd ) call stopit( status, - : 'General 23' ) - if( ubnd(2) .lt. 0.99*val__maxd ) call stopit( status, - : 'General 24' ) - - - reg5 = ast_prism( reg3, reg4, ' ', status ) - - call ast_getregionbounds( reg5, lbnd, ubnd, status ) - if( lbnd(1) .gt. 0.99*val__mind ) call stopit( status, - : 'General 25' ) - if( lbnd(2) .gt. 0.99*val__mind ) call stopit( status, - : 'General 26' ) - if( ubnd(1) .lt. 0.99*val__maxd ) call stopit( status, - : 'General 27' ) - if( ubnd(2) .lt. 0.99*val__maxd ) call stopit( status, - : 'General 28' ) - if( lbnd(3) .ne. -1.0D0 ) call stopit( status, 'General 29' ) - if( ubnd(3) .ne. 1.0D0 ) call stopit( status, 'General 30' ) - - - reg3 = ast_cmpregion( reg1, reg2, AST__AND, ' ', status ) - - call ast_getregionbounds( reg3, lbnd, ubnd, status ) - if( lbnd(1) .ne. 0.0D0 ) call stopit( status, 'General 31' ) - if( lbnd(2) .gt. 0.99*val__mind ) call stopit( status, - : 'General 32' ) - if( ubnd(1) .lt. 0.99*val__maxd ) call stopit( status, - : 'General 33' ) - if( ubnd(2) .ne. 0.0D0 ) call stopit( status, 'General 34' ) - - - - reg5 = ast_prism( reg3, reg4, ' ', status ) - - call ast_getregionbounds( reg5, lbnd, ubnd, status ) - if( lbnd(1) .ne. 0.0D0 ) call stopit( status, 'General 35' ) - if( lbnd(2) .gt. 0.99*val__mind ) call stopit( status, - : 'General 36' ) - if( ubnd(1) .lt. 0.99*val__maxd ) call stopit( status, - : 'General 37' ) - if( ubnd(2) .ne. 0.0D0 ) call stopit( status, 'General 38' ) - if( lbnd(3) .ne. -1.0D0 ) call stopit( status, 'General 39' ) - if( ubnd(3) .ne. 1.0D0 ) call stopit( status, 'General 40' ) - - - call ast_end( status ) - if( status .ne. sai__ok ) write(*,*) 'General tests failed' - - end - - - - - subroutine checkInterval( status ) - implicit none - include 'AST_PAR' - include 'SAE_PAR' - - integer status, frm1, frm2, frm3, unc, int1, int2, int3, int4, - : int5, frm4, map, outperm(6), inperm(6), pm, reg - double precision lbnd(3), ubnd(3), p(5,3), q(5,3),in(4,3),out(4,3) - double precision xin(9), yin(9), xout(9), yout(9) - - logical hasframeset - - if( status .ne.sai__ok ) return - - call ast_begin( status ) - - frm1 = ast_skyframe( ' ', status ) - frm2 = ast_specframe( 'Unit=Angstrom', status ) - frm3 = ast_cmpframe( frm1, frm2, ' ', status ) - - if( ast_getc( frm1, 'InternalUnit(1)', status ) .ne. 'rad' ) - : call stopit( status, 'InternalUnit 1' ) - if( ast_getc( frm1, 'InternalUnit(2)', status ) .ne. 'rad' ) - : call stopit( status, 'InternalUnit 2' ) - if( ast_getc( frm2, 'InternalUnit(1)', status ) .ne. 'Angstrom' ) - : call stopit( status, 'InternalUnit 3' ) - if( ast_getc( frm3, 'InternalUnit(1)', status ) .ne. 'rad' ) - : call stopit( status, 'InternalUnit 4' ) - if( ast_getc( frm3, 'InternalUnit(2)', status ) .ne. 'rad' ) - : call stopit( status, 'InternalUnit 5' ) - if( ast_getc( frm3, 'InternalUnit(3)', status ) .ne. 'Angstrom' ) - : call stopit( status, 'InternalUnit 6' ) - - lbnd( 1 ) = AST__BAD - lbnd( 2 ) = AST__BAD - lbnd( 3 ) = 5000.0 - ubnd( 1 ) = AST__BAD - ubnd( 2 ) = AST__BAD - ubnd( 3 ) = 6000.0 - - int1 = ast_interval( frm3, lbnd, ubnd, AST__NULL, ' ', status ) - call checkdump( int1, 'checkdump int1', status ) - - p(1,1) = 0.0 ! On boundary - p(1,2) = 0.0 - p(1,3) = 5000.0 - p(2,1) = 2.0 ! On boundary - p(2,2) = -1.0 - p(2,3) = 6000.0 - p(3,1) = -2.0 ! Inside - p(3,2) = 1.0 - p(3,3) = 5999.0 - p(4,1) = 2.0 ! Outside - p(4,2) = -2.0 - p(4,3) = 6010.0 - p(5,1) = 1.0 ! Outside - p(5,2) = -1.0 - p(5,3) = 4910.0 - - call ast_trann( int1, 5, 3, 5, p, .true., 3, 5, q, status ) - if( q(1,1) .ne. p(1,1)) call stopit( status, 'Interval 1' ) - if( q(1,2) .ne. p(1,2)) call stopit( status, 'Interval 1b' ) - if( q(1,3) .ne. p(1,3)) call stopit( status, 'Interval 1c' ) - if( q(2,1) .ne. p(2,1)) call stopit( status, 'Interval 2' ) - if( q(2,2) .ne. p(2,2)) call stopit( status, 'Interval 2b' ) - if( q(2,3) .ne. p(2,3)) call stopit( status, 'Interval 2c' ) - if( q(3,1) .ne. p(3,1)) call stopit( status, 'Interval 3' ) - if( q(3,2) .ne. p(3,2)) call stopit( status, 'Interval 3b' ) - if( q(3,3) .ne. p(3,3)) call stopit( status, 'Interval 3c' ) - if( q(4,1) .ne. AST__BAD ) call stopit( status, 'Interval 4' ) - if( q(4,2) .ne. AST__BAD ) call stopit( status, 'Interval 4b' ) - if( q(4,3) .ne. AST__BAD ) call stopit( status, 'Interval 4c' ) - if( q(5,1) .ne. AST__BAD ) call stopit( status, 'Interval 5' ) - if( q(5,2) .ne. AST__BAD ) call stopit( status, 'Interval 5b' ) - if( q(5,3) .ne. AST__BAD ) call stopit( status, 'Interval 5c' ) - - call ast_negate( int1, status ) - call ast_trann( int1, 5, 3, 5, p, .true., 3, 5, q, status ) - if( q(1,1) .ne. p(1,1)) call stopit( status, 'Interval 6' ) - if( q(1,2) .ne. p(1,2)) call stopit( status, 'Interval 6b' ) - if( q(1,3) .ne. p(1,3)) call stopit( status, 'Interval 6c' ) - if( q(2,1) .ne. p(2,1)) call stopit( status, 'Interval 7' ) - if( q(2,2) .ne. p(2,2)) call stopit( status, 'Interval 7b' ) - if( q(2,3) .ne. p(2,3)) call stopit( status, 'Interval 7c' ) - if( q(3,1) .ne. AST__BAD) call stopit( status, 'Interval 8' ) - if( q(3,2) .ne. AST__BAD) call stopit( status, 'Interval 8b' ) - if( q(3,3) .ne. AST__BAD) call stopit( status, 'Interval 8c' ) - if( q(4,1) .ne. p(4,1) ) call stopit( status, 'Interval 9' ) - if( q(4,2) .ne. p(4,2) ) call stopit( status, 'Interval 9b' ) - if( q(4,3) .ne. p(4,3) ) call stopit( status, 'Interval 9c' ) - if( q(5,1) .ne. p(5,1) ) call stopit( status, 'Interval 10' ) - if( q(5,2) .ne. p(5,2) ) call stopit( status, 'Interval 10b' ) - if( q(5,3) .ne. p(5,3) ) call stopit( status, 'Interval 10c' ) - - call ast_set( int1, 'closed=0,negated=0', status ) - call ast_trann( int1, 5, 3, 5, p, .true., 3, 5, q, status ) - if( q(1,1) .ne. AST__BAD ) call stopit( status, 'Interval 11' ) - if( q(1,2) .ne. AST__BAD ) call stopit( status, 'Interval 11b' ) - if( q(1,3) .ne. AST__BAD ) call stopit( status, 'Interval 11c' ) - if( q(2,1) .ne. AST__BAD ) call stopit( status, 'Interval 12' ) - if( q(2,2) .ne. AST__BAD ) call stopit( status, 'Interval 12b' ) - if( q(2,3) .ne. AST__BAD ) call stopit( status, 'Interval 12c' ) - if( q(3,1) .ne. p(3,1)) call stopit( status, 'Interval 13' ) - if( q(3,2) .ne. p(3,2)) call stopit( status, 'Interval 13b' ) - if( q(3,3) .ne. p(3,3)) call stopit( status, 'Interval 13c' ) - if( q(4,1) .ne. AST__BAD ) call stopit( status, 'Interval 14' ) - if( q(4,2) .ne. AST__BAD ) call stopit( status, 'Interval 14b' ) - if( q(4,3) .ne. AST__BAD ) call stopit( status, 'Interval 14c' ) - if( q(5,1) .ne. AST__BAD ) call stopit( status, 'Interval 15' ) - if( q(5,2) .ne. AST__BAD ) call stopit( status, 'Interval 15b' ) - if( q(5,3) .ne. AST__BAD ) call stopit( status, 'Interval 15c' ) - - call ast_negate( int1, status ) - call ast_trann( int1, 5, 3, 5, p, .true., 3, 5, q, status ) - if( q(1,1) .ne. AST__BAD) call stopit( status, 'Interval 16' ) - if( q(1,2) .ne. AST__BAD) call stopit( status, 'Interval 16b' ) - if( q(1,3) .ne. AST__BAD) call stopit( status, 'Interval 16c' ) - if( q(2,1) .ne. AST__BAD) call stopit( status, 'Interval 17' ) - if( q(2,2) .ne. AST__BAD) call stopit( status, 'Interval 17b' ) - if( q(2,3) .ne. AST__BAD) call stopit( status, 'Interval 17c' ) - if( q(3,1) .ne. AST__BAD) call stopit( status, 'Interval 18' ) - if( q(3,2) .ne. AST__BAD) call stopit( status, 'Interval 18b' ) - if( q(3,3) .ne. AST__BAD) call stopit( status, 'Interval 18c' ) - if( q(4,1) .ne. p(4,1) ) call stopit( status, 'Interval 19' ) - if( q(4,2) .ne. p(4,2) ) call stopit( status, 'Interval 19b' ) - if( q(4,3) .ne. p(4,3) ) call stopit( status, 'Interval 19c' ) - if( q(5,1) .ne. p(5,1) ) call stopit( status, 'Interval 11' ) - if( q(5,2) .ne. p(5,2) ) call stopit( status, 'Interval 11b' ) - if( q(5,3) .ne. p(5,3) ) call stopit( status, 'Interval 11c' ) - - - lbnd( 1 ) = AST__BAD - lbnd( 2 ) = AST__BAD - lbnd( 3 ) = 6000.0 - ubnd( 1 ) = AST__BAD - ubnd( 2 ) = AST__BAD - ubnd( 3 ) = 5000.0 - - int2 = ast_interval( frm3, lbnd, ubnd, AST__NULL, ' ', status ) - call checkdump( int2, 'checkdump int2', status ) - - p(1,1) = 0.0 ! On boundary - p(1,2) = 0.0 - p(1,3) = 5000.0 - p(2,1) = 2.0 ! On boundary - p(2,2) = -1.0 - p(2,3) = 6000.0 - p(3,1) = -2.0 ! Outside - p(3,2) = 1.0 - p(3,3) = 5999.0 - p(4,1) = 2.0 ! Inside - p(4,2) = -2.0 - p(4,3) = 6010.0 - p(5,1) = 1.0 ! Inside - p(5,2) = -1.0 - p(5,3) = 4910.0 - - call ast_negate( int2, status ) - call ast_trann( int2, 5, 3, 5, p, .true., 3, 5, q, status ) - if( q(1,1) .ne. p(1,1)) call stopit( status, 'Interval B 1' ) - if( q(1,2) .ne. p(1,2)) call stopit( status, 'Interval B 1b' ) - if( q(1,3) .ne. p(1,3)) call stopit( status, 'Interval B 1c' ) - if( q(2,1) .ne. p(2,1)) call stopit( status, 'Interval B 2' ) - if( q(2,2) .ne. p(2,2)) call stopit( status, 'Interval B 2b' ) - if( q(2,3) .ne. p(2,3)) call stopit( status, 'Interval B 2c' ) - if( q(3,1) .ne. p(3,1)) call stopit( status, 'Interval B 3' ) - if( q(3,2) .ne. p(3,2)) call stopit( status, 'Interval B 3b' ) - if( q(3,3) .ne. p(3,3)) call stopit( status, 'Interval B 3c' ) - if( q(4,1) .ne. AST__BAD ) call stopit( status, 'Interval B 4' ) - if( q(4,2) .ne. AST__BAD ) call stopit( status, 'Interval B 4b' ) - if( q(4,3) .ne. AST__BAD ) call stopit( status, 'Interval B 4c' ) - if( q(5,1) .ne. AST__BAD ) call stopit( status, 'Interval B 5' ) - if( q(5,2) .ne. AST__BAD ) call stopit( status, 'Interval B 5b' ) - if( q(5,3) .ne. AST__BAD ) call stopit( status, 'Interval B 5c' ) - - call ast_negate( int2, status ) - call ast_trann( int2, 5, 3, 5, p, .true., 3, 5, q, status ) - if( q(1,1) .ne. p(1,1)) call stopit( status, 'Interval B 6' ) - if( q(1,2) .ne. p(1,2)) call stopit( status, 'Interval B 6b' ) - if( q(1,3) .ne. p(1,3)) call stopit( status, 'Interval B 6c' ) - if( q(2,1) .ne. p(2,1)) call stopit( status, 'Interval B 7' ) - if( q(2,2) .ne. p(2,2)) call stopit( status, 'Interval B 7b' ) - if( q(2,3) .ne. p(2,3)) call stopit( status, 'Interval B 7c' ) - if( q(3,1) .ne. AST__BAD) call stopit( status, 'Interval B 8' ) - if( q(3,2) .ne. AST__BAD) call stopit( status, 'Interval B 8b' ) - if( q(3,3) .ne. AST__BAD) call stopit( status, 'Interval B 8c' ) - if( q(4,1) .ne. p(4,1) ) call stopit( status, 'Interval B 9' ) - if( q(4,2) .ne. p(4,2) ) call stopit( status, 'Interval B 9b' ) - if( q(4,3) .ne. p(4,3) ) call stopit( status, 'Interval B 9c' ) - if( q(5,1) .ne. p(5,1) ) call stopit( status, 'Interval B 10' ) - if( q(5,2) .ne. p(5,2) ) call stopit( status, 'Interval B 10b' ) - if( q(5,3) .ne. p(5,3) ) call stopit( status, 'Interval B 10c' ) - - call ast_set( int2, 'closed=0,negated=1', status ) - call ast_trann( int2, 5, 3, 5, p, .true., 3, 5, q, status ) - if( q(1,1) .ne. AST__BAD ) call stopit( status, 'Interval B 11' ) - if( q(1,2) .ne. AST__BAD ) call stopit( status, 'Interval B 11b' ) - if( q(1,3) .ne. AST__BAD ) call stopit( status, 'Interval B 11c' ) - if( q(2,1) .ne. AST__BAD ) call stopit( status, 'Interval B 12' ) - if( q(2,2) .ne. AST__BAD ) call stopit( status, 'Interval B 12b' ) - if( q(2,3) .ne. AST__BAD ) call stopit( status, 'Interval B 12c' ) - if( q(3,1) .ne. p(3,1)) call stopit( status, 'Interval B 13' ) - if( q(3,2) .ne. p(3,2)) call stopit( status, 'Interval B 13b' ) - if( q(3,3) .ne. p(3,3)) call stopit( status, 'Interval B 13c' ) - if( q(4,1) .ne. AST__BAD ) call stopit( status, 'Interval B 14' ) - if( q(4,2) .ne. AST__BAD ) call stopit( status, 'Interval B 14b' ) - if( q(4,3) .ne. AST__BAD ) call stopit( status, 'Interval B 14c' ) - if( q(5,1) .ne. AST__BAD ) call stopit( status, 'Interval B 15' ) - if( q(5,2) .ne. AST__BAD ) call stopit( status, 'Interval B 15b' ) - if( q(5,3) .ne. AST__BAD ) call stopit( status, 'Interval B 15c' ) - - call ast_negate( int2, status ) - call ast_trann( int2, 5, 3, 5, p, .true., 3, 5, q, status ) - if( q(1,1) .ne. AST__BAD) call stopit( status, 'Interval B 16' ) - if( q(1,2) .ne. AST__BAD) call stopit( status, 'Interval B 16b' ) - if( q(1,3) .ne. AST__BAD) call stopit( status, 'Interval B 16c' ) - if( q(2,1) .ne. AST__BAD) call stopit( status, 'Interval B 17' ) - if( q(2,2) .ne. AST__BAD) call stopit( status, 'Interval B 17b' ) - if( q(2,3) .ne. AST__BAD) call stopit( status, 'Interval B 17c' ) - if( q(3,1) .ne. AST__BAD) call stopit( status, 'Interval B 18' ) - if( q(3,2) .ne. AST__BAD) call stopit( status, 'Interval B 18b' ) - if( q(3,3) .ne. AST__BAD) call stopit( status, 'Interval B 18c' ) - if( q(4,1) .ne. p(4,1) ) call stopit( status, 'Interval B 19' ) - if( q(4,2) .ne. p(4,2) ) call stopit( status, 'Interval B 19b' ) - if( q(4,3) .ne. p(4,3) ) call stopit( status, 'Interval B 19c' ) - if( q(5,1) .ne. p(5,1) ) call stopit( status, 'Interval B 11' ) - if( q(5,2) .ne. p(5,2) ) call stopit( status, 'Interval B 11b' ) - if( q(5,3) .ne. p(5,3) ) call stopit( status, 'Interval B 11c' ) - - - - - lbnd( 1 ) = AST__BAD - lbnd( 2 ) = AST__BAD - lbnd( 3 ) = 5000.0 - ubnd( 1 ) = 0.5 - ubnd( 2 ) = AST__BAD - ubnd( 3 ) = AST__BAD - - int3 = ast_interval( frm3, lbnd, ubnd, AST__NULL, ' ', status ) - - call checkdump( int3, 'checkdump int3', status ) - - p(1,1) = 0.0 ! On boundary - p(1,2) = 0.0 - p(1,3) = 5000.0 - p(2,1) = 0.5 ! On boundary - p(2,2) = -1.0 - p(2,3) = 6000.0 - p(3,1) = -2.0 ! Inside - p(3,2) = 0.4 - p(3,3) = 5999.0 - p(4,1) = 2.0 ! Outside - p(4,2) = -2.0 - p(4,3) = 6010.0 - p(5,1) = 0.0 ! Outside - p(5,2) = -3.0 - p(5,3) = 4910.0 - - call ast_trann( int3, 5, 3, 5, p, .true., 3, 5, q, status ) - if( q(1,1) .ne. p(1,1)) call stopit( status, 'Interval C 1' ) - if( q(1,2) .ne. p(1,2)) call stopit( status, 'Interval C 1b' ) - if( q(1,3) .ne. p(1,3)) call stopit( status, 'Interval C 1c' ) - if( q(2,1) .ne. p(2,1)) call stopit( status, 'Interval C 2' ) - if( q(2,2) .ne. p(2,2)) call stopit( status, 'Interval C 2b' ) - if( q(2,3) .ne. p(2,3)) call stopit( status, 'Interval C 2c' ) - if( q(3,1) .ne. p(3,1)) call stopit( status, 'Interval C 3' ) - if( q(3,2) .ne. p(3,2)) call stopit( status, 'Interval C 3b' ) - if( q(3,3) .ne. p(3,3)) call stopit( status, 'Interval C 3c' ) - if( q(4,1) .ne. AST__BAD ) call stopit( status, 'Interval C 4' ) - if( q(4,2) .ne. AST__BAD ) call stopit( status, 'Interval C 4b' ) - if( q(4,3) .ne. AST__BAD ) call stopit( status, 'Interval C 4c' ) - if( q(5,1) .ne. AST__BAD ) call stopit( status, 'Interval C 5' ) - if( q(5,2) .ne. AST__BAD ) call stopit( status, 'Interval C 5b' ) - if( q(5,3) .ne. AST__BAD ) call stopit( status, 'Interval C 5c' ) - - call ast_negate( int3, status ) - call ast_trann( int3, 5, 3, 5, p, .true., 3, 5, q, status ) - if( q(1,1) .ne. p(1,1)) call stopit( status, 'Interval C 6' ) - if( q(1,2) .ne. p(1,2)) call stopit( status, 'Interval C 6b' ) - if( q(1,3) .ne. p(1,3)) call stopit( status, 'Interval C 6c' ) - if( q(2,1) .ne. p(2,1)) call stopit( status, 'Interval C 7' ) - if( q(2,2) .ne. p(2,2)) call stopit( status, 'Interval C 7b' ) - if( q(2,3) .ne. p(2,3)) call stopit( status, 'Interval C 7c' ) - if( q(3,1) .ne. AST__BAD) call stopit( status, 'Interval C 8' ) - if( q(3,2) .ne. AST__BAD) call stopit( status, 'Interval C 8b' ) - if( q(3,3) .ne. AST__BAD) call stopit( status, 'Interval C 8c' ) - if( q(4,1) .ne. p(4,1) ) call stopit( status, 'Interval C 9' ) - if( q(4,2) .ne. p(4,2) ) call stopit( status, 'Interval C 9b' ) - if( q(4,3) .ne. p(4,3) ) call stopit( status, 'Interval C 9c' ) - if( q(5,1) .ne. p(5,1) ) call stopit( status, 'Interval C 10' ) - if( q(5,2) .ne. p(5,2) ) call stopit( status, 'Interval C 10b' ) - if( q(5,3) .ne. p(5,3) ) call stopit( status, 'Interval C 10c' ) - - call ast_set( int3, 'closed=0,negated=0', status ) - call ast_trann( int3, 5, 3, 5, p, .true., 3, 5, q, status ) - if( q(1,1) .ne. AST__BAD ) call stopit( status, 'Interval C 11' ) - if( q(1,2) .ne. AST__BAD ) call stopit( status, 'Interval C 11b' ) - if( q(1,3) .ne. AST__BAD ) call stopit( status, 'Interval C 11c' ) - if( q(2,1) .ne. AST__BAD ) call stopit( status, 'Interval C 12' ) - if( q(2,2) .ne. AST__BAD ) call stopit( status, 'Interval C 12b' ) - if( q(2,3) .ne. AST__BAD ) call stopit( status, 'Interval C 12c' ) - if( q(3,1) .ne. p(3,1)) call stopit( status, 'Interval C 13' ) - if( q(3,2) .ne. p(3,2)) call stopit( status, 'Interval C 13b' ) - if( q(3,3) .ne. p(3,3)) call stopit( status, 'Interval C 13c' ) - if( q(4,1) .ne. AST__BAD ) call stopit( status, 'Interval C 14' ) - if( q(4,2) .ne. AST__BAD ) call stopit( status, 'Interval C 14b' ) - if( q(4,3) .ne. AST__BAD ) call stopit( status, 'Interval C 14c' ) - if( q(5,1) .ne. AST__BAD ) call stopit( status, 'Interval C 15' ) - if( q(5,2) .ne. AST__BAD ) call stopit( status, 'Interval C 15b' ) - if( q(5,3) .ne. AST__BAD ) call stopit( status, 'Interval C 15c' ) - - call ast_negate( int3, status ) - call ast_trann( int3, 5, 3, 5, p, .true., 3, 5, q, status ) - if( q(1,1) .ne. AST__BAD) call stopit( status, 'Interval C 16' ) - if( q(1,2) .ne. AST__BAD) call stopit( status, 'Interval C 16b' ) - if( q(1,3) .ne. AST__BAD) call stopit( status, 'Interval C 16c' ) - if( q(2,1) .ne. AST__BAD) call stopit( status, 'Interval C 17' ) - if( q(2,2) .ne. AST__BAD) call stopit( status, 'Interval C 17b' ) - if( q(2,3) .ne. AST__BAD) call stopit( status, 'Interval C 17c' ) - if( q(3,1) .ne. AST__BAD) call stopit( status, 'Interval C 18' ) - if( q(3,2) .ne. AST__BAD) call stopit( status, 'Interval C 18b' ) - if( q(3,3) .ne. AST__BAD) call stopit( status, 'Interval C 18c' ) - if( q(4,1) .ne. p(4,1) ) call stopit( status, 'Interval C 19' ) - if( q(4,2) .ne. p(4,2) ) call stopit( status, 'Interval C 19b' ) - if( q(4,3) .ne. p(4,3) ) call stopit( status, 'Interval C 19c' ) - if( q(5,1) .ne. p(5,1) ) call stopit( status, 'Interval C 11' ) - if( q(5,2) .ne. p(5,2) ) call stopit( status, 'Interval C 11b' ) - if( q(5,3) .ne. p(5,3) ) call stopit( status, 'Interval C 11c' ) - - - - lbnd( 1 ) = AST__BAD - lbnd( 2 ) = 0.0 - lbnd( 3 ) = AST__BAD - ubnd( 1 ) = AST__BAD - ubnd( 2 ) = -1.0 - ubnd( 3 ) = 6000.0 - - call ast_setl( int3, 'Negated', .false., status ) - int4 = ast_interval( frm3, lbnd, ubnd, AST__NULL, ' ', status ) - if( ast_overlap( int3, int4, status ) .ne. 4 ) - : call stopit( status, 'Interval overlap 1' ) - - call ast_negate( int3, status ) - if( ast_overlap( int3, int4, status ) .ne. 4 ) - : call stopit( status, 'Interval overlap 2' ) - - call ast_negate( int4, status ) - if( ast_overlap( int3, int4, status ) .ne. 4 ) - : call stopit( status, 'Interval overlap 3' ) - - call ast_negate( int3, status ) - if( ast_overlap( int3, int4, status ) .ne. 4 ) - : call stopit( status, 'Interval overlap 4' ) - - - lbnd( 1 ) = 0.6 - lbnd( 2 ) = 0.0 - lbnd( 3 ) = AST__BAD - ubnd( 1 ) = AST__BAD - ubnd( 2 ) = -1.0 - ubnd( 3 ) = 6000.0 - - int4 = ast_interval( frm3, lbnd, ubnd, AST__NULL, ' ', status ) - if( ast_overlap( int3, int4, status ) .ne. 1 ) - : call stopit( status, 'Interval overlap 5' ) - - call ast_negate( int3, status ) - if( ast_overlap( int3, int4, status ) .ne. 3 ) - : call stopit( status, 'Interval overlap 6' ) - - call ast_negate( int4, status ) - if( ast_overlap( int3, int4, status ) .ne. 4 ) - : call stopit( status, 'Interval overlap 7' ) - - call ast_negate( int3, status ) - if( ast_overlap( int3, int4, status ) .ne. 2 ) - : call stopit( status, 'Interval overlap 8' ) - - - int4 = ast_copy( int3, status ) - if( ast_overlap( int3, int4, status ) .ne. 5 ) - : call stopit( status, 'Interval overlap 9' ) - - call ast_negate( int4, status ) - if( ast_overlap( int3, int4, status ) .ne. 6 ) - : call stopit( status, 'Interval overlap 10' ) - - - -* Changing the number of axes in the Interval. - - frm1 = ast_frame( 2, 'Domain=A', status ) - - lbnd(1) = 0.0 - lbnd(2) = 0.0 - ubnd(1) = 0.01 - ubnd(2) = 0.01 - unc = ast_box( frm1, 0, lbnd, ubnd, AST__NULL, ' ', status ) - - lbnd(1) = -2.0 - lbnd(2) = 0.5 - ubnd(1) = 0.0 - ubnd(2) = AST__BAD - int1 = ast_interval( frm1, lbnd, ubnd, unc, ' ', status ) - - outperm(1) = 2 - outperm(2) = -1 - outperm(3) = 1 - - inperm(1) = 3 - inperm(2) = 1 - - pm = ast_permmap( 2, inperm, 3, outperm, 0.0D0, ' ', status ) - - frm2 = ast_frame( 3, 'Domain=B', status ) - reg = ast_mapregion( int1, pm, frm2, status ) - - if( .not. ast_isainterval( reg, status ) ) call stopit( status, - : 'Int: perm check 1' ) - if( hasFrameSet( reg, status ) ) call stopit( status, - : 'Int: perm check 2' ) - if( ast_geti( reg, 'naxes', status ) .ne. 3 ) call stopit( status, - : 'Int: perm check 3' ) - - in( 1, 1 ) = 0.0 ! Outside - in( 1, 2 ) = 0.0 - in( 1, 3 ) = -0.5 - in( 2, 1 ) = 20.0 ! Inside - in( 2, 2 ) = 0.0 - in( 2, 3 ) = -0.5 - in( 3, 1 ) = 20.0 ! Outside - in( 3, 2 ) = -10.0 - in( 3, 3 ) = 0.5 - in( 4, 1 ) = 20.0 ! Boundary - in( 4, 2 ) = 0.0 - in( 4, 3 ) = -2.0 - - call ast_trann( reg, 4, 3, 4, in, .true., 3, 4, out, status ) - - if( out( 1, 1 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 1' ) - if( out( 1, 2 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 2' ) - if( out( 1, 3 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 3' ) - - if( out( 2, 1 ) .ne. in( 2,1 )) call stopit( status, 'Int: pc 4' ) - if( out( 2, 2 ) .ne. in( 2,2 )) call stopit( status, 'Int: pc 5' ) - if( out( 2, 3 ) .ne. in( 2,3 )) call stopit( status, 'Int: pc 6' ) - - if( out( 3, 1 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 7' ) - if( out( 3, 2 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 8' ) - if( out( 3, 3 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 9' ) - - if( out( 4, 1 ) .ne. in( 4,1 )) call stopit( status, 'Int: pc 10') - if( out( 4, 2 ) .ne. in( 4,2 )) call stopit( status, 'Int: pc 11') - if( out( 4, 3 ) .ne. in( 4,3 )) call stopit( status, 'Int: pc 12') - - - - outperm(1) = 2 - outperm(2) = -1 - outperm(3) = 1 - - inperm(1) = 3 - inperm(2) = 1 - - pm = ast_permmap( 2, inperm, 3, outperm, 1.5D0, ' ', status ) - - frm2 = ast_frame( 3, 'Domain=B', status ) - reg = ast_mapregion( int1, pm, frm2, status ) - - if( .not. ast_isainterval( reg, status ) ) call stopit( status, - : 'Int: perm check 4' ) - if( hasFrameSet( reg, status ) ) call stopit( status, - : 'Int: perm check 5' ) - if( ast_geti( reg, 'naxes', status ) .ne. 3 ) call stopit( status, - : 'Int: perm check 6' ) - - in( 1, 1 ) = 20.0 ! Outside - in( 1, 2 ) = 0.0 - in( 1, 3 ) = -0.5 - in( 2, 1 ) = 20.0 ! Inside - in( 2, 2 ) = 1.5 - in( 2, 3 ) = -0.5 - in( 3, 1 ) = 20.0 ! Outside - in( 3, 2 ) = 1.6 - in( 3, 3 ) = -0.5 - in( 4, 1 ) = 0.5 ! Boundary - in( 4, 2 ) = 1.5 - in( 4, 3 ) = 0.0 - - call ast_trann( reg, 4, 3, 4, in, .true., 3, 4, out, status ) - - if( out( 1, 1 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 13') - if( out( 1, 2 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 14') - if( out( 1, 3 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 15') - - if( out( 2, 1 ) .ne. in( 2,1 )) call stopit( status, 'Int: pc 16') - if( out( 2, 2 ) .ne. in( 2,2 )) call stopit( status, 'Int: pc 17') - if( out( 2, 3 ) .ne. in( 2,3 )) call stopit( status, 'Int: pc 18') - - if( out( 3, 1 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 19') - if( out( 3, 2 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 20') - if( out( 3, 3 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 21') - - if( out( 4, 1 ) .ne. in( 4,1 )) call stopit( status, 'Int: pc 22') - if( out( 4, 2 ) .ne. in( 4,2 )) call stopit( status, 'Int: pc 23') - if( out( 4, 3 ) .ne. in( 4,3 )) call stopit( status, 'Int: pc 24') - - - - call ast_negate( int1, status ) - call ast_set( int1, 'closed=0', status ) - reg = ast_mapregion( int1, pm, frm2, status ) - call ast_negate( int1, status ) - call ast_set( int1, 'closed=1', status ) - - if( .not. ast_isainterval( reg, status ) ) call stopit( status, - : 'Int: perm check 7' ) - if( hasFrameSet( reg, status ) ) call stopit( status, - : 'Int: perm check 8' ) - if( ast_geti( reg, 'naxes', status ) .ne. 3 ) call stopit( status, - : 'Int: perm check 9' ) - - in( 1, 1 ) = 20.0 ! Inside - in( 1, 2 ) = 0.0 - in( 1, 3 ) = -0.5 - in( 2, 1 ) = 20.0 ! Outside - in( 2, 2 ) = 1.5 - in( 2, 3 ) = -0.5 - in( 3, 1 ) = 20.0 ! Inside - in( 3, 2 ) = 1.6 - in( 3, 3 ) = -0.5 - in( 4, 1 ) = 0.5 ! Outside - in( 4, 2 ) = 1.5 - in( 4, 3 ) = 0.0 - - call ast_trann( reg, 4, 3, 4, in, .true., 3, 4, out, status ) - - if( out( 1, 1 ) .ne. in( 1,1 )) call stopit( status, 'Int: pc 25') - if( out( 1, 2 ) .ne. in( 1,2 )) call stopit( status, 'Int: pc 26') - if( out( 1, 3 ) .ne. in( 1,3 )) call stopit( status, 'Int: pc 27') - - if( out( 2, 1 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 28') - if( out( 2, 2 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 29') - if( out( 2, 3 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 30') - - if( out( 3, 1 ) .ne. in( 3,1 )) call stopit( status, 'Int: pc 31') - if( out( 3, 2 ) .ne. in( 3,2 )) call stopit( status, 'Int: pc 32') - if( out( 3, 3 ) .ne. in( 3,3 )) call stopit( status, 'Int: pc 33') - - if( out( 4, 1 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 34') - if( out( 4, 2 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 35') - if( out( 4, 3 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 36') - - - - - frm1 = ast_frame( 3, 'Domain=A', status ) - - - lbnd(1) = 0.0 - lbnd(2) = 0.0 - lbnd(3) = 0.0 - ubnd(1) = 0.01 - ubnd(2) = 0.01 - ubnd(3) = 0.01 - unc = ast_box( frm1, 0, lbnd, ubnd, AST__NULL, ' ', status ) - - lbnd(1) = 0.5 - lbnd(2) = -1.0 - lbnd(3) = -2.0 - ubnd(1) = AST__BAD - ubnd(2) = AST__BAD - ubnd(3) = 0.0 - - int1 = ast_interval( frm1, lbnd, ubnd, unc, ' ', status ) - - outperm(1) = 1 - outperm(2) = 3 - - inperm(1) = 1 - inperm(2) = -1 - inperm(3) = 2 - - pm = ast_permmap( 3, inperm, 2, outperm, 1.0D0, ' ', status ) - - frm2 = ast_frame( 2, 'Domain=B', status ) - reg = ast_mapregion( int1, pm, frm2, status ) - - if( .not. ast_isainterval( reg, status ) ) call stopit( status, - : 'Int: perm check 10' ) - if( hasFrameSet( reg, status ) ) call stopit( status, - : 'Int: perm check 11' ) - if( ast_geti( reg, 'naxes', status ) .ne. 2 ) call stopit( status, - : 'Int: perm check 12' ) - - xin( 1 ) = 0.4 ! Out - yin( 1 ) = -1.0 - xin( 2 ) = 1.0 ! Out - yin( 2 ) = 0.1 - xin( 3 ) = 1.0 ! Out - yin( 3 ) = -2.1 - xin( 4 ) = 0.5 ! Boundary - yin( 4 ) = -1.0 - xin( 5 ) = 10.0 ! In - yin( 5 ) = -0.1 - xin( 6 ) = 0.55 ! Boundary - yin( 6 ) = -2.0 - - - call ast_tran2( reg, 6, xin, yin, .true., xout, yout, status ) - - if( xout( 1 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 37') - if( yout( 1 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 38') - if( xout( 2 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 39') - if( yout( 2 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 40') - if( xout( 3 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 41') - if( yout( 3 ) .ne. AST__BAD ) call stopit( status, 'Int: pc 42') - if( xout( 4 ) .ne. xin( 4 ) ) call stopit( status, 'Int: pc 43') - if( yout( 4 ) .ne. yin( 4 ) ) call stopit( status, 'Int: pc 44') - if( xout( 5 ) .ne. xin( 5 ) ) call stopit( status, 'Int: pc 45') - if( yout( 5 ) .ne. yin( 5 ) ) call stopit( status, 'Int: pc 46') - if( xout( 6 ) .ne. xin( 6 ) ) call stopit( status, 'Int: pc 47') - if( yout( 6 ) .ne. yin( 6 ) ) call stopit( status, 'Int: pc 48') - - - pm = ast_permmap( 3, inperm, 2, outperm, -2.0D0, ' ', status ) - reg = ast_mapregion( int1, pm, frm2, status ) - - if( .not. ast_isanullregion( reg, status ) ) call stopit( status, - : 'Int: perm check 13' ) - if( hasFrameSet( reg, status ) ) call stopit( status, - : 'Int: perm check 14' ) - if( ast_geti( reg, 'naxes', status ) .ne. 2 ) call stopit( status, - : 'Int: perm check 15' ) - if( ast_getl( reg, 'negated', status ) ) call stopit( status, - : 'Int: perm check 16' ) - - - call ast_negate( int1, status ) - reg = ast_mapregion( int1, pm, frm2, status ) - - if( .not. ast_isanullregion( reg, status ) ) call stopit( status, - : 'Int: perm check 17' ) - if( hasFrameSet( reg, status ) ) call stopit( status, - : 'Int: perm check 18' ) - if( ast_geti( reg, 'naxes', status ) .ne. 2 ) call stopit( status, - : 'Int: perm check 19' ) - if( .NOT.ast_getl( reg, 'negated', status ) ) call stopit( status, - : 'Int: perm check 20' ) - - - - - call ast_end( status ) - if( status .ne. sai__ok ) write(*,*) 'Interval tests failed' - - end - - - subroutine checkPolygon( status ) - implicit none - include 'AST_PAR' - include 'SAE_PAR' - - integer status, frm, unc, pol1, pol2, f2, r2, r3, r4 - double precision pi, p(5,2), q(5,2), p1(2), p2(2) - double precision xin(2), yin(2), xout(2), yout(2), lbnd(5), - : ubnd(5) - logical hasframeset - - - if( status .ne.sai__ok ) return - - call ast_begin( status ) - - pi = acos( -1.0d0 ) - - frm = ast_SkyFrame( ' ', status ) - - p1(1) = 0.0 - p1(2) = 0.5*pi - p2(1) = 0.01 - unc = ast_circle( frm, 1, p1, p2, AST__NULL, ' ', status ) - - p(1,1) = 0.0 - p(1,2) = 0.0 - p(2,1) = 1.0 - p(2,2) = 0.5*pi - p(3,1) = 0.5*pi - p(3,2) = 0.25*pi - p(4,1) = 0.25*pi - p(4,2) = 0.0 - p(5,1) = 0.25*pi - p(5,2) = 0.25*pi - - pol1 = ast_polygon( frm, 5, 5, p, unc, 'closed=0', status ) - - call checkdump( pol1, 'checkdump pol1', status ) - - - p(1,1) = 0.0 ! On boundary - p(1,2) = 0.0 - p(2,1) = 1.0 ! Outside - p(2,2) = 0.5*pi + 0.1 - p(3,1) = 0.5*pi - 0.1 ! Inside - p(3,2) = 0.25*pi - p(4,1) = 0.0 ! On boundary - p(4,2) = 0.1 - p(5,1) = 0.25*pi ! Inside - p(5,2) = 0.25*pi + 0.1 - - call ast_trann( pol1, 5, 2, 5, p, .true., 2, 5, q, status ) - - if( q(1,1) .ne. AST__BAD ) call stopit( status, 'Poly 1' ) - if( q(1,2) .ne. AST__BAD ) call stopit( status, 'Poly 1b' ) - if( q(2,1) .ne. AST__BAD ) call stopit( status, 'Poly 2' ) - if( q(2,2) .ne. AST__BAD ) call stopit( status, 'Poly 2b' ) - if( q(3,1) .ne. p(3,1) ) call stopit( status, 'Poly 3' ) - if( q(3,2) .ne. p(3,2) ) call stopit( status, 'Poly 3b' ) - if( q(4,1) .ne. AST__BAD ) call stopit( status, 'Poly 4' ) - if( q(4,2) .ne. AST__BAD ) call stopit( status, 'Poly 4b' ) - if( q(5,1) .ne. p(5,1) ) call stopit( status, 'Poly 5' ) - if( q(5,2) .ne. p(5,2) ) call stopit( status, 'Poly 5b' ) - - - call ast_setl( pol1, 'closed', .true., status ) - call ast_trann( pol1, 5, 2, 5, p, .true., 2, 5, q, status ) - if( q(1,1) .ne. p(1,1) ) call stopit( status, 'Poly 6' ) - if( q(1,2) .ne. p(1,2) ) call stopit( status, 'Poly 6b' ) - if( q(2,1) .ne. AST__BAD ) call stopit( status, 'Poly 7' ) - if( q(2,2) .ne. AST__BAD ) call stopit( status, 'Poly 7b' ) - if( q(3,1) .ne. p(3,1) ) call stopit( status, 'Poly 8' ) - if( q(3,2) .ne. p(3,2) ) call stopit( status, 'Poly 8b' ) - if( q(4,1) .ne. p(4,1) ) call stopit( status, 'Poly 9' ) - if( q(4,2) .ne. p(4,2) ) call stopit( status, 'Poly 9b' ) - if( q(5,1) .ne. p(5,1) ) call stopit( status, 'Poly 10' ) - if( q(5,2) .ne. p(5,2) ) call stopit( status, 'Poly 10b' ) - - call ast_setl( pol1, 'negated', .true., status ) - call ast_trann( pol1, 5, 2, 5, p, .true., 2, 5, q, status ) - if( q(1,1) .ne. p(1,1) ) call stopit( status, 'Poly 11' ) - if( q(1,2) .ne. p(1,2) ) call stopit( status, 'Poly 11b' ) - if( q(2,1) .ne. p(2,1) ) call stopit( status, 'Poly 12' ) - if( q(2,2) .ne. p(2,2) ) call stopit( status, 'Poly 12b' ) - if( q(3,1) .ne. AST__BAD ) call stopit( status, 'Poly 13' ) - if( q(3,2) .ne. AST__BAD ) call stopit( status, 'Poly 13b' ) - if( q(4,1) .ne. p(4,1) ) call stopit( status, 'Poly 14' ) - if( q(4,2) .ne. p(4,2) ) call stopit( status, 'Poly 14b' ) - if( q(5,1) .ne. AST__BAD ) call stopit( status, 'Poly 15' ) - if( q(5,2) .ne. AST__BAD ) call stopit( status, 'Poly 15b' ) - - call ast_setl( pol1, 'closed', .false., status ) - call ast_trann( pol1, 5, 2, 5, p, .true., 2, 5, q, status ) - if( q(1,1) .ne. AST__BAD ) call stopit( status, 'Poly 16' ) - if( q(1,2) .ne. AST__BAD ) call stopit( status, 'Poly 16b' ) - if( q(2,1) .ne. p(2,1) ) call stopit( status, 'Poly 17' ) - if( q(2,2) .ne. p(2,2) ) call stopit( status, 'Poly 17b' ) - if( q(3,1) .ne. AST__BAD ) call stopit( status, 'Poly 18' ) - if( q(3,2) .ne. AST__BAD ) call stopit( status, 'Poly 18b' ) - if( q(4,1) .ne. AST__BAD ) call stopit( status, 'Poly 19' ) - if( q(4,2) .ne. AST__BAD ) call stopit( status, 'Poly 19b' ) - if( q(5,1) .ne. AST__BAD ) call stopit( status, 'Poly 20' ) - if( q(5,2) .ne. AST__BAD ) call stopit( status, 'Poly 20b' ) - - - if( hasframeset( pol1, status ) ) then - call stopit( status, 'pol1 has FrameSet' ) - end if - - call ast_setc( pol1, 'system', 'fk5', status ) - call checkdump( pol1, 'checkdump pol2', status ) - - if( .not. hasframeset( pol1, status ) ) then - call stopit( status, 'pol1 does not have FrameSet' ) - end if - - call ast_seti( pol1, 'meshsize', 30, status ) - - pol2 = ast_simplify( pol1, status ) - - if( hasframeset( pol2, status ) ) then - call stopit( status, 'pol2 has FrameSet' ) - end if - - - - frm = ast_SkyFrame( ' ', status ) - - p1(1) = 0.0 - p1(2) = 0.5*pi - p2(1) = 0.01 - unc = ast_circle( frm, 1, p1, p2, AST__NULL, ' ', status ) - - p(1,1) = 1.5*pi - p(1,2) = 0.4*pi - p(2,1) = pi - p(2,2) = 0.4*pi - p(3,1) = 0.5*pi - p(3,2) = 0.4*pi - p(4,1) = 0.0 - p(4,2) = 0.4*pi - - pol1 = ast_polygon( frm, 4, 5, p, unc, ' ', status ) - - xin(1) = 0.0 - yin(1) = 0.5*pi - call ast_tran2( pol1, 1, xin, yin, .true., xout, yout, status ) - - if( xout(1) .ne. xin(1) ) call stopit( status, 'Poly 21' ) - if( yout(1) .ne. yin(1) ) call stopit( status, 'Poly 22' ) - - call ast_getregionbounds( pol1, lbnd, ubnd, status ) - if( abs( lbnd(1) ) .gt. 1.0E-10 ) call stopit( status, 'Poly 23' ) - if( abs( lbnd(2) - 1.25663708 ) .gt. 1.0E-6 ) - : call stopit( status, 'Poly 24' ) - if( abs( ubnd(1) - 6.28318531 ) .gt. 1.0E-6 ) - : call stopit( status, 'Poly 25' ) - if( abs( ubnd(2) - 1.57079633 ) .gt. 1.0E-6 ) - : call stopit( status, 'Poly 26' ) - - - f2 = ast_specframe( 'Unit=Angstrom', status ) - lbnd( 1 ) = 5000.0 - ubnd( 1 ) = 6000.0 - r2 = ast_interval( f2, lbnd, ubnd, AST__NULL, ' ', status ) - r3 = ast_prism( pol1, r2, ' ', status ) - r4 = ast_Simplify( r3, status ) - - call ast_getregionbounds( r4, lbnd, ubnd, status ) - if( abs( lbnd(1) ) .gt. 1.0E-10 ) call stopit( status, 'Poly 27' ) - if( abs( lbnd(2) - 1.25663708 ) .gt. 1.0E-6 ) - : call stopit( status, 'Poly 28' ) - if( abs( ubnd(1) - 6.28318531 ) .gt. 1.0E-6 ) - : call stopit( status, 'Poly 29' ) - if( abs( ubnd(2) - 1.57079633 ) .gt. 1.0E-6 ) - : call stopit( status, 'Poly 30' ) - if( abs( lbnd(3) - 5000.0 ) .gt. 1.0E-10 ) - : call stopit( status, 'Poly 31' ) - if( abs( ubnd(3) - 6000.0 ) .gt. 1.0E-6 ) - : call stopit( status, 'Poly 32' ) - - - - - - - - call ast_end( status ) - if( status .ne. sai__ok ) write(*,*) 'Polygon tests failed' - - end - - - - - - subroutine checkBox( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'PRM_PAR' - - integer status, box1, frm1, i, fc, fs, map1, perm(3), frm2, box3, - : box2, frm3, map2, res, j, bfrm, cfrm, reg1, map, - : npoint - double precision p1(3), p2(3), v2, xin(9), yin(9), xout(9), - : yout(9),in(4,3),out(4,3),matrix(9),grid(250,2) - character*(AST__SZCHR) t1, t2, cards(9)*80 - logical hasframeset - - integer lbnd_in(2), ubnd_in(2) - real rin(5,5),image(50,50) - integer outperm(3), inperm(3),pm, reg, unc - - - data cards /'CTYPE1 = ''RA---TAN''', - : 'CTYPE2 = ''DEC--TAN''', - : 'CRPIX1 = 100', - : 'CRPIX2 = 100', - : 'CRVAL1 = 71.619724', - : 'CRVAL2 = 42.971835', - : ' ', - : 'CDELT1 = 0.6', - : 'CDELT2 = 0.6' / - - if( status .ne. sai__ok ) return - - call ast_begin( status ) - - fc = ast_fitschan( ast_null, ast_null, ' ', status ) - do i = 1, 9 - call ast_putfits( fc, cards(i), .false., status ) - end do - call ast_clear( fc, 'card', status ) - fs = ast_read( fc, status ) - - frm1 = ast_getframe( fs, ast__current, status ) - call ast_seti( frm1, 'digits(1)', 12, status ) - - p1( 1 ) = 1.25 - p1( 2 ) = 0.75 - p2( 1 ) = 1.5 - p2( 2 ) = 0.5 - - box1 = ast_box( frm1, 0, p1, p2, AST__NULL, ' ', status ) - call checkdump( box1, 'checkdump box1', status ) - - if( ast_getc( box1, 'system', status ) .ne. 'ICRS' ) - : call stopit( status, 'box1 system is not ICRS' ) - - call ast_setc( box1, 'system', 'galactic', status ) - - perm(1)=2 - perm(2)=1 - call ast_permaxes( box1, perm, status ) - - box3 = ast_copy( box1, status ) - - yin(1) = 2.82175432250852 - xin(1) = -0.0269096590283195 - yin(2) = 2.70798275154741 - xin(2) = 0.2467384819891 - - call ast_tran2( box1, 2, xin, yin, .true., xout, yout, status ) - - if( abs( yout(1)-2.82175422 ) .gt. 1.0E-6 ) - : call stopit( status, 'error 1' ) - if( abs( xout(1)+0.0269096587 ) .gt. 1.0E-7 ) - : call stopit( status, 'error 2' ) - if( yout(2) .ne. AST__BAD ) call stopit( status, 'error 3' ) - if( xout(2) .ne. AST__BAD ) call stopit( status, 'error 4' ) - - - if( .not. ast_getl( box3, 'Adaptive', status ) ) - : call stopit( status, 'error 4a' ) - - call ast_setl( box3, 'Adaptive', .false., status ) - call ast_setc( box3, 'system', 'icrs', status ) - - yin(1) = 2.82175432250852 - xin(1) = -0.0269096590283195 - yin(2) = 2.70798275154741 - xin(2) = 0.2467384819891 - - call ast_tran2( box3, 2, xin, yin, .true., xout, yout, status ) - - if( abs( yout(1)-2.82175422 ) .gt. 1.0E-8 ) - : call stopit( status, 'error 1' ) - if( abs( xout(1)+0.0269096587 ) .gt. 1.0E-8 ) - : call stopit( status, 'error 2' ) - if( yout(2) .ne. AST__BAD ) call stopit( status, 'error 4b' ) - if( xout(2) .ne. AST__BAD ) call stopit( status, 'error 4c' ) - - call ast_clear( box3, 'system', status ) - - yin(1) = 2.82175432250852 - xin(1) = -0.0269096590283195 - yin(2) = 2.70798275154741 - xin(2) = 0.2467384819891 - - call ast_tran2( box3, 2, xin, yin, .true., xout, yout, status ) - - if( abs( yout(1)-2.82175422 ) .gt. 1.0E-8 ) - : call stopit( status, 'error 1' ) - if( abs( xout(1)+0.0269096587 ) .gt. 1.0E-8 ) - : call stopit( status, 'error 2' ) - if( yout(2) .ne. AST__BAD ) call stopit( status, 'error 4d' ) - if( xout(2) .ne. AST__BAD ) call stopit( status, 'error 4e' ) - - box2 = ast_simplify( box1, status ) - - call ast_setc( box1, 'system', 'icrs', status ) - call ast_permaxes( box1, perm, status ) - - t1 = ast_format( frm1, 1, 0.25D0, status ) - call ast_annul( frm1, status ) - t2 = ast_format( box1, 1, 0.25D0, status ) - if( t1 .ne. t2 ) call stopit( status, - : 'ast_format is different for frm1 and box1' ) - - i = ast_unformat( box1, 1, t2, v2, status ) - if( abs( v2 - 0.25 ) .GT. 1.0E-10 ) then - call stopit( status, 'ast_unformat failed for box1' ) - end if - - if( ast_getc( box1, 'System', status ) .ne. 'ICRS' ) then - call stopit( status, 'Box1(b) system is not ICRS' ) - end if - - if( ast_getc( box1, 'Equinox', status ) .ne. '2000.0' ) then - call stopit( status, 'Box1 equinox is not 2000.0' ) - end if - - if( .not. ast_getl( box1, 'Closed', status ) ) then - call stopit( status, 'Box1 closed is not .true.' ) - end if - - xin( 1 ) = 1.25 - yin( 1 ) = 0.75 - xin( 2 ) = 1.0 - yin( 2 ) = 1.0 - xin( 3 ) = 1.0 - yin( 3 ) = 0.5 - xin( 4 ) = 1.5 - yin( 4 ) = 0.5 - xin( 5 ) = 1.5 - yin( 5 ) = 1.0 - xin( 6 ) = 1.0 - yin( 6 ) = 1.2 - xin( 7 ) = 0.8 - yin( 7 ) = 0.5 - xin( 8 ) = 1.5 - yin( 8 ) = 0.45 - xin( 9 ) = 1.501 - yin( 9 ) = 1.0 - - call ast_tran2( BOX1, 9, xin, yin, .true., xout, yout, status ) - - if( xout( 1 ) .ne. 1.25 ) call stopit( status, 'error A1' ) - if( yout( 1 ) .ne. 0.75 ) call stopit( status, 'error A2' ) - if( xout( 2 ) .ne. 1.0 ) call stopit( status, 'error A3' ) - if( yout( 2 ) .ne. 1.0 ) call stopit( status, 'error A4' ) - if( xout( 3 ) .ne. 1.0 ) call stopit( status, 'error A5' ) - if( yout( 3 ) .ne. 0.5 ) call stopit( status, 'error A6' ) - if( xout( 4 ) .ne. 1.5 ) call stopit( status, 'error A7' ) - if( yout( 4 ) .ne. 0.5 ) call stopit( status, 'error A8' ) - if( xout( 5 ) .ne. 1.5 ) call stopit( status, 'error A9' ) - if( yout( 5 ) .ne. 1.0 ) call stopit( status, 'error A10' ) - if( xout( 6 ) .ne. AST__BAD ) call stopit( status, 'error A11' ) - if( yout( 6 ) .ne. AST__BAD ) call stopit( status, 'error A12' ) - if( xout( 7 ) .ne. AST__BAD ) call stopit( status, 'error A13' ) - if( yout( 7 ) .ne. AST__BAD ) call stopit( status, 'error A14' ) - if( xout( 8 ) .ne. AST__BAD ) call stopit( status, 'error A15' ) - if( yout( 8 ) .ne. AST__BAD ) call stopit( status, 'error A16' ) - if( xout( 9 ) .ne. AST__BAD ) call stopit( status, 'error A17' ) - if( yout( 9 ) .ne. AST__BAD ) call stopit( status, 'error A18' ) - - call ast_tran2( box1, 9, xin, yin, .false., xout, yout, status ) - - if( xout( 1 ) .ne. 1.25 ) call stopit( status, 'error B1' ) - if( yout( 1 ) .ne. 0.75 ) call stopit( status, 'error B2' ) - if( xout( 2 ) .ne. 1.0 ) call stopit( status, 'error B3' ) - if( yout( 2 ) .ne. 1.0 ) call stopit( status, 'error B4' ) - if( xout( 3 ) .ne. 1.0 ) call stopit( status, 'error B5' ) - if( yout( 3 ) .ne. 0.5 ) call stopit( status, 'error B6' ) - if( xout( 4 ) .ne. 1.5 ) call stopit( status, 'error B7' ) - if( yout( 4 ) .ne. 0.5 ) call stopit( status, 'error B8' ) - if( xout( 5 ) .ne. 1.5 ) call stopit( status, 'error B9' ) - if( yout( 5 ) .ne. 1.0 ) call stopit( status, 'error B10' ) - if( xout( 6 ) .ne. AST__BAD ) call stopit( status, 'error B11' ) - if( yout( 6 ) .ne. AST__BAD ) call stopit( status, 'error B12' ) - if( xout( 7 ) .ne. AST__BAD ) call stopit( status, 'error B13' ) - if( yout( 7 ) .ne. AST__BAD ) call stopit( status, 'error B14' ) - if( xout( 8 ) .ne. AST__BAD ) call stopit( status, 'error B15' ) - if( yout( 8 ) .ne. AST__BAD ) call stopit( status, 'error B16' ) - if( xout( 9 ) .ne. AST__BAD ) call stopit( status, 'error B17' ) - if( yout( 9 ) .ne. AST__BAD ) call stopit( status, 'error B18' ) - - call ast_negate( box1, status ) - call ast_tran2( box1, 9, xin, yin, .true., xout, yout, status ) - - if( xout( 1 ) .ne. AST__BAD ) call stopit( status, 'error C1' ) - if( yout( 1 ) .ne. AST__BAD ) call stopit( status, 'error C2' ) - if( xout( 2 ) .ne. 1.0 ) call stopit( status, 'error C3' ) - if( yout( 2 ) .ne. 1.0 ) call stopit( status, 'error C4' ) - if( xout( 3 ) .ne. 1.0 ) call stopit( status, 'error C5' ) - if( yout( 3 ) .ne. 0.5 ) call stopit( status, 'error C6' ) - if( xout( 4 ) .ne. 1.5 ) call stopit( status, 'error C7' ) - if( yout( 4 ) .ne. 0.5 ) call stopit( status, 'error C8' ) - if( xout( 5 ) .ne. 1.5 ) call stopit( status, 'error C9' ) - if( yout( 5 ) .ne. 1.0 ) call stopit( status, 'error C10' ) - if( xout( 6 ) .ne. 1.0 ) call stopit( status, 'error C11' ) - if( yout( 6 ) .ne. 1.2 ) call stopit( status, 'error C12' ) - if( xout( 7 ) .ne. 0.8 ) call stopit( status, 'error C13' ) - if( yout( 7 ) .ne. 0.5 ) call stopit( status, 'error C14' ) - if( xout( 8 ) .ne. 1.5 ) call stopit( status, 'error C15' ) - if( yout( 8 ) .ne. 0.45 ) call stopit( status, 'error C16' ) - if( xout( 9 ) .ne. 1.501 ) call stopit( status, 'error C17' ) - if( yout( 9 ) .ne. 1.0 ) call stopit( status, 'error C18' ) - - call ast_setl( box1, 'closed', .false., status ) - call ast_negate( box1, status ) - call ast_tran2( box1, 9, xin, yin, .true., xout, yout, status ) - - if( xout( 1 ) .ne. 1.25 ) call stopit( status, 'error D1' ) - if( yout( 1 ) .ne. 0.75 ) call stopit( status, 'error D2' ) - if( xout( 2 ) .ne. AST__BAD ) call stopit( status, 'error D3' ) - if( yout( 2 ) .ne. AST__BAD ) call stopit( status, 'error D4' ) - if( xout( 3 ) .ne. AST__BAD ) call stopit( status, 'error D5' ) - if( yout( 3 ) .ne. AST__BAD ) call stopit( status, 'error D6' ) - if( xout( 4 ) .ne. AST__BAD ) call stopit( status, 'error D7' ) - if( yout( 4 ) .ne. AST__BAD ) call stopit( status, 'error D8' ) - if( xout( 5 ) .ne. AST__BAD ) call stopit( status, 'error D9' ) - if( yout( 5 ) .ne. AST__BAD ) call stopit( status, 'error D10' ) - if( xout( 6 ) .ne. AST__BAD ) call stopit( status, 'error D11' ) - if( yout( 6 ) .ne. AST__BAD ) call stopit( status, 'error D12' ) - if( xout( 7 ) .ne. AST__BAD ) call stopit( status, 'error D13' ) - if( yout( 7 ) .ne. AST__BAD ) call stopit( status, 'error D14' ) - if( xout( 8 ) .ne. AST__BAD ) call stopit( status, 'error D15' ) - if( yout( 8 ) .ne. AST__BAD ) call stopit( status, 'error D16' ) - if( xout( 9 ) .ne. AST__BAD ) call stopit( status, 'error D17' ) - if( yout( 9 ) .ne. AST__BAD ) call stopit( status, 'error D18' ) - - call ast_setl( box1, 'Negated', .true., status ) - call ast_tran2( box1, 9, xin, yin, .true., xout, yout, status ) - - if( xout( 1 ) .ne. AST__BAD ) call stopit( status, 'error E1' ) - if( yout( 1 ) .ne. AST__BAD ) call stopit( status, 'error E2' ) - if( xout( 2 ) .ne. AST__BAD ) call stopit( status, 'error E3' ) - if( yout( 2 ) .ne. AST__BAD ) call stopit( status, 'error E4' ) - if( xout( 3 ) .ne. AST__BAD ) call stopit( status, 'error E5' ) - if( yout( 3 ) .ne. AST__BAD ) call stopit( status, 'error E6' ) - if( xout( 4 ) .ne. AST__BAD ) call stopit( status, 'error E7' ) - if( yout( 4 ) .ne. AST__BAD ) call stopit( status, 'error E8' ) - if( xout( 5 ) .ne. AST__BAD ) call stopit( status, 'error E9' ) - if( yout( 5 ) .ne. AST__BAD ) call stopit( status, 'error E10' ) - if( xout( 6 ) .ne. 1.0 ) call stopit( status, 'error E11' ) - if( yout( 6 ) .ne. 1.2 ) call stopit( status, 'error E12' ) - if( xout( 7 ) .ne. 0.8 ) call stopit( status, 'error E13' ) - if( yout( 7 ) .ne. 0.5 ) call stopit( status, 'error E14' ) - if( xout( 8 ) .ne. 1.5 ) call stopit( status, 'error E15' ) - if( yout( 8 ) .ne. 0.45 ) call stopit( status, 'error E16' ) - if( xout( 9 ) .ne. 1.501 ) call stopit( status, 'error E17' ) - if( yout( 9 ) .ne. 1.0 ) call stopit( status, 'error E18' ) - - call ast_clear( box1, 'Negated', status ) - call ast_clear( box1, 'Closed', status ) - - call ast_addframe( fs, ast__current, ast_unitmap(2,' ',status), - : box1, status ) - - - - map1 = ast_getmapping( fs, ast__current, ast__current, status ) - - if( .not.ast_isaregion( map1, status ) ) - : call stopit( status, 'map1 is not a Region' ) - - call ast_setl( fs, 'Negated', .true., status ) - if( ast_getl( box1, 'Negated', status ) ) - : call stopit( status, - : 'FrameSet Negated attribute reflected in box1' ) - call ast_clear( fs, 'Negated', status ) - - map1 = ast_getmapping( fs, ast__base, ast__current, status ) - - call ast_tran2( map1, 9, xin, yin, .false., xout, yout, status ) - - if( xout( 1 ) .eq. AST__BAD ) call stopit( status, 'error F1' ) - if( yout( 1 ) .eq. AST__BAD ) call stopit( status, 'error F2' ) - if( xout( 2 ) .eq. AST__BAD ) call stopit( status, 'error F3' ) - if( yout( 2 ) .eq. AST__BAD ) call stopit( status, 'error F4' ) - if( xout( 3 ) .eq. AST__BAD ) call stopit( status, 'error F5' ) - if( yout( 3 ) .eq. AST__BAD ) call stopit( status, 'error F6' ) - if( xout( 4 ) .eq. AST__BAD ) call stopit( status, 'error F7' ) - if( yout( 4 ) .eq. AST__BAD ) call stopit( status, 'error F8' ) - if( xout( 5 ) .eq. AST__BAD ) call stopit( status, 'error F9' ) - if( yout( 5 ) .eq. AST__BAD ) call stopit( status, 'error F10' ) - if( xout( 6 ) .ne. AST__BAD ) call stopit( status, 'error F11' ) - if( yout( 6 ) .ne. AST__BAD ) call stopit( status, 'error F12' ) - if( xout( 7 ) .ne. AST__BAD ) call stopit( status, 'error F13' ) - if( yout( 7 ) .ne. AST__BAD ) call stopit( status, 'error F14' ) - if( xout( 8 ) .ne. AST__BAD ) call stopit( status, 'error F15' ) - if( yout( 8 ) .ne. AST__BAD ) call stopit( status, 'error F16' ) - if( xout( 9 ) .ne. AST__BAD ) call stopit( status, 'error F17' ) - if( yout( 9 ) .ne. AST__BAD ) call stopit( status, 'error F18' ) - - call ast_tran2( map1, 9, xout, yout, .true., xout, yout, status ) - - if( abs( xout( 1 ) - 1.25 ) .gt. 1.0D-7 ) call stopit( status, - : 'error G1' ) - if( abs( yout( 1 ) - 0.75 ) .gt. 1.0D-7 ) call stopit( status, - : 'error G2' ) - if( xout( 6 ) .ne. AST__BAD ) call stopit( status, 'error G11' ) - if( yout( 6 ) .ne. AST__BAD ) call stopit( status, 'error G12' ) - if( xout( 7 ) .ne. AST__BAD ) call stopit( status, 'error G13' ) - if( yout( 7 ) .ne. AST__BAD ) call stopit( status, 'error G14' ) - if( xout( 8 ) .ne. AST__BAD ) call stopit( status, 'error G15' ) - if( yout( 8 ) .ne. AST__BAD ) call stopit( status, 'error G16' ) - if( xout( 9 ) .ne. AST__BAD ) call stopit( status, 'error G17' ) - if( yout( 9 ) .ne. AST__BAD ) call stopit( status, 'error G18' ) - - - - - frm2 = ast_specframe( 'Unit=Angstrom', status ) - p1( 1 ) = 1000.0 - p2( 1 ) = 1100.0 - box2 = ast_box( frm2, 0, p1, p2, AST__NULL, ' ', status ) - frm3 = ast_cmpframe( box1, box2, ' ', status ) - - perm(1)=2 - perm(2)=3 - perm(3)=1 - call ast_permaxes( frm3, perm, status ) - call ast_setc( frm3, 'system(1)', 'galactic', status ) - call ast_setc( frm3, 'system(2)', 'Freq', status ) - - in( 1, 1 ) = -0.0269096590283195 ! In both boxes - in( 1, 2 ) = 2997924.58 - in( 1, 3 ) = 2.82175432250852 - in( 2, 1 ) = 0.2467384819891 ! In spec box, out sky box - in( 2, 2 ) = 2997924.58 - in( 2, 3 ) = 2.70798275154741 - in( 3, 1 ) = -0.0269096590283195 ! Out spec box in sky box - in( 3, 2 ) = 4000000.0 - in( 3, 3 ) = 2.82175432250852 - in( 4, 1 ) = 0.2467384819891 ! Out spec box, out sky box - in( 4, 2 ) = 4000000.0 - in( 4, 3 ) = 2.70798275154741 - call ast_trann( frm3, 4, 3, 4, in, .true., 3, 4, out, status ) - - if( abs( out(1,1)+0.0269096587 ) .gt. 1.0E-8 ) - : call stopit( status, 'error H1' ) - if( abs( out(1,2)-2997924.5 ) .gt. 1.0E-1 ) - : call stopit( status, 'error H2' ) - if( abs( out(1,3)-2.82175422 ) .gt. 1.0E-6 ) - : call stopit( status, 'error H3' ) - - if( out(2,1) .ne. ast__bad ) call stopit( status, 'error H4' ) - if( abs( out(2,2)-2997924.5 ) .gt. 1.0E-1 ) - : call stopit( status, 'error H5' ) - if( out(2,3) .ne. ast__bad ) call stopit( status, 'error H6' ) - - if( abs( out(3,1)+0.0269096587 ) .gt. 1.0E-8 ) - : call stopit( status, 'error H7' ) - if( out(3,2) .ne. ast__bad ) call stopit( status, 'error H8' ) - if( abs( out(3,3)-2.82175422 ) .gt. 1.0E-6 ) - : call stopit( status, 'error H9' ) - - if( out(4,1) .ne. ast__bad ) call stopit( status, 'error H10' ) - if( out(4,2) .ne. ast__bad ) call stopit( status, 'error H11' ) - if( out(4,3) .ne. ast__bad ) call stopit( status, 'error H12' ) - - if( .not. ast_getl( frm3, 'closed(1)', status ) ) - : call stopit( status, 'compound frame region is not closed' ) - - - - -C -C Testing astMapRegion -C - - frm1 = ast_frame( 3, 'Domain=A', status ) - p1(1) = 100 - p1(2) = 200 - p1(3) = 300 - p2(1) = 0 - p2(2) = 400 - p2(3) = 250 - box1 = ast_box( frm1, 0, p1, p2, AST__NULL, ' ', status ) - - frm2 = ast_frame( 3, 'Domain=B', status ) - - matrix(1) = 2.0 - matrix(2) = 0.0 - matrix(3) = 0.0 - matrix(4) = 0.0 - matrix(5) = 4.0 - matrix(6) = 0.0 - matrix(7) = 0.0 - matrix(8) = 0.0 - matrix(9) = 6.0 - - map2 = ast_matrixmap( 3, 3, 0, matrix, ' ', status ) - box2 = ast_mapregion( box1, map2, frm2, status ) - - if( ast_getc( box2, 'Domain', status ) .ne. 'B' ) then - call stopit( status, 'ast_mapregion1: Box2 domain is not B' ) - end if - - if( hasframeset( box2, status ) ) then - call stopit( status, 'ast_mapregion2: Box2 has FrameSet' ) - end if - - matrix(1) = 2.0 - matrix(2) = .1 - matrix(3) = 0.0 - matrix(4) = 0.0 - matrix(5) = 4.0 - matrix(6) = 0.0 - matrix(7) = 0.0 - matrix(8) = 0.0 - matrix(9) = 6.0 - - map2 = ast_matrixmap( 3, 3, 0, matrix, ' ', status ) - - box2 = ast_mapregion( box1, map2, frm2, status ) - - if( ast_getc( box2, 'Domain', status ) .ne. 'B' ) then - call stopit( status, 'ast_mapregion3: Box2 domain is not B' ) - end if - - if( hasframeset( box2, status ) ) then - call stopit( status, 'ast_mapregion4: Box2 has FrameSet' ) - end if - - call checkdump( box2, 'checkdump box2', status ) - - frm1 = ast_frame( 1, 'Domain=A', status ) - p1(1) = 100 - p2(1) = 0 - box1 = ast_box( frm1, 0, p1, p2, AST__NULL, ' ', status ) - - frm2 = ast_frame( 1, 'Domain=B', status ) - - map2 = ast_zoommap( 1, 2.0D0, ' ', status ) - box2 = ast_mapregion( box1, map2, frm2, status ) - - if( ast_getc( box2, 'Domain', status ) .ne. 'B' ) then - call stopit( status, 'ast_mapregion5: Box2 domain is not B' ) - end if - - if( hasframeset( box2, status ) ) then - call stopit( status, 'ast_mapregion6: Box2 has FrameSet (B)' ) - end if - - frm1 = ast_skyframe( ' ', status ) - p1(1) = 0 - p1(2) = 0 - p2(1) = 0.001 - p2(2) = 0.001 - box1 = ast_box( frm1, 0, p1, p2, AST__NULL, ' ', status ) - - frm2 = ast_copy( frm1, status ) - call ast_setd( frm2, 'skyref(1)', 0.0005D0, status ) - call ast_setc( frm2, 'skyrefis', 'origin', status ) - - fs = ast_convert( frm1, frm2, ' ', status ) - - box2 = ast_mapregion( box1, fs, frm2, status ) - - if( hasframeset( box2, status ) ) then - call stopit( status, 'ast_mapregion7: Box2 has FrameSet (C)' ) - end if - - xin( 1 ) = 0.00049 - yin( 1 ) = 0.0009 - xin( 2 ) = 0.00051 - yin( 2 ) = 0.0009 - xin( 3 ) = -0.0016 - yin( 3 ) = 0.0 - xin( 4 ) = -0.0014 - yin( 4 ) = 0.0 - xin( 5 ) = 6.2815853 - yin( 5 ) = 0.0 - xin( 6 ) = 6.2817853 - yin( 6 ) = 0.0 - - call ast_tran2( box2, 6, xin, yin, .true., xout, yout, status ) - - if( abs( xout( 1 ) - xin( 1 ) ) .gt. 1D-10 ) call stopit( status, - : 'error I1' ) - if( abs( yout( 1 ) - yin( 1 ) ) .gt. 1D-10 ) call stopit( status, - : 'error I2' ) - - if( xout(2) .ne. AST__BAD ) call stopit( status, 'error I3' ) - if( yout(2) .ne. AST__BAD ) call stopit( status, 'error I4' ) - if( xout(5) .ne. AST__BAD ) call stopit( status, 'error I5' ) - if( yout(5) .ne. AST__BAD ) call stopit( status, 'error I6' ) - if( xout(3) .ne. AST__BAD ) call stopit( status, 'error I7' ) - if( yout(3) .ne. AST__BAD ) call stopit( status, 'error I8' ) - - if( abs( xout( 4 ) - xin( 4 ) ) .gt. 1D-10 ) call stopit( status, - : 'error I9' ) - if( abs( yout( 4 ) - yin( 4 ) ) .gt. 1D-10 ) call stopit( status, - : 'error I10' ) - if( abs( xout( 6 ) - xin( 6 ) ) .gt. 1D-10 ) call stopit( status, - : 'error I11' ) - if( abs( yout( 6 ) - yin( 6 ) ) .gt. 1D-10 ) call stopit( status, - : 'error I12' ) - - - call ast_setc( box2, 'skyrefis', 'pole', status ) - box2 = ast_Simplify( box2, status ) - - if( hasframeset( box2, status ) ) then - call stopit( status, 'ast_mapregion8: Box2 has '// - : 'FrameSet (B)' ) - end if - -C -C Testing astOverlap -C - - frm1 = ast_frame( 3, 'Domain=A', status ) - p1(1) = 100 - p1(2) = 200 - p1(3) = 300 - p2(1) = 0 - p2(2) = 400 - p2(3) = 250 - box1 = ast_box( frm1, 0, p1, p2, AST__NULL, 'closed=1', status ) - - frm2 = ast_frame( 3, 'Domain=B', status ) - box2 = ast_box( frm2, 0, p1, p2, AST__NULL, 'closed=0', status ) - - if( ast_overlap( box1, box2, status ) .ne. 0 ) then - call stopit( status, 'ast_overlap A: result should be zero' ) - end if - - if( ast_overlap( box1, box1, status ) .ne. 5 ) then - call stopit( status, 'ast_overlap B: result should be 5' ) - end if - - if( ast_overlap( box2, box2, status ) .ne. 5 ) then - call stopit( status, 'ast_overlap C: result should be 5' ) - end if - - call ast_setc( frm2, 'Domain', 'A', status ) - p1(1) = 100 - p1(2) = 200 - p1(3) = 300 - p2(1) = -100 - p2(2) = 600 - p2(3) = 400 - box2 = ast_box( frm2, 0, p1, p2, AST__NULL, ' ', status ) - - if( ast_overlap( box1, box2, status ) .ne. 2 ) then - write(*,*) 'Result is ',ast_overlap( box1, box2, status ) - call stopit( status, 'ast_overlap D: result should be 2' ) - end if - - if( ast_overlap( box2, box1, status ) .ne. 3 ) then - write(*,*) 'Result is ',ast_overlap( box2, box1, status ) - call stopit( status, 'ast_overlap E: result should be 3' ) - end if - - p1(1) = 300 - p1(2) = 200 - p1(3) = 300 - p2(1) = 201 - p2(2) = 400 - p2(3) = 250 - box2 = ast_box( frm2, 0, p1, p2, AST__NULL, ' ', status ) - - if( ast_overlap( box1, box2, status ) .ne. 1 ) then - call stopit( status, 'ast_overlap F: result should be 1' ) - end if - - if( ast_overlap( box2, box1, status ) .ne. 1 ) then - call stopit( status, 'ast_overlap G: result should be 1' ) - end if - - p1(1) = 150 - p1(2) = 200 - p1(3) = 300 - p2(1) = 50 - p2(2) = 400 - p2(3) = 250 - box2 = ast_box( frm2, 0, p1, p2, AST__NULL, ' ', status ) - - if( ast_overlap( box1, box2, status ) .ne. 4 ) then - call stopit( status, 'ast_overlap H: result should be 4' ) - end if - - if( ast_overlap( box2, box1, status ) .ne. 4 ) then - call stopit( status, 'ast_overlap I: result should be 4' ) - end if - - -* Pixel masks - frm1 = ast_frame( 2, 'Domain=A', status ) - p1(1) = 1.0 - p1(2) = 1.0 - p2(1) = 3.1 - p2(2) = 4.1 - box1 = ast_box( frm1, 0, p1, p2, AST__NULL, ' ', status ) - - lbnd_in(1) = 1 - lbnd_in(2) = 1 - ubnd_in(1) = 5 - ubnd_in(2) = 5 - - do i =1, 5 - do j = 1, 5 - rin( j,i)=1.0 - end do - end do - - res = ast_maskr( box1, AST__NULL, .false., 2, lbnd_in, ubnd_in, - : rin, VAL__BADR, status ) - - if( res .ne. 13 ) then - write(*,*) 'Res is ',res - call stopit( status, 'res should be 13' ) - end if - - do i =1, 5 - do j = 1, 5 - if( j .le. 3 .and. i .le. 4 ) then - if( rin(j,i) .NE. 1.0 ) then - write(*,*) 'rin(',j,',',i,') = ',rin(j,i) - call stopit( status, 'Above value should be 1.0' ) - end if - else - if( rin(j,i) .NE. VAL__BADR ) then - write(*,*) 'rin(',j,',',i,') = ',rin(j,i) - call stopit( status, 'Above value should be '// - : 'VAL__BADR' ) - end if - endif - end do - end do - - cards(3) = 'CRPIX1 = 20' - cards(4) = 'CRPIX2 = 20' - cards(5) = 'CRVAL1 = 0.0' - cards(6) = 'CRVAL2 = 0.0' - cards(7) = ' ' - cards(8) = 'CDELT1 = 1.6' - cards(9) = 'CDELT2 = 1.6' - - fc = ast_fitschan( ast_null, ast_null, ' ', status ) - do i = 1, 9 - call ast_putfits( fc, cards(i), .false., status ) - end do - call ast_clear( fc, 'card', status ) - fs = ast_read( fc, status ) - - p1( 1 ) = 0.13089969 ! RA at centre = 0h30m - p1( 2 ) = 0.17453293 ! Dec at centre = 10d - p2( 1 ) = -0.13089971 ! RA at corner = 23h30m - p2( 2 ) = -0.17453293 ! Dec at corner = -10d - - box1 = ast_box( fs, 0, p1, p2, AST__NULL, ' ', status ) - - do i =1, 50 - do j = 1, 50 - image( j,i)=1.0 - end do - end do - - lbnd_in(1) = 1 - lbnd_in(2) = 1 - ubnd_in(1) = 50 - ubnd_in(2) = 50 - - call ast_negate( box1, status ) - call ast_invert( fs, status ) - res = ast_maskr( box1, fs, .false., 2, lbnd_in, ubnd_in, - : image, VAL__BADR, status ) - - if( res .ne. 522 ) then - write(*,*) 'Res is ',res - call stopit( status, 'res should be 522' ) - end if - - if( image(34,42) .ne. VAL__BADR ) then - write(*,*) 'image(34,42) = ',image(34,42) - call stopit( status, 'Above value should be VAL__BADR' ) - end if - - if( image(33,42) .ne. 1.0 ) then - write(*,*) 'image(33,42) = ',image(33,42) - call stopit( status, 'Above value should be 1.0' ) - end if - - if( image(16,14) .ne. VAL__BADR ) then - write(*,*) 'image(16,14) = ',image(16,14) - call stopit( status, 'Above value should be VAL__BADR' ) - end if - - if( image(15,13) .ne. 1.0 ) then - write(*,*) 'image(15,13) = ',image(15,13) - call stopit( status, 'Above value should be 1.0' ) - end if - - -* Changing the number of axes in the Region - - frm1 = ast_frame( 2, 'Domain=A', status ) - - p1(1) = 0.0 - p1(2) = 0.0 - p2(1) = 0.01 - unc = ast_circle( frm1, 1, p1, p2, AST__NULL, ' ', status ) - - p1(1) = -1.0 - p1(2) = 1.0 - p2(1) = -2.0 - p2(2) = 1.5 - box1 = ast_box( frm1, 0, p1, p2, unc, ' ', status ) - - - outperm(1) = 2 - outperm(2) = -1 - outperm(3) = 1 - - inperm(1) = 3 - inperm(2) = 1 - - pm = ast_permmap( 2, inperm, 3, outperm, 0.0D0, ' ', status ) - - frm2 = ast_frame( 3, 'Domain=B', status ) - reg = ast_mapregion( box1, pm, frm2, status ) - - if( .not. ast_isabox( reg, status ) ) call stopit( status, - : 'Box: perm check 1' ) - if( hasFrameSet( reg, status ) ) call stopit( status, - : 'Box: perm check 2' ) - if( ast_geti( reg, 'naxes', status ) .ne. 3 ) call stopit( status, - : 'Box: perm check 3' ) - - in( 1, 1 ) = 0.0 ! Outside - in( 1, 2 ) = 0.0 - in( 1, 3 ) = 0.0 - in( 2, 1 ) = 0.7 ! Inside - in( 2, 2 ) = 0.0 - in( 2, 3 ) = -0.5 - in( 3, 1 ) = 2.0 ! Outside - in( 3, 2 ) = 0.0 - in( 3, 3 ) = -1.0 - in( 4, 1 ) = 1.5 ! Boundary - in( 4, 2 ) = 0.0 - in( 4, 3 ) = 0.0 - - call ast_trann( reg, 4, 3, 4, in, .true., 3, 4, out, status ) - - if( out( 1, 1 ) .ne. AST__BAD ) call stopit( status, 'box: pc 1' ) - if( out( 1, 2 ) .ne. AST__BAD ) call stopit( status, 'box: pc 2' ) - if( out( 1, 3 ) .ne. AST__BAD ) call stopit( status, 'box: pc 3' ) - - if( out( 2, 1 ) .ne. in( 2,1 )) call stopit( status, 'box: pc 4' ) - if( out( 2, 2 ) .ne. in( 2,2 )) call stopit( status, 'box: pc 5' ) - if( out( 2, 3 ) .ne. in( 2,3 )) call stopit( status, 'box: pc 6' ) - - if( out( 3, 1 ) .ne. AST__BAD ) call stopit( status, 'box: pc 7' ) - if( out( 3, 2 ) .ne. AST__BAD ) call stopit( status, 'box: pc 8' ) - if( out( 3, 3 ) .ne. AST__BAD ) call stopit( status, 'box: pc 9' ) - - if( out( 4, 1 ) .ne. in( 4,1 )) call stopit( status, 'box: pc 10') - if( out( 4, 2 ) .ne. in( 4,2 )) call stopit( status, 'box: pc 11') - if( out( 4, 3 ) .ne. in( 4,3 )) call stopit( status, 'box: pc 12') - - - outperm(1) = 2 - outperm(2) = -1 - outperm(3) = 1 - - inperm(1) = 3 - inperm(2) = 1 - - pm = ast_permmap( 2, inperm, 3, outperm, 1.0D0, ' ', status ) - - frm2 = ast_frame( 3, 'Domain=B', status ) - reg = ast_mapregion( box1, pm, frm2, status ) - - if( .not. ast_isabox( reg, status ) ) call stopit( status, - : 'Box: perm check 4' ) - if( hasFrameSet( reg, status ) ) call stopit( status, - : 'Box: perm check 5' ) - if( ast_geti( reg, 'naxes', status ) .ne. 3 ) call stopit( status, - : 'Box: perm check 6' ) - - in( 1, 1 ) = 0.0 ! Outside - in( 1, 2 ) = 0.0 - in( 1, 3 ) = 0.0 - in( 2, 1 ) = 0.7 ! boundary - in( 2, 2 ) = 1.0 - in( 2, 3 ) = -0.5 - in( 3, 1 ) = 0.7 ! outside - in( 3, 2 ) = 1.1 - in( 3, 3 ) = -0.5 - in( 4, 1 ) = 0.7 ! outside - in( 4, 2 ) = 0.9 - in( 4, 3 ) = -0.5 - - call ast_trann( reg, 4, 3, 4, in, .true., 3, 4, out, status ) - - if( out( 1, 1 ) .ne. AST__BAD ) call stopit( status, 'box: pc 11') - if( out( 1, 2 ) .ne. AST__BAD ) call stopit( status, 'box: pc 12') - if( out( 1, 3 ) .ne. AST__BAD ) call stopit( status, 'box: pc 13') - - if( out( 2, 1 ) .ne. in( 2,1 )) call stopit( status, 'box: pc 14') - if( out( 2, 2 ) .ne. in( 2,2 )) call stopit( status, 'box: pc 15') - if( out( 2, 3 ) .ne. in( 2,3 )) call stopit( status, 'box: pc 16') - - if( out( 3, 1 ) .ne. AST__BAD ) call stopit( status, 'box: pc 17') - if( out( 3, 2 ) .ne. AST__BAD ) call stopit( status, 'box: pc 18') - if( out( 3, 3 ) .ne. AST__BAD ) call stopit( status, 'box: pc 19') - - if( out( 4, 1 ) .ne. AST__BAD ) call stopit( status, 'box: pc 17') - if( out( 4, 2 ) .ne. AST__BAD ) call stopit( status, 'box: pc 18') - if( out( 4, 3 ) .ne. AST__BAD ) call stopit( status, 'box: pc 19') - - - - outperm(1) = 1 - - inperm(1) = 1 - inperm(2) = -1 - - pm = ast_permmap( 2, inperm, 1, outperm, 1.4D0, ' ', status ) - - frm2 = ast_frame( 1, 'Domain=B', status ) - reg = ast_mapregion( box1, pm, frm2, status ) - - if( .not. ast_isabox( reg, status ) ) call stopit( status, - : 'Box: perm check 7' ) - if( hasFrameSet( reg, status ) ) call stopit( status, - : 'Box: perm check 8' ) - if( ast_geti( reg, 'naxes', status ) .ne. 1 ) call stopit( status, - : 'Box: perm check 9' ) - - xin( 1 ) = -2.5 ! Outside - xin( 2 ) = -1.9 ! Inside - xin( 3 ) = 0.0 ! boundary - xin( 4 ) = 0.5 ! outside - - call ast_tran1( reg, 4, xin, .true., xout, status ) - - if( xout( 1 ) .ne. AST__BAD ) call stopit( status, 'box: pc 20') - if( xout( 2 ) .ne. xin(2) ) call stopit( status, 'box: pc 21') - if( xout( 3 ) .ne. xin(3) ) call stopit( status, 'box: pc 22') - if( xout( 4 ) .ne. AST__BAD ) call stopit( status, 'box: pc 23') - - - - outperm(1) = 1 - - inperm(1) = 1 - inperm(2) = -1 - - pm = ast_permmap( 2, inperm, 1, outperm, 1.6D0, ' ', status ) - frm2 = ast_frame( 1, 'Domain=B', status ) - reg = ast_mapregion( box1, pm, frm2, status ) - if( .not. ast_isanullregion( reg, status ) ) call stopit( status, - : 'Box: perm check 10' ) - - - if( hasFrameSet( reg, status ) ) call stopit( status, - : 'Box: perm check 11' ) - if( ast_geti( reg, 'naxes', status ) .ne. 1 ) call stopit( status, - : 'Box: perm check 12' ) - - xin( 1 ) = -2.5 - xin( 2 ) = -1.9 - xin( 3 ) = 0.0 - xin( 4 ) = 0.5 - - call ast_tran1( reg, 4, xin, .true., xout, status ) - - if( xout( 1 ) .ne. AST__BAD ) call stopit( status, 'box: pc 24') - if( xout( 2 ) .ne. AST__BAD ) call stopit( status, 'box: pc 25') - if( xout( 3 ) .ne. AST__BAD ) call stopit( status, 'box: pc 26') - if( xout( 4 ) .ne. AST__BAD ) call stopit( status, 'box: pc 27') - - - frm1 = ast_frame( 3, 'Domain=A', status ) - - p1(1) = 0.5 - p1(2) = -1.0 - p1(3) = -2.0 - p2(1) = 30.0 - p2(2) = 5.0 - p2(3) = 0.0 - - box1 = ast_box( frm1, 1, p1, p2, AST__NULL, ' ', status ) - - outperm(1) = 1 - outperm(2) = 3 - - inperm(1) = 1 - inperm(2) = -1 - inperm(3) = 2 - - pm = ast_permmap( 3, inperm, 2, outperm, 1.0D0, ' ', status ) - - frm2 = ast_frame( 2, 'Domain=B', status ) - reg = ast_mapregion( box1, pm, frm2, status ) - - if( .not. ast_isabox( reg, status ) ) call stopit( status, - : 'Box: perm check 13' ) - - if( hasFrameSet( reg, status ) ) call stopit( status, - : 'Box: perm check 14' ) - if( ast_geti( reg, 'naxes', status ) .ne. 2 ) call stopit( status, - : 'Box: perm check 15' ) - - xin( 1 ) = 0.4 ! Out - yin( 1 ) = -1.0 - xin( 2 ) = 1.0 ! Out - yin( 2 ) = 0.1 - xin( 3 ) = 1.0 ! Out - yin( 3 ) = -2.1 - xin( 4 ) = 0.5 ! Boundary - yin( 4 ) = -1.0 - xin( 5 ) = 10.0 ! In - yin( 5 ) = -0.1 - xin( 6 ) = 0.55 ! Boundary - yin( 6 ) = -2.0 - - - call ast_tran2( reg, 6, xin, yin, .true., xout, yout, status ) - - if( xout( 1 ) .ne. AST__BAD ) call stopit( status, 'Box: pc 37') - if( yout( 1 ) .ne. AST__BAD ) call stopit( status, 'Box: pc 38') - if( xout( 2 ) .ne. AST__BAD ) call stopit( status, 'Box: pc 39') - if( yout( 2 ) .ne. AST__BAD ) call stopit( status, 'Box: pc 40') - if( xout( 3 ) .ne. AST__BAD ) call stopit( status, 'Box: pc 41') - if( yout( 3 ) .ne. AST__BAD ) call stopit( status, 'Box: pc 42') - if( xout( 4 ) .ne. xin( 4 ) ) call stopit( status, 'Box: pc 43') - if( yout( 4 ) .ne. yin( 4 ) ) call stopit( status, 'Box: pc 44') - if( xout( 5 ) .ne. xin( 5 ) ) call stopit( status, 'Box: pc 45') - if( yout( 5 ) .ne. yin( 5 ) ) call stopit( status, 'Box: pc 46') - if( xout( 6 ) .ne. xin( 6 ) ) call stopit( status, 'Box: pc 47') - if( yout( 6 ) .ne. yin( 6 ) ) call stopit( status, 'Box: pc 48') - - cards(1) = 'CTYPE1 = ''RA---TAN''' - cards(2) = 'CTYPE2 = ''DEC--TAN''' - cards(3) = 'CRPIX1 = 20' - cards(4) = 'CRPIX2 = 20' - cards(5) = 'CRVAL1 = 0.0' - cards(6) = 'CRVAL2 = 0.0' - cards(7) = 'CROTA1 = 30.0' - cards(8) = 'CDELT1 = -0.00001' - cards(9) = 'CDELT2 = 0.00001' - - fc = ast_fitschan( ast_null, ast_null, ' ', status ) - do i = 1, 9 - call ast_putfits( fc, cards(i), .false., status ) - end do - call ast_clear( fc, 'card', status ) - fs = ast_read( fc, status ) - - bfrm = ast_getFrame( fs, AST__BASE, status ) - - p1(1) = 0.0 - p1(2) = 0.0 - p2(1) = 0.1 - unc = ast_circle( bfrm, 1, p1, p2, AST__NULL, ' ', status ) - - p1( 1 ) = 100.0 ! Pix_X at centre - p1( 2 ) = 150.0 ! Pix_Y at centre - p2( 1 ) = 150.0 ! Pix_X at corner - p2( 2 ) = 170.0 ! Pix_Y at corner - - box1 = ast_box( bfrm, 0, p1, p2, AST__NULL, ' ', status ) - - - call ast_getregionmesh( box1, .false., 250, 2, npoint, grid, - : status ) - - if( npoint .ne. 176 ) then - write(*,*) npoint - call stopit( status, 'Box: Error mesh 3' ) - endif - - if( status .ne. SAI__OK ) go to 991 - - do i = 1, npoint - if( abs( grid(i,1) - 100 ) .gt. 50.0D0 ) then - call stopit( status, 'Box: Error mesh 1' ) - else if( abs( grid(i,2) - 150 ) .gt. 20.0D0 ) then - call stopit( status, 'Box: Error mesh 2' ) - endif - enddo - - call ast_getregionmesh( box1, .true., 250, 2, npoint, grid, - : status ) - if( npoint .ne. 198 ) - : call stopit( status, 'Box: Error mesh 4' ) - - if( status .ne. SAI__OK ) go to 991 - - do i = 1, npoint - if( grid(i,1) .ne. 50.0D0 .and. grid(i,1) .ne. 150.0D0 .and. - : grid(i,2) .ne. 130.0D0 .and. grid(i,2) .ne. 170.0D0 ) then - call stopit( status, 'Box: Error mesh 5' ) - endif - enddo - - cfrm = ast_getFrame( fs, AST__CURRENT, status ) - map = ast_getmapping( fs, AST__BASE, AST__CURRENT, status ) - reg1 = ast_mapregion( box1, map, cfrm, status ) - - if( hasFrameSet( reg1, status ) ) call stopit( status, - : 'Box: poly simp 1' ) - if( .not. ast_isapolygon( reg1, status) ) call stopit( status, - : 'Box: poly simp 2' ) - - 991 continue - - call ast_end( status ) - if( status .ne. sai__ok ) write(*,*) 'Box tests failed' - - end - - - subroutine stopit( status, text ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - - if( status .ne. sai__ok ) return - status = sai__error - write(*,*) text - - end - - - - logical function hasframeset( reg, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer reg, status, ch,nw - - logical fsfound, done - common /sink1com/ fsfound, done - external sink1 - - hasframeset = .false. - if( status .ne. sai__ok ) return - - - fsfound = .false. - done = .false. - ch = ast_channel( AST_NULL, sink1, ' ', STATUS ) - nw = ast_write( ch, reg, status ) - call ast_annul( ch, status ) - - hasframeset = fsfound - - end - - subroutine sink1( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - logical fsfound, done - common /sink1com/ fsfound, done - - integer status, l - character line*200 - - if( status .ne. sai__ok ) return - call ast_getline( line, l, status ) - - if( index( line( : l ),'Unc =' ) .GT. 0 ) then - done = .true. - - else if( .not. done .and. - : index( line( : l ),'FrameSet' ) .GT. 0 ) then - fsfound= .true. - end if - - end - - - - subroutine checkPointList( status ) - implicit none - include 'AST_PAR' - include 'SAE_PAR' - - character fwd(1)*30,inv(1)*30 - integer status, frm, reg, reg2, reg3, reg4, mm, map - integer mdata(-1:15),lbnd,ubnd,nbad,unc - double precision pnts( 3 ), xin(3),xout(3), acc, ina, inb, outa, - : outb - data mdata /17*0/ - - if( status .ne.sai__ok ) return - - call ast_begin( status ) - frm = ast_specframe( ' ', status ) - - pnts(1)=0.0 - pnts(2)=1.0E-5 - unc = ast_box( frm, 0, pnts(1), pnts(2), AST__NULL, ' ', status ) - - pnts(1)=1.0 - pnts(2)=1.1 - reg = ast_pointlist( frm, 2, 1, 3, pnts, unc, ' ', status ) - call checkdump( reg, 'checkdump reg', status ) - - if( ast_overlap( reg, reg, status ) .ne. 5 ) then - call stopit( status, - : 'PointList: self is not identical with self' ) - end if - - reg2 = ast_copy( reg, status ) - call ast_negate( reg2, status ) - call checkdump( reg2, 'checkdump reg2', status ) - - if( ast_overlap( reg, reg2, status ) .ne. 6 ) then - call stopit( status, - : 'PointList: overlap with self-exclusion' ) - end if - - - xin( 1 ) = 1.0 - xin( 2 ) = 1.05 - xin( 3 ) = 1.1 - call ast_tran1( reg, 3, xin, .true., xout, status ) - - if( xout( 1 ) .ne. 1.0 ) then - call stopit( status, 'PointList: Error 1' ) - else if( xout( 2 ) .ne. AST__BAD ) then - call stopit( status, 'PointList: Error 2' ) - else if( xout( 3 ) .ne. 1.1 ) then - call stopit( status, 'PointList: Error 3' ) - end if - - - call ast_tran1( reg2, 3, xin, .true., xout, status ) - if( xout( 1 ) .ne. AST__BAD ) then - call stopit( status, 'PointList: Error 4' ) - else if( xout( 2 ) .ne. 1.05 ) then - call stopit( status, 'PointList: Error 5' ) - else if( xout( 3 ) .ne. AST__BAD ) then - call stopit( status, 'PointList: Error 6' ) - end if - - fwd(1) = 'y=x**2' - inv(1) = 'x=y**0.5' - mm = ast_mathmap( 1, 1, 1, fwd, 1, inv, ' ', status ) - reg3 = ast_mapregion( reg, mm, ast_frame(1,' ', status ), status ) - reg4 = ast_simplify( reg3, status ) - call checkdump( reg4, 'checkdump reg4', status ) - - xin( 1 ) = 1.21 - xin( 2 ) = 1.5 - call ast_tran1( reg4, 2, xin, .true., xout, status ) - if( xout( 1 ) .ne. 1.21 ) then - write(*,*) xout(1), ' (should be 1.21)' - call stopit( status, 'PointList: Error 7' ) - else if( xout( 2 ) .ne. AST__BAD ) then - write(*,*) xout(2), ' (should be bad)' - call stopit( status, 'PointList: Error 8' ) - end if - - - lbnd = -1 - ubnd = 15 - - ina = 1.01 - inb = 1.11 - outa = 2.0 - outb = 7.0 - map = ast_winmap( 1, ina, inb, outa, outb, ' ', status ) - - nbad = ast_maski( reg, map, .true., 1, lbnd, ubnd, mdata, 2, - : status ) - - if( nbad .ne. 2 ) then - write(*,*) 'nbad = ',nbad - call stopit( status, 'Above value should be 2' ) - end if - - if( mdata(1) .ne. 0 ) then - write(*,*) 'mdata(1) = ',mdata(1) - call stopit( status, 'Above value should be 0' ) - end if - - if( mdata(2) .ne. 2 ) then - write(*,*) 'mdata(2) = ',mdata(2) - call stopit( status, 'Above value should be 2' ) - end if - - if( mdata(3) .ne. 0 ) then - write(*,*) 'mdata(3) = ',mdata(3) - call stopit( status, 'Above value should be 0' ) - end if - - if( mdata(6) .ne. 0 ) then - write(*,*) 'mdata(6) = ',mdata(6) - call stopit( status, 'Above value should be 0' ) - end if - - if( mdata(7) .ne. 2 ) then - write(*,*) 'mdata(7) = ',mdata(7) - call stopit( status, 'Above value should be 2' ) - end if - - if( mdata(8) .ne. 0 ) then - write(*,*) 'mdata(8) = ',mdata(8) - call stopit( status, 'Above value should be 0' ) - end if - - - - - call ast_end( status ) - if( status .ne. sai__ok ) write(*,*) 'PointList tests failed' - - end - - - - - - - - - subroutine checkCircle( status ) - implicit none - include 'AST_PAR' - include 'SAE_PAR' - - integer status, cir1, cir2, fc, i, fs, frm1,unc,f1,f2,f3, - : npoint, j - double precision p1(4),p2(4),xin(2),yin(2),xout(2),yout(2), - : p3(3),rad,zin(2),zout(2),pp1(3),pp2(3), - : lbnd(2),ubnd(2), mesh(250,3) - character cards(8)*80, sys*40 - logical hasframeset - - double precision in( 2, 3 ), out( 2, 3 ) - - - data cards /'CTYPE1 = ''RA---TAN''', - : 'CTYPE2 = ''DEC--TAN''', - : 'CRPIX1 = 100', - : 'CRPIX2 = 100', - : 'CRVAL1 = 70.0', - : 'CRVAL2 = 80.0', - : 'CDELT1 = 0.6', - : 'CDELT2 = 0.6' / - - - if( status .ne.sai__ok ) return - call ast_begin( status ) - -* Test 2D circles. - - fc = ast_fitschan( ast_null, ast_null, ' ', status ) - do i = 1, 8 - call ast_putfits( fc, cards(i), .false., status ) - end do - call ast_clear( fc, 'card', status ) - fs = ast_read( fc, status ) - - frm1 = ast_getframe( fs, ast__current, status ) - - p1( 1 ) = 0.0 - p1( 2 ) = 1.0 - p2( 1 ) = 0.01 - - cir1 = ast_circle( frm1, 1, p1, p2, AST__NULL, ' ', status ) - call ast_getregionbounds( cir1, lbnd, ubnd, status ) - - if( abs(lbnd(1)-(-0.01850666061475259)) .gt. 1.0E-6 ) - : call stopit( status, 'Circle: Error AA1' ) - if( abs(lbnd(2)-(0.9900000002235173)) .gt. 1.0E-6 ) - : call stopit( status, 'Circle: Error AA2' ) - if( abs(ubnd(1)-(0.01850666061475276)) .gt. 1.0E-6 ) - : call stopit( status, 'Circle: Error AA3' ) - if( abs(ubnd(2)-(1.009994987166073)) .gt. 1.0E-6 ) - : call stopit( status, 'Circle: Error AA4' ) - - p1( 1 ) = 0.0 - p1( 2 ) = 1.57 - p2( 1 ) = 0.01 - - cir1 = ast_circle( frm1, 1, p1, p2, AST__NULL, ' ', status ) - call ast_getregionbounds( cir1, lbnd, ubnd, status ) - - if( abs(lbnd(1)-(0.0)) .gt. 1.0E-6 ) - : call stopit( status, 'Circle: Error AA5' ) - if( abs(lbnd(2)-(1.560000052675599)) .gt. 1.0E-6 ) - : call stopit( status, 'Circle: Error AA6' ) - if( abs(ubnd(1)-(6.283185307179586)) .gt. 1.0E-6 ) - : call stopit( status, 'Circle: Error AA7' ) - if( abs(ubnd(2)-(1.5707963267948966)) .gt. 1.0E-6 ) - : call stopit( status, 'Circle: Error AA8' ) - - call ast_getregionmesh( cir1, .true., 0, 0, npoint, 0, status ) - if( npoint .ne. 200 ) - : call stopit( status, 'Circle: Error mesh 1' ) - - call ast_getregionmesh( cir1, .true., 250, 3, npoint, mesh, - : status ) - - do i = 1, npoint - p2(1) = mesh(i,1) - p2(2) = mesh(i,2) - if( abs( ast_distance( frm1, p1, p2, status ) - 0.01 ) .gt. - : 1.0E-6 ) call stopit( status, 'Circle: Error mesh 2' ) - enddo - - call ast_getregionmesh( cir1, .false., 250, 3, npoint, mesh, - : status ) - - if( npoint .ne. 201 ) then - write(*,*) npoint - call stopit( status, 'Circle: Error mesh 3' ) - endif - - do i = 1, npoint - p2(1) = mesh(i,1) - p2(2) = mesh(i,2) - if( ast_distance( frm1, p1, p2, status ) .gt. 0.01 ) - : call stopit( status, 'Circle: Error mesh 4' ) - enddo - - p1( 1 ) = 1.2217305 - p1( 2 ) = 1.3962634 - p2( 1 ) = 0.8 - p2( 2 ) = 0.8 - - cir1 = ast_circle( frm1, 0, p1, p2, AST__NULL, ' ', status ) - call checkdump( cir1, 'checkdump cir1', status ) - - rad = ast_distance( cir1, p1, p2, status ) - - call ast_offset( frm1, p1, p2, rad*0.999, p3, status ) - xin(1) = p3(1) - yin(1) = p3(2) - call ast_offset( frm1, p1, p2, rad*1.001, p3, status ) - xin(2) = p3(1) - yin(2) = p3(2) - - call ast_tran2( cir1, 2, xin, yin, .true., xout, yout, status ) - if( xout(1) .ne. xin(1) ) call stopit( status, 'Circle: Error 1' ) - if( yout(1) .ne. yin(1) ) call stopit( status, 'Circle: Error 2' ) - if( xout(2) .ne. AST__BAD ) call stopit( status, - : 'Circle: Error 3' ) - if( yout(2) .ne. AST__BAD ) call stopit( status, - : 'Circle: Error 4' ) - - - xin(1) = 0.0 - yin(1) = 1.5707963 - call ast_tran2( cir1, 1, xin, yin, .true., xout, yout, status ) - if( xout(1) .ne. xin(1) ) call stopit( status, 'Circle: Error 1b') - if( yout(1) .ne. yin(1) ) call stopit( status, 'Circle: Error 2b') - - p2(1)=0.0 - p2(2)=0.0 - call ast_offset( frm1, p1, p2, rad*0.999, p3, status ) - xin(1) = p3(1) - yin(1) = p3(2) - call ast_offset( frm1, p1, p2, rad*1.001, p3, status ) - xin(2) = p3(1) - yin(2) = p3(2) - - call ast_tran2( cir1, 2, xin, yin, .true., xout, yout, status ) - if( xout(1) .ne. xin(1) ) call stopit( status, 'Circle: Error 5' ) - if( yout(1) .ne. yin(1) ) call stopit( status, 'Circle: Error 6' ) - if( xout(2) .ne. AST__BAD ) call stopit( status, - : 'Circle: Error 7' ) - if( yout(2) .ne. AST__BAD ) call stopit( status, - : 'Circle: Error 8' ) - - - call ast_setc( cir1, 'system', 'galactic', status ) - cir1 = ast_simplify( cir1, status ) - if( .not. hasframeset( cir1,status ) ) call stopit( status, - : 'Circle: error 9' ) - - - pp1( 1 ) = 0.0 - pp1( 2 ) = 0.0 - pp2( 1 ) = 1.0D-6 - pp2( 2 ) = 1.0D-6 - unc = ast_box( frm1, 0, pp1, pp2, AST__NULL, ' ', status ) - - p1( 1 ) = 1.2217305 - p1( 2 ) = 1.3962634 - p2( 1 ) = 1.2218 - p2( 2 ) = 1.3963 - cir1 = ast_circle( frm1, 0, p1, p2, unc, ' ', status ) - - rad = ast_distance( cir1, p1, p2, status ) - - call ast_offset( frm1, p1, p2, rad*0.999, p3, status ) - xin(1) = p3(1) - yin(1) = p3(2) - call ast_offset( frm1, p1, p2, rad*1.001, p3, status ) - xin(2) = p3(1) - yin(2) = p3(2) - - call ast_tran2( cir1, 2, xin, yin, .true., xout, yout, status ) - if( xout(1) .ne. xin(1) ) call stopit( status, 'Circle: Error 1b') - if( yout(1) .ne. yin(1) ) call stopit( status, 'Circle: Error 2b') - if( xout(2) .ne. AST__BAD ) call stopit( status, - : 'Circle: Error 3b' ) - if( yout(2) .ne. AST__BAD ) call stopit( status, - : 'Circle: Error 4b' ) - - p2(1)=0.0 - p2(2)=0.0 - call ast_offset( frm1, p1, p2, rad*0.999, p3, status ) - xin(1) = p3(1) - yin(1) = p3(2) - call ast_offset( frm1, p1, p2, rad*1.001, p3, status ) - xin(2) = p3(1) - yin(2) = p3(2) - - call ast_tran2( cir1, 2, xin, yin, .true., xout, yout, status ) - if( xout(1) .ne. xin(1) ) call stopit( status, 'Circle: Error 5b') - if( yout(1) .ne. yin(1) ) call stopit( status, 'Circle: Error 6b') - if( xout(2) .ne. AST__BAD ) call stopit( status, - : 'Circle: Error 7b' ) - if( yout(2) .ne. AST__BAD ) call stopit( status, - : 'Circle: Error 8b' ) - - cir2 = ast_copy( cir1, status ) - call ast_setc( cir2, 'system', 'galactic', status ) - call checkdump( cir2, 'checkdump cir2', status ) - - cir2 = ast_simplify( cir2, status ) - - if( hasframeset( cir2,status ) ) call stopit( status, - : 'Circle: error 9b' ) - - if( ast_overlap( cir1, cir2, status ) .ne. 5 ) call stopit(status, - : 'Circle: Error 10' ) - if( ast_overlap( cir2, cir1, status ) .ne. 5 ) call stopit(status, - : 'Circle: Error 11' ) - - p1( 1 ) = 1.2217305 - p1( 2 ) = 1.3964 - p2( 1 ) = 1.2218 - p2( 2 ) = 1.3963 - cir2 = ast_circle( frm1, 0, p1, p2, unc, ' ', status ) - if( ast_overlap( cir1, cir2, status ) .ne. 4 ) call stopit(status, - : 'Circle: Error 12' ) - if( ast_overlap( cir2, cir1, status ) .ne. 4 ) call stopit(status, - : 'Circle: Error 13' ) - - p1( 1 ) = 1.2217305 - p1( 2 ) = 1.3962634 - p2( 1 ) = 1.221731 - p2( 2 ) = 1.396268 - cir2 = ast_circle( frm1, 0, p1, p2, unc, ' ', status ) - if( ast_overlap( cir1, cir2, status ) .ne. 3 ) call stopit(status, - : 'Circle: Error 14' ) - if( ast_overlap( cir2, cir1, status ) .ne. 2 ) call stopit(status, - : 'Circle: Error 15' ) - - p1( 1 ) = 0.8 - p1( 2 ) = 1.0 - p2( 1 ) = 0.88 - p2( 2 ) = 1.05 - cir2 = ast_circle( frm1, 0, p1, p2, unc, ' ', status ) - if( ast_overlap( cir1, cir2, status ) .ne. 1 ) call stopit(status, - : 'Circle: Error 16' ) - - - p1( 1 ) = 0.8 - p1( 2 ) = 1.5707963 - p2( 1 ) = 0.1 - cir2 = ast_circle( frm1, 1, p1, p2, unc, ' ', status ) - call ast_getregionbounds( cir2, lbnd, ubnd, status ) - if( lbnd(1) .ne. 0.0D0 ) call stopit( status, - : 'Circle: Error 16a' ) - if( abs( lbnd(2) - 1.47079625 ) .gt. 1.0E-6 ) call stopit( status, - : 'Circle: Error 16b' ) - if( abs( ubnd(1) - 6.28318531 ) .gt. 1.0E-6 ) call stopit( status, - : 'Circle: Error 16c' ) - if( abs( ubnd(2) - 1.57079633 ) .gt. 1.0E-6 ) call stopit( status, - : 'Circle: Error 16d' ) - - - frm1 = ast_frame(2,"domain=aa",status) - - pp1( 1 ) = 0.0 - pp1( 2 ) = 0.0 - pp2( 1 ) = 1.0D-6 - pp2( 2 ) = 1.0D-6 - unc = ast_box( frm1, 0, pp1, pp2, AST__NULL, ' ', status ) - - p1( 1 ) = 1.2217305 - p1( 2 ) = 1.3962634 - p2( 1 ) = 1.2218 - p2( 2 ) = 1.3963 - cir2 = ast_circle( frm1, 0, p1, p2, unc, ' ', status ) - - if( ast_overlap( cir1, cir2, status ) .ne. 0 ) call stopit(status, - : 'Circle: Error 17' ) - if( ast_overlap( cir2, cir1, status ) .ne. 0 ) call stopit(status, - : 'Circle: Error 18' ) - - - f1 = ast_skyframe( ' ', status ) - f2 = ast_frame( 2, ' ', status ) - f3 = ast_cmpframe( f1, f2, ' ', status ) - - p1( 1 ) = 1.0 - p1( 2 ) = 1.0 - p1( 3 ) = 3.0 - p1( 4 ) = 3.0 - p2( 1 ) = 1.01 - p2( 2 ) = 1.02 - p2( 3 ) = 3.01 - p2( 4 ) = 3.01 - cir2 = ast_circle( f3, 0, p1, p2, AST__NULL, ' ', status ) - if( ast_overlap( cir2, cir2, status ) .ne. 5 ) call stopit(status, - : 'Circle: Error 18b' ) - -* Test 3D spheres - - frm1 = ast_frame( 3, ' ', status ) - - pp1( 1 ) = 0.0 - pp1( 2 ) = 0.0 - pp1( 3 ) = 0.0 - pp2( 1 ) = 1.0E-6 - pp2( 2 ) = 2.0E-6 - pp2( 3 ) = 2.0E-6 - unc = ast_box( frm1, 0, pp1, pp2, AST__NULL, ' ', status ) - - p1( 1 ) = 1.0 - p1( 2 ) = 2.0 - p1( 3 ) = 3.0 - p2( 1 ) = 0.0 - p2( 2 ) = -1.0 - p2( 3 ) = -2.0 - cir1 = ast_circle( frm1, 0, p1, p2, unc, ' ', status ) - call checkdump( cir1, 'checkdump sph1', status ) - - rad = ast_distance( cir1, p1, p2, status ) - - call ast_offset( frm1, p1, p2, rad*0.999, p3, status ) - in(1,1) = p3(1) - in(1,2) = p3(2) - in(1,3) = p3(3) - call ast_offset( frm1, p1, p2, rad*1.001, p3, status ) - in(2,1) = p3(1) - in(2,2) = p3(2) - in(2,3) = p3(3) - - - call ast_trann( cir1, 2, 3, 2, in, .true., 3, 2, out, status ) - - if( out(1,1) .ne. in(1,1) ) call stopit( status, - : 'Sphere: Error 1' ) - if( out(1,2) .ne. in(1,2) ) call stopit( status, - : 'Sphere: Error 2' ) - if( out(1,3) .ne. in(1,3) ) call stopit( status, - : 'Sphere: Error 2z') - if( out(2,1) .ne. AST__BAD ) call stopit( status, - : 'Sphere: Error 3' ) - if( out(2,2) .ne. AST__BAD ) call stopit( status, - : 'Sphere: Error 4' ) - if( out(2,3) .ne. AST__BAD ) call stopit( status, - : 'Sphere: Error 4z' ) - - p2(1)=0.0 - p2(2)=0.0 - p2(3)=0.0 - call ast_offset( frm1, p1, p2, rad*0.999, p3, status ) - in(1,1) = p3(1) - in(1,2) = p3(2) - in(1,3) = p3(3) - call ast_offset( frm1, p1, p2, rad*1.001, p3, status ) - in(2,1) = p3(1) - in(2,2) = p3(2) - in(2,3) = p3(3) - - call ast_trann( cir1, 2, 3, 2, in, .true., 3, 2, out, status ) - if( out(1,1) .ne. in(1,1) ) call stopit( status, - : 'Sphere: Error 5' ) - if( out(1,2) .ne. in(1,2) ) call stopit( status, - : 'Sphere: Error 6' ) - if( out(1,3) .ne. in(1,3) ) call stopit( status, - : 'Sphere: Error 6z') - if( out(2,1) .ne. AST__BAD ) call stopit( status, - : 'Sphere: Error 7' ) - if( out(2,2) .ne. AST__BAD ) call stopit( status, - : 'Sphere: Error 8' ) - if( out(2,3) .ne. AST__BAD ) call stopit( status, - : 'Sphere: Error 8z' ) - - - if( ast_overlap( cir1, cir1, status ) .ne. 5 ) call stopit(status, - : 'Sphere: Error 10' ) - - - - - p1( 1 ) = 1.0 - p1( 2 ) = 2.0 - p1( 3 ) = 3.0 - p2( 1 ) = 0.5 - p2( 2 ) = 0.0 - p2( 3 ) = -1.0 - cir2 = ast_circle( frm1, 0, p1, p2, unc, ' ', status ) - call checkdump( cir2, 'checkdump sph2', status ) - - if( ast_overlap( cir2, cir1, status ) .ne. 2 ) call stopit(status, - : 'Sphere: Error 11' ) - - if( ast_overlap( cir1, cir2, status ) .ne. 3 ) call stopit(status, - : 'Sphere: Error 12' ) - - - - p1( 1 ) = 1.0 - p1( 2 ) = 0.0 - p1( 3 ) = 3.0 - p2( 1 ) = 0.0 - p2( 2 ) = -1.0 - p2( 3 ) = -2.0 - cir2 = ast_circle( frm1, 0, p1, p2, unc, ' ', status ) - if( ast_overlap( cir1, cir2, status ) .ne. 4 ) call stopit(status, - : 'Sphere: Error 13' ) - - p1( 1 ) = 1.0 - p1( 2 ) = 102.0 - p1( 3 ) = 3.0 - p2( 1 ) = 0.0 - p2( 2 ) = 99.0 - p2( 3 ) = -2.0 - cir2 = ast_circle( frm1, 0, p1, p2, unc, ' ', status ) - if( ast_overlap( cir1, cir2, status ) .ne. 1 ) call stopit(status, - : 'Sphere: Error 14' ) - - - p1( 1 ) = 0.0 - p1( 2 ) = 0.0 - p1( 3 ) = 0.0 - p2( 1 ) = 0.0 - p2( 2 ) = 0.0 - p2( 3 ) = 1.0 - cir1 = ast_circle( frm1, 0, p1, p2, unc, ' ', status ) - - p1( 1 ) = 2.0000001 - p1( 2 ) = 0.0 - p1( 3 ) = 0.0 - p2( 1 ) = 2.000001 - p2( 2 ) = 1.0 - p2( 3 ) = 0.0 - cir2 = ast_circle( frm1, 0, p1, p2, unc, ' ', status ) - - if( ast_overlap( cir1, cir2, status ) .ne. 4 ) then - write(*,*) ast_overlap( cir1, cir2, status ),' should be 4 ' - call stopit(status, 'Sphere: Error 15' ) - end if - - p1( 1 ) = 2.000001 - p1( 2 ) = 0.0 - p1( 3 ) = 0.0 - p2( 1 ) = 2.000001 - p2( 2 ) = 1.0 - p2( 3 ) = 0.0 - cir2 = ast_circle( frm1, 0, p1, p2, unc, ' ', status ) - - if( ast_overlap( cir1, cir2, status ) .ne. 4 ) call stopit(status, - : 'Sphere: Error 16' ) - - cir2 = ast_circle( frm1, 0, p1, p2, unc, ' ', status ) - - call ast_setl( cir1, 'Closed', .false., status ) - call ast_setl( cir2, 'Closed', .false., status ) - if( ast_overlap( cir1, cir2, status ) .ne. 1 ) call stopit(status, - : 'Sphere: Error 17' ) - call ast_clear( cir1, 'Closed', status ) - call ast_clear( cir2, 'Closed', status ) - - p1( 1 ) = 2.000004 - p1( 2 ) = 0.0 - p1( 3 ) = 0.0 - p2( 1 ) = 2.000004 - p2( 2 ) = 1.0 - p2( 3 ) = 0.0 - cir2 = ast_circle( frm1, 0, p1, p2, unc, ' ', status ) - - if( ast_overlap( cir1, cir2, status ) .ne. 1 ) call stopit(status, - : 'Sphere: Error 18' ) - - call ast_end( status ) - if( status .ne. sai__ok ) write(*,*) 'Circle tests failed' - - end - - - - - - - - subroutine checkEllipse( status ) - implicit none - include 'AST_PAR' - include 'SAE_PAR' - - integer status, ell1, ell2, fc, i, fs, frm1, fs2,mm,ell3,ell4, - : reg, unc, f1, f2, f3, f4, f5, map, perm(2) - double precision p1(2),p2(2),p3(2),p4(2),pp1(2),pp2(2) - double precision q1(2),q2(2),q3(2),q4(2),lbnd(2),ubnd(2) - double precision q1b(2),q2b(2),q3b(2),q4b(2) - double precision p1b(2),p2b(2),p3b(2),p4b(2),matrix(4) - character cards(10)*80 - double precision xin(4),yin(4),xout(4),yout(4),rad - logical hasframeset - - data cards /'NAXIS1 = 300', - : 'NAXIS2 = 300', - : 'CTYPE1 = ''RA---TAN''', - : 'CTYPE2 = ''DEC--TAN''', - : 'CRPIX1 = 100', - : 'CRPIX2 = 100', - : 'CRVAL1 = 0.0', - : 'CRVAL2 = 90.0', - : 'CDELT1 = 0.6', - : 'CDELT2 = 0.6' / - - - if( status .ne.sai__ok ) return - call ast_begin( status ) - - f1 = ast_SkyFrame( 'system=fk4', status ) - f3 = ast_cmpframe( ast_pickaxes( f1, 1, 1, map, status ), - : ast_specframe( 'system=wave,unit=um', status ), - : ' ', status ) - perm(1)=2 - perm(2)=1 - call ast_permaxes( f3, perm, status ) - p1(1) = 0.0 - p1(2) = 0.0 - p2(1) = 0.001 - p2(2) = 0.001 - p3(1) = -0.001 - p3(2) = 0.001 - ell1 = ast_ellipse( f3, 0, p1, p2, p3, AST__NULL, ' ', status ) - - xin(1) = 0.0 - yin(1) = 0.00141421 - xin(2) = 0.0 - yin(2) = 0.00141422 - xin(3) = -0.000999 - yin(3) = 0.0009999 - xin(4) = -0.001001 - yin(4) = 0.001001 - call ast_tran2( ell1, 4, xin, yin, .true., xout, yout, status ) - - if( xout(1) .ne. xin(1) ) call stopit( status, 'Ellipse: Cmp 1') - if( yout(1) .ne. yin(1) ) call stopit( status, 'Ellipse: Cmp 2') - if( xout(2) .ne. AST__BAD ) call stopit( status, - : 'Ellipse: Cmp 3' ) - if( yout(2) .ne. AST__BAD ) call stopit( status, - : 'Ellipse: Cmp 4' ) - if( xout(3) .ne. xin(3) ) call stopit( status, 'Ellipse: Cmp 5') - if( yout(3) .ne. yin(3) ) call stopit( status, 'Ellipse: Cmp 6') - if( xout(4) .ne. AST__BAD ) call stopit( status, - : 'Ellipse: Cmp 7' ) - if( yout(4) .ne. AST__BAD ) call stopit( status, - : 'Ellipse: Cmp 8' ) - - call checkdump( ell1, 'checkdump ell1 cmp', status ) - ell2 = ast_simplify( ell1, status ) - call checkdump( ell2, 'checkdump ell2 cmp', status ) - if( ast_overlap( ell1, ell2, status ) .ne. 5 ) call stopit(status, - : 'ellipse: Error 5 cmp' ) - - fc = ast_fitschan( ast_null, ast_null, ' ', status ) - do i = 1, 10 - call ast_putfits( fc, cards(i), .false., status ) - end do - call ast_clear( fc, 'card', status ) - fs = ast_read( fc, status ) - - frm1 = ast_getframe( fs, ast__current, status ) - - p1( 1 ) = 1.2217305 - p1( 2 ) = 1.570796 - p2( 1 ) = 0.9 - p2( 2 ) = 1.470796 - p3( 1 ) = 2.9217305 - p3( 2 ) = 1.370796 - - ell1 = ast_ellipse( frm1, 0, p1, p2, p3, AST__NULL, ' ', status ) - call checkdump( ell1, 'checkdump ell1', status ) - - - call ast_getregionbounds( ell1, lbnd, ubnd, status ) - if( abs( lbnd(1) ) .gt. 1.0E-10 ) call stopit( status, - : 'Error b1' ) - if( abs( lbnd(2) - 1.19059777 ) .gt. 1.0E-6 ) - : call stopit( status, 'Error b2' ) - if( abs( ubnd(1) - 6.28318531 ) .gt. 1.0E-6 ) - : call stopit( status, 'Error b3' ) - if( abs( ubnd(2) - 1.57079633 ) .gt. 1.0E-6 ) - : call stopit( status, 'Error b4' ) - - rad = ast_distance( ell1, p1, p2, status ) - - call ast_offset( frm1, p1, p2, rad*0.999, p4, status ) - xin(1) = p4(1) - yin(1) = p4(2) - call ast_offset( frm1, p1, p2, rad*1.001, p4, status ) - xin(2) = p4(1) - yin(2) = p4(2) - - call ast_tran2( ell1, 2, xin, yin, .true., xout, yout, status ) - if( xout(1) .ne. xin(1) ) call stopit( status, 'Ellipse: Error 1') - if( yout(1) .ne. yin(1) ) call stopit( status, 'Ellipse: Error 2') - if( xout(2) .ne. AST__BAD ) call stopit( status, - : 'Ellipse: Error 3' ) - if( yout(2) .ne. AST__BAD ) call stopit( status, - : 'Ellipse: Error 4' ) - - - call ast_offset( frm1, p1, p2, -rad*0.999, p4, status ) - xin(1) = p4(1) - yin(1) = p4(2) - call ast_offset( frm1, p1, p2, -rad*1.001, p4, status ) - xin(2) = p4(1) - yin(2) = p4(2) - - call ast_tran2( ell1, 2, xin, yin, .true., xout, yout, status ) - if( xout(1) .ne. xin(1) ) call stopit( status, - : 'Ellipse: Error 1b') - if( yout(1) .ne. yin(1) ) call stopit( status, - : 'Ellipse: Error 2b') - if( xout(2) .ne. AST__BAD ) call stopit( status, - : 'Ellipse: Error 3b' ) - if( yout(2) .ne. AST__BAD ) call stopit( status, - : 'Ellipse: Error 4b' ) - - - rad = ast_distance( ell1, p1, p3, status ) - - call ast_offset( frm1, p1, p3, rad*0.999, p4, status ) - xin(1) = p4(1) - yin(1) = p4(2) - call ast_offset( frm1, p1, p3, rad*1.001, p4, status ) - xin(2) = p4(1) - yin(2) = p4(2) - - call ast_tran2( ell1, 2, xin, yin, .true., xout, yout, status ) - if( xout(1) .ne. xin(1) ) call stopit( status, - : 'Ellipse: Error 1c') - if( yout(1) .ne. yin(1) ) call stopit( status, - : 'Ellipse: Error 2c') - if( xout(2) .ne. AST__BAD ) call stopit( status, - : 'Ellipse: Error 3c' ) - if( yout(2) .ne. AST__BAD ) call stopit( status, - : 'Ellipse: Error 4c' ) - - call ast_offset( frm1, p1, p3, -rad*0.999, p4, status ) - xin(1) = p4(1) - yin(1) = p4(2) - call ast_offset( frm1, p1, p3, -rad*1.001, p4, status ) - xin(2) = p4(1) - yin(2) = p4(2) - - call ast_tran2( ell1, 2, xin, yin, .true., xout, yout, status ) - if( xout(1) .ne. xin(1) ) call stopit( status, - : 'Ellipse: Error 1d') - if( yout(1) .ne. yin(1) ) call stopit( status, - : 'Ellipse: Error 2d') - if( xout(2) .ne. AST__BAD ) call stopit( status, - : 'Ellipse: Error 3d' ) - if( yout(2) .ne. AST__BAD ) call stopit( status, - : 'Ellipse: Error 4d' ) - - - ell2 = ast_copy( ell1, status ) - - if( ast_overlap( ell1, ell2, status ) .ne. 5 ) call stopit(status, - : 'ellipse: Error 5' ) - if( ast_overlap( ell2, ell1, status ) .ne. 5 ) call stopit(status, - : 'ellipse: Error 6' ) - - call ast_set( ell2, 'system=galactic', status ) - if( ast_overlap( ell1, ell2, status ) .ne. 5 ) call stopit(status, - : 'ellipse: Error 7' ) - if( ast_overlap( ell2, ell1, status ) .ne. 5 ) call stopit(status, - : 'ellipse: Error 8' ) - - - - - xin(1) = p1( 1 ) - yin(1) = p1( 2 ) - xin(2) = p2( 1 ) - yin(2) = p2( 2 ) - xin(3) = p3( 1 ) - yin(3) = p3( 2 ) - call ast_tran2( fs, 3, xin, yin, .false., xout, yout, status ) - q1(1) = xout(1) - q1(2) = yout(1) - q2(1) = xout(2) - q2(2) = yout(2) - q3(1) = xout(3) - q3(2) = yout(3) - - frm1 = ast_GetFrame( fs, AST__BASE, status ) - - rad = ast_distance( frm1, q1, q2, status ) - - call ast_offset( frm1, q1, q2, rad*1.95, q1b, status ) - - q2b( 1 ) = q2( 1 ) + ( q1b( 1 ) - q1( 1 ) ) - q2b( 2 ) = q2( 2 ) + ( q1b( 2 ) - q1( 2 ) ) - - q3b( 1 ) = q3( 1 ) + ( q1b( 1 ) - q1( 1 ) ) - q3b( 2 ) = q3( 2 ) + ( q1b( 2 ) - q1( 2 ) ) - - xout(1) = q1b(1) - yout(1) = q1b(2) - xout(2) = q2b(1) - yout(2) = q2b(2) - xout(3) = q3b(1) - yout(3) = q3b(2) - call ast_tran2( fs, 3, xout, yout, .true., xin, yin, status ) - p1b( 1 ) = xin(1) - p1b( 2 ) = yin(1) - p2b( 1 ) = xin(2) - p2b( 2 ) = yin(2) - p3b( 1 ) = xin(3) - p3b( 2 ) = yin(3) - - frm1 = ast_GetFrame( fs, AST__CURRENT, status ) - - pp1( 1 ) = 0.0 - pp1( 2 ) = 0.0 - pp2( 1 ) = 1.0D-7 - pp2( 2 ) = 1.0D-7 - unc = ast_box( frm1, 0, pp1, pp2, AST__NULL, ' ', status ) - ell2 = ast_ellipse( frm1, 0, p1b, p2b, p3b, unc, ' ', status ) - if( ast_overlap( ell2, ell1, status ) .ne. 4 ) call stopit(status, - : 'ellipse: Error 9' ) - if( ast_overlap( ell1, ell2, status ) .ne. 4 ) call stopit(status, - : 'ellipse: Error 10' ) - - - call ast_offset( frm1, q1, q2, rad*2.05, q1b, status ) - - q2b( 1 ) = q2( 1 ) + ( q1b( 1 ) - q1( 1 ) ) - q2b( 2 ) = q2( 2 ) + ( q1b( 2 ) - q1( 2 ) ) - - q3b( 1 ) = q3( 1 ) + ( q1b( 1 ) - q1( 1 ) ) - q3b( 2 ) = q3( 2 ) + ( q1b( 2 ) - q1( 2 ) ) - - xout(1) = q1b(1) - yout(1) = q1b(2) - xout(2) = q2b(1) - yout(2) = q2b(2) - xout(3) = q3b(1) - yout(3) = q3b(2) - call ast_tran2( fs, 3, xout, yout, .true., xin, yin, status ) - p1b( 1 ) = xin(1) - p1b( 2 ) = yin(1) - p2b( 1 ) = xin(2) - p2b( 2 ) = yin(2) - p3b( 1 ) = xin(3) - p3b( 2 ) = yin(3) - - frm1 = ast_GetFrame( fs, AST__CURRENT, status ) - pp1( 1 ) = 0.0 - pp1( 2 ) = 0.0 - pp2( 1 ) = 1.0D-7 - pp2( 2 ) = 1.0D-7 - unc = ast_box( frm1, 0, pp1, pp2, AST__NULL, ' ', status ) - ell2 = ast_ellipse( frm1, 0, p1b, p2b, p3b, unc, ' ', status ) - if( ast_overlap( ell2, ell1, status ) .ne. 1 ) call stopit(status, - : 'ellipse: Error 11' ) - if( ast_overlap( ell1, ell2, status ) .ne. 1 ) call stopit(status, - : 'ellipse: Error 12' ) - - p1b( 1 ) = p1( 1 ) - p1b( 2 ) = p1( 2 ) - p2b( 1 ) = p2( 1 ) - p2b( 2 ) = 0.9*p2( 2 ) + 0.1*p1( 2 ) - p3b( 1 ) = p3( 1 ) - p3b( 2 ) = 0.9*p3( 2 ) + 0.1*p1( 2 ) - - ell2 = ast_ellipse( frm1, 0, p1b, p2b, p3b, unc, ' ', status ) - if( ast_overlap( ell2, ell1, status ) .ne. 2 ) call stopit(status, - : 'ellipse: Error 13' ) - if( ast_overlap( ell1, ell2, status ) .ne. 3 ) call stopit(status, - : 'ellipse: Error 14' ) - - - - - - - frm1 = ast_frame( 2, ' ', status ) - - pp1( 1 ) = 0.0 - pp1( 2 ) = 0.0 - pp2( 1 ) = 1.0D-7 - pp2( 2 ) = 1.0D-7 - unc = ast_box( frm1, 0, pp1, pp2, AST__NULL, ' ', status ) - - p1(1)=0.0 - p1(2)=0.0 - p2(1)=1.0 - p2(2)=0.0 - p3(1)=0.0 - p3(2)=0.5 - ell1 = ast_ellipse( frm1, 0, p1, p2, p3, unc, ' ', status ) - - - matrix(1) = 1.73 - matrix(2) = 0.5003 - matrix(3) = -1.0006 - matrix(4) = 0.866 - mm = ast_matrixmap( 2, 2, 0, matrix, ' ', status ) - - ell2 = ast_mapregion( ell1, mm, frm1, status ) - call checkdump( ell2, 'checkdump ell2', status ) - if( hasframeset( ell2, status ) ) call stopit( status, - : 'Ellipse: error 15' ) - call ast_invert( mm, status ) - ell3 = ast_mapregion( ell2, mm, frm1, status ) - if( hasframeset( ell3,status ) ) call stopit( status, - : 'Ellipse: error 16' ) - if( ast_overlap( ell1, ell3, status ) .ne. 5 ) call stopit(status, - : 'ellipse: Error 17' ) - - - frm1 = ast_frame( 2, ' ', status ) - pp1( 1 ) = 0.0 - pp1( 2 ) = 0.0 - pp2( 1 ) = 1.0D-7 - pp2( 2 ) = 1.0D-7 - unc = ast_box( frm1, 0, pp1, pp2, AST__NULL, ' ', status ) - - p1(1)=0.0 - p1(2)=0.0 - p2(1)=1.0 - p2(2)=0.0 - p3(1)=0.0 - p3(2)=1.0 - ell1 = ast_ellipse( frm1, 0, p1, p2, p3, unc, ' ', status ) - reg = ast_simplify( ell1, status ) - if( .not. ast_IsACircle( reg, status ) ) call stopit(status, - : 'ellipse: Error 18' ) - - ell1 = ast_circle( frm1, 0, p1, p2, AST__NULL, ' ', status ) - if( ast_overlap( reg, ell1, status ) .ne. 5 ) call stopit(status, - : 'Ellipse: Error 19' ) - - - - frm1 = ast_skyframe( ' ', status ) - p1(1)=0.0D0 - p1(2)=0.0D0 - p2(1)=0.01D0 - p2(2)=0.01D0 - p3(1)=0.0D0 - p3(2)=0.0D0 - ell1 = ast_ellipse( frm1, 1, p1, p2, p3, AST__NULL, ' ', status ) - - p1(1)=-0.015D0 - p1(2)=0.0D0 - p2(1)=0.01D0 - p2(2)=0.01D0 - p3(1)=0.0D0 - p3(2)=0.0D0 - ell2 = ast_ellipse( frm1, 1, p1, p2, p3, AST__NULL, ' ', status ) - - if( ast_overlap( ell1, ell2, status ) .ne. 4 ) call stopit(status, - : 'Ellipse: Error 20' ) - - p1(1)=6.2681853D0 - p1(2)=0.0D0 - p2(1)=0.01D0 - p2(2)=0.01D0 - p3(1)=0.0D0 - p3(2)=0.0D0 - ell2 = ast_ellipse( frm1, 1, p1, p2, p3, AST__NULL, ' ', status ) - - if( ast_overlap( ell1, ell2, status ) .ne. 4 ) call stopit(status, - : 'Ellipse: Error 21' ) - - p1(1)=-0.015D0 - p1(2)=0.0D0 - p2(1)=0.01D0 - p2(2)=0.01D0 - p3(1)=0.0D0 - p3(2)=0.0D0 - ell1 = ast_ellipse( frm1, 1, p1, p2, p3, AST__NULL, ' ', status ) - - if( ast_overlap( ell1, ell2, status ) .ne. 5 ) call stopit(status, - : 'Ellipse: Error 22' ) - - - - - call ast_end( status ) - if( status .ne. sai__ok ) write(*,*) 'Ellipse tests failed' - - end - - - subroutine checkNullRegion( status ) - implicit none - include 'AST_PAR' - include 'SAE_PAR' - include 'PRM_PAR' - - integer status, f1, f2, f3, nr, cir, i, j, lbnd_in(2), ubnd_in(2), - : nr2, res - double precision p1(4),p2(4),rin(5,5) - logical hasframeset - - if( status .ne.sai__ok ) return - - call ast_begin( status ) - - f1 = ast_skyframe( ' ', status ) - f2 = ast_frame( 2, ' ', status ) - f3 = ast_cmpframe( f1, f2, ' ', status ) - nr = ast_NullRegion( f3, AST__NULL, ' ', status ) - - call checkdump( nr, 'checkdump NullRegion:nr', status ) - - p1( 1 ) = 1.0 - p1( 2 ) = 1.0 - p1( 3 ) = 3.0 - p1( 4 ) = 3.0 - p2( 1 ) = 1.01 - p2( 2 ) = 1.02 - p2( 3 ) = 3.01 - p2( 4 ) = 3.01 - cir = ast_circle( nr, 0, p1, p2, AST__NULL, ' ', status ) - call checkdump( cir, 'checkdump NullRegion:cir', status ) - - if( ast_overlap( cir, nr, status ) .ne. 1 ) call stopit(status, - : 'NullRegion: Error 1' ) - - if( ast_overlap( nr, cir, status ) .ne. 1 ) call stopit(status, - : 'NullRegion: Error 2' ) - - if( ast_overlap( nr, nr, status ) .ne. 5 ) call stopit(status, - : 'NullRegion: Error 3' ) - - call ast_negate( nr, status ) - - if( ast_overlap( cir, nr, status ) .ne. 2 ) call stopit(status, - : 'NullRegion: Error 4' ) - - if( ast_overlap( nr, cir, status ) .ne. 3 ) call stopit(status, - : 'NullRegion: Error 5' ) - - if( ast_overlap( nr, nr, status ) .ne. 5 ) call stopit(status, - : 'NullRegion: Error 6' ) - - call ast_set( nr, 'system(1)=FK4', status ) - nr2 = ast_simplify( nr, status ) - call ast_set( nr2, 'system(1)=ICRS', status ) - nr = ast_simplify( nr2, status ) - if( hasframeset( nr, status ) ) call stopit( status, - : 'NullRegion: error 7' ) - - lbnd_in(1) = 1 - lbnd_in(2) = 1 - ubnd_in(1) = 5 - ubnd_in(2) = 5 - - do i =1, 5 - do j = 1, 5 - rin( j,i)=1.0 - end do - end do - - nr = ast_NullRegion( f2, AST__NULL, 'negated=1', status ) - res = ast_maskd( nr, AST__NULL, .false., 2, lbnd_in, ubnd_in, - : rin, VAL__BADD, status ) - - if( res .ne. 0 ) then - write(*,*) 'NullRegion:Res is ',res - call stopit( status, 'res should be 0' ) - end if - - do i =1, 5 - do j = 1, 5 - if( rin(j,i) .NE. 1.0 ) then - write(*,*) 'rin(',j,',',i,') = ',rin(j,i) - call stopit( status, 'Above value should be 1.0' ) - end if - end do - end do - - call ast_negate( nr, status ) - res = ast_maskd( nr, AST__NULL, .false., 2, lbnd_in, ubnd_in, - : rin, VAL__BADD, status ) - - if( res .ne. 25 ) then - write(*,*) 'NullRegion:Res is ',res - call stopit( status, 'res should be 25' ) - end if - - do i =1, 5 - do j = 1, 5 - if( rin(j,i) .NE. VAL__BADD ) then - write(*,*) 'rin(',j,',',i,') = ',rin(j,i) - call stopit( status, 'Above value should be BAD' ) - end if - end do - end do - - - - - - call ast_end( status ) - if( status .ne. sai__ok ) write(*,*) 'NullRegion tests failed' - - end - - - - - subroutine checkCmpRegion( status ) - implicit none - include 'AST_PAR' - include 'SAE_PAR' - include 'PRM_PAR' - - integer status, r1, r2, r3, cr, f1, f2, cr2, cr3, frm, map, fs - double precision p1(2),p2(2),xout(4),yout(4),xin(4),yin(4) - logical hasframeset - - if( status .ne.sai__ok ) return - - call ast_begin( status ) - - - f1 = ast_skyframe( 'system=fk5', status ) - p1(1) = 0.0 - p1(2) = 0.0 - p2(1) = 1.0E-4 - p2(2) = 1.0E-4 - r1 = ast_box( f1, 0, p1, p2, AST__NULL, ' ', status ) - - f2 = ast_skyframe( 'system=galactic', status ) - - p1(1) = 1.68166715892457 - p1(2) = -1.050436507472 - p2(1) = 1.68140254777194 - p2(2) = -1.05048840003467 - r2 = ast_circle( f2, 0, p1, p2, AST__NULL, ' ', status ) - - if( ast_overlap( r1, r2, status ) .ne. 4 ) call stopit(status, - : 'CmpRegion: Error 0' ) - - cr = ast_cmpregion( r1, r2, AST__AND, ' ', status ) - cr = ast_Copy( cr, status ) - if( ast_overlap( cr, cr, status ) .ne. 5 ) call stopit(status, - : 'CmpRegion: Error 1' ) - - xin( 1 ) = 0.5E-4! In both r1 and r2 - xin( 2 ) = 1.5E-4! In r2 but not r1 - xin( 3 ) = -0.5E-4! In r1 but not r2 - xin( 4 ) = 1.1E-4! In neither - - yin( 1 ) = 0.5E-4 - yin( 2 ) = 1.5E-4 - yin( 3 ) = -0.5E-4 - yin( 4 ) = -1.1E-4 - - call ast_tran2( cr, 4, xin, yin, .true., xout, yout, status ) - - if( xout(1) .ne. xin(1) ) call stopit( status, - : 'CmpRegion: AND Error 1x') - if( yout(1) .ne. yin(1) ) call stopit( status, - : 'CmpRegion: AND Error 1y') - if( xout(2) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: AND Error 2x') - if( yout(2) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: AND Error 2y') - if( xout(3) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: AND Error 3x') - if( yout(3) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: AND Error 3y') - if( xout(4) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: AND Error 4x') - if( yout(4) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: AND Error 4y') - - cr = ast_cmpregion( r1, r2, AST__OR, ' ', status ) - call ast_tran2( cr, 4, xin, yin, .true., xout, yout, status ) - - if( xout(1) .ne. xin(1) ) call stopit( status, - : 'CmpRegion: OR Error 1x') - if( yout(1) .ne. yin(1) ) call stopit( status, - : 'CmpRegion: OR Error 1y') - if( xout(2) .ne. xin(2) ) call stopit( status, - : 'CmpRegion: OR Error 2x') - if( yout(2) .ne. yin(2) ) call stopit( status, - : 'CmpRegion: OR Error 2y') - if( xout(3) .ne. xin(3) ) call stopit( status, - : 'CmpRegion: OR Error 3x') - if( yout(3) .ne. yin(3) ) call stopit( status, - : 'CmpRegion: OR Error 3y') - if( xout(4) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: OR Error 4x') - if( yout(4) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: OR Error 4y') - - - call ast_negate( r2, status ) - cr = ast_cmpregion( r1, r2, AST__AND, ' ', status ) - call ast_tran2( cr, 4, xin, yin, .true., xout, yout, status ) - - if( xout(1) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: ANDb Error 1x') - if( yout(1) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: ANDb Error 1y') - if( xout(2) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: ANDb Error 2x') - if( yout(2) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: ANDb Error 2y') - if( xout(3) .ne. xin(3) ) call stopit( status, - : 'CmpRegion: ANDb Error 3x') - if( yout(3) .ne. yin(3) ) call stopit( status, - : 'CmpRegion: ANDb Error 3y') - if( xout(4) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: ANDb Error 4x') - if( yout(4) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: ANDb Error 4y') - - call ast_negate( r1, status ) - cr = ast_cmpregion( r1, r2, AST__AND, ' ', status ) - call ast_tran2( cr, 4, xin, yin, .true., xout, yout, status ) - - if( xout(1) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: ANDc Error 1x') - if( yout(1) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: ANDc Error 1y') - if( xout(2) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: ANDc Error 2x') - if( yout(2) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: ANDc Error 2y') - if( xout(3) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: ANDc Error 3x') - if( yout(3) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: ANDc Error 3y') - if( xout(4) .ne. xin(4) ) call stopit( status, - : 'CmpRegion: ANDc Error 4x') - if( yout(4) .ne. yin(4) ) call stopit( status, - : 'CmpRegion: ANDc Error 4y') - - - cr = ast_cmpregion( r1, r2, AST__AND, ' ', status ) - call ast_negate( cr, status ) - call ast_tran2( cr, 4, xin, yin, .true., xout, yout, status ) - - if( xout(1) .ne. xin(1) ) call stopit( status, - : 'CmpRegion: ANDd Error 1x') - if( yout(1) .ne. yin(1) ) call stopit( status, - : 'CmpRegion: ANDd Error 1y') - if( xout(2) .ne. xin(2) ) call stopit( status, - : 'CmpRegion: ANDd Error 2x') - if( yout(2) .ne. yin(2) ) call stopit( status, - : 'CmpRegion: ANDd Error 2y') - if( xout(3) .ne. xin(3) ) call stopit( status, - : 'CmpRegion: ANDd Error 3x') - if( yout(3) .ne. yin(3) ) call stopit( status, - : 'CmpRegion: ANDd Error 3y') - if( xout(4) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: ANDd Error 4x') - if( yout(4) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion: ANDd Error 4y') - - - cr2 = ast_cmpregion( r2, r1, AST__AND, ' ', status ) - - fs = ast_convert( cr, cr2, ' ', status ) - if( fs .eq. AST__NULL ) call stopit( status, - : 'CmpRegion: Error 5') - map = ast_getmapping( fs, AST__BASE, AST__CURRENT, status ) - frm = ast_getframe( fs, AST__CURRENT, status ) - cr3 = ast_mapRegion( cr, map, frm, status ) - if( ast_overlap( cr3, cr2, status ) .ne. 6 ) call stopit(status, - : 'CmpRegion: Error 6' ) - - cr = ast_Copy( cr, status ) - call checkdump( cr, 'checkdump CmpRegion: cr', status ) - - - cr2 = ast_Copy( cr, status ) - call ast_negate( cr2, status ) - - cr3 = ast_cmpregion( cr2, cr, AST__OR, ' ', status ) - cr3 = ast_Simplify( cr3, status ) - if( .not. ast_isanullregion( cr3, status ) ) then - call stopit(status, 'CmpRegion: Error 7' ) - else if( .not. ast_getl( cr3, 'negated', status ) ) then - call stopit(status, 'CmpRegion: Error 8' ) - end if - - cr3 = ast_cmpregion( cr2, cr, AST__AND, ' ', status ) - cr3 = ast_Simplify( cr3, status ) - if( .not. ast_isanullregion( cr3, status ) ) then - call stopit(status, 'CmpRegion: Error 9' ) - else if( ast_getl( cr3, 'negated', status ) ) then - call stopit(status, 'CmpRegion: Error 10' ) - end if - - - - f1 = ast_frame( 2, ' ', status ) - p1(1) = 0.0 - p1(2) = 0.0 - p2(1) = 1.0 - p2(2) = 1.0 - r1 = ast_box( f1, 0, p1, p2, AST__NULL, ' ', status ) - - p1(1) = -1.0 - p1(2) = 0.0 - p2(1) = 0.0 - p2(2) = 0.0 - r2 = ast_circle( f1, 0, p1, p2, AST__NULL, ' ', status ) - - p1(1) = 1.0 - p1(2) = 0.0 - p2(1) = 0.0 - p2(2) = 0.0 - r3 = ast_circle( f1, 0, p1, p2, AST__NULL, ' ', status ) - - cr = ast_cmpregion( r2, r3, AST__OR, ' ', status ) - call checkdump( cr, 'checkdump CmpRegion: cr', status ) - - call ast_negate( cr, status ) - cr2 = ast_cmpregion( cr, r1, AST__AND, ' ', status ) - call checkdump( cr2, 'checkdump CmpRegion: cr2', status ) - - cr2 = ast_simplify( cr2, status ) - - xin( 1 ) = 0.0 - xin( 2 ) = 0.2 - xin( 3 ) = 0.5 - xin( 4 ) = -0.5 - - yin( 1 ) = 0.5 - yin( 2 ) = 1.5 - yin( 3 ) = 0.5 - yin( 4 ) = 0.5 - - call ast_tran2( cr2, 4, xin, yin, .true., xout, yout, status ) - - if( xout(1) .ne. xin(1) ) call stopit( status, - : 'CmpRegion:Error 11') - if( yout(1) .ne. yin(1) ) call stopit( status, - : 'CmpRegion:Error 12') - if( xout(2) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion:Error 13') - if( yout(2) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion:Error 14') - if( xout(3) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion:Error 15') - if( yout(3) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion:Error 16') - if( xout(4) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion:Error 17') - if( yout(4) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion:Error 18') - - - - call ast_negate( cr2, status ) - cr2 = ast_simplify( cr2, status ) - call ast_tran2( cr2, 4, xin, yin, .true., xout, yout, status ) - - if( xout(1) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion:Error 19') - if( yout(1) .ne. AST__BAD ) call stopit( status, - : 'CmpRegion:Error 20') - if( xout(2) .ne. xin(2) ) call stopit( status, - : 'CmpRegion:Error 21') - if( yout(2) .ne. yin(2) ) call stopit( status, - : 'CmpRegion:Error 22') - if( xout(3) .ne. xin(3) ) call stopit( status, - : 'CmpRegion:Error 23') - if( yout(3) .ne. yin(3) ) call stopit( status, - : 'CmpRegion:Error 24') - if( xout(4) .ne. xin(4) ) call stopit( status, - : 'CmpRegion:Error 25') - if( yout(4) .ne. yin(4) ) call stopit( status, - : 'CmpRegion:Error 26') - - - - - - call ast_end( status ) - if( status .ne. sai__ok ) write(*,*) 'CmpRegion tests failed' - - end - - - - - - - -* -* Tests the dump function, the loader, and the astOverlap method. -* - subroutine checkdump( obj, text, status ) - - implicit none - include 'SAE_PAR' - include 'AST_PAR' - character text*(*) - integer obj, status, next, end, ch, result, ll, overlap - external mysource, mysink - character buf*45000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - -* Create a Channel which reads and writes to an internal string buffer. - ch = ast_channel( mysource, mysink, ' ', status ) - -* Write the supplied Region out to this Channel. - ll = 160 - next = 1 - if( ast_write( ch, obj, status ) .ne.1 ) then - write(*,*) text - call stopit( status, 'Cannot write supplied object to '// - : 'channel' ) - end if - -* Read an Object back from this Channel. - next = 1 - result = ast_read( ch, status ) - if( result .eq. ast__null ) then - write(*,*) text - call stopit( status, 'Cannot read object from channel' ) - end if - -* Check that it is a Region and its boundary is identical to the supplied -* Region. - overlap = ast_overlap( obj, result, status ) - if( overlap .ne. 5 ) then - write(*,*) 'obj result Overlap: ', overlap - write(*,*) 'obj self-Overlap: ', ast_overlap( obj, obj, - : status ) - write(*,*) 'result self-Overlap: ', ast_overlap( result, - : result, status ) - call ast_Show( obj, status ) - call ast_Show( result, status ) - write(*,*) text - call stopit( status, 'Object has changed' ) - end if - - end - - subroutine mysource( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, ll - character buf*45000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - - if( next .ge. end ) then - call ast_putline( buf, -1, status ) - else - call ast_putline( buf( next : ), ll, status ) - endif - - next = next + ll - - end - - subroutine mysink( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, f, l, ll - character buf*45000 - character line*1000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - - line = ' ' - call ast_getline( line, l, status ) - call chr_fandl( line( : l ), f, l ) - buf( next : ) = line( f : l ) - l = l - f + 1 - - if( next + ll - 1 .ge. 45000 ) then - write(*,*) - call stopit( status, 'Buffer overflow in mysink!!' ) - else if( l .gt. ll ) then - write(*,*) - write(*,*) buf( next : next + l) - write(*,*) 'Line length ',l,' greater than ',ll - call stopit( status, 'Line overflow in mysink!!' ) - else - end = next + l - buf( end : next + ll - 1 ) = ' ' - endif - - next = next + ll - - end - - - - - subroutine checkPrism( status ) - implicit none - include 'AST_PAR' - include 'SAE_PAR' - - integer f1, f2, r1, r2, r3, r4, status - double precision lbnd(5),ubnd(5),p1(5),p2(5) - logical hasframeset - - if( status .ne.sai__ok ) return - - call ast_begin( status ) - - f1 = ast_skyframe( 'system=fk5', status ) - p1(1) = 0.0 - p1(2) = 0.0 - p2(1) = 1.0E-4 - p2(2) = 1.0E-4 - r1 = ast_box( f1, 0, p1, p2, AST__NULL, ' ', status ) - - f2 = ast_specframe( 'Unit=Angstrom', status ) - lbnd( 1 ) = 5000.0 - ubnd( 1 ) = 6000.0 - r2 = ast_interval( f2, lbnd, ubnd, AST__NULL, ' ', status ) - r3 = ast_prism( r1, r2, ' ', status ) - - call checkdump( r3, 'checkdump Prism 1', status ) - - if( ast_overlap( r3, r3, status ) .ne. 5 ) call stopit( status, - : 'Prism 1' ) - - r4 = ast_Simplify( r3, status ) - if( .not. ast_isabox( r4, status ) ) call stopit( status, - : 'Prism 1b' ) - if( hasframeset( r4, status ) ) call stopit( status, 'Prism 1c' ) - if( ast_overlap( r3, r4, status ) .ne. 5 ) call stopit( status, - : 'Prism 1d' ) - - - lbnd( 1 ) = 5500.0 - ubnd( 1 ) = 5800.0 - r2 = ast_interval( f2, lbnd, ubnd, AST__NULL, ' ', status ) - r4 = ast_prism( r1, r2, ' ', status ) - - if( ast_overlap( r3, r4, status ) .ne. 3 ) call stopit( status, - : 'Prism 2' ) - if( ast_overlap( r4, r3, status ) .ne. 2 ) then - write(*,*) ast_overlap( r4, r3, status ),' should be 2' - call stopit( status, 'Prism 3' ) - end if - - lbnd( 1 ) = 5500.0 - ubnd( 1 ) = 6500.0 - r2 = ast_interval( f2, lbnd, ubnd, AST__NULL, ' ', status ) - r4 = ast_prism( r1, r2, ' ', status ) - if( ast_overlap( r3, r4, status ) .ne. 4 ) call stopit( status, - : 'Prism 4' ) - if( ast_overlap( r4, r3, status ) .ne. 4 ) call stopit( status, - : 'Prism 5' ) - - lbnd( 1 ) = 6500.0 - ubnd( 1 ) = 7500.0 - r2 = ast_interval( f2, lbnd, ubnd, AST__NULL, ' ', status ) - r4 = ast_prism( r1, r2, ' ', status ) - if( ast_overlap( r3, r4, status ) .ne. 1 ) call stopit( status, - : 'Prism 6' ) - if( ast_overlap( r4, r3, status ) .ne. 1 ) call stopit( status, - : 'Prism 7' ) - - r4 = ast_copy( r3, status ) - call ast_Negate( r4, status ) - if( ast_overlap( r4, r3, status ) .ne. 6 ) call stopit( status, - : 'Prism 8' ) - - - p1(1) = 2.0E-4 - p1(2) = 2.0E-4 - p2(1) = 1.1E-4 - p2(2) = 1.0E-4 - r1 = ast_box( f1, 0, p1, p2, AST__NULL, ' ', status ) - lbnd( 1 ) = 5000.0 - ubnd( 1 ) = 6000.0 - r2 = ast_interval( f2, lbnd, ubnd, AST__NULL, ' ', status ) - r4 = ast_prism( r1, r2, ' ', status ) - if( ast_overlap( r3, r4, status ) .ne. 1 ) call stopit( status, - : 'Prism 9' ) - - p1(1) = 2.0E-4 - p1(2) = 2.0E-4 - p2(1) = 1.0E-4 - p2(2) = 1.0E-4 - r1 = ast_box( f1, 0, p1, p2, AST__NULL, ' ', status ) - r4 = ast_prism( r1, r2, ' ', status ) - if( ast_overlap( r3, r4, status ) .ne. 4 ) call stopit( status, - : 'Prism 10' ) - - call ast_setl( r3, 'Closed', .false., status ) - call ast_setl( r4, 'Closed', .false., status ) - if( ast_overlap( r3, r4, status ) .ne. 1 ) call stopit( status, - : 'Prism 11' ) - - - - f1 = ast_skyframe( 'system=fk5', status ) - p1(1) = 0.0 - p1(2) = 0.0 - p2(1) = 1.0E-4 - p2(2) = 1.0E-4 - r1 = ast_box( f1, 0, p1, p2, AST__NULL, ' ', status ) - - f2 = ast_specframe( 'System=Wavelen,Unit=Angstrom', status ) - lbnd( 1 ) = 5000.0 - ubnd( 1 ) = AST__BAD - r2 = ast_interval( f2, lbnd, ubnd, AST__NULL, ' ', status ) - r3 = ast_prism( r1, r2, ' ', status ) - - lbnd( 1 ) = 6000.0 - ubnd( 1 ) = AST__BAD - r2 = ast_interval( f2, lbnd, ubnd, AST__NULL, ' ', status ) - r4 = ast_prism( r1, r2, ' ', status ) - - call ast_setc( r3, 'system(1)', 'galactic', status ) - - if( ast_overlap( r3, r4, status ) .ne. 3 ) call stopit( status, - : 'Prism 12' ) - - ubnd( 1 ) = 6000.0 - lbnd( 1 ) = AST__BAD - r2 = ast_interval( f2, lbnd, ubnd, AST__NULL, ' ', status ) - r4 = ast_prism( r1, r2, ' ', status ) - - if( ast_overlap( r3, r4, status ) .ne. 4 ) call stopit( status, - : 'Prism 13' ) - - ubnd( 1 ) = 5000.0 - lbnd( 1 ) = AST__BAD - r2 = ast_interval( f2, lbnd, ubnd, AST__NULL, ' ', status ) - r4 = ast_prism( r1, r2, ' ', status ) - call ast_setc( r4, 'system(3)', 'freq', status ) - if( ast_overlap( r3, r4, status ) .ne. 4 ) call stopit( status, - : 'Prism 14' ) - - call ast_setl( r4, 'closed', .false., status ) - if( ast_overlap( r3, r4, status ) .ne. 1 ) call stopit( status, - : 'Prism 15' ) - - - f1 = ast_skyframe( 'system=fk5', status ) - p1(1) = 0.0 - p1(2) = -1.57 - p2(1) = 0.8 - p2(2) = -1.5 - r1 = ast_box( f1, 0, p1, p2, AST__NULL, ' ', status ) - - f2 = ast_specframe( 'Unit=Angstrom', status ) - lbnd( 1 ) = 5000.0 - ubnd( 1 ) = 6000.0 - r2 = ast_interval( f2, lbnd, ubnd, AST__NULL, ' ', status ) - r3 = ast_prism( r1, r2, ' ', status ) - r4 = ast_Simplify( r3, status ) - - call ast_getregionbounds( r4, lbnd, ubnd, status ) - if( abs( lbnd(1) + 0.8D0 ) .gt. 1.0E-6 ) call stopit( status, - : 'Prism 16' ) - if( abs( lbnd(2) + 1.64D0 ) .gt. 1.0E-6 ) - : call stopit( status, 'Prism 17' ) - if( abs( ubnd(1) - 0.8D0 ) .gt. 1.0E-6 ) - : call stopit( status, 'Prism 18' ) - if( abs( ubnd(2) + 1.5 ) .gt. 1.0E-6 ) - : call stopit( status, 'Prism 19' ) - if( abs( lbnd(3) - 5000.0 ) .gt. 1.0E-10 ) - : call stopit( status, 'Prism 20' ) - if( abs( ubnd(3) - 6000.0 ) .gt. 1.0E-6 ) - : call stopit( status, 'Prism 21' ) - - call ast_end( status ) - if( status .ne. sai__ok ) write(*,*) 'Prism tests failed' - - end - - - - subroutine checkRemoveRegions( status ) - implicit none - - include 'SAE_PAR' - include 'AST_PAR' - - integer status, sf1, sf2, reg, fs, map, fs2 - double precision cen(2), ixin(2), iyin(2), gxin(2), gyin(2), - : xout(2), yout(2) - - if( status .ne. sai__ok ) return - - call ast_begin( status ) - - sf1 = ast_skyframe( 'System=ICRS', status ) - cen(1) = 0.0 - cen(2) = 0.0 - reg = ast_circle( sf1, 1, cen, 0.001D0, AST__NULL, ' ', status ) - - ixin(1) = 0.0 - iyin(1) = 0.0 - ixin(2) = 0.01 - iyin(2) = 0.01 - - call ast_tran2( reg, 2, ixin, iyin, .true., xout, yout, status ) - - if( xout(1) .eq. AST__BAD .or. yout(1) .eq. AST__BAD ) then - call stopit( status, 'RemoveRegions test 1 failed' ) - - else if( abs( xout(1) - ixin(1) ) .gt. 1.0E-10 .or. - : abs( yout(1) - iyin(1) ) .gt. 1.0E-10 ) then - call stopit( status, 'RemoveRegions test 2 failed' ) - - else if( xout(2) .ne. AST__BAD .or. yout(2) .ne. AST__BAD ) then - write(*,*) xout(2), ixin(2) - write(*,*) yout(2), iyin(2) - call stopit( status, 'RemoveRegions test 3 failed' ) - end if - - - - - sf2 = ast_skyframe( 'System=Galactic', status ) - fs = ast_convert( sf1, sf2, ' ', status ) - call ast_tran2( fs, 2, ixin, iyin, .true., gxin, gyin, status ) - - fs2 = ast_frameset( sf2, ' ', status ) - call ast_addframe( fs2, AST__BASE, ast_unitmap( 2, ' ', status ), - : sf2, status ) - - - fs = ast_convert( fs2, reg, ' ', status ) - - - map = ast_getmapping( fs, AST__BASE, AST__CURRENT, status ) - call ast_tran2( map, 2, gxin, gyin, .true., xout, yout, status ) - - if( xout(1) .eq. AST__BAD .or. yout(1) .eq. AST__BAD ) then - call stopit( status, 'RemoveRegions test 4 failed' ) - - else if( abs( xout(1) - ixin(1) ) .gt. 1.0E-10 .or. - : abs( yout(1) - iyin(1) ) .gt. 1.0E-10 ) then - call stopit( status, 'RemoveRegions test 5 failed' ) - - else if( xout(2) .ne. AST__BAD .or. yout(2) .ne. AST__BAD ) then - write(*,*) xout(2), ixin(2) - write(*,*) yout(2), iyin(2) - call stopit( status, 'RemoveRegions test 6 failed' ) - end if - - - - fs2 = ast_removeregions( fs, status ) - - map = ast_getmapping( fs2, AST__BASE, AST__CURRENT, status ) - call ast_tran2( map, 2, gxin, gyin, .true., xout, yout, status ) - - if( xout(1) .eq. AST__BAD .or. yout(1) .eq. AST__BAD ) then - call stopit( status, 'RemoveRegions test 7 failed' ) - - else if( abs( xout(1) - ixin(1) ) .gt. 1.0E-10 .or. - : abs( yout(1) - iyin(1) ) .gt. 1.0E-10 ) then - call stopit( status, 'RemoveRegions test 8 failed' ) - - else if( abs( xout(2) - ixin(2) ) .gt. 1.0E-10 .or. - : abs( yout(2) - iyin(2) ) .gt. 1.0E-10 ) then - call stopit( status, 'RemoveRegions test 9 failed' ) - end if - - - - call ast_end( status ) - - end - - - - - - subroutine checkConvex( status ) - implicit none - - include 'SAE_PAR' - include 'AST_PAR' - - integer nx, ny, nel - parameter( nx = 8 ) - parameter( ny = 7 ) - parameter( nel = nx*ny ) - - integer status, poly, lbnd(2), ubnd(2), npoint - real array( nx, ny ) - double precision points( 10, 2 ) - - data array / nel*0.0 / - data lbnd / -10, 3 / - - if( status .ne. sai__ok ) return - - call ast_begin( status ) - - ubnd( 1 ) = lbnd( 1 ) + nx- 1 - ubnd( 2 ) = lbnd( 2 ) + ny- 1 - - array( 6, 1 ) = 1.0 - array( 7, 1 ) = 1.0 - array( 8, 1 ) = 1.0 - array( 7, 2 ) = 1.0 - array( 8, 2 ) = 1.0 - array( 2, 3 ) = 1.0 - array( 8, 3 ) = 1.0 - array( 1, 4 ) = 1.0 - array( 1, 6 ) = 1.0 - array( 2, 6 ) = 1.0 - array( 6, 6 ) = 1.0 - - poly = ast_convexr( 1.0, AST__EQ, array, lbnd, ubnd, .FALSE., - : status ) - - call ast_getregionpoints( poly, 10, 2, npoint, points, status ) - - if( npoint .ne. 7 ) call stopit( status, 'Convex 1' ) - if( points( 1, 1 ) .ne. -3) call stopit( status, 'Convex 2' ) - if( points( 1, 2 ) .ne. 3) call stopit( status, 'Convex 3' ) - if( points( 2, 1 ) .ne. -3) call stopit( status, 'Convex 4' ) - if( points( 2, 2 ) .ne. 5) call stopit( status, 'Convex 5' ) - if( points( 3, 1 ) .ne. -5) call stopit( status, 'Convex 6' ) - if( points( 3, 2 ) .ne. 8) call stopit( status, 'Convex 7' ) - if( points( 4, 1 ) .ne. -10) call stopit( status, 'Convex 8' ) - if( points( 4, 2 ) .ne. 8) call stopit( status, 'Convex 9' ) - if( points( 5, 1 ) .ne. -10) call stopit( status, 'Convex 10' ) - if( points( 5, 2 ) .ne. 6) call stopit( status, 'Convex 11' ) - if( points( 6, 1 ) .ne. -9) call stopit( status, 'Convex 12' ) - if( points( 6, 2 ) .ne. 5) call stopit( status, 'Convex 13' ) - if( points( 7, 1 ) .ne. -5) call stopit( status, 'Convex 14' ) - if( points( 7, 2 ) .ne. 3) call stopit( status, 'Convex 15' ) - - call ast_end( status ) - - end - diff --git a/ast/ast_tester/testskyframe.f b/ast/ast_tester/testskyframe.f deleted file mode 100644 index 6359d63..0000000 --- a/ast/ast_tester/testskyframe.f +++ /dev/null @@ -1,89 +0,0 @@ - program testskyframe - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - integer status, sf1, sf2, fs - double precision vals(5) - - status = sai__ok - - sf1 = ast_skyframe( 'system=fk5,epoch=2015.0', status ) - sf2 = ast_skyframe( 'system=fk5,epoch=2015.1', status ) - fs = ast_convert( sf1, sf2, 'SKY', status ) - if( fs .eq. AST__NULL ) then - call stopit( status, 'Error 0' ) - end if - - if( .not. ast_isaunitmap( ast_getmapping( fs, ast__base, - : ast__current, status ), - : status ) ) then - call stopit( status, 'Error 1' ) - end if - - if( ast_getd( sf1, 'SkyTol', status ) .ne. 0.001D0 ) then - call stopit( status, 'Error 2' ) - end if - - call ast_setd( sf2, 'SkyTol', 1.0D-6, status ) - fs = ast_convert( sf1, sf2, 'SKY', status ) - - if( ast_isaunitmap( ast_getmapping( fs, ast__base, - : ast__current, status ), - : status ) ) then - call stopit( status, 'Error 3' ) - end if - - sf2 = ast_skyframe( 'system=fk5,epoch=2016.6', status ) - fs = ast_convert( sf1, sf2, 'SKY', status ) - if( ast_isaunitmap( ast_getmapping( fs, ast__base, - : ast__current, status ), - : status ) ) then - call stopit( status, 'Error 4' ) - end if - - - vals(1) = 6.1D0 - vals(2) = 6.15D0 - vals(3) = 6.2D0 - vals(4) = 6.25D0 - vals(5) = 6.3D0 - call ast_axnorm( sf1, 1, 0, 5, vals, status ) - if( vals(1) .ne. 6.1D0 .or. - : vals(2) .ne. 6.15D0 .or. - : vals(3) .ne. 6.2D0 .or. - : vals(4) .ne. 6.25D0 .or. - : vals(5) .ne. 6.3D0 - 2*AST__DPI ) then - call stopit( status, 'Error 5' ) - end if - - call ast_axnorm( sf1, 1, 1, 5, vals, status ) - if( vals(1) .ne. 6.1D0 - 2*AST__DPI .or. - : vals(2) .ne. 6.15D0 - 2*AST__DPI .or. - : vals(3) .ne. 6.2D0 - 2*AST__DPI .or. - : vals(4) .ne. 6.25D0 - 2*AST__DPI .or. - : vals(5) .ne. 6.3D0 - 2*AST__DPI ) then - call stopit( status, 'Error 6' ) - end if - - if( status .eq. sai__ok ) then - write(*,*) 'All SkyFrame tests passed' - else - write(*,*) 'SkyFrame tests failed' - end if - - end - - subroutine stopit( status, text ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - - if( status .ne. sai__ok ) return - status = sai__error - write(*,*) text - - end - - diff --git a/ast/ast_tester/testspecflux.f b/ast/ast_tester/testspecflux.f deleted file mode 100644 index ba19984..0000000 --- a/ast/ast_tester/testspecflux.f +++ /dev/null @@ -1,331 +0,0 @@ - program testspecflux - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - double precision xin, xout,yin, yout - integer status, sff, sff2, sf, ff, ff2, mp, fs, sf2,perm(2),csff - status = sai__ok - - sf = ast_specframe( 'system=freq,unit=GHz', status ) - ff = ast_Fluxframe( 123.0D0, sf, 'Unit=Jy', status ) - sff = ast_specfluxframe( sf, ff, ' ', status ) - - - if( ast_GetC( sff, 'class', status ) .ne. 'SpecFluxFrame' ) then - call stopit( status, 'Error 0' ) - end if - - if( ast_GetD( sff, 'specval', status ) .ne. 123.0D0 ) then - call stopit( status, 'Error 1' ) - end if - - if( ast_Test( sff, 'specval', status ) ) then - call stopit( status, 'Error 2' ) - end if - - call ast_setd( sff, 'specval', 333.3D0, status ) - if( ast_GetD( sff, 'specval', status ) .ne. 333.3D0 ) then - call stopit( status, 'Error 3' ) - end if - - if( .not. ast_Test( sff, 'specval', status ) ) then - call stopit( status, 'Error 4' ) - end if - - call ast_clear( sff, 'specval', status ) - - if( ast_GetD( sff, 'specval', status ) .ne. 123.0D0 ) then - call stopit( status, 'Error 5' ) - end if - - if( ast_Test( sff, 'specval', status ) ) then - call stopit( status, 'Error 6' ) - end if - - - call checkDump( sff, 'CheckDump 1', status ) - - - ff2 = ast_Fluxframe( 123.1D0, sf, 'System=flxdnw', status ) - - if( ast_getc( ff2, 'unit', status ) .ne. 'W/m^2/Angstrom' ) - : call stopit( status, 'Error 6B' ) - if( ast_getc( ff2, 'system', status ) .ne. 'FLXDNW' ) - : call stopit( status, 'error 6C' ) - - sff2 = ast_specfluxframe( sf, ff2, ' ', status ) - if( ast_GetC( sff2, 'class', status ) .ne. 'SpecFluxFrame' ) then - call stopit( status, 'Error 7' ) - end if - - csff = ast_copy( sff,status ) - fs = ast_convert( sff, sff2, ' ', status ) - if( fs .eq. ast__null ) call stopit( status, 'error 8' ) - - yin = 1.0D0 - xin = 2.0D0 - call ast_tran2( fs, 1, xin, yin, .true., xout, yout, status ) - - if( abs(yout - 1.33425638D-26) .gt. 1.0D-32 ) - : call stopit( status, 'error 9' ) - - if( xout .ne. 2.0D0 ) call stopit( status, 'error 10' ) - - perm(1)=2 - perm(2)=1 - call ast_PermAxes( sff2, perm, status ) - - fs = ast_convert( sff, sff2, ' ', status ) - if( fs .eq. ast__null ) call stopit( status, 'error 11' ) - call ast_tran2( fs, 1, xin, yin, .true., xout, yout, status ) - - if( abs(xout - 1.33425638D-26) .gt. 1.0D-32 ) - : call stopit( status, 'error 12' ) - - if( yout .ne. 2.0D0 ) call stopit( status, 'error 13' ) - - perm(1)=2 - perm(2)=1 - call ast_PermAxes( sff, perm, status ) - - fs = ast_convert( sff, sff2, ' ', status ) - if( fs .eq. ast__null ) call stopit( status, 'error 14' ) - - yin = 2.0D0 - xin = 1.0D0 - call ast_tran2( fs, 1, xin, yin, .true., xout, yout, status ) - - if( abs(xout - 1.33425638D-26) .gt. 1.0D-32 ) - : call stopit( status, 'error 15' ) - - if( yout .ne. 2.0D0 ) call stopit( status, 'error 16' ) - - - - ff2 = ast_Fluxframe( AST__BAD, AST__NULL, 'Unit=log(W/m2/nm)', - : status ) - if( ast_getc( ff2, 'system', status ) .ne. 'FLXDNW' ) - : call stopit( status, 'error 17' ) - sff2 = ast_specfluxframe( sf, ff2, ' ', status ) - - fs = ast_convert( csff, sff2, ' ', status ) - if( fs .eq. ast__null ) call stopit( status, 'error 18' ) - - yin = 1.0D0 - xin = 2.0D0 - call ast_tran2( fs, 1, xin, yin, .true., xout, yout, status ) - - if( abs(yout + 24.8747607 ) .gt. 0.000001 ) then - write(*,*) yout + 24.8747607 - call stopit( status, 'error 19' ) - endif - - if( xout .ne. 2.0D0 ) call stopit( status, 'error 20' ) - - - call ast_tran2( fs, 1, xout, yout, .false., xin, yin, status ) - - if( abs( xin - 2.0D0 ) .gt. 1.0D-9 ) call stopit( status, - : 'error 21' ) - if( abs( yin - 1.0D0 ) .gt. 1.0D-9 ) call stopit( status, - : 'error 22' ) - - - - - - ff2 = ast_Fluxframe( AST__BAD, AST__NULL, 'Unit=log(W/m2/nm/sr)', - : status ) - if( ast_getc( ff2, 'system', status ) .ne. 'SFCBRW' ) - : call stopit( status, 'error 23' ) - sff2 = ast_specfluxframe( sf, ff2, ' ', status ) - - sf = ast_specframe( 'system=freq,unit=GHz', status ) - ff = ast_Fluxframe( 123.0D0, sf, 'Unit=Jy/deg**2', status ) - if( ast_getc( ff, 'system', status ) .ne. 'SFCBR' ) - : call stopit( status, 'error 24' ) - sff = ast_specfluxframe( sf, ff, ' ', status ) - - fs = ast_convert( sff, sff2, ' ', status ) - if( fs .eq. ast__null ) call stopit( status, 'error 25' ) - - yin = 1.0D0 - xin = 2.0D0 - call ast_tran2( fs, 1, xin, yin, .true., xout, yout, status ) - - if( abs(yout + 21.3585154D0 ) .gt. 0.000001 ) - : call stopit( status, 'error 26' ) - - if( xout .ne. 2.0D0 ) call stopit( status, 'error 27' ) - - call ast_tran2( fs, 1, xout, yout, .false., xin, yin, status ) - if( abs( xin - 2.0D0 ) .gt. 1.0D-9 ) call stopit( status, - : 'error 28' ) - if( abs( yin - 1.0D0 ) .gt. 1.0D-9 ) call stopit( status, - : 'error 29' ) - - - - - - - - - - - - - - - - - - if( status .eq. sai__ok ) then - write(*,*) 'All SpecFluxFrame tests passed' - else - write(*,*) 'SpecFluxFrame tests failed' - end if - - end - - subroutine stopit( status, text ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - - if( status .ne. sai__ok ) return - status = sai__error - write(*,*) text - - end - - - subroutine checkdump( obj, text, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - character text*(*) - integer obj, status, next, end, ch, result, ll, overlap - external mysource, mysink - character buf*25000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - - ch = ast_channel( mysource, mysink, ' ', status ) - - - ll = 110 - next = 1 - if( ast_write( ch, obj, status ) .ne.1 ) then - write(*,*) text - call stopit( status, 'Cannot write supplied object to '// - : 'channel' ) - end if - - next = 1 - result = ast_read( ch, status ) - if( result .eq. ast__null ) then - write(*,*) text - call stopit( status, 'Cannot read object from channel' ) - end if - - - - if( ast_getd( obj, 'specval', status ) .ne. - : ast_getd( result, 'specval', status ) ) then - call ast_Show( obj, status ) - call ast_Show( result, status ) - write(*,*) text - call stopit( status, 'Object has changed' ) - end if - - end - - subroutine sink1( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - logical fsfound, done - common /sink1com/ fsfound, done - - integer status, l - character line*200 - - if( status .ne. sai__ok ) return - call ast_getline( line, l, status ) - - if( index( line( : l ),'Unc =' ) .GT. 0 ) then - done = .true. - - else if( .not. done .and. - : index( line( : l ),'FrameSet' ) .GT. 0 ) then - fsfound= .true. - end if - - end - - subroutine mysource( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, ll - character buf*25000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - - if( next .ge. end ) then - call ast_putline( buf, -1, status ) - else - call ast_putline( buf( next : ), ll, status ) - endif - - next = next + ll - - end - - subroutine mysink( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, f, l, ll - character buf*25000 - character line*1000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - - line = ' ' - call ast_getline( line, l, status ) - call chr_fandl( line( : l ), f, l ) - buf( next : ) = line( f : l ) - l = l - f + 1 - - if( next + ll - 1 .ge. 25000 ) then - write(*,*) - call stopit( status, 'Buffer overflow in mysink!!' ) - else if( l .gt. ll ) then - write(*,*) - write(*,*) buf( next : next + l) - write(*,*) 'Line length ',l - call stopit( status, 'Line overflow in mysink!!' ) - else - end = next + l - buf( end : next + ll - 1 ) = ' ' - endif - - next = next + ll - - end - - diff --git a/ast/ast_tester/testspecframe.f b/ast/ast_tester/testspecframe.f deleted file mode 100644 index 4af2606..0000000 --- a/ast/ast_tester/testspecframe.f +++ /dev/null @@ -1,251 +0,0 @@ - program testspecframe - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - double precision rf, x, y - integer status, sf, sf1, sf2, fs - status = sai__ok - - sf = ast_specframe( 'system=freq,unit=Hz', status ) - if( ast_GetD( sf, 'SpecOrigin', status ) .ne. 0.0 ) then - call stopit( status, 'Error 0' ) - end if - - rf = ast_GetD( sf, 'RestFreq', status ) - call ast_SetD( sf, 'SpecOrigin', rf*1.0D9, status ) - if( abs( ast_GetD( sf, 'SpecOrigin', status ) - rf*1.0D9 ) - : .gt. 0.1 ) then - call stopit( status, 'Error 1' ) - end if - - call ast_setc( sf, 'Unit(1)', 'GHz', status ) - if( ast_GetD( sf, 'SpecOrigin', status ) .ne. rf ) then - call stopit( status, 'Error 2' ) - end if - - call checkdump( sf, 'Error 3', status ) - - call ast_setc( sf, 'System', 'vrad', status ) - if( abs( ast_GetD( sf, 'SpecOrigin', status ) ) .gt. 1.0D-8 ) then - write(*,*) ast_GetD( sf, 'SpecOrigin', status ) - call stopit( status, 'Error 4' ) - end if - - call ast_setc( sf, 'System', 'freq', status ) - call ast_setc( sf, 'Unit(1)', 'Hz', status ) - - if( abs( ast_GetD( sf, 'SpecOrigin', status ) - rf*1.0D9 ) - : .gt. 0.1 ) then - write(*,*) ast_GetD( sf, 'SpecOrigin', status ) - call stopit( status, 'Error 5' ) - end if - - call ast_setc( sf, 'StdOfRest', 'LSRD', status ) - if( abs( ast_GetD( sf, 'SpecOrigin', status ) - - : rf*1.00000212890848D9 ) .gt. 10.0 ) then - write(*,*) ast_GetD( sf, 'SpecOrigin', status ) - write(*,*) 'Should be ',rf*1.00000212890848D9 - call stopit( status, 'Error 6' ) - end if - - - sf1 = ast_specframe( 'system=freq,unit=Hz', status ) - call ast_setd( sf1, 'SpecOrigin', 1.0D20, status ) - sf2 = ast_specframe( 'system=freq,unit=Hz', status ) - call ast_setd( sf2, 'SpecOrigin', 1.01D20, status ) - fs = ast_convert( sf1, sf2, "", status ); - - x = 0.03D20 - call ast_tran1( fs, 1, x, .true., y, status ) - if( abs( y - 0.02D20 ) .gt. 0.0 ) then - write(*,*) y, y - 0.02D20 - call stopit( status, 'Error 7' ) - end if - - if( ast_getl( sf1, 'AlignSpecOffset', status ) ) then - call stopit( status, 'Error 8' ) - end if - call ast_setl( sf1, 'AlignSpecOffset', .true., status ) - call ast_setl( sf2, 'AlignSpecOffset', .true., status ) - - fs = ast_convert( sf1, sf2, "", status ); - - x = 0.03D20 - call ast_tran1( fs, 1, x, .true., y, status ) - if( abs( y - x ) .gt. 0.0 ) then - write(*,*) y, y - x - call stopit( status, 'Error 9' ) - end if - - sf = ast_specframe( 'system=freq,unit=Hz', status ) - call ast_setc( sf, 'SourceVRF', 'LSRK', status ) - call ast_setd( sf, 'SourceVel', 1000.0D0, status ) - - call ast_setc( sf, 'SourceVRF', 'BARY', status ) - call ast_setc( sf, 'SourceSys', 'ZOPT', status ) - - if( abs( ast_getd( sf, 'SourceVel', status ) - - : 0.00334028336870307D0 ) .gt. 1.0D-10 ) then - write(*,*) ast_getd( sf, 'SourceVel', status ) - call stopit( status, 'Error 11' ) - end if - - call checkdump( sf, 'Error 10', status ) - call ast_setc( sf, 'SourceVRF', 'LSRK', status ) - call ast_setc( sf, 'SourceSys', 'VREL', status ) - - if( abs( ast_getd( sf, 'SourceVel', status ) - - : 1000.0D0 ) .gt. 1.0D-6 ) then - write(*,*) ast_getd( sf, 'SourceVel', status ) - call stopit( status, 'Error 12' ) - end if - - if( status .eq. sai__ok ) then - write(*,*) 'All SpecFrame tests passed' - else - write(*,*) 'SpecFrame tests failed' - end if - - end - - subroutine stopit( status, text ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - - if( status .ne. sai__ok ) return - status = sai__error - write(*,*) text - - end - - - subroutine checkdump( obj, text, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - character text*(*) - integer obj, status, next, end, ch, result, ll, overlap - external mysource, mysink - character buf*25000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - - ch = ast_channel( mysource, mysink, ' ', status ) - - - ll = 110 - next = 1 - if( ast_write( ch, obj, status ) .ne.1 ) then - write(*,*) text - call stopit( status, 'Cannot write supplied object to '// - : 'channel' ) - end if - - next = 1 - result = ast_read( ch, status ) - if( result .eq. ast__null ) then - write(*,*) text - call stopit( status, 'Cannot read object from channel' ) - end if - - - - if( ast_getd( obj, 'specorigin', status ) .ne. - : ast_getd( result, 'specorigin', status ) ) then - call ast_Show( obj, status ) - call ast_Show( result, status ) - write(*,*) text - call stopit( status, 'Object has changed' ) - end if - - end - - subroutine sink1( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - logical fsfound, done - common /sink1com/ fsfound, done - - integer status, l - character line*200 - - if( status .ne. sai__ok ) return - call ast_getline( line, l, status ) - - if( index( line( : l ),'Unc =' ) .GT. 0 ) then - done = .true. - - else if( .not. done .and. - : index( line( : l ),'FrameSet' ) .GT. 0 ) then - fsfound= .true. - end if - - end - - subroutine mysource( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, ll - character buf*25000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - - if( next .ge. end ) then - call ast_putline( buf, -1, status ) - else - call ast_putline( buf( next : ), ll, status ) - endif - - next = next + ll - - end - - subroutine mysink( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, f, l, ll - character buf*25000 - character line*1000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - - line = ' ' - call ast_getline( line, l, status ) - call chr_fandl( line( : l ), f, l ) - buf( next : ) = line( f : l ) - l = l - f + 1 - - if( next + ll - 1 .ge. 25000 ) then - write(*,*) - call stopit( status, 'Buffer overflow in mysink!!' ) - else if( l .gt. ll ) then - write(*,*) - write(*,*) buf( next : next + l) - write(*,*) 'Line length ',l - call stopit( status, 'Line overflow in mysink!!' ) - else - end = next + l - buf( end : next + ll - 1 ) = ' ' - endif - - next = next + ll - - end - - diff --git a/ast/ast_tester/teststc.f b/ast/ast_tester/teststc.f deleted file mode 100644 index 47c3c02..0000000 --- a/ast/ast_tester/teststc.f +++ /dev/null @@ -1,1858 +0,0 @@ - program teststc - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'PRM_PAR' - - - - integer status - - status = sai__ok - - -c call ast_SetWatchId( 565300 ) - - call ast_begin( status ) - call Example5( status ) - call Example1( status ) - call Example1b( status ) - call Example4( status ) - call misc( status ) - call Example3( status ) - call Example2( status ) - call ast_end( status ) - -c call ast_listissued( 'teststc' ) - - - if( status .eq. sai__ok ) then - write(*,*) 'All Stc tests passed' - else - write(*,*) 'Stc tests failed' - end if - - end - - - subroutine misc( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'AST_ERR' - - - integer status, obj1, obj2, overlap - double precision x, y, xo, yo - - if( status .ne. sai__ok ) return - - call ast_begin( status ) - - call puteg( 'teststc_eg6', 1, status ) - call xmlread( 1, obj1, ' ', status ) - obj1 = ast_simplify( obj1, status ) - call checkdump( obj1, 'checkdump 1', status ) - - call puteg( 'teststc_eg7', 1, status ) - call xmlread( 1, obj2, ' ', status ) - obj2 = ast_simplify( obj2, status ) - call checkdump( obj2, 'checkdump 2', status ) - - overlap = ast_overlap( obj1, obj2, status ) - if( overlap .ne. 4 .and.status .eq. sai__ok ) then - write(*,*) 'Overlap is ',overlap,' (should be 4)' - call stopit( status, 'Error 1' ) - endif - - call puteg( 'teststc_eg8', 1, status ) - call xmlread( 1, obj2, ' ', status ) - obj2 = ast_simplify( obj2, status ) - call checkdump( obj2, 'checkdump 3', status ) - - overlap = ast_overlap( obj1, obj2, status ) - if( overlap .ne. 3 .and.status .eq. sai__ok ) then - write(*,*) 'Overlap is ',overlap,' (should be 3)' - call stopit( status, 'Error 2' ) - endif - - overlap = ast_overlap( obj2, obj1, status ) - if( overlap .ne. 2 .and.status .eq. sai__ok ) then - write(*,*) 'Overlap is ',overlap,' (should be 2)' - call stopit( status, 'Error 3' ) - endif - - call puteg( 'teststc_eg9', 1, status ) - call xmlread( 1, obj2, ' ', status ) - - overlap = ast_overlap( obj1, obj2, status ) - if( overlap .ne. 1 .and.status .eq. sai__ok ) then - write(*,*) 'Overlap is ',overlap,' (should be 1)' - call stopit( status, 'Error 4' ) - endif - - - call puteg( 'teststc_eg10', 1, status ) - call xmlread( 1, obj2, ' ', status ) - - x = 2.4958208 - y = 0.73303829 - call ast_tran2( obj2, 1, x, y, .true., xo, yo, status ) - if( xo .ne. 2.4958208 .or. yo .ne. 0.73303829 ) then - call stopit( status, 'Error 5' ) - end if - - x = 2.4958208 - y = -0.73303829 - call ast_tran2( obj2, 1, x, y, .true., xo, yo, status ) - if( xo .ne. AST__BAD .or. yo .ne. AST__BAD ) then - call stopit( status, 'Error 6' ) - end if - - - - - call ast_end( status ) - - if( status .ne. sai__ok ) write(*,*) 'teststc: miscellaneous '// - : 'tests failed' - - end - - subroutine Example1( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'AST_ERR' - - integer status, obj2, obj, i, j, unc, km, nval, fs, m, r, f, - : axes(2), map - double precision in(8,4), out(8,4), lbnd(5), ubnd(5) - character cvals(10)*30 - - if( status .ne. sai__ok ) return - - call ast_begin( status ) - -* Put an example of an STCResourceProfile into file 1. - call puteg( 'teststc_eg1', 1, status ) - -* Use a new XmlChan to read an object from file 1,and simplify it. - call xmlread( 1, obj, ' ', status ) - obj = ast_simplify( obj, status ) - -* Write out the object through a Channel and read it back. - call checkdump( obj, 'checkdump 1', status ) - -* Test simplify by negating and simplifying twice. - call ast_negate( obj, status ) - obj = ast_simplify( obj, status ) - call ast_negate( obj, status ) - obj = ast_simplify( obj, status ) - -* Check it is a STCResourceProfile - if( .not. ast_isastcresourceprofile( obj, status ) ) - : call stopit( status, 'Error 1' ) - -* Check it contains an Interval. - if( .not. ast_isainterval( ast_getstcregion( obj, status ), - : status ) ) - : call stopit( status, 'Error 1a' ) - -* Timescale should be tt. Try changing it to TAI. - if( ast_getc( obj, 'timescale', status ) .ne. 'TT' ) - : call stopit( status, 'Error 0a' ) - - if( abs( ast_getd(obj,'TimeOrigin',status)-51382.6666666D0 ) - : .gt. 1.0D-7 ) call stopit( status, 'Error 0b' ) - - call ast_getregionbounds( obj, lbnd, ubnd, status ) - if( lbnd(3) .ne. 0.0 ) call stopit( status, 'Error 0c' ) - - call ast_set( obj, 'timescale=tai', status ) - if( ast_getc( obj, 'timescale', status ) .ne. 'TAI' ) - : call stopit( status, 'Error 0d' ) - - if( abs( ast_getd(obj,'TimeOrigin',status)-51382.6662941667D0 ) - : .gt. 1.0D-7 ) call stopit( status, 'Error 0e' ) - - call ast_getregionbounds( obj, lbnd, ubnd, status ) - if( abs( lbnd(3) ) .gt. 1.0D-6 ) THEN - write(*,*) lbnd(3) - call stopit( status, 'Error 0f' ) - END IF - - - call ast_set( obj, 'timescale=tt', status ) - obj = ast_Simplify( obj, status ) - if( ast_getc( obj, 'timescale', status ) .ne. 'TT' ) - : call stopit( status, 'Error 0g' ) - - if( abs( ast_getd(obj,'TimeOrigin',status)-51382.6666666D0 ) - : .gt. 1.0D-7 ) call stopit( status, 'Error 0h' ) - - call ast_getregionbounds( obj, lbnd, ubnd, status ) - if( abs( lbnd(3) ) .gt. 1.0D-6 ) - : call stopit( status, 'Error 0i' ) - - - -* Other tests - if( ast_getd( obj, 'fillfactor', status ) .ne. 0.02D0 ) - : call stopit( status, 'Error 1b' ) - - if( ast_getc( obj, 'ident', status ) .ne. 'AllSky-CXO' ) - : call stopit( status, 'Error 1c' ) - - if( ast_getc( obj, 'domain(3)', status ) .ne. 'TIME' ) - : call stopit( status, 'Error 2' ) - - if( ast_getc( obj, 'title(3)', status ) .ne. 'Time' ) - : call stopit( status, 'Error 2a' ) - - if( ast_getc( obj, 'label(3)', status ) .ne. - : 'Modified Julian Date offset from 1999-07-23 16:00:00' ) THEN - call stopit( status, 'Error 2b' ) - end if - - if( ast_getc( obj, 'domain(1)', status ) .ne. 'SKY' ) - : call stopit( status, 'Error 3' ) - - if( ast_getc( obj, 'system(1)', status ) .ne. 'ICRS' ) - : call stopit( status, 'Error 3a' ) - - if( ast_getc( obj, 'label(1)', status ) .ne. 'Right ascension' ) - : call stopit( status, 'Error 3b' ) - - if( ast_getc( obj, 'label(2)', status ) .ne. 'Declination' ) - : call stopit( status, 'Error 3c' ) - - if( ast_getc( obj, 'title(2)', status ) .ne. 'Space' ) - : call stopit( status, 'Error 3d' ) - - if( ast_getc( obj, 'domain(2)', status ) .ne. 'SKY' ) - : call stopit( status, 'Error 4' ) - - if( ast_getc( obj, 'domain(4)', status ) .ne. 'SPECTRUM' ) - : call stopit( status, 'Error 5' ) - - if( ast_getc( obj, 'system(4)', status ) .ne. 'ENER' ) - : call stopit( status, 'Error 5a' ) - - if( ast_getc( obj, 'stdofrest', status ) .ne. 'Topocentric' ) - : call stopit( status, 'Error 5b' ) - - if( ast_getc( obj, 'title(4)', status ) .ne. - : 'Energy (Topocentric)' ) call stopit( status, 'Error 5c' ) - - if( ast_getc( obj, 'unit(4)', status ) .ne. 'keV' ) - : call stopit( status, 'Error 5d' ) - - if( ast_geti( obj, 'naxes', status ) .ne. 4 ) - : call stopit( status, 'Error 6' ) - - in(1,1) = 10.0 - in(1,2) = 10.0 - in(1,3) = -0.1 - in(1,4) = 0.11 - - in(2,1) = -10.0 - in(2,2) = 10.0 - in(2,3) = 0.1 - in(2,4) = 0.11 - - in(3,1) = 0.0 ! inside - in(3,2) = 0.0 - in(3,3) = 100.0 - in(3,4) = 0.13 - - in(4,1) = -1.0 - in(4,2) = 1.0 - in(4,3) = -100.0 - in(4,4) = 0.13 - - in(5,1) = 10.0 - in(5,2) = 10.0 - in(5,3) = -1000.0 - in(5,4) = 9.9 - - in(6,1) = -10.0 ! inside - in(6,2) = 10.0 - in(6,3) = 1000.0 - in(6,4) = 9.9 - - in(7,1) = 0.0 - in(7,2) = 0.0 - in(7,3) = 10.0 - in(7,4) = 10.1 - - in(8,1) = -1.0 - in(8,2) = 1.0 - in(8,3) = -10.0 - in(8,4) = 10.1 - - call ast_trann( obj, 8, 4, 8, in, .true., 4, 8, out, status ) - - do i = 1, 8 - if( i .eq. 3 .or. i .eq. 6 ) then - do j = 1, 4 - if( out(i,j) .ne. in(i,j) ) then - if( status .eq. sai__ok ) then - write(*,*) i,j,out(i,j),in(i,j) - call stopit( status, 'Error 7' ) - end if - end if - end do - else - do j = 1, 4 - if( out(i,j) .ne. AST__BAD ) then - if( status .eq. sai__ok ) then - write(*,*) i,j,out(i,j),in(i,j) - call stopit( status, 'Error 8' ) - end if - end if - end do - end if - end do - -* AstroCoords - if( ast_getstcncoord( obj, status ) .ne. 1 ) then - call stopit( status, 'Error 25' ) - end if - km = ast_getstccoord( obj, 1, status ) - - if( ast_mapsize( km, status ) .ne. 4 ) then - call stopit( status, 'Error 25b' ) - endif - - if( .not. ast_mapget0A( km, AST__STCERROR, r, status ) ) then - call stopit( status, 'Error 26' ) - else if( .not.ast_isabox( r, status ) ) then - call stopit( status, 'Error 27' ) - else if( ast_geti( r, 'naxes', status ) .ne. 4 ) then - call stopit( status, 'Error 28' ) - else - fs = ast_convert( obj, r, ' ', status ) - if( fs .eq. AST__NULL ) then - call stopit( status, 'Error 29' ) - else - m = ast_getMapping( fs, AST__BASE, AST__CURRENT, status ) - m = ast_simplify( m, status ) - if( .not. ast_isaunitmap( m, status ) ) then - call stopit( status, 'Error 30' ) - endif - end if - - - call ast_getregionbounds( r, lbnd, ubnd, status ) - - if( abs( lbnd(1)+2.42406841E-06 ) .gt. 0.0001E-6 ) - : call stopit( status, 'Error 31a' ) - if( abs( ubnd(1)-2.42406841E-06 ) .gt. 0.0001E-6 ) - : call stopit( status, 'Error 31b' ) - if( abs( lbnd(2)+2.42406841E-06 ) .gt. 0.0001E-6 ) - : call stopit( status, 'Error 31c' ) - if( abs( ubnd(2)-2.42406841E-06 ) .gt. 0.0001E-6 ) - : call stopit( status, 'Error 31d' ) - if( abs( 0.5*(ubnd(3)+lbnd(3)) ) .gt. 1.0E-10) - : call stopit( status, 'Error 31e' ) - if( abs( 0.5*(ubnd(3)-lbnd(3))-0.578703703718D-09 ) .gt. - : 1.0E-15 ) call stopit( status, 'Error 31e2' ) - if( abs( lbnd(4)-5.01 ) .gt. 0.00001 ) - : call stopit( status, 'Error 31g' ) - if( abs( ubnd(4)-5.11 ) .gt. 0.00001 ) - : call stopit( status, 'Error 31h' ) - - end if - - - if( .not. ast_mapget1C( km, AST__STCNAME, 6, nval, cvals, - : status ) ) then - call stopit( status, 'Error 32' ) - - else if( nval .ne. 4 ) then - call stopit( status, 'Error 33' ) - else - if( cvals(1) .ne. 'Position' ) - : call stopit( status, 'Error 34a' ) - if( cvals(2) .ne. 'Position' ) - : call stopit( status, 'Error 34b' ) - if( cvals(3) .ne. 'Time' ) - : call stopit( status, 'Error 34c' ) - if( cvals(4) .ne. 'Energy' ) - : call stopit( status, 'Error 34d' ) - end if - - if( .not. ast_mapget0A( km, AST__STCRES, r, status ) ) then - call stopit( status, 'Error 35' ) - else if( .not.ast_isabox( r, status ) ) then - call stopit( status, 'Error 36' ) - else if( ast_geti( r, 'naxes', status ) .ne. 4 ) then - call stopit( status, 'Error 37' ) - else - fs = ast_convert( obj, r, ' ', status ) - if( fs .eq. AST__NULL ) then - call stopit( status, 'Error 38' ) - else - m = ast_getMapping( fs, AST__BASE, AST__CURRENT, status ) - m = ast_simplify( m, status ) - if( .not. ast_isaunitmap( m, status ) ) then - call stopit( status, 'Error 39' ) - endif - end if - - call ast_getregionbounds( r, lbnd, ubnd, status ) - - if( abs( lbnd(1)+1.2120342E-06 ) .gt. 0.0001E-6 ) - : call stopit( status, 'Error 40a' ) - if( abs( ubnd(1)-1.2120342E-06 ) .gt. 0.0001E-6 ) - : call stopit( status, 'Error 40b' ) - if( abs( lbnd(2)+1.2120342E-06 ) .gt. 0.0001E-6 ) - : call stopit( status, 'Error 40c' ) - if( abs( ubnd(2)-1.2120342E-06 ) .gt. 0.0001E-6 ) - : call stopit( status, 'Error 40d' ) - - if( abs( 86400.0D0*(ubnd(3)-lbnd(3))-1.6D-5 ) .gt. 1.0E-10 ) - : call stopit( status, 'Error 40e' ) - if( abs( 0.5*(ubnd(3)+lbnd(3)) ) .gt. 1.0E-10 ) - : call stopit( status, 'Error 40f' ) - if( abs( lbnd(4)-5.05 ) .gt. 0.00001 ) - : call stopit( status, 'Error 40g' ) - if( abs( ubnd(4)-5.07 ) .gt. 0.00001 ) - : call stopit( status, 'Error 40h' ) - - end if - - if( .not. ast_mapget0A( km, AST__STCSIZE, r, status ) ) then - call stopit( status, 'Error 41' ) - else if( .not.ast_isabox( r, status ) ) then - call stopit( status, 'Error 42' ) - else if( ast_geti( r, 'naxes', status ) .ne. 4 ) then - call stopit( status, 'Error 43' ) - else - fs = ast_convert( obj, r, ' ', status ) - if( fs .eq. AST__NULL ) then - call stopit( status, 'Error 44' ) - else - m = ast_getMapping( fs, AST__BASE, AST__CURRENT, status ) - m = ast_simplify( m, status ) - if( .not. ast_isaunitmap( m, status ) ) then - call stopit( status, 'Error 45' ) - endif - end if - - call ast_getregionbounds( r, lbnd, ubnd, status ) - - if( abs( lbnd(1)+0.00242406841 ) .gt. 0.01E-6 ) - : call stopit( status, 'Error 46a' ) - if( abs( ubnd(1)-0.00242406841 ) .gt. 0.01E-6 ) - : call stopit( status, 'Error 46b' ) - if( abs( lbnd(2)+0.00242406841 ) .gt. 0.01E-6 ) - : call stopit( status, 'Error 46c' ) - if( abs( ubnd(2)-0.00242406841 ) .gt. 0.01E-6 ) - : call stopit( status, 'Error 46d' ) - if( abs( 86400.0D0*(ubnd(3)-lbnd(3))- 1000.0 ) .gt. 1.0E-10 ) - : call stopit( status, 'Error 46e' ) - if( abs( 0.5*(ubnd(3)+lbnd(3)) ) .gt. 1.0E-10 ) - : call stopit( status, 'Error 46f' ) - if( abs( lbnd(4)-4.06 ) .gt. 0.001 ) - : call stopit( status, 'Error 46g' ) - if( abs( ubnd(4)-6.06 ) .gt. 0.001 ) - : call stopit( status, 'Error 46h' ) - - end if - - - - - - - obj2 = ast_Copy( obj, status ) - - call ast_setl( obj2, 'Adaptive', .false., status ) - call ast_setc( obj2, 'epoch', '2005', status ) - call ast_clear( obj2, 'Adaptive', status ) - - call ast_setc( obj2, 'system(1)', 'galactic', status ) - - if( ast_getstcncoord( obj2, status ) .ne. 1 ) then - call stopit( status, 'Error 25b' ) - end if - km = ast_getstccoord( obj2, 1, status ) - - if( ast_mapsize( km, status ) .ne. 3 ) then - call stopit( status, 'Error 25bb' ) - end if - - if( .not. ast_mapget0A( km, AST__STCERROR, r, status ) ) then - call stopit( status, 'Error 26b' ) - else if( .not.ast_isaprism( r, status ) ) then - call stopit( status, 'Error 27b' ) - else if( ast_geti( r, 'naxes', status ) .ne. 4 ) then - call stopit( status, 'Error 28b' ) - else - fs = ast_convert( obj2, r, ' ', status ) - if( fs .eq. AST__NULL ) then - call stopit( status, 'Error 29b' ) - else - m = ast_getMapping( fs, AST__BASE, AST__CURRENT, status ) - m = ast_simplify( m, status ) - if( .not. ast_isaunitmap( m, status ) ) then - call stopit( status, 'Error 30b' ) - endif - end if - - call ast_getregionbounds( r, lbnd, ubnd, status ) - - if( abs( lbnd(1)-1.68139639 ) .gt. 1.0E-7 ) - : call stopit( status, 'Error 31ab' ) - if( abs( ubnd(1)-1.68140922 ) .gt. 1.0E-7 ) - : call stopit( status, 'Error 31bb' ) - if( abs( lbnd(2)+1.05049161 ) .gt. 1.0E-7 ) - : call stopit( status, 'Error 31cb' ) - if( abs( ubnd(2)+1.05048523 ) .gt. 1.0E-7 ) - : call stopit( status, 'Error 31db' ) - if( abs( 0.5*86400.0D0*(ubnd(3)-lbnd(3))- 5.0D-5) .gt. 1.0E-10) - : call stopit( status, 'Error 31eb' ) - if( abs( 0.5*86400.0D0*(ubnd(3)+lbnd(3))) .gt. 1.0E-10 ) - : call stopit( status, 'Error 31fb' ) - if( abs( lbnd(4)-5.01 ) .gt. 0.000001 ) - : call stopit( status, 'Error 31gb' ) - if( abs( ubnd(4)-5.11 ) .gt. 0.000001 ) - : call stopit( status, 'Error 31hb' ) - - end if - - - if( ast_mapget1C( km, AST__STCNAME, 6, nval, cvals, status )) - : call stopit( status, 'Error 32b' ) - - -* Uncertainty tests - - unc = ast_getunc( obj, .true., status ) - - if( unc .eq. AST__NULL ) call stopit( status, 'Error 9' ) - if( ast_getunc( unc, .false., status ) .ne. AST__NULL ) - : call stopit( status, 'Error 9a' ) - - call ast_getregionbounds( unc, lbnd, ubnd, status ) - - - if( abs( lbnd(1) + 2.42406841E-06 ) .gt. 0.0000001E-06 ) - : call stopit( status, 'Error 10' ) - - if( abs( lbnd(2) + 2.42406841E-06 ) .gt. 0.0000001E-06 ) - : call stopit( status, 'Error 11' ) - -c if( abs( 86400.0D0*lbnd(3) + 4.9662776D-5 ) .gt. 0.1E-10 ) -c : call stopit( status, 'Error 12' ) - if( abs( lbnd(4) - 0.07 ) .gt. 0.0001 ) - : call stopit( status, 'Error 13' ) - if( abs( ubnd(1) - 2.42406841E-06 ) .gt. 0.0000001E-06 ) - : call stopit( status, 'Error 14' ) - if( abs( ubnd(2) - 2.42406841E-06 ) .gt. 0.0000001E-06 ) - : call stopit( status, 'Error 15' ) -c if( abs( 86400.0D0*ubnd(3) - 4.9662776D-5 ) .gt. 0.1E-10 ) -c : call stopit( status, 'Error 16' ) - if( abs( ubnd(4) - 0.17 ) .gt. 0.0001 ) - : call stopit( status, 'Error 17' ) - - -* UseDefs tests. -c if( status .eq. SAI__OK ) then -c obj2 = ast_copy( obj, status ) -c call err_begin( status ) -c call ast_set( obj2, 'System=FK4', status ) -c if( status .ne. AST__NOVAL ) then -c write(*,*) 'status is ',status,': should be ',AST__NOVAL -c if( status .ne. sai__ok ) call err_annul( status ) -c call stopit( status, 'Error 18' ) -c else -c call err_annul( status ) -c end if -c call err_end( status ) -c call ast_annul( obj2, status ) -c end if -c -c if( status .eq. SAI__OK ) then -c obj2 = ast_copy( obj, status ) -c call err_begin( status ) -c call ast_set( obj2, 'System=velo', status ) -c if( status .ne. AST__NOVAL ) then -c write(*,*) 'status is ',status,': should be ',AST__NOVAL -c if( status .ne. sai__ok ) call err_annul( status ) -c call stopit( status, 'Error 19' ) -c else -c call err_annul( status ) -c end if -c call err_end( status ) -c call ast_annul( obj2, status ) -c end if - - call ast_set( obj, 'Unit(4)=J', status ) - - if( status .ne. SAI__OK ) call stopit( status, 'Error 20' ) - -* Tests on reference values - if( ast_test( obj, 'RefRA(4)', status ) ) then - call stopit( status, 'Error 21' ) - end if - - if( ast_test( obj, 'RefDec(4)', status ) ) then - call stopit( status, 'Error 22' ) - end if - -c if( ast_test( obj, 'Epoch(4)', status ) ) then -c call stopit( status, 'Error 22' ) -c end if - -c if( ast_test( obj, 'Epoch(1)', status ) ) then -c call stopit( status, 'Error 23' ) -c end if - -c if( ast_test( obj, 'Epoch(2)', status ) ) then -c call stopit( status, 'Error 24' ) -c end if - - - - - call ast_end( status ) - - if( status .ne. sai__ok ) write(*,*) 'teststc: example 1 '// - : 'tests failed' - - end - - - subroutine Example1b( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'AST_ERR' - - include 'teststc_com' - - integer status, obj, i, l - character value*200 - - if( status .ne. sai__ok ) return - - call ast_begin( status ) - -* Test the Strict attribute. - call puteg( 'teststc_eg1', 1, status ) - - call err_mark - call xmlread( 1, obj, 'Strict=1', status ) - - if( status .ne. ast__badin ) then - if( status .ne. sai__ok ) call err_flush( status ) - call stopit( status, 'Error 1' ) - else - call err_annul( status ) - end if - call err_rlse - -* Test the ast_warnings function. - call xmlread( 1, obj, 'Strict=0', status ) - if( warns .EQ. AST__NULL ) then - call stopit( status, 'Error 2' ) - - else if( ast_mapsize( warns, status ) .ne. 5 ) then - call stopit( status, 'Error 3' ) - - else if( .not. ast_mapget0c( warns, 'Warning_1', value, l, - : status ) ) then - call stopit( status, 'Error 4' ) - - else if( value(:l) .ne. 'astRead(XmlChan): Warning whilst '// - : 'reading a Position2D element: contains more than '// - : 'one <Size> element. AST can only use the first' ) then - call stopit( status, 'Error 5' ) - end if - - - call ast_end( status ) - - if( status .ne. sai__ok ) write(*,*) 'teststc: example 1b '// - : 'tests failed' - - end - - - subroutine Example2( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - integer status, obj, i, j - double precision in(12,5), out(12,5) - - if( status .ne. sai__ok ) return - - call ast_begin( status ) - -* Put an example of a CatalogEntryLocation into file 1. - call puteg( 'teststc_eg2', 1, status ) - -* Use a new XmlChan to read an object from file 1,and simplify it. - call xmlread( 1, obj, ' ', status ) - obj = ast_simplify( obj, status ) - -* Test simplify by negating and simplifying twice. - call ast_negate( obj, status ) - obj = ast_simplify( obj, status ) - call ast_negate( obj, status ) - obj = ast_simplify( obj, status ) - call checkdump( obj, 'checkdump 1', status ) - -* Check it is a StcCatalogEntryLocation - if( .not. ast_isastcCatalogEntryLocation( obj, status ) ) - : call stopit( status, 'Error 1' ) - -* Check it is an Interval. - if( .not. ast_isainterval( ast_getstcregion( obj, status ), - : status ) ) - : call stopit( status, 'Error 1a' ) - -* Check it has no uncertainty - if( ast_getunc( obj, .false., status ) .NE. AST__NULL ) - : call stopit( status, 'Error 1b' ) - -* Other tests - if( ast_geti( obj, 'naxes', status ) .ne. 5 ) - : call stopit( status, 'Error 1ab' ) - - if( ast_getd( obj, 'fillfactor', status ) .ne. 1.0D0 ) - : call stopit( status, 'Error 1b' ) - - if( ast_getc( obj, 'ident', status ) .ne. 'RA6-18hDec20-70deg' ) - : call stopit( status, 'Error 1c' ) - - if( ast_getc( obj, 'domain(3)', status ) .ne. 'TIME' ) - : call stopit( status, 'Error 2' ) - - if( ast_getc( obj, 'title(3)', status ) .ne. - : 'Julian Date [TT] offset from 1968-05-23 12:00:00' ) - : call stopit( status, 'Error 2a' ) - - if( ast_getc( obj, 'label(3)', status ) .ne. - : 'Julian Date offset from 1968-05-23 12:00:00' ) THEN - call stopit( status, 'Error 2b' ) - endif - - if( ast_getc( obj, 'domain(1)', status ) .ne. 'SKY' ) - : call stopit( status, 'Error 3' ) - - if( ast_getc( obj, 'system(1)', status ) .ne. 'FK4' ) - : call stopit( status, 'Error 3a' ) - - if( ast_getc( obj, 'label(1)', status ) .ne. 'Right ascension' ) - : call stopit( status, 'Error 3b' ) - - if( ast_getc( obj, 'label(2)', status ) .ne. 'Declination' ) - : call stopit( status, 'Error 3c' ) - - if( ast_getc( obj, 'title(2)', status ) .ne. 'PosEq' ) - : call stopit( status, 'Error 3d' ) - - if( ast_getd( obj, 'Equinox', status ) .ne. 1950D0 ) - : call stopit( status, 'Error 3d' ) - - if( ast_getc( obj, 'domain(2)', status ) .ne. 'SKY' ) - : call stopit( status, 'Error 4' ) - - if( ast_getc( obj, 'domain(4)', status ) .ne. 'SPECTRUM' ) - : call stopit( status, 'Error 5' ) - - if( ast_getc( obj, 'system(4)', status ) .ne. 'WAVE' ) - : call stopit( status, 'Error 5a' ) - - if( ast_getc( obj, 'stdofrest', status ) .ne. 'Topocentric' ) - : call stopit( status, 'Error 5b' ) - - if( ast_test( obj, 'title(4)', status ) ) - : call stopit( status, 'Error 5c' ) - - if( ast_geti( obj, 'naxes', status ) .ne. 5 ) - : call stopit( status, 'Error 6' ) - - if( ast_getc( obj, 'domain(5)', status ) .ne. 'REDSHIFT' ) - : call stopit( status, 'Error 6a' ) - - if( ast_getc( obj, 'system(5)', status ) .ne. 'VOPT' ) - : call stopit( status, 'Error 6b' ) - - if( ast_getc( obj, 'label(5)', status ) .ne. 'Optical velocity' ) - : call stopit( status, 'Error 6c' ) - - if( ast_getc( obj, 'unit(5)', status ) .ne. 'km/s' ) - : call stopit( status, 'Error 6d' ) - - if( ast_getc( obj, 'unit(4)', status ) .ne. 'Angstrom' ) - : call stopit( status, 'Error 6e' ) - - - in(1,1) = 4.71238 ! inside - in(1,2) = 1.2216 - in(1,3) = 1 - in(1,4) = 6499.9 - in(1,5) = 9999.9 - - in(2,1) = 4.71240 ! outside - in(2,2) = 1.2216 - in(2,3) = 1 - in(2,4) = 6499.9 - in(2,5) = 9999.9 - - in(3,1) = 4.71238 ! outside - in(3,2) = 1.2218 - in(3,3) = 1 - in(3,4) = 6499.9 - in(3,5) = 9999.9 - - in(4,1) = 4.71238 ! outside - in(4,2) = 1.2216 - in(4,3) = -0.6 - in(4,4) = 6499.9 - in(4,5) = 9999.9 - - in(5,1) = 4.71238 ! outside - in(5,2) = 1.2216 - in(5,3) = 1 - in(5,4) = 6500.1 - in(5,5) = 9999.9 - - in(6,1) = 4.71238 ! outside - in(6,2) = 1.2216 - in(6,3) = 1 - in(6,4) = 6499.9 - in(6,5) = 10000.1 - - in(7,1) = 1.5709 ! inside - in(7,2) = 0.3492 - in(7,3) = 999.6 - in(7,4) = 5000.1 - in(7,5) = 5000 - - in(8,1) = 1.5707 ! outside - in(8,2) = 0.3492 - in(8,3) = 999.6 - in(8,4) = 5000.1 - in(8,5) = 5000 - - in(9,1) = 1.5709 ! outside - in(9,2) = 0.3490 - in(9,3) = 999.6 - in(9,4) = 5000.1 - in(9,5) = 5000 - - in(10,1) = 1.5709 ! outside - in(10,2) = 0.3492 - in(10,3) = 1000.4 - in(10,4) = 5000.1 - in(10,5) = 5000 - - in(11,1) = 1.5709 ! outside - in(11,2) = 0.3492 - in(11,3) = 999.6 - in(11,4) = 4999.9 - in(11,5) = 5000 - - in(12,1) = 1.5709 ! inside - in(12,2) = 0.3492 - in(12,3) = 999.6 - in(12,4) = 5000.1 - in(12,5) = 1000 - - call ast_trann( obj, 12, 5, 12, in, .true., 5, 12, out, status ) - - do i = 1, 12 - if( i .eq. 1 .or. i .eq. 7 .or. i .eq. 12 ) then ! inside points - do j = 1, 5 - if( out(i,j) .ne. in(i,j) ) then - if( status .eq. sai__ok ) then - write(*,*) i,j,out(i,j),in(i,j) - call stopit( status, 'Error 7' ) - end if - end if - end do - else ! outside points - do j = 1, 5 - if( out(i,j) .ne. AST__BAD ) then - if( status .eq. sai__ok ) then - write(*,*) i,j,out(i,j),in(i,j) - call stopit( status, 'Error 8' ) - end if - end if - end do - end if - end do - -* Tests on reference values - if( ast_test( obj, 'RefRA(4)', status ) ) then - call stopit( status, 'Error 9' ) - end if - - if( ast_test( obj, 'RefDec(4)', status ) ) then - call stopit( status, 'Error 10' ) - end if - -c if( ast_test( obj, 'Epoch(4)', status ) ) then -c call stopit( status, 'Error 11' ) -c end if - -c if( ast_test( obj, 'Epoch(1)', status ) ) then -c call stopit( status, 'Error 12' ) -c end if - -c if( ast_test( obj, 'Epoch(2)', status ) ) then -c call stopit( status, 'Error 13' ) -c end if - - if( ast_test( obj, 'RestFreq(5)', status ) ) then - call stopit( status, 'Error 14' ) - end if - - - - - - - call ast_end( status ) - - if( status .ne. sai__ok ) write(*,*) 'teststc: example 2 '// - : 'tests failed' - - end - - - - - - - - subroutine Example3( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - integer status, obj, i, j - double precision in(12,5), out(12,5) - - if( status .ne. sai__ok ) return - - call ast_begin( status ) - -* Put an example of a CatalogEntryLocation into file 1. - call puteg( 'teststc_eg3', 1, status ) - -* Use a new XmlChan to read an object from file 1,and simplify it. - call xmlread( 1, obj, ' ', status ) - obj = ast_simplify( obj, status ) - -* Test simplify by negating and simplifying twice. - call ast_negate( obj, status ) - obj = ast_simplify( obj, status ) - call ast_negate( obj, status ) - obj = ast_simplify( obj, status ) - call checkdump( obj, 'checkdump 1', status ) - -* Check it is a StcCatalogEntryLocation - if( .not. ast_isastcCatalogEntryLocation( obj, status ) ) - : call stopit( status, 'Error 1' ) - -* Check it is an Interval. - if( .not. ast_isainterval( ast_getstcregion( obj, status ), - : status ) ) then - write(*,*) ast_GetC( ast_getstcregion( obj, status ), 'Class', - : status ) - call stopit( status, 'Error 1a' ) - end if - -* Check it has no uncertainty - if( ast_getunc( obj, .false., status ) .NE. AST__NULL ) - : call stopit( status, 'Error 1b' ) - -* Check it has 5 axes. - if( ast_geti( obj, 'naxes', status ) .ne. 5 ) - : call stopit( status, 'Error 1ab' ) - -* Check the rest frequency for axis 5 (redshift) is 5000 Angstrom - if( abs( ast_getd( obj, 'restfreq(5)', status ) - 599584.916D0 ) - : .gt. 0.001D0 ) call stopit( status, 'Error A1' ) - -* Check the epoch for allaxes is JD 2440000 - if( abs( ast_getd( obj, 'epoch(1)', status ) - 1968.39212D0 ) .gt. - : 0.00001D0 ) call stopit( status, 'Error B1' ) - if( abs( ast_getd( obj, 'epoch(2)', status ) - 1968.39212D0 ) .gt. - : 0.00001D0 ) call stopit( status, 'Error B2' ) - if( abs( ast_getd( obj, 'epoch(3)', status ) - 1968.39212D0 ) .gt. - : 0.00001D0 ) call stopit( status, 'Error B3' ) - if( abs( ast_getd( obj, 'epoch(4)', status ) - 1968.39212D0 ) .gt. - : 0.00001D0 ) call stopit( status, 'Error B4' ) - if( abs( ast_getd( obj, 'epoch(5)', status ) - 1968.39212D0 ) .gt. - : 0.00001D0 ) call stopit( status, 'Error B5' ) - -* Other tests - if( ast_getd( obj, 'fillfactor', status ) .ne. 1.0D0 ) - : call stopit( status, 'Error 1b' ) - - if( ast_getc( obj, 'ident', status ) .ne. 'RA6-18hDec20-70deg' ) - : call stopit( status, 'Error 1c' ) - - if( ast_getc( obj, 'domain(3)', status ) .ne. 'TIME' ) - : call stopit( status, 'Error 2' ) - - if( ast_getc( obj, 'label(3)', status ) .ne. - : 'Julian Date offset from 1968-05-23 12:00:00' ) THEN - call stopit( status, 'Error 2b' ) - end if - - if( ast_getc( obj, 'domain(1)', status ) .ne. 'SKY' ) - : call stopit( status, 'Error 3' ) - - if( ast_getc( obj, 'system(1)', status ) .ne. 'FK4' ) - : call stopit( status, 'Error 3a' ) - - if( ast_getc( obj, 'label(1)', status ) .ne. 'Right ascension' ) - : call stopit( status, 'Error 3b' ) - - if( ast_getc( obj, 'label(2)', status ) .ne. 'Declination' ) - : call stopit( status, 'Error 3c' ) - - if( ast_getc( obj, 'title(2)', status ) .ne. 'PosEq' ) - : call stopit( status, 'Error 3d' ) - - if( ast_getd( obj, 'Equinox', status ) .ne. 1950D0 ) - : call stopit( status, 'Error 3d' ) - - if( ast_getc( obj, 'domain(2)', status ) .ne. 'SKY' ) - : call stopit( status, 'Error 4' ) - - if( ast_getc( obj, 'domain(4)', status ) .ne. 'SPECTRUM' ) - : call stopit( status, 'Error 5' ) - - if( ast_getc( obj, 'system(4)', status ) .ne. 'WAVE' ) - : call stopit( status, 'Error 5a' ) - - if( ast_getc( obj, 'stdofrest', status ) .ne. 'Topocentric' ) - : call stopit( status, 'Error 5b' ) - - if( ast_test( obj, 'title(4)', status ) ) - : call stopit( status, 'Error 5c' ) - - if( ast_geti( obj, 'naxes', status ) .ne. 5 ) - : call stopit( status, 'Error 6' ) - - if( ast_getc( obj, 'domain(5)', status ) .ne. 'REDSHIFT' ) - : call stopit( status, 'Error 6a' ) - - if( ast_getc( obj, 'system(5)', status ) .ne. 'VOPT' ) - : call stopit( status, 'Error 6b' ) - - if( ast_getc( obj, 'label(5)', status ) .ne. 'Optical velocity' ) - : call stopit( status, 'Error 6c' ) - - if( ast_getc( obj, 'unit(5)', status ) .ne. 'km/s' ) - : call stopit( status, 'Error 6d' ) - - if( ast_getc( obj, 'unit(4)', status ) .ne. 'Angstrom' ) - : call stopit( status, 'Error 6e' ) - - - in(1,1) = 4.71238 ! inside - in(1,2) = 1.2216 - in(1,3) = 0.0D0 - in(1,4) = 5000 - in(1,5) = 9999.9 - - in(2,1) = 4.71240 ! outside - in(2,2) = 1.2216 - in(2,3) = 0.0D0 - in(2,4) = 5000 - in(2,5) = 9999.9 - - in(3,1) = 4.71238 ! outside - in(3,2) = 1.2218 - in(3,3) = 0.0D0 - in(3,4) = 5000 - in(3,5) = 9999.9 - - in(4,1) = 4.71238 ! outside - in(4,2) = 1.2216 - in(4,3) = 0.5D0 - in(4,4) = 5000 - in(4,5) = 9999.9 - - in(5,1) = 4.71238 ! outside - in(5,2) = 1.2216 - in(5,3) = 0.0D0 - in(5,4) = 6500.1 - in(5,5) = 9999.9 - - in(6,1) = 4.71238 ! outside - in(6,2) = 1.2216 - in(6,3) = 0.0D0 - in(6,4) = 5000 - in(6,5) = 10000.1 - - in(7,1) = 1.5709 ! inside - in(7,2) = 0.3492 - in(7,3) = 0.0D0 - in(7,4) = 5000 - in(7,5) = 5000 - - in(8,1) = 1.5707 ! outside - in(8,2) = 0.3492 - in(8,3) = 0.0D0 - in(8,4) = 5000 - in(8,5) = 5000 - - in(9,1) = 1.5709 ! outside - in(9,2) = 0.3490 - in(9,3) = 0.0D0 - in(9,4) = 5000 - in(9,5) = 5000 - - in(10,1) = 1.5709 ! outside - in(10,2) = 0.3492 - in(10,3) = 39999.4D0 - in(10,4) = 5000 - in(10,5) = 5000 - - in(11,1) = 1.5709 ! outside - in(11,2) = 0.3492 - in(11,3) = 0.0D0 - in(11,4) = 4999.9 - in(11,5) = 5000 - - in(12,1) = 1.5709 ! inside - in(12,2) = 0.3492 - in(12,3) = 0.0D0 - in(12,4) = 5000 - in(12,5) = 1000 - - call ast_trann( obj, 12, 5, 12, in, .true., 5, 12, out, status ) - - do i = 1, 12 - if( i .eq. 1 .or. i .eq. 7 .or. i .eq. 12 ) then ! inside points - do j = 1, 5 - if( out(i,j) .ne. in(i,j) ) then - if( status .eq. sai__ok ) then - write(*,*) i,j,out(i,j),in(i,j) - call stopit( status, 'Error 7' ) - end if - end if - end do - else ! outside points - do j = 1, 5 - if( out(i,j) .ne. AST__BAD ) then - if( status .eq. sai__ok ) then - write(*,*) i,j,out(i,j),in(i,j) - call stopit( status, 'Error 8' ) - end if - end if - end do - end if - end do - -* Tests on reference values - if( ast_test( obj, 'RefRA(4)', status ) ) then - call stopit( status, 'Error 9' ) - end if - - if( ast_test( obj, 'RefDec(4)', status ) ) then - call stopit( status, 'Error 10' ) - end if - - if( .not. ast_test( obj, 'Epoch(4)', status ) ) then - call stopit( status, 'Error 11' ) - end if - - if( .not. ast_test( obj, 'Epoch(1)', status ) ) then - call stopit( status, 'Error 12' ) - end if - - if( .not. ast_test( obj, 'Epoch(2)', status ) ) then - call stopit( status, 'Error 13' ) - end if - - if( .not. ast_test( obj, 'RestFreq(5)', status ) ) then - call stopit( status, 'Error 14' ) - end if - - - - - - - call ast_end( status ) - - if( status .ne. sai__ok ) write(*,*) 'teststc: example 3 '// - : 'tests failed' - - end - - - - - - - subroutine Example4( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'AST_ERR' - - integer status, obj2, obj, i, j, unc, frm - double precision in(12,4), out(12,4), lbnd(4), ubnd(4) - - if( status .ne. sai__ok ) return - - call ast_begin( status ) - -* Put an example of an STCSearchLocation into file 1. - call puteg( 'teststc_eg4', 1, status ) - -* Use a new XmlChan to read an object from file 1,and simplify it. - call xmlread( 1, obj, ' ', status ) - obj = ast_simplify( obj, status ) - -* Test simplify by negating and simplifying twice. - call ast_negate( obj, status ) - obj = ast_simplify( obj, status ) - call ast_negate( obj, status ) - obj = ast_simplify( obj, status ) - call checkdump( obj, 'checkdump 1', status ) - - -* Check it is a STCSearchLocation - if( .not. ast_isastcsearchlocation( obj, status ) ) - : call stopit( status, 'Error 1' ) - -* Check it is a Prism. - if( .not. ast_isaprism( ast_getstcregion( obj, status ), - : status ) ) - : call stopit( status, 'Error 1a' ) - -* Check it has no uncertainty - if( ast_getunc( obj, .false., status ) .NE. AST__NULL ) - : call stopit( status, 'Error 1b' ) - -* Other tests - if( ast_geti( obj, 'naxes', status ) .ne. 4 ) - : call stopit( status, 'Error 1ab' ) - - if( ast_getd( obj, 'fillfactor', status ) .ne. 1.0D0 ) - : call stopit( status, 'Error 1b' ) - - if( ast_getc( obj, 'ident', status ) .ne. 'M81' ) - : call stopit( status, 'Error 1c' ) - - if( ast_getc( obj, 'domain(3)', status ) .ne. 'TIME' ) - : call stopit( status, 'Error 2' ) - - if( ast_getc( obj, 'label(3)', status ) .ne. - : 'Modified Julian Date offset from 1900-01-01' ) THEN - call stopit( status, 'Error 2b' ) - end if - - if( ast_getc( obj, 'domain(1)', status ) .ne. 'SKY' ) - : call stopit( status, 'Error 3' ) - - if( ast_getc( obj, 'system(1)', status ) .ne. 'ICRS' ) - : call stopit( status, 'Error 3a' ) - - if( ast_getc( obj, 'label(1)', status ) .ne. 'Right ascension' ) - : call stopit( status, 'Error 3b' ) - - if( ast_getc( obj, 'label(2)', status ) .ne. 'Declination' ) - : call stopit( status, 'Error 3c' ) - - if( ast_getc( obj, 'title(2)', status ) .ne. 'Equatorial' ) - : call stopit( status, 'Error 3d' ) - - if( ast_test( obj, 'Equinox', status ) ) - : call stopit( status, 'Error 3d2' ) - - if( ast_getc( obj, 'domain(2)', status ) .ne. 'SKY' ) - : call stopit( status, 'Error 4' ) - - if( ast_getc( obj, 'domain(4)', status ) .ne. 'SPECTRUM' ) - : call stopit( status, 'Error 5' ) - - if( ast_getc( obj, 'system(4)', status ) .ne. 'WAVE' ) - : call stopit( status, 'Error 5a' ) - - if( ast_getc( obj, 'stdofrest', status ) .ne. 'Barycentric' ) - : call stopit( status, 'Error 5b' ) - - if( ast_getc( obj, 'title(4)', status ) .ne. 'Wavelength' ) - : call stopit( status, 'Error 5c' ) - - if( ast_geti( obj, 'naxes', status ) .ne. 4 ) - : call stopit( status, 'Error 6' ) - - if( ast_getc( obj, 'unit(4)', status ) .ne. 'Angstrom' ) - : call stopit( status, 'Error 6e' ) - - frm = ast_getregionframe( obj, status ) - if( ast_getc( frm, 'Ident', status ) .ne. 'ICRS-TT-BARY' ) - : call stopit( status, 'Error 7' ) - - - -* Tests on reference values - if( ast_test( obj, 'RefRA(4)', status ) ) then - call stopit( status, 'Error 9' ) - end if - - if( ast_test( obj, 'RefDec(4)', status ) ) then - call stopit( status, 'Error 10' ) - end if - -c if( ast_test( obj, 'Epoch(4)', status ) ) then -c call stopit( status, 'Error 11' ) -c end if - -c if( ast_test( obj, 'Epoch(1)', status ) ) then -c call stopit( status, 'Error 12' ) -c end if - -c if( ast_test( obj, 'Epoch(2)', status ) ) then -c call stopit( status, 'Error 13' ) -c end if - - if( ast_test( obj, 'RestFreq(4)', status ) ) then - call stopit( status, 'Error 14' ) - end if - - if( abs( ast_getd( obj, 'Epoch(3)', status ) - 1900.00051056532 ) - : .gt. 0.0001 ) then - call stopit( status, 'Error 12b' ) - end if - - if( abs( ast_getd( obj, 'TimeOrigin', status ) - 15020.0D0 ) - : .gt. 0.0001 ) then - call stopit( status, 'Error 12c' ) - end if - - - - - in(1,1) = 2.51126532207628 ! inside - in(1,2) = 1.22218015796595 - in(1,3) = 0.01 - in(1,4) = 4001 - - in(2,1) = 2.5094191311777 ! outside - in(2,2) = 1.22248014367694 - in(2,3) = 0.01 - in(2,4) = 4001 - - in(3,1) = 2.51126532207628 ! outside - in(3,2) = 1.22218015796595 - in(3,3) = 0.01 - in(3,4) = 3999 - - in(4,1) = 2.51126532207628 ! outside - in(4,2) = 1.22218015796595 - in(4,3) = -0.2 - in(4,4) = 4001 - - in(5,1) = 2.5094191311777 ! outside - in(5,2) = 1.22248014367694 - in(5,3) = -0.2 - in(5,4) = 4001 - - in(6,1) = 2.51126532207628 ! outside - in(6,2) = 1.22218015796595 - in(6,3) = -0.2 - in(6,4) = 3999 - - in(7,1) = 2.51682141503858 ! inside - in(7,2) = 1.18868060989363 - in(7,3) = 0.01 - in(7,4) = 6999 - - in(8,1) = 2.51524001365674 ! outside - in(8,2) = 1.18830732379242 - in(8,3) = 0.01 - in(8,4) = 6999 - - in(9,1) = 2.51682141503858 ! outside - in(9,2) = 1.18868060989363 - in(9,3) = 0.01 - in(9,4) = 7001 - - in(10,1) = 2.51682141503858 ! outside - in(10,2) = 1.18868060989363 - in(10,3) = -0.2 - in(10,4) = 6999 - - in(11,1) = 2.51524001365674 ! outside - in(11,2) = 1.18830732379242 - in(11,3) = -0.2 - in(11,4) = 6999 - - in(12,1) = 2.51682141503858 ! outside - in(12,2) = 1.18868060989363 - in(12,3) = -0.2 - in(12,4) = 7001 - - call ast_trann( obj, 12, 4, 12, in, .true., 4, 12, out, status ) - - do i = 1, 12 - if( i .eq. 1 .or. i .eq. 7 ) then ! inside points - do j = 1, 4 - if( out(i,j) .ne. in(i,j) ) then - if( status .eq. sai__ok ) then - write(*,*) i,j,out(i,j),in(i,j) - call stopit( status, 'Error 13c' ) - end if - end if - end do - else ! outside points - do j = 1, 4 - if( out(i,j) .ne. AST__BAD ) then - if( status .eq. sai__ok ) then - write(*,*) i,j,out(i,j),in(i,j) - call stopit( status, 'Error 14c' ) - end if - end if - end do - end if - end do - - - call ast_end( status ) - - if( status .ne. sai__ok ) write(*,*) 'teststc: example 4 '// - : 'tests failed' - - end - - - - - subroutine Example5( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'AST_ERR' - - integer status, obj2, obj, i, j, unc, frm - double precision in(12,4), out(12,4), lbnd(4), ubnd(4) - - if( status .ne. sai__ok ) return - - call ast_begin( status ) - -* Put an example of an STCSearchLocation into file 1. - call puteg( 'teststc_eg5', 1, status ) - -* Use a new XmlChan to read an object from file 1,and simplify it. - call xmlread( 1, obj, ' ', status ) - call checkdump( obj, 'checkdump 2', status ) - obj = ast_simplify( obj, status ) - -* Test simplify by negating and simplifying twice. - call ast_negate( obj, status ) - obj = ast_simplify( obj, status ) - call ast_negate( obj, status ) - obj = ast_simplify( obj, status ) - call checkdump( obj, 'checkdump 1', status ) - -* Check it is a STCObsDataLocation - if( .not. ast_isastcobsdatalocation( obj, status ) ) - : call stopit( status, 'Error 1' ) - -* Check it contains a Prism. - if( .not. ast_isaprism( ast_getstcregion( obj, status ), - : status ) ) - : call stopit( status, 'Error 1a' ) - -* Other tests - if( ast_getd( obj, 'fillfactor', status ) .ne. 1.0D0 ) - : call stopit( status, 'Error 1b' ) - - if( ast_getc( obj, 'ident', status ) .ne. 'M81' ) - : call stopit( status, 'Error 1c' ) - - if( ast_getc( obj, 'domain(3)', status ) .ne. 'TIME' ) - : call stopit( status, 'Error 2' ) - - if( ast_getc( obj, 'label(3)', status ) .ne. - : 'Modified Julian Date offset from 2004-07-15 08:23:56' ) then - call stopit( status, 'Error 2b' ) - end if - - if( ast_getc( obj, 'domain(1)', status ) .ne. 'SKY' ) - : call stopit( status, 'Error 3' ) - - if( ast_getc( obj, 'system(1)', status ) .ne. 'ICRS' ) - : call stopit( status, 'Error 3a' ) - - if( ast_getc( obj, 'label(1)', status ) .ne. 'Right ascension' ) - : call stopit( status, 'Error 3b' ) - - if( ast_getc( obj, 'label(2)', status ) .ne. 'Declination' ) - : call stopit( status, 'Error 3c' ) - - if( ast_getc( obj, 'title(2)', status ) .ne. 'Equatorial' ) - : call stopit( status, 'Error 3d' ) - - if( ast_getc( obj, 'domain(2)', status ) .ne. 'SKY' ) - : call stopit( status, 'Error 4' ) - - if( ast_getc( obj, 'domain(4)', status ) .ne. 'SPECTRUM' ) - : call stopit( status, 'Error 5' ) - - if( ast_getc( obj, 'system(4)', status ) .ne. 'WAVE' ) - : call stopit( status, 'Error 5a' ) - - if( ast_getc( obj, 'stdofrest', status ) .ne. 'Topocentric' ) - : call stopit( status, 'Error 5b' ) - - if( ast_getc( obj, 'title(4)', status ) .ne. - : 'Wavelength' ) call stopit( status, 'Error 5c' ) - - if( ast_getc( obj, 'unit(4)', status ) .ne. 'Angstrom' ) - : call stopit( status, 'Error 5d' ) - - if( ast_geti( obj, 'naxes', status ) .ne. 4 ) - : call stopit( status, 'Error 6' ) - - call ast_getregionbounds( obj, lbnd, ubnd, status ) - - - - lbnd(1) = 0.5*(lbnd(1) + ubnd(1)) - lbnd(2) = 0.5*(lbnd(2) + ubnd(2)) - lbnd(3) = 0.5*(lbnd(3) + ubnd(3)) - lbnd(4) = 0.5*(lbnd(4) + ubnd(4)) - - if( abs( lbnd(1) - 2.59858948190075 ) .gt. 1E-06 ) - : call stopit( status, 'Error 10' ) - if( abs( lbnd(2) - 1.20541670934471 ) .gt. 1E-06 ) - : call stopit( status, 'Error 11' ) - if( abs( lbnd(3) ) .gt. 1E-5 ) - : call stopit( status, 'Error 12' ) - if( abs( lbnd(4) - 4600 ) .gt. 0.0001 ) - : call stopit( status, 'Error 13' ) - if( abs( ubnd(1) - 2.61080678666471 ) .gt. 1E-06 ) - : call stopit( status, 'Error 14' ) - if( abs( ubnd(2) - 1.2097800324747 ) .gt. 1E-06 ) - : call stopit( status, 'Error 15' ) - if( abs( ubnd(3) - 380.0D0 ) .gt. 1E-5 ) - : call stopit( status, 'Error 16' ) - if( abs( ubnd(4) - 4800 ) .gt. 0.0001 ) - : call stopit( status, 'Error 17' ) - if( ast_getc( obj, 'ObsLon', status ) .ne. 'W111:35:39.84' ) - : call stopit( status, 'Error 18' ) - if( ast_getc( obj, 'ObsLat', status ) .ne. 'N31:57:30.96' ) - : call stopit( status, 'Error 19' ) - - unc = ast_getunc( obj, .true., status ) - if( unc .eq. AST__NULL ) call stopit( status, 'Error 20' ) - - call ast_getregionbounds( unc, lbnd, ubnd, status ) - - lbnd(1) = 0.5*(lbnd(1) + ubnd(1)) - lbnd(2) = 0.5*(lbnd(2) + ubnd(2)) - lbnd(3) = 0.5*(lbnd(3) + ubnd(3)) - lbnd(4) = 0.5*(lbnd(4) + ubnd(4)) - - if( abs( lbnd(1) - 2.59858948190075D0) .gt. 1E-05 ) - : call stopit( status, 'Error 21' ) - if( abs( lbnd(2) - 1.20541670934471D0) .gt. 1E-05 ) - : call stopit( status, 'Error 22' ) - if( abs( lbnd(3) ) .gt. 1.0D-05 ) - : call stopit( status, 'Error 23' ) - if( abs( lbnd(4) - 4600.0D0) .gt. 0.0001 ) - : call stopit( status, 'Error 24' ) - if( abs( ubnd(1) - 2.59859209989462D0) .gt. 1E-05 ) - : call stopit( status, 'Error 25' ) - - if( abs( ubnd(2) - 1.20541932733859D0) .gt. 1E-05 ) - : call stopit( status, 'Error 26' ) - if( abs( ubnd(3) - 0.3803143212621760D-03 ) .gt. 1E-05 ) - : call stopit( status, 'Error 27' ) - if( abs( ubnd(4) - 4600.0002D0) .gt. 0.000001 ) - : call stopit( status, 'Error 28' ) - - if( status .ne. sai__ok ) write(*,*) 'teststc: example 5 '// - : 'tests failed' - - end - - - - - - - - - - - - - - subroutine stopit( status, text ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - - if( status .ne. sai__ok ) return - status = sai__error - write(*,*) text - - end - - - - - -* -* Read an object out of the specified internal file using an XmlChan. -* - subroutine xmlread( ifil, obj, opts, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - include 'teststc_com' - - external xmlSource - integer obj, ifil, status, ch - character opts*(*) - - if( status .ne. sai__ok ) return - - ifile = ifil - iline = 1 - - ch = ast_xmlchan( xmlSource, ast_null, opts, status ) - obj = ast_read( ch, status ) - if( obj .eq. ast__null ) then - call stopit( status, 'checkXmlChan: Failed to read STC '// - : 'object from XmlChan.' ) - end if - - warns = ast_warnings( ch, status ) - call ast_annul( ch, status ) - - end - - - - -* -* Reads line "iline" from internal file "ifile" and returns it to AST using -* the AST_PUTLINE routine. Then increments "iline" ready for next time. -* - subroutine xmlSource( status ) - implicit none - - include 'teststc_com' - - integer status, l, chr_len - - if( iline .le. filelen( ifile ) ) then - l = chr_len( files(ifile,iline) ) - call ast_putline( files(ifile,iline), l, status ) - iline = iline + 1 - else - call ast_putline( ' ', -1, status ) - end if - - end - -* -* Append a line obtained using ast_getline function to the end of the -* internal file indicated by "ifile", and increment the file length. -* - subroutine xmlSink( status ) - implicit none - - include 'teststc_com' - - integer status, l - character line*(linelen) - - call ast_getline( line, l, status ) - if( l .gt. 0 ) then - - if( filelen( ifile ) .ge. mxline ) then - call stopit( status, 'checkXmlChan: Too many lines sent '// - : 'to sink function' ) - - else if( l .gt. linelen ) then - call stopit( status, 'checkXmlChan: Text truncated in '// - : 'sink function' ) - - else - filelen( ifile ) = filelen( ifile ) + 1 - files( ifile, filelen( ifile ) ) = line(:l) - end if - - end if - - end - - - subroutine puteg( flnam, ifl, status ) - implicit none - - include 'SAE_PAR' - include 'AST_PAR' - include 'teststc_com' - - integer status, ifl - character flnam*(*) - - if( status .ne. sai__ok ) return - - open( file=flnam, status='old', unit=10 ) - - iline = 1 - 10 continue - if( iline .gt. mxline ) call stopit( status, - : 'mxline exceeded in puteg' ) - read( 10, '(A)', end=20 ) files( ifl, iline ) - - if( files( ifl, iline )( linelen : linelen ) .ne. ' ' ) then - call stopit( status, 'linelen exceeded in puteg' ) - end if - - iline = iline + 1 - go to 10 - - 20 continue - close( 10 ) - filelen( ifl ) = iline - 1 - - end - - -* -* Tests the dump function, the loader, and the astOverlap method. -* - subroutine checkdump( obj, text, status ) - - implicit none - include 'SAE_PAR' - include 'AST_PAR' - character text*(*) - integer obj, status, next, end, ch, result, ll, overlap - external mysource, mysink - character buf*190000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - -* Create a Channel which reads and writes to an internal string buffer. - ch = ast_channel( mysource, mysink, ' ', status ) - -* Write the supplied Region out to this Channel. - ll = 160 - next = 1 - if( ast_write( ch, obj, status ) .ne.1 ) then - write(*,*) text - call stopit( status, 'Cannot write supplied object to '// - : 'channel' ) - end if - -* Read an Object back from this Channel. - next = 1 - result = ast_read( ch, status ) - if( result .eq. ast__null ) then - write(*,*) text - call stopit( status, 'Cannot read object from channel' ) - end if - -* Check that it is a Region and its boundary is identical to the supplied -* Region. - overlap = ast_overlap( obj, result, status ) - if( overlap .ne. 5 ) then - write(*,*) 'obj result Overlap: ', overlap - write(*,*) 'obj self-Overlap: ', ast_overlap( obj, obj, - : status ) - write(*,*) 'result self-Overlap: ', ast_overlap( result, - : result, status ) - call ast_Show( obj, status ) - call ast_Show( result, status ) - write(*,*) text - call stopit( status, 'Object has changed' ) - end if - -* Return the new Region pointer in place of the old. - obj = result - - end - - subroutine mysource( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, ll - character buf*190000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - - if( next .ge. end ) then - call ast_putline( buf, -1, status ) - else - call ast_putline( buf( next : ), ll, status ) - endif - - next = next + ll - - end - - subroutine mysink( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, f, l, ll - character buf*190000 - character line*1000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - - line = ' ' - call ast_getline( line, l, status ) - call chr_fandl( line( : l ), f, l ) - buf( next : ) = line( f : l ) - l = l - f + 1 - - if( next + ll - 1 .ge. 190000 ) then - write(*,*) buf - call stopit( status, 'Buffer overflow in mysink!!' ) - else if( l .gt. ll ) then - write(*,*) - write(*,*) buf( next : next + l) - write(*,*) 'Line length ',l,' greater than ',ll - call stopit( status, 'Line overflow in mysink!!' ) - else - end = next + l - buf( end : next + ll - 1 ) = ' ' - endif - - next = next + ll - - end - - diff --git a/ast/ast_tester/teststc_com b/ast/ast_tester/teststc_com deleted file mode 100644 index f9a7fb1..0000000 --- a/ast/ast_tester/teststc_com +++ /dev/null @@ -1,13 +0,0 @@ -* -* Common block declaration used by teststc.f for storing internal -* files and associated info. -* - integer mxline - parameter ( mxline = 500 ) - - integer linelen - parameter ( linelen = 3000 ) - - character files( 3, mxline )*(linelen) - integer ifile,iline,filelen( 3 ),warns - common /files/ files, ifile, iline, filelen, warns diff --git a/ast/ast_tester/teststc_eg1 b/ast/ast_tester/teststc_eg1 deleted file mode 100644 index b1044c6..0000000 --- a/ast/ast_tester/teststc_eg1 +++ /dev/null @@ -1,71 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- edited with XMLSpy v2005 sp2 U (http://www.altova.com) by Arnold Rots (Smithsonian Observatory) --> -<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Arnold Rots (Smithsonian Observatory) --> -<!--Sample XML file generated by XMLSPY v2004 rel. 3 U (http://www.xmlspy.com)--> -<STCResourceProfile xmlns="http://www.ivoa.net/xml/STC/stc-v1.20.xsd" xmlns:crd="http://www.ivoa.net/xml/STC/STCcoords/v1.20" xmlns:reg="http://www.ivoa.net/xml/STC/STCregion/v1.20" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ivoa.net/xml/STC/stc-v1.20.xsd stc-v1.20.xsd"> - <AstroCoordSystem ID="ICRS-TT-CXO"> - <TimeFrame> - <Name>Time</Name> - <TimeScale>TT</TimeScale> - <TOPOCENTER/> - </TimeFrame> - <SpaceFrame> - <Name>Space</Name> - <ICRS/> - <TOPOCENTER/> - <SPHERICAL coord_naxes="2"/> - </SpaceFrame> - <SpectralFrame> - <Name>Energy</Name> - <TOPOCENTER/> - </SpectralFrame> - </AstroCoordSystem> - <crd:AstroCoords coord_system_id="ICRS-TT-CXO"> - <crd:Time unit="s"> - <crd:Name>Time</crd:Name> - <crd:Error>0.0001</crd:Error> - <crd:Resolution>0.000016</crd:Resolution> - <crd:Resolution>3.0</crd:Resolution> - <crd:Size>1000</crd:Size> - <crd:Size>170000</crd:Size> - </crd:Time> - <crd:Position2D unit="arcsec"> - <crd:Name>Position</crd:Name> - <crd:Error2> - 1.0 1.0 - </crd:Error2> - <crd:Resolution2> - 0.5 0.5 - </crd:Resolution2> - <crd:Size2> - 1000 1000 - </crd:Size2> - <crd:Size2> - 4000 4000 - </crd:Size2> - </crd:Position2D> - <crd:Spectral unit="keV"> - <crd:Name>Energy</crd:Name> - <crd:Error>0.1</crd:Error> - <crd:Resolution>0.02</crd:Resolution> - <crd:Resolution>2.0</crd:Resolution> - <crd:Size>2</crd:Size> - <crd:Size>10</crd:Size> - </crd:Spectral> - </crd:AstroCoords> - <AstroCoordArea ID="AllSky-CXO" coord_system_id="ICRS-TT-CXO"> - <TimeInterval> - <StartTime> - <crd:TimeScale>TT</crd:TimeScale> - <crd:ISOTime>1999-07-23T16:00:00</crd:ISOTime> - </StartTime> - </TimeInterval> - <Region> - <reg:AllSky fill_factor="0.02"/> - </Region> - <SpectralInterval unit="keV"> - <LoLimit>0.12</LoLimit> - <HiLimit>10.0</HiLimit> - </SpectralInterval> - </AstroCoordArea> -</STCResourceProfile> diff --git a/ast/ast_tester/teststc_eg10 b/ast/ast_tester/teststc_eg10 deleted file mode 100644 index 977fa57..0000000 --- a/ast/ast_tester/teststc_eg10 +++ /dev/null @@ -1,18 +0,0 @@ -<STCResourceProfile xmlns="http://www.ivoa.net/xml/STC/stc-v1.20.xsd"> - <AstroCoordSystem ID="ICRS-TT-CXO"> - <SpaceFrame> - <Name>Space</Name> - <GALACTIC_II/> - <TOPOCENTER/> - <SPHERICAL coord_naxes="2"/> - </SpaceFrame> - </AstroCoordSystem> - <AstroCoordArea ID="AllSky-CXO" coord_system_id="ICRS-TT-CXO"> - <Region> - <reg:Box unit="deg"> - <reg:Center>143.0 42.0</reg:Center> - <reg:Size>1.0 1.0</reg:Size> - </reg:Box> - </Region> - </AstroCoordArea> -</STCResourceProfile> diff --git a/ast/ast_tester/teststc_eg2 b/ast/ast_tester/teststc_eg2 deleted file mode 100644 index 6665676..0000000 --- a/ast/ast_tester/teststc_eg2 +++ /dev/null @@ -1,114 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- edited with XMLSpy v2005 sp1 U (http://www.xmlspy.com) by Arnold Rots (Smithsonian Observatory) --> -<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Arnold Rots (Smithsonian Observatory) --> -<!--Sample XML file generated by XMLSPY v2004 rel. 3 U (http://www.xmlspy.com)--> -<CatalogEntryLocation xmlns="http://www.ivoa.net/xml/STC/stc-v1.20.xsd" xmlns:crd="http://www.ivoa.net/xml/STC/STCcoords/v1.20" xmlns:reg="http://www.ivoa.net/xml/STC/STCregion/v1.20" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ivoa.net/xml/STC/stc-v1.20.xsd stc-v1.20.xsd"> - <AstroCoordSystem ID="B1950-OPTICAL-ET"> - <TimeFrame> - <TimeScale>ET</TimeScale> - <TOPOCENTER/> - </TimeFrame> - <SpaceFrame> - <Name>PosEq</Name> - <FK4> - <Equinox>B1950.0</Equinox> - </FK4> - <TOPOCENTER/> - <SPHERICAL coord_naxes="2"/> - </SpaceFrame> - <SpectralFrame> - <TOPOCENTER/> - </SpectralFrame> - <RedshiftFrame> - <Name>DopplerVelocity</Name> - <DopplerDefinition>OPTICAL</DopplerDefinition> - <BARYCENTER/> - </RedshiftFrame> - - </AstroCoordSystem> - <AstroCoordSystem ID="SGC-OPTICAL-ET"> - <TimeFrame> - <Name>Time</Name> - <TimeScale>ET</TimeScale> - <TOPOCENTER/> - </TimeFrame> - <SpaceFrame> - <Name>SGC</Name> - <SUPER_GALACTIC/> - <BARYCENTER/> - <SPHERICAL coord_naxes="2" /> - </SpaceFrame> - <SpectralFrame> - <Name>Optical</Name> - <TOPOCENTER/> - </SpectralFrame> - <RedshiftFrame> - <Name>DopplerVelocity</Name> - <DopplerDefinition>OPTICAL</DopplerDefinition> - <GALACTIC_CENTER/> - </RedshiftFrame> - </AstroCoordSystem> - <crd:AstroCoords coord_system_id="B1950-OPTICAL-ET"> - <crd:Position2D unit="deg"> - <crd:Name>RA,Dec</crd:Name> - <crd:Value2Ref>Column3</crd:Value2Ref> - <crd:Error2Ref>Column4</crd:Error2Ref> - <crd:Size2Ref>Column5</crd:Size2Ref> - </crd:Position2D> - <crd:Redshift unit="km" vel_time_unit="s"> - <crd:Name>Vrad(barycenter)</crd:Name> - <crd:ValueRef>Column6</crd:ValueRef> - <crd:ErrorRef>Column7</crd:ErrorRef> - </crd:Redshift> - </crd:AstroCoords> - <crd:AstroCoords coord_system_id="SGC-OPTICAL-ET"> - <crd:Position2D unit="deg"> - <crd:Name>SGLong,SGLat</crd:Name> - <crd:Value2Ref>Column8</crd:Value2Ref> - <crd:Error2Ref>Column9</crd:Error2Ref> - <crd:Size2Ref>Column10</crd:Size2Ref> - </crd:Position2D> - <crd:Redshift unit="km" vel_time_unit="s"> - <crd:Name>Vrad(Galcenter)</crd:Name> - <crd:ValueRef>Column11</crd:ValueRef> - <crd:ErrorRef>Column12</crd:ErrorRef> - </crd:Redshift> - </crd:AstroCoords> - <AstroCoordArea coord_system_id="B1950-OPTICAL-ET" ID="RA6-18hDec20-70deg"> - <TimeInterval> - <StartTime> - <crd:TimeScale>ET</crd:TimeScale> - <crd:JDTime>2440000</crd:JDTime> - </StartTime> - <StopTime> - <crd:TimeScale>ET</crd:TimeScale> - <crd:JDTime>2441000</crd:JDTime> - </StopTime> - </TimeInterval> - <Region> - <reg:Polygon unit="deg"> - <reg:Vertex> - <reg:Position>270 20</reg:Position> - </reg:Vertex> - <reg:Vertex> - <reg:Position>90 20</reg:Position> - <reg:SmallCircle/> - </reg:Vertex> - <reg:Vertex> - <reg:Position>90 70</reg:Position> - </reg:Vertex> - <reg:Vertex> - <reg:Position>270 70</reg:Position> - <reg:SmallCircle/> - </reg:Vertex> - </reg:Polygon> - </Region> - <SpectralInterval unit="Angstrom"> - <LoLimit>5000</LoLimit> - <HiLimit>6500</HiLimit> - </SpectralInterval> - <RedshiftInterval unit="km" vel_time_unit="s"> - <HiLimit>10000</HiLimit> - </RedshiftInterval> - </AstroCoordArea> -</CatalogEntryLocation> diff --git a/ast/ast_tester/teststc_eg3 b/ast/ast_tester/teststc_eg3 deleted file mode 100644 index 028d484..0000000 --- a/ast/ast_tester/teststc_eg3 +++ /dev/null @@ -1,113 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- edited with XMLSpy v2005 sp1 U (http://www.xmlspy.com) by Arnold Rots (Smithsonian Observatory) --> -<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Arnold Rots (Smithsonian Observatory) --> -<!--Sample XML file generated by XMLSPY v2004 rel. 3 U (http://www.xmlspy.com)--> -<CatalogEntryLocation xmlns="http://www.ivoa.net/xml/STC/stc-v1.20.xsd" xmlns:crd="http://www.ivoa.net/xml/STC/STCcoords/v1.20" xmlns:reg="http://www.ivoa.net/xml/STC/STCregion/v1.20" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ivoa.net/xml/STC/stc-v1.20.xsd stc-v1.20.xsd"> - <AstroCoordSystem ID="B1950-OPTICAL-ET"> - <TimeFrame> - <TimeScale>ET</TimeScale> - <TOPOCENTER/> - </TimeFrame> - <SpaceFrame> - <Name>PosEq</Name> - <FK4> - <Equinox>B1950.0</Equinox> - </FK4> - <TOPOCENTER/> - <SPHERICAL coord_naxes="2"/> - </SpaceFrame> - <SpectralFrame> - <TOPOCENTER/> - </SpectralFrame> - <RedshiftFrame> - <Name>DopplerVelocity</Name> - <DopplerDefinition>OPTICAL</DopplerDefinition> - <BARYCENTER/> - </RedshiftFrame> - </AstroCoordSystem> - <AstroCoordSystem ID="SGC-OPTICAL-ET"> - <TimeFrame> - <Name>Time</Name> - <TimeScale>ET</TimeScale> - <TOPOCENTER/> - </TimeFrame> - <SpaceFrame> - <Name>SGC</Name> - <SUPER_GALACTIC/> - <BARYCENTER/> - <SPHERICAL coord_naxes="2" /> - </SpaceFrame> - <SpectralFrame> - <Name>Optical</Name> - <TOPOCENTER/> - </SpectralFrame> - <RedshiftFrame> - <Name>DopplerVelocity</Name> - <DopplerDefinition>OPTICAL</DopplerDefinition> - <GALACTIC_CENTER/> - </RedshiftFrame> - </AstroCoordSystem> - <crd:AstroCoords coord_system_id="B1950-OPTICAL-ET"> - <crd:Position2D unit="deg"> - <crd:Name>RA,Dec</crd:Name> - <crd:Value2Ref>Column3</crd:Value2Ref> - <crd:Error2Ref>Column4</crd:Error2Ref> - <crd:Size2Ref>Column5</crd:Size2Ref> - </crd:Position2D> - <crd:Redshift unit="km" vel_time_unit="s"> - <crd:Name>Vrad(barycenter)</crd:Name> - <crd:ValueRef>Column6</crd:ValueRef> - <crd:ErrorRef>Column7</crd:ErrorRef> - </crd:Redshift> - </crd:AstroCoords> - <crd:AstroCoords coord_system_id="SGC-OPTICAL-ET"> - <crd:Position2D unit="deg"> - <crd:Name>SGLong,SGLat</crd:Name> - <crd:Value2Ref>Column8</crd:Value2Ref> - <crd:Error2Ref>Column9</crd:Error2Ref> - <crd:Size2Ref>Column10</crd:Size2Ref> - </crd:Position2D> - <crd:Redshift unit="km" vel_time_unit="s"> - <crd:Name>Vrad(Galcenter)</crd:Name> - <crd:ValueRef>Column11</crd:ValueRef> - <crd:ErrorRef>Column12</crd:ErrorRef> - </crd:Redshift> - </crd:AstroCoords> - <AstroCoordArea coord_system_id="B1950-OPTICAL-ET" ID="RA6-18hDec20-70deg"> - <TimeInterval> - <StartTime> - <crd:TimeScale>ET</crd:TimeScale> - <crd:JDTime>2440000</crd:JDTime> - </StartTime> - <StopTime> - <crd:TimeScale>ET</crd:TimeScale> - <crd:JDTime>2440000</crd:JDTime> - </StopTime> - </TimeInterval> - <Region> - <reg:Polygon unit="deg"> - <reg:Vertex> - <reg:Position>270 20</reg:Position> - </reg:Vertex> - <reg:Vertex> - <reg:Position>90 20</reg:Position> - <reg:SmallCircle/> - </reg:Vertex> - <reg:Vertex> - <reg:Position>90 70</reg:Position> - </reg:Vertex> - <reg:Vertex> - <reg:Position>270 70</reg:Position> - <reg:SmallCircle/> - </reg:Vertex> - </reg:Polygon> - </Region> - <SpectralInterval unit="Angstrom"> - <LoLimit>5000</LoLimit> - <HiLimit>5000</HiLimit> - </SpectralInterval> - <RedshiftInterval unit="km" vel_time_unit="s"> - <HiLimit>10000</HiLimit> - </RedshiftInterval> - </AstroCoordArea> -</CatalogEntryLocation> diff --git a/ast/ast_tester/teststc_eg4 b/ast/ast_tester/teststc_eg4 deleted file mode 100644 index 5b9d8ab..0000000 --- a/ast/ast_tester/teststc_eg4 +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<SearchLocation xmlns="http://www.ivoa.net/xml/STC/stc-v1.20.xsd" xmlns:crd="http://www.ivoa.net/xml/STC/STCcoords/v1.20" xmlns:reg="http://www.ivoa.net/xml/STC/STCregion/v1.20" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ivoa.net/xml/STC/stc-v1.20.xsd stc-v1.20.xsd"> - <AstroCoordSystem ID="ICRS-TT-BARY"> - <TimeFrame> - <Name>Time</Name> - <TimeScale>TT</TimeScale> - <BARYCENTER/> - </TimeFrame> - <SpaceFrame> - <Name>Equatorial</Name> - <ICRS/> - <TOPOCENTER/> - <SPHERICAL coord_naxes="2"/> - </SpaceFrame> - <SpectralFrame> - <Name>Wavelength</Name> - <BARYCENTER/> - </SpectralFrame> - </AstroCoordSystem> - <crd:AstroCoords coord_system_id="ICRS-TT-BARY"> - <crd:Position2D unit="deg"> - <crd:Name>RA,Dec</crd:Name> - <crd:Resolution2>0.0001 0.0001</crd:Resolution2> - <crd:Resolution2>0.0003 0.0003</crd:Resolution2> - <crd:Size2>0.5 0.5</crd:Size2> - <crd:Size2>0.67 0.67</crd:Size2> - <crd:PixSize2>0.00005 0.00005</crd:PixSize2> - <crd:PixSize2>0.00015 0.00015</crd:PixSize2> - </crd:Position2D> - <crd:Spectral unit="Angstrom"> - <crd:Name>Lambda</crd:Name> - <crd:Resolution>300</crd:Resolution> - <crd:Resolution>600</crd:Resolution> - </crd:Spectral> - </crd:AstroCoords> - <AstroCoordArea ID="M81" coord_system_id="ICRS-TT-BARY"> - <TimeInterval> - <StartTime> - <crd:TimeScale>TT</crd:TimeScale> - <crd:ISOTime>1900-01-01T00:00:00</crd:ISOTime> - </StartTime> - </TimeInterval> - <Region> - <reg:Circle unit="deg"> - <reg:Center>148.9 69.1</reg:Center> - <reg:Radius>2</reg:Radius> - </reg:Circle> - </Region> - <SpectralInterval unit="Angstrom"> - <LoLimit>4000</LoLimit> - <HiLimit>7000</HiLimit> - </SpectralInterval> - </AstroCoordArea> -</SearchLocation> - diff --git a/ast/ast_tester/teststc_eg5 b/ast/ast_tester/teststc_eg5 deleted file mode 100644 index 97aad97..0000000 --- a/ast/ast_tester/teststc_eg5 +++ /dev/null @@ -1,109 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ObsDataLocation xmlns="http://www.ivoa.net/xml/STC/stc-v1.20.xsd" xmlns:crd="http://www.ivoa.net/xml/STC/STCcoords/v1.20" xmlns:reg="http://www.ivoa.net/xml/STC/STCregion/v1.20" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ivoa.net/xml/STC/stc-v1.20.xsd stc-v1.20.xsd"> - <ObservatoryLocation ID="KPNO"> - <AstroCoordSystem ID="ICRS-TT-TOPO"> - <TimeFrame> - <Name>Time</Name> - <TimeScale>TT</TimeScale> - <TOPOCENTER/> - </TimeFrame> - <SpaceFrame> - <Name>GeoLongLatElev</Name> - <GEO_D/> - <TOPOCENTER/> - <SPHERICAL coord_naxes="3"/> - </SpaceFrame> - </AstroCoordSystem> - <crd:AstroCoords coord_system_id="ICRS-TT-TOPO"> - <crd:Position3D unit="deg deg m"> - <crd:Name>LongLatElev</crd:Name> - <crd:Value3>248.4056 31.9586 2158</crd:Value3> - </crd:Position3D> - </crd:AstroCoords> - </ObservatoryLocation> - <ObservationLocation ID="M81"> - <AstroCoordSystem ID="ICRS-TT-WAVELENGTH-TOPO"> - <TimeFrame> - <Name>Time</Name> - <TimeScale>TT</TimeScale> - <TOPOCENTER/> - </TimeFrame> - <SpaceFrame> - <Name>Equatorial</Name> - <ICRS/> - <TOPOCENTER/> - <SPHERICAL coord_naxes="2"/> - </SpaceFrame> - <SpectralFrame> - <Name>Wavelength</Name> - <TOPOCENTER/> - </SpectralFrame> - </AstroCoordSystem> - <crd:AstroCoords coord_system_id="ICRS-TT-WAVELENGTH-TOPO"> - <crd:Time unit="s"> - <crd:Name>Time</crd:Name> - <crd:TimeInstant> - <crd:TimeScale>TT</crd:TimeScale> - <crd:ISOTime>2004-07-15T08:23:56 </crd:ISOTime> - </crd:TimeInstant> - <crd:PixSize>1000</crd:PixSize> - </crd:Time> - <crd:Position2D unit="deg"> - <crd:Name>RA,Dec</crd:Name> - <crd:Value2>148.88821 69.06529</crd:Value2> - <crd:Error2>0.0003 0.0003</crd:Error2> - <crd:Resolution2>0.00025 0.00025 </crd:Resolution2> - <crd:PixSize2>0.0001 0.0001</crd:PixSize2> - </crd:Position2D> - <crd:Spectral unit="Angstrom"> - <crd:Name>Lambda</crd:Name> - <crd:Value>4600</crd:Value> - <crd:Resolution>400</crd:Resolution> - <crd:PixSize>400</crd:PixSize> - </crd:Spectral> - </crd:AstroCoords> - <AstroCoordArea ID="M81Image" coord_system_id="ICRS-TT-WAVELENGTH-TOPO"> - <TimeInterval> - <StartTime> - <crd:TimeScale>TT</crd:TimeScale> - <crd:ISOTime>2004-07-15T08:17:36 </crd:ISOTime> - </StartTime> - <StopTime> - <crd:TimeScale>TT</crd:TimeScale> - <crd:ISOTime>2004-07-15T08:30:16 </crd:ISOTime> - </StopTime> - </TimeInterval> - <PositionInterval unit="deg"> - <Coord2VecInterval> - <LoLimit2Vec>148.18821 68.81529 </LoLimit2Vec> - <HiLimit2Vec>149.58821 69.31529 </HiLimit2Vec> - </Coord2VecInterval> - </PositionInterval> - <SpectralInterval unit="Angstrom"> - <LoLimit>4400</LoLimit> - <HiLimit>4800</HiLimit> - </SpectralInterval> - </AstroCoordArea> - </ObservationLocation> - <PixelSpace> - <PixelCoordSystem ID="M81Pix"> - <PixelCoordFrame> - <Name>X</Name> - </PixelCoordFrame> - <PixelCoordFrame> - <Name>Y</Name> - </PixelCoordFrame> - </PixelCoordSystem> - <PixelCoordArea coord_system_id="M81Pix" ID="M81PixImage"> - <CoordScalarInterval> - <LoLimit>1</LoLimit> - <HiLimit>1024</HiLimit> - </CoordScalarInterval> - <CoordScalarInterval> - <LoLimit>1</LoLimit> - <HiLimit>1024</HiLimit> - </CoordScalarInterval> - </PixelCoordArea> - </PixelSpace> -</ObsDataLocation> - diff --git a/ast/ast_tester/teststc_eg6 b/ast/ast_tester/teststc_eg6 deleted file mode 100644 index 7a291f6..0000000 --- a/ast/ast_tester/teststc_eg6 +++ /dev/null @@ -1,49 +0,0 @@ -<STCResourceProfile xmlns="http://www.ivoa.net/xml/STC/stc-v1.20.xsd"> - <AstroCoordSystem ID="ICRS-TT-CXO"> - <TimeFrame> - <Name>Time</Name> - <TimeScale>TAI</TimeScale> - <TOPOCENTER/> - </TimeFrame> - <SpaceFrame> - <Name>Space</Name> - <ICRS/> - <TOPOCENTER/> - <SPHERICAL coord_naxes="2"/> - </SpaceFrame> - <SpectralFrame> - <Name>Energy</Name> - <TOPOCENTER/> - </SpectralFrame> - </AstroCoordSystem> - <AstroCoords coord_system_id="ICRS-TT-CXO"> - <Time unit="s"> - <Name>Time</Name> - <Error>0.0001</Error> - </Time> - <Position2D unit="arcsec"> - <Name>Position</Name> - <Error2> - 1.0 1.0 - </Error2> - </Position2D> - <Spectral unit="keV"> - <Name>Energy</Name> - <Error>0.1</Error> - </Spectral> - </AstroCoords> - <AstroCoordArea ID="AllSky-CXO" coord_system_id="ICRS-TT-CXO"> - <TimeInterval> - <StartTime> - <ISOTime>1999-07-23T16:00:00</ISOTime> - </StartTime> - </TimeInterval> - <Region> - <reg:AllSky fill_factor="0.02"/> - </Region> - <SpectralInterval unit="keV"> - <LoLimit>0.12</LoLimit> - <HiLimit>10.0</HiLimit> - </SpectralInterval> - </AstroCoordArea> -</STCResourceProfile> diff --git a/ast/ast_tester/teststc_eg7 b/ast/ast_tester/teststc_eg7 deleted file mode 100644 index 0106c85..0000000 --- a/ast/ast_tester/teststc_eg7 +++ /dev/null @@ -1,52 +0,0 @@ -<STCResourceProfile xmlns="http://www.ivoa.net/xml/STC/stc-v1.20.xsd"> - <AstroCoordSystem ID="ICRS-TT-CXO"> - <TimeFrame> - <Name>Time</Name> - <TOPOCENTER/> - <TimeScale>TAI</TimeScale> - </TimeFrame> - <SpaceFrame> - <Name>Space</Name> - <ICRS/> - <TOPOCENTER/> - <SPHERICAL coord_naxes="2"/> - </SpaceFrame> - <SpectralFrame> - <Name>Energy</Name> - <TOPOCENTER/> - </SpectralFrame> - </AstroCoordSystem> - <AstroCoords coord_system_id="ICRS-TT-CXO"> - <Time unit="s"> - <Name>Time</Name> - <Error>0.0001</Error> - </Time> - <Position2D unit="arcsec"> - <Name>Position</Name> - <Error2> - 1.0 1.0 - </Error2> - </Position2D> - <Spectral unit="keV"> - <Name>Energy</Name> - <Error>0.1</Error> - </Spectral> - </AstroCoords> - <AstroCoordArea ID="AllSky-CXO" coord_system_id="ICRS-TT-CXO"> - <TimeInterval> - <StartTime> - <ISOTime>1998-07-23T16:00:00</ISOTime> - </StartTime> - </TimeInterval> - <Region> - <reg:Circle unit="deg deg"> - <Center>0.0 90.0</Center> - <Radius>2.0</Radius> - </reg:Circle> - </Region> - <SpectralInterval unit="keV"> - <LoLimit>8.0</LoLimit> - <HiLimit>11.0</HiLimit> - </SpectralInterval> - </AstroCoordArea> -</STCResourceProfile> diff --git a/ast/ast_tester/teststc_eg8 b/ast/ast_tester/teststc_eg8 deleted file mode 100644 index 17c6574..0000000 --- a/ast/ast_tester/teststc_eg8 +++ /dev/null @@ -1,52 +0,0 @@ -<STCResourceProfile xmlns="http://www.ivoa.net/xml/STC/stc-v1.20.xsd"> - <AstroCoordSystem ID="ICRS-TT-CXO"> - <TimeFrame> - <Name>Time</Name> - <TimeScale>UTC</TimeScale> - <TOPOCENTER/> - </TimeFrame> - <SpaceFrame> - <Name>Space</Name> - <ICRS/> - <TOPOCENTER/> - <SPHERICAL coord_naxes="2"/> - </SpaceFrame> - <SpectralFrame> - <Name>Energy</Name> - <TOPOCENTER/> - </SpectralFrame> - </AstroCoordSystem> - <AstroCoords coord_system_id="ICRS-TT-CXO"> - <Time unit="s"> - <Name>Time</Name> - <Error>0.0001</Error> - </Time> - <Position2D unit="arcsec"> - <Name>Position</Name> - <Error2> - 1.0 1.0 - </Error2> - </Position2D> - <Spectral unit="keV"> - <Name>Energy</Name> - <Error>0.1</Error> - </Spectral> - </AstroCoords> - <AstroCoordArea ID="AllSky-CXO" coord_system_id="ICRS-TT-CXO"> - <TimeInterval> - <StartTime> - <ISOTime>1999-09-23T16:00:00</ISOTime> - </StartTime> - </TimeInterval> - <Region> - <reg:Circle unit="deg deg"> - <Center>0.0 90.0</Center> - <Radius>2.0</Radius> - </reg:Circle> - </Region> - <SpectralInterval unit="keV"> - <LoLimit>8.0</LoLimit> - <HiLimit>9.0</HiLimit> - </SpectralInterval> - </AstroCoordArea> -</STCResourceProfile> diff --git a/ast/ast_tester/teststc_eg9 b/ast/ast_tester/teststc_eg9 deleted file mode 100644 index 195adb7..0000000 --- a/ast/ast_tester/teststc_eg9 +++ /dev/null @@ -1,49 +0,0 @@ -<STCResourceProfile xmlns="http://www.ivoa.net/xml/STC/stc-v1.20.xsd"> - <AstroCoordSystem ID="ICRS-TT-CXO"> - <TimeFrame> - <Name>Time</Name> - <TimeScale>TCB</TimeScale> - <TOPOCENTER/> - </TimeFrame> - <SpaceFrame> - <Name>Space</Name> - <ICRS/> - <TOPOCENTER/> - <SPHERICAL coord_naxes="2"/> - </SpaceFrame> - <SpectralFrame> - <Name>Energy</Name> - <TOPOCENTER/> - </SpectralFrame> - </AstroCoordSystem> - <AstroCoords coord_system_id="ICRS-TT-CXO"> - <Time unit="s"> - <Name>Time</Name> - <Error>0.0001</Error> - </Time> - <Position2D unit="arcsec"> - <Name>Position</Name> - <Error2> - 1.0 1.0 - </Error2> - </Position2D> - <Spectral unit="keV"> - <Name>Energy</Name> - <Error>0.1</Error> - </Spectral> - </AstroCoords> - <AstroCoordArea ID="AllSky-CXO" coord_system_id="ICRS-TT-CXO"> - <TimeInterval> - <StopTime> - <ISOTime>1999-06-23T16:00:00</ISOTime> - </StopTime> - </TimeInterval> - <Region> - <reg:AllSky fill_factor="0.02"/> - </Region> - <SpectralInterval unit="keV"> - <LoLimit>0.12</LoLimit> - <HiLimit>10.0</HiLimit> - </SpectralInterval> - </AstroCoordArea> -</STCResourceProfile> diff --git a/ast/ast_tester/teststcschan.f b/ast/ast_tester/teststcschan.f deleted file mode 100755 index 928b301..0000000 --- a/ast/ast_tester/teststcschan.f +++ /dev/null @@ -1,654 +0,0 @@ - program teststcschan - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - integer status - - status = sai__ok - - call ast_begin( status ) - -c call ast_watchmemory( 209814 ); - - call test2( status ) - call test1( status ) - - - - - call ast_end( status ) -c call ast_activememory( ' ' ) -c call ast_flushmemory( 1 ) - - if( status .eq. sai__ok ) then - call msg_out( ' ', ' All StcsChan tests passed', status ) - else - call err_rep( ' ', 'StcsChan tests failed', status ) - end if - - end - - - - - - subroutine test1( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'AST_ERR' - include 'PRM_PAR' - - integer iwrite - character buff(30)*300 - common /bbb/ iwrite, buff - - integer iread, idoc - common /aaa/ iread, idoc - - integer status, ch, obj, km, i, sb, iobj, nobj - external source, sink - - double precision lbnd(4), ubnd(4) - if( status .ne. sai__ok ) return - - call ast_begin( status ) - - ch = ast_stcschan( source, sink, 'ReportLevel=3', status ) - - - idoc = 4 - iread = 0 - obj = ast_read( ch, status ) - - idoc = 1 - iread = 0 - - call err_mark - obj = ast_read( ch, status ) - if( status .eq. AST__BADIN ) then - call err_annul( status ) - call err_rlse - else - call err_rlse - call error( 'Failed to report error about "fred"', status ) - end if - - - idoc = 2 - iread = 0 - obj = ast_read( ch, status ) - - km = ast_warnings( ch, status ) - if( km .eq. AST__NULL ) call error( 'No Warnings keymap', status ) - call asserti( 'Warnings mapsize', ast_mapsize( km, status ), 4, - : status ) - - call asserta( obj, 'Class', 'Prism', status ) - call asserta( obj, 'Naxes', '4', status ) - call asserta( obj, 'Label(1)', 'Modified Julian Date offset '// - : 'from 1900-01-01', status ) - call asserta( obj, 'Label(2)', 'Right ascension', status ) - call asserta( obj, 'Label(3)', 'Declination', status ) - call asserta( obj, 'Label(4)', 'Wavelength', status ) - call asserta( obj, 'Unit(1)', 'd', status ) - call asserta( obj, 'Unit(4)', 'Angstrom', status ) - - call ast_GetRegionBounds( obj, lbnd, ubnd, status ) - call ast_setc( obj, 'Format(1)', 'iso.2', status ) - call assertd( 'Time upper bounds', ubnd(1), VAL__MAXD, status ) - call assertc( 'Time lower bound', - : ast_format( obj, 1, lbnd(1), status ), - : '1900-01-01 00:00:00.00', status ) - call assertd( 'RA lower bound', lbnd(2), 2.50080939227851D0, - : status ) - call assertd( 'RA upper bound', ubnd(2), 2.6967811201606D0, - : status ) - call assertd( 'Dec lower bound', lbnd(3), 1.171115928088195D0, - : status ) - call assertd( 'Dec upper bound', ubnd(3), 1.24091013301998D0, - : status ) - call assertd( 'Wavelength lower bound', lbnd(4), 4000.0D0, - : status ) - call assertd( 'Wavelength upper bound', ubnd(4), 7000.0D0, - : status ) - - - - idoc = 3 - iread = 0 - obj = ast_read( ch, status ) - - call readast( 'stcschan-test1-doc3.ast', sb, status ) - if( .not. ast_equal( obj, sb, status ) ) then - call error( 'Object read from doc3 is not equal to the '// - : 'object read from file stcschan-test1-doc3.ast.', - : status ) - end if - - - call ast_setl( ch, 'StcsCoords', .true., status ) - call ast_setl( ch, 'StcsProps', .true., status ) - - idoc = 3 - iread = 0 - obj = ast_read( ch, status ) - - call asserta( obj, 'Class', 'KeyMap', status ) - call assert( 'Has PROPS entry', AST_MAPHASKEY( obj, 'PROPS', - : status ), status ) - call assert( 'Has COORDS entry', AST_MAPHASKEY( obj, 'COORDS', - : status ), status ) - - if( ast_mapget0a( obj, 'AREA', iobj, status ) ) then - call readast( 'stcschan-test1-doc3.ast', sb, status ) - if( .not. ast_equal( iobj, sb, status ) ) then - call error( 'AREA read from doc3 is not equal to the '// - : 'object read from file stcschan-test1-doc3.ast', - : status ) - end if - else - call error( 'No AREA entry found', status ) - end if - - if( ast_mapget0a( obj, 'PROPS', iobj, status ) ) then - call readast( 'stcschan-test1-doc3-props.ast', sb, status ) - if( .not. ast_equal( iobj, sb, status ) ) then - call error( 'PROPS read from doc3 is not equal to the '// - : 'object read from file stcschan-test1-doc3-props.ast', - : status ) - end if - else - call error( 'No PROPS entry found', status ) - end if - - - - idoc = 5 - iread = 0 - - call ast_setl( ch, 'Indent', .true., status ) - - obj = ast_read( ch, status ) - - iwrite = 0 - nobj = ast_write( ch, obj, status ) - call asserti( 'N obj', nobj, 1, status ) - - call assertc( 'line 1 3', buff(1), - : 'TimeInterval TT geocenter 1996-01-01T00:00:00 '// - : '1996-01-01T00:30:00', status ) - call assertc( 'line 2 3', buff(2), - : ' Time MJD 50814.0 Error 1.2 Resolution 0.8 '// - : 'PixSize 1024.0', status ) - call assertc( 'line 3 3', buff(3), - : 'Union ICRS GEOCENTER ( ', status ) - call assertc( 'line 4 3', buff(4), - : ' Circle 180 10 20 ', status ) - call assertc( 'line 5 3', buff(5), - : ' Circle 190 10 20 ', status ) - call assertc( 'line 6 3', buff(6), - : ' Intersection ( ', status ) - call assertc( 'line 7 3', buff(7), - : ' Circle 120 -10 20 ', status ) - call assertc( 'line 8 3', buff(8), - : ' Difference ( ', status ) - call assertc( 'line 9 3', buff(9), - : ' Circle 130 -10 20 ', status ) - call assertc( 'line 10 3', buff(10), - : ' Circle 115 -10 10 ', status ) - call assertc( 'line 11 3', buff(11), - : ' ) ', status ) - call assertc( 'line 12 3', buff(12), - : ' ) ', status ) - call assertc( 'line 13 3', buff(13), - : ' ) ', status ) - call assertc( 'line 14 3', buff(14), - : ' Position 179.0 -11.5 Error 0.000889 0.000889 '// - : 'Resolution 0.001778', status ) - call assertc( 'line 15 3', buff(15), - : ' Size 0.000333 0.000278 PixSize 0.000083 '// - : '0.000083', status ) - call assertc( 'line 16 3', buff(16), - : 'Spectral BARYCENTER 1420.4 unit MHz Resolution '// - : '10.0 ', status ) - call assertc( 'line 17 3', buff(17), - : 'RedshiftInterval BARYCENTER VELOCITY OPTICAL '// - : '200 2300 Redshift 300', status ) - - call ast_end( status ) - - if( status .ne. sai__ok ) call err_rep( ' ', 'test1 failed.', - : status ) - - end - - - subroutine test2( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'AST_ERR' - include 'PRM_PAR' - - integer iwrite - character buff(30)*300 - common /bbb/ iwrite, buff - - integer iread, idoc - common /aaa/ iread, idoc - - - - external source, sink - - integer status, ch, sf, unc, reg, nobj, obj, chr_len - double precision p1(2), p2(2), p3(3), lbnd(2), ubnd(2) - - if( status .ne. sai__ok ) return - - - call ast_begin( status ) - ch = ast_stcschan( source, sink, 'ReportLevel=3',status ) - call ast_setl( ch, 'Indent', .true., status ) - call ast_seti( ch, 'StcsLength', 60, status ) - - sf = ast_skyframe( ' ', status ); - p1( 1 ) = 0.0 - p1( 2 ) = 1.3 - p2( 1 ) = 0.01 - - unc = ast_circle( sf, 1, p1, p2, AST__NULL, ' ', status ) - - p1( 1 ) = 1.3 - p1( 2 ) = 0.5 - p2( 1 ) = 0.3 - p2( 2 ) = 0.1 - p3( 1 ) = 1.0 - reg = ast_ellipse( sf, 1, p1, p2, p3, unc, ' ', status ) - - iwrite = 0 - nobj = ast_write( ch, reg, status ) - call asserti( 'N obj', nobj, 1, status ) - call asserti( 'iwrite', iwrite, 2, status ) - call assertc( 'line 1', buff(1), 'Ellipse ICRS TOPOCENTER '// - : '74.48451 28.64789 17.18873 5.729578', status ) - call assertc( 'line 2', buff(2), ' 57.29578 Error 0.5729514 '// - : '0.5726735', status ) - - call ast_set( ch, 'StcsCoords=1,StcsProps=1', status ) - - idoc = 3 - iread = 0 - obj = ast_read( ch, status ) - - if( obj .ne. AST__NULL ) then - iwrite = 0 - nobj = ast_write( ch, obj, status ) - call asserti( 'N obj 2', nobj, 1, status ) - - call assertc( 'line 1 2', buff(1), 'TimeInterval TT '// - : 'GEoCENTER 1996-01-01T00:00:00', status ) - - call assertc( 'line 2 2', buff(2), ' 1996-01-01T00:30:00 '// - : 'Time MJD 50814.0 Error 1.2', status ); - - call assertc( 'line 3 2', buff(3), ' Resolution 0.8 '// - : 'PixSize 1024.0', status ) - - call assertc( 'line 4 2', buff(4), 'Circle ICRS GEOCENTER '// - : '179.0 -11.5 0.5 Position 179.0 -11.5', status ) - - call assertc( 'line 5 2', buff(5), ' Error 0.000889 '// - : '0.000889 Resolution 0.001778 Size 0.000333', - : status ) - - call assertc( 'line 6 2', buff(6), ' 0.000278 PixSize '// - : '0.000083 0.000083', status ) - - call assertc( 'line 7 2', buff(7), 'Spectral BARYCENTER '// - : '1420.4 unit MHz Resolution 10.0', status ) - - call assertc( 'line 8 2', buff(8), 'RedshiftInterval '// - : 'BARYCENTER VELOCITY OPTICAL 200 2300 ', - : status ) - - call assertc( 'line 9 2', buff(9), ' Redshift 300 '// - : 'Resolution 0.7 PixSize 0.3', status ) - - else - write(*,*) 'No object read from doc 3' - end if - - - call ast_end( status ) - - if( status .ne. sai__ok ) call err_rep( ' ', 'test2 failed.', - : status ) - - end - - - - - - - - - - - - - - - subroutine source( status ) - implicit none - - integer iread, idoc - common /aaa/ iread, idoc - - logical done - integer status, l, chr_len - character c*80 - - c = ' ' - done = .false. - - if( idoc .eq. 1 ) then - if( iread .eq. 0 ) then - c = 'StartTime 1900-01-01 Circle ICRS 148.9 69.1 2.0 fred' - else if( iread .eq. 1 ) then - c = 'SpectralInterval 4000 7000 unit Angstrom' - else - done = .true. - end if - - else if( idoc .eq. 2 ) then - if( iread .eq. 0 ) then - c = 'StartTime 1900-01-01 Circle ICRS 148.9 69.1 2.0 ' - else if( iread .eq. 1 ) then - c = 'SpeCtralInterval 4000 7000 unit Angstrom' - else - done = .true. - end if - - else if( idoc .eq. 3 ) then - if( iread .eq. 0 ) then - c = 'TimeInterVal TT GEoCENTER' - else if( iread .eq. 1 ) then - c = '1996-01-01T00:00:00 1996-01-01T00:30:00' - else if( iread .eq. 2 ) then - c = 'Time MJD 50814.0 Error 1.2' - else if( iread .eq. 3 ) then - c = 'Resolution 0.8 PixSize 1024.0' - else if( iread .eq. 4 ) then - c = 'Circle ICRS GEOCENTER 179.0 -11.5 0.5' - else if( iread .eq. 5 ) then - c = 'Position 179.0 -11.5 Error 0.000889' - else if( iread .eq. 6 ) then - c = 'Resolution 0.001778 Size 0.000333 0.000278' - else if( iread .eq. 7 ) then - c = 'PixSIZE 0.000083 0.000083' - else if( iread .eq. 8 ) then - c = 'Spectral BARYCENTER 1420.4 unit MHz' - else if( iread .eq. 9 ) then - c = 'Resolution 10.0' - else if( iread .eq. 10 ) then - c = 'RedshiftInterval BARYCENTER VELOCITY OPTICAL' - else if( iread .eq. 11 ) then - c = '200.0 2300.0 Redshift 300.0' - else if( iread .eq. 12 ) then - c = 'Resolution 0.7 PixSize 0.3' - else - done = .true. - end if - - else if( idoc .eq. 4 ) then - if( iread .eq. 0 ) then - c = 'TimeInterval TT GEOCENTER' - else if( iread .eq. 1 ) then - c = '1996-01-01T00:00:00 1996-01-01T00:30:00' - else if( iread .eq. 2 ) then - c = 'Time mjd 50814.0 ERROR 1.2' - else if( iread .eq. 3 ) then - c = 'Resolution 0.8 PixSize 1024.0' - else if( iread .eq. 4 ) then - c = 'Spectral barycenter 1420.4 UNIT MHz' - else if( iread .eq. 5 ) then - c = 'Resolution 10.0' - else - done = .true. - end if - -* Like doc 3 but with a compound spatial region - else if( idoc .eq. 5 ) then - if( iread .eq. 0 ) then - c = 'tIMEiNTERVAL tt geocenter' - else if( iread .eq. 1 ) then - c = '1996-01-01T00:00:00 1996-01-01T00:30:00' - else if( iread .eq. 2 ) then - c = 'Time MJD 50814.0 Error 1.2' - else if( iread .eq. 3 ) then - c = 'Resolution 0.8 PixSize 1024.0' - else if( iread .eq. 4 ) then - c = ' ' - else if( iread .eq. 5 ) then - c = 'Union ICRS GEOCENTER' - else if( iread .eq. 6 ) then - c = ' (Circle 180 10 20' - else if( iread .eq. 7 ) then - c = ' Circle 190 10 20' - else if( iread .eq. 8 ) then - c = ' Intersection (' - else if( iread .eq. 9 ) then - c = ' cIRCLE 120 -10 20 dIFFERENCE ' - else if( iread .eq. 10 ) then - c = ' ( Circle 130 -10 20 ' - else if( iread .eq. 11 ) then - c = ' Circle 115 -10 10 ' - else if( iread .eq. 12 ) then - c = ' )' - else if( iread .eq. 13 ) then - c = ' Not (Circle 118 -8 3)' - else if( iread .eq. 14 ) then - c = ' )' - else if( iread .eq. 15 ) then - c = ' )' - else if( iread .eq. 16 ) then - c = 'Position 179.0 -11.5 Error 0.000889' - else if( iread .eq. 17 ) then - c = 'Resolution 0.001778 Size 0.000333 0.000278' - else if( iread .eq. 18 ) then - c = 'PixSize 0.000083 0.000083' - else if( iread .eq. 19 ) then - c = 'Spectral BARYCENTER 1420.4 unit MHz' - else if( iread .eq. 20 ) then - c = 'rESOLUTION 10.0' - else if( iread .eq. 21 ) then - c = 'rEDSHIFTiNTERVAL barycenter velocity optical' - else if( iread .eq. 22 ) then - c = '200.0 2300.0 rEDSHIFT 300.0' - else if( iread .eq. 23 ) then - c = 'Resolution 0.7 PixSize 0.3' - else - done = .true. - end if - - end if - - l = max( chr_len( c ), 1 ) - if( .not. done ) then - call ast_putline( c, l, status ) - iread = iread + 1 - else - call ast_putline( ' ', -1, status ) - end if - - end - - - - - - - - subroutine sink( status ) - implicit none - - integer iwrite - character buff(30)*300 - common /bbb/ iwrite, buff - - integer status, l - character line*300 - - call ast_getline( line, l, status ) - if( l .gt. 0 ) then - if( iwrite .lt. 0 ) then - write(*,*) line( : l ) - else - iwrite = iwrite + 1 - buff( iwrite ) = ' ' - buff( iwrite ) = line( : l ) - end if - end if - - end - - - subroutine asserta( obj, anam, asb, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer obj, status - character anam*(*), asb*(*), aval*80 - - aval = ast_GetC( obj, anam, status ) - - if( aval .ne. asb ) then - call msg_setc( 'A', anam ) - call msg_setc( 'B', aval ) - call msg_setc( 'C', asb ) - call error( '^A (^B) should be "^C".', status ) - end if - - end - - subroutine assertc( name, val, sb, status ) - implicit none - include 'SAE_PAR' - integer status, i - character name*(*), val*(*), sb*(*) - character blank*500 - - if( val .ne. sb .and. status .eq. sai__ok ) then - call msg_setc( 'A', name ) - call msg_setc( 'B', val ) - call error( '^A (^B) should be:', status ) - - i = 1 - blank = ' ' - do while( val( i : i ) .eq. sb( i : i ) ) - i = i + 1 - end do - blank( i : i ) = '^' - - write(*,*) sb - write(*,*) blank( : i + 2 ) - - end if - - end - - subroutine asserti( name, val, sb, status ) - implicit none - include 'SAE_PAR' - integer status - character name*(*) - integer val, sb - - if( val .ne. sb ) then - call msg_setc( 'A', name ) - call msg_seti( 'B', val ) - call msg_seti( 'C', sb ) - call error( '^A (^B) should be ^C.', status ) - end if - - end - - subroutine assert( name, val, status ) - implicit none - include 'SAE_PAR' - integer status - character name*(*) - logical val - - if( .not. val ) then - call msg_setc( 'A', name ) - call error( '^A is not true.', status ) - end if - - end - - subroutine assertd( name, val, sb, status ) - implicit none - include 'SAE_PAR' - integer status - character name*(*) - double precision val, sb - - if( abs( val - sb ) .gt. 0.5E-8*( val + sb ) ) then - call msg_setc( 'A', name ) - call msg_setd( 'B', val ) - call msg_setd( 'C', sb ) - call error( '^A (^B) should be ^C.', status ) - end if - - end - - subroutine error( text, status ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - - if( status .eq. sai__ok ) then - status = sai__error - call err_rep( ' ', text, status ) - end if - - end - - - subroutine readast( file, obj, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer obj, status, channel - character file*(*) - external rsource - - if( status .ne. sai__ok ) return - - open( 10, file=file, status='old' ) - channel = ast_channel( rsource, ast_null, ' ', status ) - obj = ast_read( channel, status ) - call ast_annul( channel, status ) - close( 10 ) - - end - - - subroutine rsource( status ) - integer status - character buffer*200 - - read( 10, '(a)', end = 99 ) buffer - call ast_putline( buffer, len( buffer ), status ) - return - - 99 call ast_putline( buffer, -1, status ) - end - - diff --git a/ast/ast_tester/testswitchmap.f b/ast/ast_tester/testswitchmap.f deleted file mode 100644 index 401447b..0000000 --- a/ast/ast_tester/testswitchmap.f +++ /dev/null @@ -1,794 +0,0 @@ - program testswitchmap - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - integer status, outperm(2), inperm(2), wm1, wm2, pm1, pm2, rm(2), - : fs, is, swm, i, swm2, cm, cm2, sm, oc, mc, fc, - : box(2), gridframe - double precision x1, x2, l1, l2, in(4,2), out(4,2), at(2), r, - : p1(2),p2(2), rmout(4,2), r1, r2 - character text*10, fwd(1)*40, inv(2)*40, card(10)*80 - - status = sai__ok - - call ast_begin( status ) - -c call ast_watchmemory(22617) - - oc = ast_tune( 'ObjectCaching', 1, status ) - mc = ast_tune( 'MemoryCaching', 1, status ) - - - -* A 2D input grid has 2 rows and 101 columns. Each row contains a spectrum. -* The two spectra cover overlaping regions of wavelength. The spectrum in -* row 1 has "wavelength = (gridx - 1)*10+1000", whilst the spectrum in -* row 2 has "wavelength = (gridx - 1)*11+1600". We use a (Nin=2,Nout=1) -* SwitchMap to describe the Mapping from grid (x,y) to wavelength. This -* SwitchMap contains 2 route Mappings, one for each row of the grid. -* -------------------------------------------------------------------- - -* Produce a 1D Mapping from gridx to wavelength for row 1. - x1 = 1.0 - x2 = 101.0 - l1 = 1000.0 - l2 = 2000.0 - wm1 = ast_winmap( 1, x1, x2, l1, l2, ' ', status ) - -* Since the SwicthMap has 2 inputs, each of the route Mappings must also -* have 2 inputs. Produce a PermMap which passes on its 1st input to its -* (one and only) output. The inverse transformation supplied a value of -* 1.0 for the missing 2nd input (1.0 is the grid Y value for the first -* row). - outperm( 1 ) = 1 - inperm( 1 ) = 1 - inperm( 2 ) = -1 - pm1 = ast_permmap( 2, inperm, 1, outperm, 1.0D0, ' ', status ) - -* Combine the PermMap and WinMap in series to get the total route -* Mapping for the first row. - rm(1) = ast_cmpmap( pm1, wm1, .true., ' ', status ) - -* Likewise, produce the route Mapping for the second row. The grid y -* value for the second row is 2.0, so use this as the constant in the -* PermMap (i.e. the value which the inverse transformation supplies for -* the missing second input). - l1 = 1600.0 - l2 = 2700.0 - wm2 = ast_winmap( 1, x1, x2, l1, l2, ' ', status ) - pm2 = ast_permmap( 2, inperm, 1, outperm, 2.0D0, ' ', status ) - rm(2) = ast_cmpmap( pm2, wm2, .true., ' ', status ) - -* The forward selector Mapping just uses the second input (the grid Y -* value) as the selector value (i.e. gridy=1 selects the first route -* Mapping and gridy=2 selects the second route Mapping). The inverse -* transformation of this Mapping is never used and so does not matter. - outperm( 1 ) = 2 - inperm( 2 ) = 1 - inperm( 1 ) = 0 - fs = ast_permmap( 2, inperm, 1, outperm, 0.0D0, ' ', status ) - -* The inverse selector function needs to decide which route Mapping to -* use for any supplied ("output") wavelength value. We arbitrarily -* decide to to use the first row for wavelengths less than or equal to -* 1800, and the second row for wavelengths larger than 1800 (1800 is the -* mid-point of the overlap between the two spectra). We use a MathMap to -* implement this transformation, which must be the *inverse* -* transformation of the MathMap. The forward transformation of the -* inverse slector Mapping is never used and so is left unspecified in -* the MathMap constructor. - is = ast_mathmap( 1, 1, 1, 'y', 1, 'x=qif(y>1800,2,1)', ' ', - : status ) - -* Now create the SwitchMap. - swm = ast_switchmap( fs, is, 2, rm, ' ', status ) - -* Test the forward transformation of the SwitchMap. To add complication, -* we first invert the SwitchMap and then use ast_trann in the inverse -* direction (the two inversions cancel resulting in the forward -* transformation being used). - call ast_invert( swm, status ) - - in(1,1) = 1.0 - in(1,2) = 1.0 - in(2,1) = 101.0 - in(2,2) = 2.0 - in(3,1) = 1.0 - in(3,2) = 2.0 - in(4,1) = 101.0 - in(4,2) = 1.0 - call ast_trann( swm, 4, 2, 4, in, .false., 1, 4, out, status ) - - do i = 1, 4 - if( out(i,1) .eq. ast__bad ) then - call stopit( i, out(i,1), status ) - end if - end do - - if( abs( out(1,1) - 1000.0 ) .gt. 1.0E-5 ) then - call stopit( 5, out(1,1), status ) - else if( abs( out(2,1) - 2700.0 ) .gt. 1.0E-5 ) then - call stopit( 6, out(2,1), status ) - else if( abs( out(3,1) - 1600.0 ) .gt. 1.0E-5 ) then - call stopit( 7, out(3,1), status ) - else if( abs( out(4,1) - 2000.0 ) .gt. 1.0E-5 ) then - call stopit( 8, out(4,1), status ) - end if - -* Test the inverse transformation of the SwitchMap. - call ast_trann( swm, 4, 1, 4, out, .true., 2, 4, in, status ) - - do i = 1, 4 - if( in(i,1) .eq. ast__bad ) then - call stopit( 7 + 2*i, in(i,1), status ) - else if( in(i,2) .eq. ast__bad ) then - call stopit( 8 + 2*i, in(i,2), status ) - end if - end do - - if( abs( in(1,1) - 1.0 ) .gt. 1.0E-5 ) then - call stopit( 17, in(1,1), status ) - else if( abs( in(1,2) - 1.0 ) .gt. 1.0E-5 ) then - call stopit( 18, in(1,2), status ) - else if( abs( in(2,1) - 101.0 ) .gt. 1.0E-5 ) then - call stopit( 19, in(2,1), status ) - else if( abs( in(2,2) - 2.0 ) .gt. 1.0E-5 ) then - call stopit( 20, in(2,2), status ) - else if( abs( in(3,1) - 61.0 ) .gt. 1.0E-5 ) then - call stopit( 21, in(3,1), status ) - else if( abs( in(3,2) - 1.0 ) .gt. 1.0E-5 ) then - call stopit( 22, in(3,2), status ) - else if( abs( in(4,1) - 37.3636364 ) .gt. 1.0E-5 ) then - call stopit( 23, in(4,1), status ) - else if( abs( in(4,2) - 2.0 ) .gt. 1.0E-5 ) then - call stopit( 24, in(4,2), status ) - end if - -* Check no simplification is done on a single non-inverted SwicthMap. - call ast_setl( swm, 'Invert', .false., status ) - swm2 = ast_simplify( swm, status ) - call compare( swm, swm2, 'ast_equal 1', status ) - -* Check an inverted SwitchMap simplies to an non-inverted switchmap. - call ast_setl( swm, 'Invert', .true., status ) - swm2 = ast_simplify( swm, status ) - if( ast_getl( swm2, 'Invert', status ) ) then - call stopit( 25, 1.0D0, status ) - end if - -* Check two adjacent opposite SwitchMaps cancel. - swm2 = ast_copy( swm, status ) - call ast_invert( swm2, status ) - cm = ast_cmpmap( swm, swm2, .true., ' ', status ) - cm2 = ast_simplify( cm, status ) - if( .not. ast_isaunitmap( cm2, status ) ) then - call stopit( 26, 1.0D0, status ) - end if - - cm = ast_cmpmap( swm2, swm, .true., ' ', status ) - cm2 = ast_simplify( cm, status ) - if( .not. ast_isaunitmap( cm2, status ) ) then - call stopit( 27, 1.0D0, status ) - end if - -* Check that the SwitchMap can be written out to a AstChannel and read -* back again succesfully. - call checkdump( swm, 'Channel test 1', status ) - -* Check the ast_rate function works OK. - call ast_setl( swm, 'Invert', .false., status ) - - at(1) = 20.0 - at(2) = 1.0 - r = ast_rate( swm, at, 1, 1, status ) - if( abs( r - 10.0 ) .gt. 1.0E-6 ) call stopit( 28, r, status ) - - at(1) = 20.0 - at(2) = 2.0 - r = ast_rate( swm, at, 1, 1, status ) - if( abs( r - 11.0 ) .gt. 1.0E-6 ) call stopit( 29, r, status ) - - call ast_setl( swm, 'Invert', .true., status ) - - at(1) = 1700.0 - r = ast_rate( swm, at, 1, 1, status ) - if( abs( r - 1.0/10.0 ) .gt. 1.0E-6 ) call stopit( 30, r, status ) - - at(1) = 1900.0 - r = ast_rate( swm, at, 1, 1, status ) - if( abs( r - 1.0/11.0 ) .gt. 1.0E-6 ) call stopit( 31, r, status ) - - call ast_setl( swm, 'Invert', .false., status ) - - -* A 1D input grid has 1 rows and 202 columns. Each half of the row -* (1:101 and 102:202) contains a spectrum. The two spectra cover -* overlaping regions of wavelength. The spectrum in thw lower half has -* "wavelength = (gridx - 1)*10+1000", whilst the spectrum in the upper -* half has "wavelength = (gridx - 1)*11+1600". We use a (Nin=1,Nout=1) -* SwitchMap to describe the Mapping from grid (x) to wavelength. This -* SwitchMap contains 2 route Mappings, one for each half of the row. -* -------------------------------------------------------------------- - -* Produce a 1D Mapping from gridx to wavelength for the lower half. - x1 = 1.0 - x2 = 101.0 - l1 = 1000.0 - l2 = 2000.0 - rm(1) = ast_winmap( 1, x1, x2, l1, l2, ' ', status ) - -* Likewise, produce a 1D Mapping from gridx to wavelength for the upper half. - x1 = 102.0 - x2 = 202.0 - l1 = 1600.0 - l2 = 2700.0 - rm(2) = ast_winmap( 1, x1, x2, l1, l2, ' ', status ) - -* We can use a single MathMap for both selector Mappings - the forward -* transformation (used as the forward selector) gives 1 for all gridx less -* than 101.5 and 2 for all gridx greater than 101.5. The inverse -* transformation (used as the inverse selector) gives 1 for all -* wavelengths les than 1800 and 2 for all wavelength greater than 1800 -* (1800 is the mid point of the overlap region). - sm = ast_mathmap( 1, 1, 1, 'y=qif(x>101.5,2,1)', - : 1, 'x=qif(y>1800,2,1)', - : ' ', status ) - -* Now create the SwitchMap. - swm = ast_switchmap( sm, sm, 2, rm, ' ', status ) - -* Test the forward transformation of the SwitchMap. To add complication, -* we first invert the SwitchMap and then use ast_trann in the inverse -* direction (the two inversions cancel resulting in the forward -* transformation being used). We alo invert the selector mapping (this -* should have no effect on the SwitchMap). - call ast_invert( swm, status ) - call ast_invert( sm, status ) - - in(1,1) = 1.0 - in(2,1) = 202.0 - in(3,1) = 102.0 - in(4,1) = 101.0 - call ast_trann( swm, 4, 1, 4, in, .false., 1, 4, out, status ) - - do i = 1, 4 - if( out(i,1) .eq. ast__bad ) then - call stopit( 100+i, out(i,1), status ) - end if - end do - - if( abs( out(1,1) - 1000.0 ) .gt. 1.0E-5 ) then - call stopit( 105, out(1,1), status ) - else if( abs( out(2,1) - 2700.0 ) .gt. 1.0E-5 ) then - call stopit( 106, out(2,1), status ) - else if( abs( out(3,1) - 1600.0 ) .gt. 1.0E-5 ) then - call stopit( 107, out(3,1), status ) - else if( abs( out(4,1) - 2000.0 ) .gt. 1.0E-5 ) then - call stopit( 108, out(4,1), status ) - end if - -* Test the inverse transformation of the SwitchMap. - call ast_trann( swm, 4, 1, 4, out, .true., 1, 4, in, status ) - - do i = 1, 4 - if( in(i,1) .eq. ast__bad ) then - call stopit( 107 + 2*i, in(i,1), status ) - end if - end do - - if( abs( in(1,1) - 1.0 ) .gt. 1.0E-5 ) then - call stopit( 117, in(1,1), status ) - else if( abs( in(2,1) - 202.0 ) .gt. 1.0E-5 ) then - call stopit( 119, in(2,1), status ) - else if( abs( in(3,1) - 61.0 ) .gt. 1.0E-5 ) then - call stopit( 121, in(3,1), status ) - else if( abs( in(4,1) - 138.3636364 ) .gt. 1.0E-5 ) then - call stopit( 123, in(4,1), status ) - end if - -* Check no simplification is done on a single non-inverted SwicthMap. - call ast_setl( swm, 'Invert', .false., status ) - swm2 = ast_simplify( swm, status ) - call compare( swm, swm2, 'ast_equal 2', status ) - -* Check an inverted SwitchMap simplies to an non-inverted switchmap. - call ast_setl( swm, 'Invert', .true., status ) - swm2 = ast_simplify( swm, status ) - if( ast_getl( swm2, 'Invert', status ) ) then - call stopit( 125, 1.0D0, status ) - end if - -* Check two adjacent opposite SwitchMaps cancel. - swm2 = ast_copy( swm, status ) - call ast_invert( swm2, status ) - cm = ast_cmpmap( swm, swm2, .true., ' ', status ) - cm2 = ast_simplify( cm, status ) - if( .not. ast_isaunitmap( cm2, status ) ) then - call stopit( 126, 1.0D0, status ) - end if - - cm = ast_cmpmap( swm2, swm, .true., ' ', status ) - cm2 = ast_simplify( cm, status ) - if( .not. ast_isaunitmap( cm2, status ) ) then - call stopit( 127, 1.0D0, status ) - end if - -* Check that the SwitchMap can be written out to a AstChannel and read -* back again succesfully. - call checkdump( swm, 'Channel test 2', status ) - -* Check the ast_rate function works OK. - call ast_setl( swm, 'Invert', .false., status ) - - at(1) = 20.0 - r = ast_rate( swm, at, 1, 1, status ) - if( abs( r - 10.0 ) .gt. 1.0E-6 ) call stopit( 128, r, status ) - - at(1) = 120.0 - r = ast_rate( swm, at, 1, 1, status ) - if( abs( r - 11.0 ) .gt. 1.0E-6 ) call stopit( 129, r, status ) - - call ast_setl( swm, 'Invert', .true., status ) - - at(1) = 1700.0 - r = ast_rate( swm, at, 1, 1, status ) - if( abs( r - 1.0/10.0 ) .gt. 1.0E-6 ) call stopit( 130, r, - : status ) - - at(1) = 1900.0 - r = ast_rate( swm, at, 1, 1, status ) - if( abs( r - 1.0/11.0 ) .gt. 1.0E-6 ) call stopit( 131, r, - : status ) - - call ast_setl( swm, 'Invert', .false., status ) - - -* A 2D input grid has bounds (1:180,1:100). The area (10:80,10:80) -* and the area (100:170,10:80) both contain images of a fixed part of -* the sky (e.g. in different polarisations). The WCS for each sub-region -* is derived from a single FITS-WCS header,with suitably shifted origin. -* -------------------------------------------------------------------- - card(1) = 'CRPIX1 = 45' - card(2) = 'CRPIX2 = 45' - card(3) = 'CRVAL1 = 45' - card(4) = 'CRVAL2 = 89.9' - card(5) = 'CDELT1 = -0.01' - card(6) = 'CDELT2 = 0.01' - card(7) = 'CTYPE1 = ''RA---TAN''' - card(8) = 'CTYPE2 = ''DEC--TAN''' - - fc = ast_fitschan( AST_NULL, AST_NULL, ' ', status ) - do i = 1, 8 - call ast_putfits( fc, card(i), .false., status ) - end do - call ast_clear( fc, 'Card', status ) - fs = ast_read( fc, status ) - rm(1) = ast_getMapping( fs, ast__base, ast__current, status ) - - card(1) = 'CRPIX1 = 135' - call ast_clear( fc, 'Card', status ) - do i = 1, 8 - call ast_putfits( fc, card(i), .true., status ) - end do - call ast_clear( fc, 'Card', status ) - fs = ast_read( fc, status ) - rm(2) = ast_getMapping( fs, ast__base, ast__current, status ) - -* Forward Selector Mapping: A SelectorMap which encapsulates the two Box -* Regions in GRID coords. - gridframe = ast_getframe( fs, AST__BASE, status ) - - p1(1) = 10 - p1(2) = 10 - p2(1) = 80 - p2(2) = 80 - box(1) = ast_box( gridframe, 1, p1, p2, AST__NULL, ' ', status ) - - p1(1) = 100 - p1(2) = 10 - p2(1) = 170 - p2(2) = 80 - box(2) = ast_box( gridframe, 1, p1, p2, AST__NULL, ' ', status ) - - fs = ast_selectormap( 2, box, AST__BAD, ' ', status ) - -* Inverse Selector Mapping: A PermMap which has an inverse transformation -* which gives an input value of 1 for all output values. This means that the -* inverse transformation of the SwitchMap always returns a GRID position in -* the lower (left-hand) of the two images. - inperm(1) = -1 - outperm(1) = 0 - outperm(2) = 0 - is = ast_permmap( 1, inperm, 2, outperm, 1.0D0, ' ', status ) - -* Now create the SwitchMap. - swm = ast_switchmap( fs, is, 2, rm, ' ', status ) - -* Test the forward transformation of the SwitchMap. To add complication, -* we first invert the SwitchMap and then use ast_trann in the inverse -* direction (the two inversions cancel resulting in the forward -* transformation being used). We alo invert the selector mapping (this -* should have no effect on the SwitchMap). - call ast_invert( swm, status ) - call ast_invert( fs, status ) - - in(1,1) = 5.0 - in(1,2) = 5.0 - - in(2,1) = 50.0 - in(2,2) = 50.0 - - in(3,1) = 90.0 - in(3,2) = 50.0 - - in(4,1) = 140.0 - in(4,2) = 50.0 - - call ast_trann( swm, 4, 2, 4, in, .false., 2, 4, out, status ) - -* Transform these same positions using the Mapping for the left hand -* image obtained from the FITS header - call ast_trann( rm(1), 4, 2, 4, in, .true., 2, 4, rmout, status ) - -* Check the SwitchMap results. Points 1 and 3 should be bad because they -* fall outside either image. points 2 and 4 should both be equal to the -* result of transforming point 2 using the FITS-WCS mapping. - - if( out(1,1) .ne. AST__BAD ) then - call stopit( 132, out(1,1), status ) - - else if( out(1,2) .ne. AST__BAD ) then - call stopit( 133, out(1,1), status ) - - else if( out(2,1) .ne. rmout(2,1) ) then - call stopit( 134, out(2,1), status ) - - else if( out(2,2) .ne. rmout(2,2) ) then - call stopit( 135, out(2,2), status ) - - else if( out(3,1) .ne. AST__BAD ) then - call stopit( 136, out(1,1), status ) - - else if( out(3,2) .ne. AST__BAD ) then - call stopit( 137, out(1,1), status ) - - else if( abs( out(4,1) - rmout(2,1) ) .gt. - : 1.0D-6*abs( rmout(2,1) ) ) then - call stopit( 138, out(2,1), status ) - - else if( abs( out(4,2) - rmout(2,2) ) .gt. - : 1.0D-6*abs( rmout(2,2) ) ) then - call stopit( 139, out(2,2), status ) - - end if - - -* Test the inverse transformation of the SwitchMap. - call ast_trann( swm, 4, 2, 4, out, .true., 2, 4, in, status ) - - if( in(1,1) .ne. AST__BAD ) then - call stopit( 140, in(1,1), status ) - - else if( in(1,2) .ne. AST__BAD ) then - call stopit( 141, in(1,1), status ) - - else if( abs( in(2,1) - 50.0 ) .gt. 1.0E-6 ) then - call stopit( 142, in(2,1), status ) - - else if( abs( in(2,2) - 50.0 ) .gt. 1.0E-6 ) then - call stopit( 143, in(2,2), status ) - - else if( in(3,1) .ne. AST__BAD ) then - call stopit( 144, in(1,1), status ) - - else if( in(3,2) .ne. AST__BAD ) then - call stopit( 145, in(1,1), status ) - - else if( abs( in(4,1) - 50.0 ) .gt. 1.0E-6 ) then - call stopit( 146, in(2,1), status ) - - else if( abs( in(4,2) - 50.0 ) .gt. 1.0E-6 ) then - call stopit( 147, in(2,2), status ) - - end if - -* Check no simplification is done on a single non-inverted SwicthMap. - call ast_setl( swm, 'Invert', .false., status ) - swm2 = ast_simplify( swm, status ) - call compare( swm, swm2, 'ast_equal 3', status ) - -* Check an inverted SwitchMap simplies to an non-inverted switchmap. - call ast_setl( swm, 'Invert', .true., status ) - swm2 = ast_simplify( swm, status ) - if( ast_getl( swm2, 'Invert', status ) ) then - call stopit( 148, 1.0D0, status ) - end if - -* Check two adjacent opposite SwitchMaps cancel. - swm2 = ast_copy( swm, status ) - call ast_invert( swm2, status ) - cm = ast_cmpmap( swm, swm2, .true., ' ', status ) - cm2 = ast_simplify( cm, status ) - if( .not. ast_isaunitmap( cm2, status ) ) then - call stopit( 149, 1.0D0, status ) - end if - - cm = ast_cmpmap( swm2, swm, .true., ' ', status ) - cm2 = ast_simplify( cm, status ) - if( .not. ast_isaunitmap( cm2, status ) ) then - call stopit( 150, 1.0D0, status ) - end if - -* Check that the SwitchMap can be written out to a AstChannel and read -* back again succesfully. - call checkdump( swm, 'Channel test 3', status ) - -* Check the ast_rate function works OK. - call ast_setl( swm, 'Invert', .false., status ) - - at(1) = 140.0 - at(2) = 50.0 - r1 = ast_rate( swm, at, 1, 1, status ) - - at(1) = 50.0 - r2 = ast_rate( rm(1), at, 1, 1, status ) - - if( abs( r1 - r2 ) .gt. abs( 1.0E-6*r2 ) ) call stopit( 151, r1, - : status ) - - at(1) = 140.0 - r1 = ast_rate( swm, at, 2, 2, status ) - - at(1) = 50.0 - r2 = ast_rate( rm(1), at, 2, 2, status ) - - if( abs( r1 - r2 ) .gt. abs( 1.0E-6*r2 ) ) call stopit( 152, r1, - : status ) - - at(1) = 140.0 - r1 = ast_rate( swm, at, 1, 2, status ) - - at(1) = 50.0 - r2 = ast_rate( rm(1), at, 1, 2, status ) - - if( abs( r1 - r2 ) .gt. abs( 1.0E-6*r2 ) ) call stopit( 153, r1, - : status ) - - at(1) = 140.0 - r1 = ast_rate( swm, at, 2, 1, status ) - - at(1) = 50.0 - r2 = ast_rate( rm(1), at, 2, 1, status ) - - if( abs( r1 - r2 ) .gt. abs( 1.0E-6*r2 ) ) call stopit( 154, r1, - : status ) - - - - - mc = ast_tune( 'MemoryCaching', mc, status ) - oc = ast_tune( 'ObjectCaching', oc, status ) - call ast_end( status ) - - call ast_activememory( 'testswitchmap' ) - call ast_flushmemory( 1 ) - - if( status .eq. sai__ok ) then - write(*,*) 'All SwitchMap tests passed' - else - write(*,*) 'SwitchMap tests failed' - end if - - end - - - subroutine stopit( i, r, status ) - implicit none - include 'SAE_PAR' - integer i, status - double precision r - if( status .eq. sai__ok ) then - write( *,* ) 'Error ',i,': ',r - status = sai__error - end if - end - - - - subroutine checkdump( obj, text, status ) - - implicit none - include 'SAE_PAR' - include 'AST_PAR' - character text*(*) - integer obj, status, next, end, ch, result, ll, overlap, ibuf, - : len1, len2 - external mysource, mysink - character buf1*45000 - character buf2*45000 - - common /ss1/ buf1 - common /ss3/ buf2 - common /ss2/ next, end, ll, ibuf - - if( status .ne. sai__ok ) return - -* Create a Channel which reads and writes to an internal string buffer. - ch = ast_channel( mysource, mysink, ' ', status ) - -* Write the supplied Object out to this Channel. - ll = 160 - next = 1 - ibuf = 1 - if( ast_write( ch, obj, status ) .ne.1 ) then - write(*,*) text - call stopit( 1000, 1.0D0, status ) - end if - len1 = next - -* Read an Object back from this Channel. - next = 1 - result = ast_read( ch, status ) - if( result .eq. ast__null ) then - write(*,*) text - call stopit( 1001, 1.0D0, status ) - end if - -* Check that it is of the same class as the supplied object. - if( ast_getc( result, 'Class', status ) .ne. - : ast_getc( obj, 'Class', status ) ) then - write(*,*) text - call stopit( 1002, 1.0D0, status ) - end if - -* Compare it to the suuplied object. - call compare( obj, result, text, status ) - - end - - - - - subroutine compare( obj1, obj2, text, status ) - - implicit none - include 'SAE_PAR' - include 'AST_PAR' - character text*(*) - integer obj1, status, next, end, ch, result, ll, overlap, ibuf, - : len1, len2, obj2 - external mysource, mysink - character buf1*45000 - character buf2*45000 - - common /ss1/ buf1 - common /ss3/ buf2 - common /ss2/ next, end, ll, ibuf - - if( status .ne. sai__ok ) return - -* Create a Channel which reads and writes to an internal string buffer. - ch = ast_channel( mysource, mysink, ' ', status ) - -* Write the first supplied Object out to this Channel, using buf1 - ll = 160 - next = 1 - ibuf = 1 - if( ast_write( ch, obj1, status ) .ne.1 ) then - write(*,*) text - call stopit( 2000, 1.0D0, status ) - end if - len1 = next - -* Write the second object out to the second buffer. - ll = 160 - next = 1 - ibuf = 2 - if( ast_write( ch, obj2, status ) .ne.1 ) then - write(*,*) text - call stopit( 2001, 1.0D0, status ) - end if - len2 = next - -* Compare the contents of the two buffers. - if( buf1( : len1 ) .ne. buf2( : len2 ) ) then - write(*,*) text - write(*,*) len1, len2 - call ast_show( obj1, status ) - call ast_show( obj2, status ) - call stopit( 2002, 1.0D0, status ) - - end if - - end - - subroutine mysource( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, ll, ibuf - character buf1*45000 - character buf2*45000 - - common /ss1/ buf1 - common /ss3/ buf2 - common /ss2/ next, end, ll, ibuf - - if( status .ne. sai__ok ) return - - if( next .ge. end ) then - if( ibuf .eq. 1 ) then - call ast_putline( buf1, -1, status ) - else - call ast_putline( buf2, -1, status ) - endif - else - if( ibuf .eq. 1 ) then - call ast_putline( buf1( next : ), ll, status ) - else - call ast_putline( buf2( next : ), ll, status ) - endif - endif - - next = next + ll - - end - - subroutine mysink( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, f, l, ll, ibuf - character line*1000 - character buf1*45000 - character buf2*45000 - - common /ss1/ buf1 - common /ss3/ buf2 - common /ss2/ next, end, ll, ibuf - - if( status .ne. sai__ok ) return - - line = ' ' - call ast_getline( line, l, status ) - call chr_fandl( line( : l ), f, l ) - - if( ibuf .eq. 1 ) then - buf1( next : ) = line( f : l ) - else - buf2( next : ) = line( f : l ) - end if - - l = l - f + 1 - - if( next + ll - 1 .ge. 45000 ) then - write(*,*) 'Buffer overflow in mysink!!' - status = SAI__ERROR - - else if( l .gt. ll ) then - write(*,*) - if( ibuf .eq. 1 ) then - write(*,*) buf1( next : next + l) - else - write(*,*) buf2( next : next + l) - end if - write(*,*) 'Line length ',l,' greater than ',ll - write(*,*) 'Line overflow in mysink!!' - status = SAI__ERROR - else - end = next + l - if( ibuf .eq. 1 ) then - buf1( end : next + ll - 1 ) = ' ' - else - buf2( end : next + ll - 1 ) = ' ' - end if - endif - - next = next + ll - - end - - - - diff --git a/ast/ast_tester/testtable.f b/ast/ast_tester/testtable.f deleted file mode 100644 index 907dd66..0000000 --- a/ast/ast_tester/testtable.f +++ /dev/null @@ -1,537 +0,0 @@ - program testtable - implicit none - - include 'AST_PAR' - include 'AST_ERR' - include 'SAE_PAR' - - integer status, table, table2, dims( 7 ), ival, l, nval - byte bytes(1,2),bval - real rval - character cval*30, text(2,2)*10 - - -c call ast_watchmemory(483) - - - status = sai__ok - call err_mark( status ) - call ast_begin( status ) - - table = ast_table( ' ', status ) - - call ast_mapput0i( table, 'Fred', 123, 'com 1', status ) - if( status .eq. AST__BADKEY ) then - call err_annul( status ) - else - if( status .ne. sai__ok ) call err_annul( status ) - call stopit( status, 'Table error 1' ) - endif - - call ast_mapput0i( table, 'Fred(2)', 123, 'com 1', status ) - if( status .eq. AST__BADKEY ) then - call err_annul( status ) - else - if( status .ne. sai__ok ) call err_annul( status ) - call stopit( status, 'Table error 2' ) - endif - - dims( 1 ) = 5 - dims( 2 ) = 2 - call ast_addcolumn( table, 'Fred', AST__FLOATTYPE, 2, dims, - : ' ', status ) - - if( ast_geti( table, 'NColumn', status ) .ne. 1 ) then - call stopit( status, 'Table error 2b' ) - endif - - if( ast_columnname( table, 1, status ) .ne. 'FRED' ) then - call stopit( status, 'Table error 2c' ) - endif - - if( ast_geti( table, 'ColumnType(Fred)', status ) .ne. - : AST__FLOATTYPE ) then - call stopit( status, 'Table error 2d' ) - endif - - call ast_columnshape( table, 'Fred', 2, nval, dims, status ) - if( nval .ne. 2 ) then - call stopit( status, 'Table error 2e' ) - else if( dims( 1 ) .ne. 5 ) then - call stopit( status, 'Table error 2f' ) - else if( dims( 2 ) .ne. 2 ) then - call stopit( status, 'Table error 2g' ) - endif - - if( ast_getc( table, 'ColumnUnit(Fred)', status ) .ne. ' ' ) then - call stopit( status, 'Table error 2h' ) - endif - - call ast_mapput0i( table, 'Fred(2)', 123, 'com 1', status ) - if( status .eq. AST__BADTYP ) then - call err_annul( status ) - else if( status .eq. sai__ok ) then - call stopit( status, 'Table error 3' ) - endif - - call ast_mapput0r( table, 'Fred(2)', 123, 'com 1', status ) - if( status .eq. AST__BADTYP ) then - call err_annul( status ) - else if( status .eq. sai__ok ) then - call stopit( status, 'Table error 4' ) - endif - - call ast_addcolumn( table, 'Fred', AST__FLOATTYPE, 0, 0, - : 'pW', status ) - if( status .eq. AST__OLDCOL ) then - call err_annul( status ) - else if( status .eq. sai__ok ) then - call stopit( status, 'Table error 5' ) - endif - - call ast_removecolumn( table, 'Fred', status ) - - if( ast_geti( table, 'NColumn', status ) .ne. 0 ) then - call stopit( status, 'Table error 5b' ) - endif - - call ast_addcolumn( table, 'Fred', AST__FLOATTYPE, 0, 0, - : 'pW', status ) - - call ast_mapput0r( table, 'Fred(1)', -123.0, 'com 1', status ) - call ast_mapput0r( table, 'Fred(2)', 123.0, 'com 2', status ) - - if( ast_mapget0r( table, 'Fred(2)', rval, status ) ) then - if( rval .ne. 123.0 ) call stopit( status, 'Table error 6' ) - else - call stopit( status, 'Table error 7' ) - endif - - if( ast_getc( table, 'ColumnUnit(Fred)', status ) .ne. 'pW' ) then - call stopit( status, 'Table error 7b' ) - endif - - call ast_addcolumn( table, 'Dick', AST__OBJECTTYPE, 0, 0, - : 'W/m**2', status ) - call ast_mapput0a( table, 'Dick(1)', table, 'com 1', status ) - if( status .eq. AST__KYCIR ) then - call err_annul( status ) - else if( status .eq. sai__ok ) then - call stopit( status, 'Table error 8' ) - endif - - if( ast_geti( table, 'NColumn', status ) .ne. 2 ) then - call stopit( status, 'Table error 8b' ) - endif - - if( ast_columnname( table, 1, status ) .ne. 'FRED' ) then - call stopit( status, 'Table error 8c' ) - endif - - if( ast_columnname( table, 2, status ) .ne. 'DICK' ) then - call stopit( status, 'Table error 8d' ) - endif - - call ast_removecolumn( table, 'Dick', status ) - - if( ast_geti( table, 'NRow', status ) .ne. 2 ) then - call stopit( status, 'Table error 9' ) - endif - - if( ast_mapget0r( table, 'Fred(3)', rval, status ) ) then - call stopit( status, 'Table error 10' ) - endif - - if( ast_mapget0i( table, 'Fred(2)', ival, status ) ) then - if( ival .ne. 123 ) call stopit( status, 'Table error 11' ) - else - call stopit( status, 'Table error 12' ) - endif - - if( ast_mapget0c( table, 'Fred(2)', cval, l, status ) ) then - if( cval .ne. '123' ) call stopit( status, 'Table error 13' ) - if( l .ne. 3 ) call stopit( status, 'Table error 14' ) - else - call stopit( status, 'Table error 15' ) - endif - - call ast_removerow( table, 3, status ) - if( ast_geti( table, 'NRow', status ) .ne. 2 ) then - call stopit( status, 'Table error 16' ) - endif - - call ast_removerow( table, 2, status ) - if( ast_geti( table, 'NRow', status ) .ne. 1 ) then - call stopit( status, 'Table error 17' ) - endif - - if( ast_mapget0r( table, 'Fred(2)', rval, status ) ) then - call stopit( status, 'Table error 18' ) - endif - - call ast_addparameter( table, 'COLOUR', status ) - if( .not. ast_hasparameter( table, 'COLOUR', status ) ) then - call stopit( status, 'Table error 18_1' ) - endif - - call ast_mapput0C( table, 'COLOUR', 'Red', ' ', status ) - if( ast_mapget0c( table, 'COLOUR', cval, l, status ) ) then - if( cval .ne. 'Red' ) call stopit( status, 'Table error 18_3' ) - if( l .ne. 3 ) call stopit( status, 'Table error 18_4' ) - else - call stopit( status, 'Table error 18_5' ) - endif - - call ast_removeparameter( table, 'COLOUR', status ) - if( ast_hasparameter( table, 'COLOUR', status ) ) then - call stopit( status, 'Table error 18_2' ) - endif - - call checkDump( table, 'checkDump 1 ', status ) - - table2 = ast_copy( table, status ) - - if( ast_mapget0c( table2, 'Fred(1)', cval, l, status ) ) then - if( cval .ne. '-123' ) call stopit( status, 'Table error 19' ) - if( l .ne. 4 ) call stopit( status, 'Table error 20' ) - else - call stopit( status, 'Table error 21' ) - endif - - dims( 1 ) = 2 - dims( 2 ) = 2 - call ast_addcolumn( table, 'Dick', AST__STRINGTYPE, 2, dims, - : ' ', status ) - - text(1,1) = 'One' - text(2,1) = 'two' - text(1,2) = 'three' - text(2,2) = 'FouR' - - call ast_mapput1c( table, 'Dick(4)', 4, text, 'jjjj', status ) - if( ast_mapget1c( table, 'Dick(4)', 4, nval, text, status ) ) then - - if( text(1,1) .ne. 'One' ) - : call stopit( status, 'Table error 22' ) - if( text(2,1) .ne. 'two' ) - : call stopit( status, 'Table error 23' ) - if( text(1,2) .ne. 'three' ) - : call stopit( status, 'Table error 24' ) - if( text(2,2) .ne. 'FouR' ) - : call stopit( status, 'Table error 25' ) - - if( nval .ne. 4 ) call stopit( status, 'Table error 26' ) - else - call stopit( status, 'Table error 27' ) - endif - - call ast_mapputelemc( table, 'Dick(4)', 3, 'OHOHOHOH', status ) - if( ast_mapgetelemc( table, 'Dick(4)', 3, cval, status ) ) then - if( cval .ne. 'OHOHOHOH' ) - : call stopit( status, 'Table error 28' ) - else - call stopit( status, 'Table error 29' ) - endif - - if( ast_geti( table, 'columnlenc(Dick)', status ) .ne. 10 ) then - call stopit( status, 'Table error 29b' ) - endif - - dims( 1 ) = 1 - dims( 2 ) = 2 - call ast_addcolumn( table, 'HeHe', AST__BYTETYPE, 2, dims, - : ' ', status ) - bytes(1,1) = 127 - bytes(1,2) = 255 - call ast_mapput1b( table, 'HeHe(2)', 2, bytes, 'jjjj', status ) - if( ast_mapget1b( table, 'HeHe(2)', 2, nval, bytes, - : status ) ) then - if( nval .ne. 2 ) call stopit( status, 'Table error 30' ) - if( bytes(1,1) .ne. 127 ) call stopit( status, - : 'Table error 31' ) - if( bytes(1,2) .ne. -1 ) call stopit( status, - : 'Table error 32' ) - else - call stopit( status, 'Table error 33' ) - endif - - call ast_addcolumn( table, 'GoGo', AST__BYTETYPE, 0, 0, - : ' ', status ) - call ast_mapput0b( table, 'GoGo(2)', -10, ' ', status ) - if( ast_mapget0b( table, 'GoGo(2)', bval, status ) ) then - if( bval .ne. -10 ) call stopit( status, 'Table error 33' ) - else - call stopit( status, 'Table error 34' ) - endif - - call checkpurge( status ) - - if( .not. ast_hascolumn( table, 'GoGo', status ) ) then - call stopit( status, 'Table error 35' ) - else if( ast_hascolumn( table, 'dodo', status ) ) then - call stopit( status, 'Table error 36' ) - endif - - call ast_removecolumn( table, 'GoGo', status ) - if( ast_hascolumn( table, 'GoGo', status ) ) then - call stopit( status, 'Table error 37' ) - endif - - - - call ast_end( status ) - call err_rlse( status ) - -c call ast_activememory( 'testtable' ) - call ast_flushmemory( 1 ); - - if( status .eq. sai__ok ) then - write(*,*) 'All Table tests passed' - else - write(*,*) 'Table tests failed' - end if - - end - - - - subroutine stopit( status, text ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - - if( status .ne. sai__ok ) return - status = sai__error - write(*,*) text - - end - - subroutine checkdump( obj, text, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - character text*(*),key*30,txt1*50,txt2*50 - integer obj, status, next, end, ch, result, ll, overlap, size, - : i, type,obj1,obj2,l1,l2,nl,nrow,nrowold - external mysource, mysink - character buf*400000 - - common /ss1/ buf - common /ss2/ next, end, ll, nl - - if( status .ne. sai__ok ) return - - ch = ast_channel( mysource, mysink, ' ', status ) - - - - nl = 0 - ll = 110 - next = 1 - if( ast_write( ch, obj, status ) .ne.1 ) then - write(*,*) text - call stopit( status, 'Cannot write supplied object to '// - : 'channel' ) - end if - - next = 1 - nl = 0 - result = ast_read( ch, status ) - - - - - if( result .eq. ast__null ) then - write(*,*) text - call stopit( status, 'Cannot read object from channel' ) - end if - - if( .not. ast_isatable( result, status ) ) then - call stopit( status, 'Object read from channel is not a table') - end if - - nrowold = ast_geti( obj, 'NRow', status ) - nrow = ast_geti( result, 'NRow', status ) - if( nrow .ne. nrowold ) then - write(*,*) nrow, nrowold - call stopit( status, 'checkDump 0' ) - endif - - size = ast_mapsize( result, status ) - if( ast_mapsize( obj, status ) .ne. size ) then - write(*,*) size, ast_mapsize( obj, status ) - call stopit( status, 'checkDump 1' ) - else - do i = 1, size - key = ast_mapkey( result, i, status ) - type = ast_maptype( result, key, status ) - if( ast_maptype( obj, key, status ) .ne. type ) then - write(*,*) type, ast_maptype( obj, key, status ) - call stopit( status, 'checkDump 4' ) - else - - if( type .eq. AST__OBJECTTYPE ) then - - if( .not. ast_mapGet0A( result, key, obj1, - : status ) ) call stopit( status, 'checkDump 5' ) - if( .not. ast_mapGet0A( obj, key, obj2, - : status ) ) call stopit( status, 'checkDump 6' ) - if( ast_GetC( obj1, 'class', status ) .ne. - : ast_GetC( obj2, 'class', status ) ) then - call stopit( status, 'checkDump 7' ) - end if - - else - - if( .not. ast_mapGet0C( result, key, txt1, l1, - : status ) ) call stopit( status, 'checkDump 8' ) - if( .not. ast_mapGet0C( obj, key, txt2, l2, - : status ) ) call stopit( status, 'checkDump 9' ) - if( txt1( : l1 ) .ne. txt2( : l2 ) .or. - : l1 .ne. l2 ) then - call stopit( status, 'checkDump 10' ) - end if - - end if - end if - end do - end if - - end - - subroutine mysource( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, ll, nl - character buf*400000 - - common /ss1/ buf - common /ss2/ next, end, ll,nl - - if( status .ne. sai__ok ) return - - if( next .ge. end ) then - call ast_putline( buf, -1, status ) - else - -c write(*,*) buf( next : next + ll - 1 ) - call ast_putline( buf( next : ), ll, status ) - nl = nl + 1 - endif - - next = next + ll - - end - - subroutine mysink( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, f, l, ll, nl - character buf*400000 - character line*1000 - - common /ss1/ buf - common /ss2/ next, end, ll, nl - - if( status .ne. sai__ok ) return - - line = ' ' - call ast_getline( line, l, status ) - call chr_fandl( line( : l ), f, l ) - buf( next : ) = line( f : l ) - l = l - f + 1 - - if( next + ll - 1 .ge. 400000 ) then - write(*,*) - call stopit( status, 'Buffer overflow in mysink!!' ) - else if( l .gt. ll ) then - write(*,*) - write(*,*) buf( next : next + l) - write(*,*) 'Line length ',l - call stopit( status, 'Line overflow in mysink!!' ) - else - end = next + l - buf( end : next + ll - 1 ) = ' ' - nl = nl + 1 - endif - - next = next + ll - - end - - - subroutine checkpurge( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, table, ival - - if( status .ne. sai__ok ) return - - table = ast_table( ' ', status ) - - call ast_addcolumn( table, 'Fred', AST__INTTYPE, 0, 0, ' ', - : status ) - call ast_addcolumn( table, 'Tom', AST__INTTYPE, 0, 0, ' ', - : status ) - - call ast_mapput0i( table, 'Fred(2)', 123, ' ', status ) - call ast_mapput0i( table, 'Fred(4)', 456, ' ', status ) - call ast_mapput0i( table, 'Tom(1)', -123, ' ', status ) - call ast_mapput0i( table, 'Tom(2)', -456, ' ', status ) - call ast_mapput0i( table, 'Tom(6)', 0, ' ', status ) - - if( ast_geti( table, 'NRow', status ) .ne. 6 ) then - call stopit( status, 'Table error purge-1' ) - endif - - call ast_mapremove( table, 'Tom(6)', status ) - if( ast_geti( table, 'NRow', status ) .ne. 6 ) then - call stopit( status, 'Table error purge-2' ) - endif - - call ast_purgerows( table, status ) - if( ast_geti( table, 'NRow', status ) .ne. 3 ) then - write(*,*) 'ZZ: ',ast_geti( table, 'NRow', status ) - call stopit( status, 'Table error purge-3' ) - endif - - if( ast_mapget0i( table, 'Tom(1)', ival, status ) ) then - if( ival .ne. -123 ) call stopit( status, - : 'Table error purge-4' ) - else - call stopit( status, 'Table error purge-5' ) - endif - - if( ast_mapget0i( table, 'Tom(2)', ival, status ) ) then - if( ival .ne. -456 ) call stopit( status, - : 'Table error purge-6' ) - else - call stopit( status, 'Table error purge-7' ) - endif - - if( ast_mapget0i( table, 'Fred(1)', ival, status ) ) then - call stopit( status, 'Table error purge-8' ) - endif - - if( ast_mapget0i( table, 'Fred(2)', ival, status ) ) then - if( ival .ne. 123 ) call stopit( status, - : 'Table error purge-9' ) - else - call stopit( status, 'Table error purge-10' ) - endif - - if( ast_mapget0i( table, 'Fred(3)', ival, status ) ) then - if( ival .ne. 456 ) call stopit( status, - : 'Table error purge-11' ) - else - call stopit( status, 'Table error purge-12' ) - endif - - call ast_annul( table, status ) - - end - diff --git a/ast/ast_tester/testtime.f b/ast/ast_tester/testtime.f deleted file mode 100644 index 39c4b9a..0000000 --- a/ast/ast_tester/testtime.f +++ /dev/null @@ -1,979 +0,0 @@ - program testtime - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'AST_ERR' - - character txt*40 - double precision xin, xout, xout2, ct, ctl, origin - integer status, tf, tf1, tf2, fs, n, chr_len, nc - status = sai__ok - - call ast_begin( status ) - -c call ast_SetWatchId( 740050 ) - -c -c Test default attribute values -c - tf = ast_timeframe( ' ', status ) - - if( ast_getc( tf, 'System', status ) .ne. 'MJD' ) then - write(*,*) ast_getc( tf, 'System', status ) - call stopit( status, 'error 1' ) - endif - - if( ast_getd( tf, 'TimeOrigin', status ) .ne. 0.0 ) then - write(*,*) ast_getd( tf, 'TimeOrigin', status ) - call stopit( status, 'error 2' ) - endif - - if( ast_getc( tf, 'ObsLon', status ) .ne. 'E0:00:00.00' ) then - write(*,*) ast_getc( tf, 'ObsLon', status ) - call stopit( status, 'error 3' ) - endif - - if( ast_getc( tf, 'ObsLat', status ) .ne. 'N0:00:00.00' ) then - write(*,*) ast_getc( tf, 'ObsLat', status ) - call stopit( status, 'error 4' ) - endif - - if( ast_getc( tf, 'TimeScale', status ) .ne. 'TAI' ) then - write(*,*) ast_getc( tf, 'TimeScale', status ) - call stopit( status, 'error 5' ) - endif - - if( ast_getc( tf, 'AlignTimeScale', status ) .ne. 'TAI' ) then - write(*,*) ast_getc( tf, 'AlignTimeScale', status ) - call stopit( status, 'error 6' ) - endif - - if( ast_geti( tf, 'naxes', status ) .ne. 1 ) then - write(*,*) ast_getc( tf, 'Naxes', status ) - call stopit( status, 'error 7' ) - endif - - if( ast_getd( tf, 'Epoch', status ) .ne. 2000.0 ) then - write(*,*) ast_getd( tf, 'Epoch', status ) - call stopit( status, 'error 8' ) - endif - - if( ast_getc( tf, 'Label', status ) .ne. - : 'Modified Julian Date' ) then - write(*,*) ast_getc( tf, 'Label', status ) - call stopit( status, 'error 9' ) - endif - - if( ast_getc( tf, 'Symbol', status ) .ne. 'MJD' ) then - write(*,*) ast_getc( tf, 'Symbol', status ) - call stopit( status, 'error 10' ) - endif - - if( ast_getc( tf, 'Title', status ) .ne. - : 'Modified Julian Date' ) then - write(*,*) ast_getc( tf, 'Title', status ) - call stopit( status, 'error 11' ) - endif - - if( ast_getc( tf, 'unit', status ) .ne. 'd' ) then - write(*,*) ast_getc( tf, 'unit', status ) - call stopit( status, 'error 12' ) - endif - - if( ast_getc( tf, ' domain ', status ) .ne. 'TIME' ) then - write(*,*) ast_getc( tf, ' domain ', status ) - call stopit( status, 'error 13' ) - endif - - if( ast_getc( tf, 'alignSystem', status ) .ne. 'MJD' ) then - write(*,*) ast_getc( tf, 'alignSystem', status ) - call stopit( status, 'error 14' ) - endif - -c -c Test dependency of default attribute values on System -c - call ast_setc( tf, 'system', 'jd', status ) - - if( ast_getc( tf, 'System', status ) .ne. 'JD' ) then - write(*,*) ast_getc( tf, 'System', status ) - call stopit( status, 'error 1b' ) - endif - - if( ast_getd( tf, 'TimeOrigin', status ) .ne. 0.0 ) then - write(*,*) ast_getd( tf, 'TimeOrigin', status ) - call stopit( status, 'error 2b' ) - endif - - if( ast_getc( tf, 'ObsLon', status ) .ne. 'E0:00:00.00' ) then - write(*,*) ast_getc( tf, 'ObsLon', status ) - call stopit( status, 'error 3b' ) - endif - - if( ast_getc( tf, 'ObsLat', status ) .ne. 'N0:00:00.00' ) then - write(*,*) ast_getc( tf, 'ObsLat', status ) - call stopit( status, 'error 4b' ) - endif - - if( ast_getc( tf, 'TimeScale', status ) .ne. 'TAI' ) then - write(*,*) ast_getc( tf, 'TimeScale', status ) - call stopit( status, 'error 5b' ) - endif - - if( ast_getc( tf, 'AlignTimeScale', status ) .ne. 'TAI' ) then - write(*,*) ast_getc( tf, 'AlignTimeScale', status ) - call stopit( status, 'error 6b' ) - endif - - if( ast_geti( tf, 'naxes', status ) .ne. 1 ) then - write(*,*) ast_getc( tf, 'Naxes', status ) - call stopit( status, 'error 7b' ) - endif - - if( ast_getd( tf, 'Epoch', status ) .ne. 2000.0 ) then - write(*,*) ast_getd( tf, 'Epoch', status ) - call stopit( status, 'error 8b' ) - endif - - if( ast_getc( tf, 'Label', status ) .ne. - : 'Julian Date' ) then - write(*,*) ast_getc( tf, 'Label', status ) - call stopit( status, 'error 9b' ) - endif - - if( ast_getc( tf, 'Symbol', status ) .ne. 'JD' ) then - write(*,*) ast_getc( tf, 'Symbol', status ) - call stopit( status, 'error 10b' ) - endif - - if( ast_getc( tf, 'Title', status ) .ne. - : 'Julian Date' ) then - write(*,*) ast_getc( tf, 'Title', status ) - call stopit( status, 'error 11b' ) - endif - - if( ast_getc( tf, 'unit', status ) .ne. 'd' ) then - write(*,*) ast_getc( tf, 'unit', status ) - call stopit( status, 'error 12b' ) - endif - - if( ast_getc( tf, ' domain ', status ) .ne. 'TIME' ) then - write(*,*) ast_getc( tf, ' domain ', status ) - call stopit( status, 'error 13b' ) - endif - - if( ast_getc( tf, 'alignSystem', status ) .ne. 'MJD' ) then - write(*,*) ast_getc( tf, 'alignSystem', status ) - call stopit( status, 'error 14b' ) - endif - - - - call ast_setc( tf, 'system', 'jepoch', status ) - - if( ast_getc( tf, 'System', status ) .ne. 'JEPOCH' ) then - write(*,*) ast_getc( tf, 'System', status ) - call stopit( status, 'error 1c' ) - endif - - if( ast_getd( tf, 'TimeOrigin', status ) .ne. 0.0 ) then - write(*,*) ast_getd( tf, 'TimeOrigin', status ) - call stopit( status, 'error 2c' ) - endif - - if( ast_getc( tf, 'ObsLon', status ) .ne. 'E0:00:00.00' ) then - write(*,*) ast_getc( tf, 'ObsLon', status ) - call stopit( status, 'error 3c' ) - endif - - if( ast_getc( tf, 'ObsLat', status ) .ne. 'N0:00:00.00' ) then - write(*,*) ast_getc( tf, 'ObsLat', status ) - call stopit( status, 'error 4c' ) - endif - - if( ast_getc( tf, 'TimeScale', status ) .ne. 'TAI' ) then - write(*,*) ast_getc( tf, 'TimeScale', status ) - call stopit( status, 'error 5c' ) - endif - - if( ast_getc( tf, 'AlignTimeScale', status ) .ne. 'TAI' ) then - write(*,*) ast_getc( tf, 'AlignTimeScale', status ) - call stopit( status, 'error 6c' ) - endif - - if( ast_geti( tf, 'naxes', status ) .ne. 1 ) then - write(*,*) ast_getc( tf, 'Naxes', status ) - call stopit( status, 'error 7c' ) - endif - - if( ast_getd( tf, 'Epoch', status ) .ne. 2000.0 ) then - write(*,*) ast_getd( tf, 'Epoch', status ) - call stopit( status, 'error 8c' ) - endif - - if( ast_getc( tf, 'Label', status ) .ne. - : 'Julian Epoch' ) then - write(*,*) ast_getc( tf, 'Label', status ) - call stopit( status, 'error 9c' ) - endif - - if( ast_getc( tf, 'Symbol', status ) .ne. 'JEP' ) then - write(*,*) ast_getc( tf, 'Symbol', status ) - call stopit( status, 'error 10c' ) - endif - - if( ast_getc( tf, 'Title', status ) .ne. - : 'Julian Epoch' ) then - write(*,*) ast_getc( tf, 'Title', status ) - call stopit( status, 'error 11c' ) - endif - - if( ast_getc( tf, 'unit', status ) .ne. 'yr' ) then - write(*,*) ast_getc( tf, 'unit', status ) - call stopit( status, 'error 12c' ) - endif - - if( ast_getc( tf, ' domain ', status ) .ne. 'TIME' ) then - write(*,*) ast_getc( tf, ' domain ', status ) - call stopit( status, 'error 13c' ) - endif - - if( ast_getc( tf, 'alignSystem', status ) .ne. 'MJD' ) then - write(*,*) ast_getc( tf, 'alignSystem', status ) - call stopit( status, 'error 14c' ) - endif - - - call ast_setc( tf, 'system', 'bepoch', status ) - - if( ast_getc( tf, 'System', status ) .ne. 'BEPOCH' ) then - write(*,*) ast_getc( tf, 'System', status ) - call stopit( status, 'error 1d' ) - endif - - if( ast_getd( tf, 'TimeOrigin', status ) .ne. 0.0 ) then - write(*,*) ast_getd( tf, 'TimeOrigin', status ) - call stopit( status, 'error 2d' ) - endif - - if( ast_getc( tf, 'ObsLon', status ) .ne. 'E0:00:00.00' ) then - write(*,*) ast_getc( tf, 'ObsLon', status ) - call stopit( status, 'error 3d' ) - endif - - if( ast_getc( tf, 'ObsLat', status ) .ne. 'N0:00:00.00' ) then - write(*,*) ast_getc( tf, 'ObsLat', status ) - call stopit( status, 'error 4d' ) - endif - - if( ast_getc( tf, 'TimeScale', status ) .ne. 'TT' ) then - write(*,*) ast_getc( tf, 'TimeScale', status ) - call stopit( status, 'error 5d' ) - endif - - if( ast_getc( tf, 'AlignTimeScale', status ) .ne. 'TAI' ) then - write(*,*) ast_getc( tf, 'AlignTimeScale', status ) - call stopit( status, 'error 6d' ) - endif - - if( ast_geti( tf, 'naxes', status ) .ne. 1 ) then - write(*,*) ast_getc( tf, 'Naxes', status ) - call stopit( status, 'error 7d' ) - endif - - if( ast_getd( tf, 'Epoch', status ) .ne. 2000.0 ) then - write(*,*) ast_getd( tf, 'Epoch', status ) - call stopit( status, 'error 8d' ) - endif - - if( ast_getc( tf, 'Label', status ) .ne. - : 'Besselian Epoch' ) then - write(*,*) ast_getc( tf, 'Label', status ) - call stopit( status, 'error 9d' ) - endif - - if( ast_getc( tf, 'Symbol', status ) .ne. 'BEP' ) then - write(*,*) ast_getc( tf, 'Symbol', status ) - call stopit( status, 'error 10d' ) - endif - - if( ast_getc( tf, 'Title', status ) .ne. - : 'Besselian Epoch' ) then - write(*,*) ast_getc( tf, 'Title', status ) - call stopit( status, 'error 11d' ) - endif - - if( ast_getc( tf, 'unit', status ) .ne. 'yr' ) then - write(*,*) ast_getc( tf, 'unit', status ) - call stopit( status, 'error 12d' ) - endif - - if( ast_getc( tf, ' domain ', status ) .ne. 'TIME' ) then - write(*,*) ast_getc( tf, ' domain ', status ) - call stopit( status, 'error 13d' ) - endif - - if( ast_getc( tf, 'alignSystem', status ) .ne. 'MJD' ) then - write(*,*) ast_getc( tf, 'alignSystem', status ) - call stopit( status, 'error 14d' ) - endif - -c -c Test dump and load -c - call checkDump( tf, 'CheckDump 1', status ) - -c -c Test CurrentTime method. -c - call ast_set( tf, 'system=jepoch,unit=yr,timescale=utc,'// - : 'timeorigin=0', status ) - n = 0 - - write(*,*) ' Testing astCurrentTime: approx 1 second pause '// - : 'following...' - ctl = ast_currenttime( tf, status ) + 1.0D0/(86400.0D0*365.25D0) - do while( ast_currenttime( tf, status ) .lt. ctl ) - n = n + 1 - if( n .gt. 2000000 ) then - call stopit( status, 'error 15' ) - return - end if - end do - write(*,*) ' 1 second pause finished.' - - -c -c Test behaviour of TimeOrigin attribute -c - tf = ast_timeframe( 'timescale=utc', status ) - origin = ast_currenttime( tf, status ) - call ast_setd( tf, 'TimeOrigin', origin, status ) - write(*,*) ' Testing TimeOrigin: approx 1 second pause '// - : 'following...' - n = 0 - do while( ast_currenttime( tf, status ) .lt. - : 1.0D0/(86400.0D0*364.25D0) ) - n = n + 1 - if( n .gt. 2000000 ) then - call stopit( status, 'error 16' ) - return - end if - end do - write(*,*) ' 1 second pause finished.' - - call ast_set( tf, 'unit=s', status ) - if( abs( ast_getd( tf, 'TimeOrigin', status ) - - : origin*86400.0D0 ) .gt. 0.01 ) then - write(*,*) abs( ast_getd( tf, 'TimeOrigin', status ) - - : origin*86400.0D0 ) - call stopit( status, 'error 17' ) - end if - - -c -c Test conversions between basic systems with arbitrary offsets -c - tf1 = ast_timeframe( 'system=mjd,timeorigin=53000', status ) - tf2 = ast_timeframe( 'system=jd,timeorigin=2453000.5', status ) - fs = ast_convert( tf1, tf2, ' ', status ) - if( fs .eq. AST__NULL ) then - call stopit( status, 'error 18' ) - else if( .not. ast_isaunitmap( ast_getMapping( fs, AST__BASE, - : AST__CURRENT, - : status ), status ) ) then - call stopit( status, 'error 19' ) - end if - - - - tf1 = ast_timeframe( 'system=mjd,timescale=UTC,timeorigin=53000', - : status ) - tf2 = ast_timeframe( 'system=bepoch,timeorigin=2004', status ) - fs = ast_convert( tf1, tf2, ' ', status ) - if( fs .eq. AST__NULL ) then - call stopit( status, 'error 20' ) - else - xin = 100.0D0 - call ast_tran1( fs, 1, xin, .true., xout, status ) - if( abs( xout - 0.2600974092354136D0 ) .gt. 1.0D-10 ) then - call stopit( status, 'error 21' ) - end if - call ast_tran1( fs, 1, xout, .false., xin, status ) - if( abs( xin - 100.0D0 ) .gt. 1.0D-6 ) then - call stopit( status, 'error 21b' ) - end if - end if - - - tf1 = ast_timeframe( 'system=bepoch,timeorigin=0', status ) - if( status .eq.sai__OK ) then - call err_mark - call ast_set( tf1, 'TimeScale=TAI', status ) - if( status .eq. AST__ATTIN ) then - call err_annul( status ) - else - call stopit( status, 'error 21b' ); - endif - - call ast_set( tf1, 'Unit=s', status ) - if( status .eq. AST__ATTIN ) then - call err_annul( status ) - else - call stopit( status, 'error 21c' ); - endif - call err_rlse - endif - - tf2 = ast_timeframe( 'system=jepoch,timescale=tai,'// - : 'timeorigin=100.0', status ) - call ast_set( tf2, 'unit=d', status ) - fs = ast_convert( tf1, tf2, ' ', status ) - if( fs .eq. AST__NULL ) then - call stopit( status, 'error 22' ) - else - xin = 100.0D0 - call ast_tran1( fs, 1, xin, .true., xout, status ) - if( abs( xout - 14.35534169996282 ) .gt. 1.0D-6 ) then - call stopit( status, 'error 23' ) - end if - call ast_tran1( fs, 1, xout, .false., xin, status ) - if( abs( xin - 100.0D0 ) .gt. 1.0D-6 ) then - call stopit( status, 'error 23b' ) - end if - end if - -c Besselian epoch offset from B2000 [TT, yr] - call ast_set( tf1, 'timeorigin=2000', status ) - -c Julian date offset from 2450000.5 days [TDB, h] - call ast_set( tf2, 'system=JD,timescale=TDB,unit=h,'// - : 'timeorigin=2450000.5 d', status ) - - fs = ast_convert( tf1, tf2, ' ', status ) - if( fs .eq. AST__NULL ) then - call stopit( status, 'error 24' ) - else - xin = 0.1 - call ast_tran1( fs, 1, xin, .true., xout, status ) - if( abs( xout - 37933.38284478387D0) .gt. 1.0D-5 ) then - call stopit( status, 'error 25' ) - end if - call ast_tran1( fs, 1, xout, .false., xin, status ) - if( abs( xin - 0.1 ) .gt. 1.0D-10 ) then - call stopit( status, 'error 25b' ) - end if - end if - - -c -c Test Formatting and unformatting -c - tf1 = ast_timeframe( 'system=jepoch,timeorigin=2005.0', status ) - - txt = ast_format( tf1, 1, 100.0D0, status ) - if( txt .ne. '100' ) then - write(*,*) ast_format( tf1, 1, 100.0D0, status ) - call stopit( status, 'error 26' ) - end if - nc = ast_unformat( tf1, 1, txt, xout, status ) - if( nc .ne. len( txt ) .or. xout .ne. 100.0D0 ) then - write(*,*) nc, xout - call stopit( status, 'error 26b' ) - end if - - - - call ast_set( tf1, 'format=iso', status ) - txt = ast_format( tf1, 1, 1.0D0, status ) - if( txt .ne. '2006-01-01' ) then - write(*,*) ast_format( tf1, 1, 1.0D0, status ) - call stopit( status, 'error 27' ) - end if - - nc = ast_unformat( tf1, 1, txt, xout, status ) - if( nc .ne. len( txt ) .or. xout .ne. 1.0D0 ) then - write(*,*) nc, xout - call stopit( status, 'error 27b' ) - end if - - - - call ast_set( tf1, 'format=iso.0', status ) - txt = ast_format( tf1, 1, 1.0D0, status ) - if( txt .ne. '2006-01-01 00:00:00' ) then - write(*,*) ast_format( tf1, 1, 1.0D0, status ) - call stopit( status, 'error 28' ) - end if - - nc = ast_unformat( tf1, 1, txt, xout, status ) - if( nc .ne. len( txt ) .or. xout .ne. 1.0D0 ) then - write(*,*) nc, xout - call stopit( status, 'error 28b' ) - end if - - - - call ast_set( tf1, 'unit=s,format=iso.2', status ) - txt = ast_format( tf1, 1, 10.0D0, status ) - if( txt .ne. '2004-12-31 18:00:10.00' ) then - write(*,*) ast_format( tf1, 1, 10.0D0, status ) - call stopit( status, 'error 29' ) - end if - - nc = ast_unformat( tf1, 1, txt, xout, status ) - if( nc .ne. len( txt ) .or. - : abs( xout - 10.0D0 ) .gt. 1.0E-3 ) then - write(*,*) nc, xout - call stopit( status, 'error 29b' ) - end if - - - - txt = ast_format( tf1, 1, 10.12D0, status ) - if( txt .ne. '2004-12-31 18:00:10.12' ) then - write(*,*) ast_format( tf1, 1, 10.12D0, status ) - call stopit( status, 'error 30' ) - end if - - nc = ast_unformat( tf1, 1, txt, xout, status ) - if( nc .ne. len( txt ) .or. - : abs( xout - 10.12D0 ) .gt. 1.0E-3 ) then - write(*,*) nc, xout - call stopit( status, 'error 30b' ) - end if - - - call ast_set( tf1, 'timescale=utc', status ) - xin = ast_currenttime( tf1, status ) - txt = ast_format( tf1, 1, xin, status ) - write(*,*) ' Current system time (UTC): ', - : txt( : chr_len( txt ) ) - nc = ast_unformat( tf1, 1, txt(:20), xout, status ) - if( nc .ne. 20 .or. abs( xout - xin ) .gt. 1.0E-3 ) then - write(*,*) nc, xout - call stopit( status, 'error 30c' ) - end if - - tf1 = ast_timeframe( 'system=jepoch,timeorigin=2005.0', status ) - nc = ast_unformat( tf1, 1, 'J2005.0', xout, status ) - if( nc .ne. 7 .or. xout .ne. 0.0D0 ) then - write(*,*) nc, xout - call stopit( status, 'error 31' ) - end if - - nc = ast_unformat( tf1, 1, 'J2010.0', xout, status ) - if( nc .ne. 7 .or. xout .ne. 5.0D0 ) then - write(*,*) nc, xout - call stopit( status, 'error 32' ) - end if - - nc = ast_unformat( tf1, 1, '2005-jun-1 12:30 lunch time', xout, - : status ) - if( nc .ne. 17 .or. abs( xout - 0.415525896D0 ) .gt. 1.0E-7 ) then - write(*,*) nc, xout - call stopit( status, 'error 33' ) - end if - - call ast_set( tf1, 'timescale=utc', status ) - nc = ast_unformat( tf1, 1, 'B2001.5 lunch time', xout, - : status ) - if( nc .ne. 8 .or. - : abs( xout + 3.50131054408916D0 ) .gt. 1.0E-10 ) then - write(*,*) nc, xout, abs( xout + 3.50131054408916D0 ) - call stopit( status, 'error 34' ) - end if - - - - - - - tf1 = ast_timeframe( 'system=mjd,timescale=tai', status ) - nc = ast_unformat( tf1, 1, "1977-01-01 00:00:00", xin, status ) - - - tf2 = ast_timeframe( 'system=mjd,timescale=tai,format=iso.6', - : status ) - fs = ast_convert( tf1, tf2, ' ', status ) - if( fs .eq. AST__NULL ) then - call stopit( status, 'error 35' ) - else - call ast_tran1( fs, 1, xin, .true., xout, status ) - txt = ast_format( tf2, 1, xout, status ) - if( txt .ne. '1977-01-01 00:00:00.000000' ) then - write(*,*) txt( :chr_len(txt) ) - call stopit( status, 'error 36' ) - end if - end if - - tf2 = ast_timeframe( 'system=mjd,timescale=utc,format=iso.6', - : status ) - fs = ast_convert( tf1, tf2, ' ', status ) - if( fs .eq. AST__NULL ) then - call stopit( status, 'error 37' ) - else - call ast_tran1( fs, 1, xin, .true., xout, status ) - txt = ast_format( tf2, 1, xout, status ) - if( txt .ne. '1976-12-31 23:59:45.000000' ) then - write(*,*) txt( :chr_len(txt) ) - call stopit( status, 'error 38' ) - end if - end if - - tf2 = ast_timeframe( 'system=mjd,timescale=tt,format=iso.6', - : status ) - fs = ast_convert( tf1, tf2, ' ', status ) - if( fs .eq. AST__NULL ) then - call stopit( status, 'error 39' ) - else - call ast_tran1( fs, 1, xin, .true., xout, status ) - txt = ast_format( tf2, 1, xout, status ) - if( txt .ne. '1977-01-01 00:00:32.184000' ) then - write(*,*) txt( :chr_len(txt) ) - call stopit( status, 'error 40' ) - end if - end if - - tf2 = ast_timeframe( 'system=mjd,timescale=tdb,format=iso.6', - : status ) - fs = ast_convert( tf1, tf2, ' ', status ) - if( fs .eq. AST__NULL ) then - call stopit( status, 'error 41' ) - else - call ast_tran1( fs, 1, xin, .true., xout, status ) - txt = ast_format( tf2, 1, xout, status ) - if( txt .ne. '1977-01-01 00:00:32.183935' ) then - write(*,*) txt( :chr_len(txt) ) - call stopit( status, 'error 42' ) - end if - end if - - tf2 = ast_timeframe( 'system=mjd,timescale=tcb,format=iso.6', - : status ) - fs = ast_convert( tf1, tf2, ' ', status ) - if( fs .eq. AST__NULL ) then - call stopit( status, 'error 43' ) - else - call ast_tran1( fs, 1, xin, .true., xout, status ) - txt = ast_format( tf2, 1, xout, status ) - if( txt .ne. '1977-01-01 00:00:32.184000' ) then - write(*,*) txt( :chr_len(txt) ) - call stopit( status, 'error 44' ) - end if - end if - - tf2 = ast_timeframe( 'system=mjd,timescale=tcg,format=iso.6', - : status ) - fs = ast_convert( tf1, tf2, ' ', status ) - if( fs .eq. AST__NULL ) then - call stopit( status, 'error 45' ) - else - call ast_tran1( fs, 1, xin, .true., xout, status ) - txt = ast_format( tf2, 1, xout, status ) - if( txt .ne. '1977-01-01 00:00:32.184000' ) then - write(*,*) txt( :chr_len(txt) ) - call stopit( status, 'error 46' ) - end if - end if - - - - - tf1 = ast_timeframe( 'system=mjd,timescale=gmst,ObsLon=90,'// - : 'ObsLat=0,timeorigin=53000.0', status ) - tf2 = ast_timeframe( 'system=mjd,timescale=lmst,ObsLon=90,'// - : 'ObsLat=0,timeorigin=53000.0', status ) - fs = ast_convert( tf1, tf2, ' ', status ) - if( fs .eq. AST__NULL ) then - call stopit( status, 'error 47' ) - else - xin = 1.0D0 - call ast_tran1( fs, 1, xin, .true., xout, status ) - if( xout .ne. 1.25D0 ) then - write(*,*) xout - call stopit( status, 'error 48' ) - end if - call ast_tran1( fs, 1, xout, .false., xin, status ) - if( xin .ne. 1.0D0 ) then - write(*,*) xin - call stopit( status, 'error 48b' ) - end if - end if - - -* Test use of DUT1 - tf1 = ast_timeframe( 'system=mjd,timescale=tdb,dut1=0.1', status ) - tf2 = ast_timeframe( 'system=mjd,timescale=last,dut1=0.1', - : status ) - fs = ast_convert( tf1, tf2, ' ', status ) - if( fs .eq. AST__NULL ) then - call stopit( status, 'error 49' ) - else - xin = 53991.675D0 - call ast_tran1( fs, 1, xin, .true., xout, status ) - if( abs(xout - 53998.65344633732D0) .gt. 1.0D-8 ) then - write(*,*) xout - call stopit( status, 'error 50' ) - end if - call ast_tran1( fs, 1, xout, .false., xin, status ) - if( abs( xin - 53991.675D0 ) .gt. 1.0D-8 ) then - write(*,*) xin - call stopit( status, 'error 51' ) - end if - end if - - -* Test use of DTAI - tf1 = ast_timeframe( 'system=mjd,timescale=tai', status ) - tf2 = ast_timeframe( 'system=mjd,timescale=utc', status ) - - fs = ast_convert( tf1, tf2, ' ', status ) - - xin = 57844.0D0 - - if (fs .eq. AST__NULL ) then - call stopit( status, 'error 52' ) - else - call ast_tran1( fs, 1, xin, .true., xout, status) - if (abs(((xin - xout) * 86400.0D0) - 37.0D0) .gt. 1.0D-3) then - write(*,*) xout - call stopit( status, 'error 53' ) - endif - call checkdump( fs, 'CheckDump 2', status ) - end if - - call ast_setd( tf2, 'dtai', 40.0D0, status ) - - fs = ast_convert( tf1, tf2, ' ', status ) - - if (fs .eq. AST__NULL ) then - call stopit( status, 'error 54' ) - else - call ast_tran1( fs, 1, xin, .true., xout, status) - if (abs(((xin - xout) * 86400.0D0) - 40.0D0) .gt. 1.0D-3) then - write(*,*) xout - call stopit( status, 'error 55' ) - endif - call checkdump( fs, 'CheckDump 3', status ) - end if - - - - tf1 = ast_timeframe( 'system=mjd,timescale=tt', status ) - tf2 = ast_timeframe( 'system=mjd,timescale=tdb,dtai=37.0', - : status ) - - fs = ast_convert( tf1, tf2, ' ', status ) - - if (fs .eq. AST__NULL ) then - call stopit( status, 'error 56' ) - else - call ast_tran1( fs, 1, xin, .true., xout, status) - call checkdump( fs, 'CheckDump 4', status ) - end if - - call ast_clear( tf2, 'dtai', status ) - - fs = ast_convert( tf1, tf2, ' ', status ) - - if (fs .eq. AST__NULL ) then - call stopit( status, 'error 57' ) - else - call ast_tran1( fs, 1, xin, .true., xout2, status) - if( xout .ne. xout2 ) then - call stopit( status, 'error 58' ) - end if - end if - - - - - - - call ast_end( status ) -c call ast_listissued( 'testtime' ) - - - - if( status .eq. sai__ok ) then - write(*,*) 'All timeFrame tests passed' - else - write(*,*) 'timeFrame tests failed' - end if - - end - - subroutine stopit( status, text ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - - if( status .ne. sai__ok ) return - status = sai__error - write(*,*) text - - end - - - subroutine checkdump( obj, text, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - character text*(*) - integer obj, status, next, end, ch, result, ll, overlap, map, - : map1, map2 - external mysource, mysink - character buf*25000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - - ch = ast_channel( mysource, mysink, ' ', status ) - - - ll = 110 - next = 1 - if( ast_write( ch, obj, status ) .ne.1 ) then - write(*,*) text - call stopit( status, 'Cannot write supplied object to '// - : 'channel' ) - end if - - next = 1 - result = ast_read( ch, status ) - if( result .eq. ast__null ) then - write(*,*) text - call stopit( status, 'Cannot read object from channel' ) - end if - - - if( ast_isatimeframe( obj, status ) ) then - if( ast_getd( obj, 'timeorigin', status ) .ne. - : ast_getd( result, 'timeorigin', status ) .or. - : ast_getc( obj, 'timescale', status ) .ne. - : ast_getc( result, 'timescale', status ) .or. - : ast_getc( obj, 'ObsLon', status ) .ne. - : ast_getc( result, 'ObsLon', status ) .or. - : ast_getc( obj, 'ObsLat', status ) .ne. - : ast_getc( result, 'ObsLat', status ) .or. - : ast_getc( obj, 'Dtai', status ) .ne. - : ast_getc( result, 'Dtai', status ) ) then - call ast_Show( obj, status ) - call ast_Show( result, status ) - write(*,*) text - call stopit( status, 'Object has changed' ) - end if - else if( ast_isamapping( obj, status ) ) then - if( ast_isaframeset( obj, status ) ) then - map1 = ast_getmapping( obj, ast__base, ast__current, - : status ) - map2 = ast_getmapping( result, ast__base, ast__current, - : status ) - else - map1 = ast_clone( obj, status ) - map2 = ast_clone( result, status ) - end if - - call ast_invert( map2, status ) - map = ast_simplify( ast_cmpmap( map1, map2, .true., ' ', - : status ), - : status ) - if( .not. ast_isaunitmap( map, status ) ) then - write(*,*) text - call ast_show( map1, status ) - call ast_invert( map2, status ) - call ast_show( map2, status ) - - call stopit( status, 'Mapping has changed' ) - endif - end if - - end - - subroutine sink1( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - logical fsfound, done - common /sink1com/ fsfound, done - - integer status, l - character line*200 - - if( status .ne. sai__ok ) return - call ast_getline( line, l, status ) - - if( index( line( : l ),'Unc =' ) .GT. 0 ) then - done = .true. - - else if( .not. done .and. - : index( line( : l ),'FrameSet' ) .GT. 0 ) then - fsfound= .true. - end if - - end - - subroutine mysource( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, ll - character buf*25000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - - if( next .ge. end ) then - call ast_putline( buf, -1, status ) - else - call ast_putline( buf( next : ), ll, status ) - endif - - next = next + ll - - end - - subroutine mysink( status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer status, next, end, f, l, ll - character buf*25000 - character line*1000 - - common /ss1/ buf - common /ss2/ next, end, ll - - if( status .ne. sai__ok ) return - - line = ' ' - call ast_getline( line, l, status ) - call chr_fandl( line( : l ), f, l ) - buf( next : ) = line( f : l ) - l = l - f + 1 - - if( next + ll - 1 .ge. 25000 ) then - write(*,*) - call stopit( status, 'Buffer overflow in mysink!!' ) - else if( l .gt. ll ) then - write(*,*) - write(*,*) buf( next : next + l) - write(*,*) 'Line length ',l - call stopit( status, 'Line overflow in mysink!!' ) - else - end = next + l - buf( end : next + ll - 1 ) = ' ' - endif - - next = next + ll - - end - - diff --git a/ast/ast_tester/testtrangrid.f b/ast/ast_tester/testtrangrid.f deleted file mode 100644 index b867291..0000000 --- a/ast/ast_tester/testtrangrid.f +++ /dev/null @@ -1,276 +0,0 @@ - program testtrangrid - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'PRM_PAR' - - integer status, i, m, outp(4), inp(4), c1, c2, c3, c4, fc, fs - double precision at(4), r, mat(4), b1(2), b2(2), a1(2), - : a2(4) - character cards(9)*80 - - status = sai__ok - - at(1) = 10.0D0 - at(2) = 1.2D6 - -* UnitMap - m = ast_unitmap( 2, ' ', status ) - call testmap( m, 1, 0.5D0, status ) - -* ZoomMap - m = ast_zoommap( 2, 2.0D0, ' ', status ) - call testmap( m, 2, 0.5D0, status ) - -* MatrixMap - m = ast_matrixmap( 2, 2, 2, mat, ' ', status ) - call testmap( m, 3, 0.5D0, status ) - -* PermMap - outp(1)=2 - outp(2)=1 - inp(1)=2 - inp(2)=1 - m = ast_permmap( 2, inp, 2, outp, 0.0D0, ' ', status ) - call testmap( m, 4, 0.5D0, status ) - -* TranMap - a1( 1 ) = 0.0D0 - a1( 2 ) = 0.0D0 - a2( 1 ) = 1.0D0 - a2( 2 ) = 1.0D0 - b1( 1 ) = 0.5D0 - b1( 2 ) = 0.5D0 - b2( 1 ) = 2.5D0 - b2( 2 ) = 2.5D0 - c1 = ast_winmap( 2, a1, a2, b1, b2, ' ', status ) - c2 = ast_copy( c1, status ) - - m = ast_tranmap( c1, c2, ' ', status ) - call testmap( m, 5, 0.5D0, status ) - -* 3D CmpMap - mat(1) = -1.0D0 - c1 = ast_shiftmap( 1, mat, ' ', status ) - mat(1)= 1.0D0 - mat(2)= 2.0D0 - mat(3)= -2.0D0 - mat(4)= 3.0D0 - c2 = ast_matrixmap( 2, 2, 0, mat, ' ', status ) - c3 = ast_cmpmap( c1, c2, 0, ' ', status ) - - outp(1) = 3 - outp(2) = 2 - outp(3) = 1 - inp(1) = 3 - inp(2) = 2 - inp(3) = 1 - c1 = ast_permmap( 3, inp, 3, outp, 0.0D0, ' ', status ) - c2 = ast_ZoomMap( 3, 0.25D0, ' ', status ) - call ast_invert( c2, status ) - - c4 = ast_cmpmap( c1, c2, 1, ' ', status ) - call ast_invert( c4, status ) - - m = ast_cmpmap( c3, c4, 1, ' ', status ) - call testmap( m, 6, 0.5D0, status ) - - - -* 1D non-linear Mapping - m = ast_mathmap( 1, 1, 1, 'y=x**3', 1, - : 'x=sign((abs(y)**(1/3)),y)', ' ', status ) - call testmap( m, 7, 0.0001D0, status ) - - - -* A FITS-WCS pixel->sky mapping - cards(1) = 'CTYPE1 = ''RA---TAN''' - cards(2) = 'CTYPE2 = ''DEC--TAN''' - cards(3) = 'CRPIX1 = 20' - cards(4) = 'CRPIX2 = 20' - cards(5) = 'CRVAL1 = 0.0' - cards(6) = 'CRVAL2 = 0.0' - cards(7) = 'CROTA1 = 30.0' - cards(8) = 'CDELT1 = -0.001' - cards(9) = 'CDELT2 = 0.001' - - fc = ast_fitschan( ast_null, ast_null, ' ', status ) - do i = 1, 9 - call ast_putfits( fc, cards(i), .false., status ) - end do - call ast_clear( fc, 'card', status ) - fs = ast_read( fc, status ) - - call testmap( fs, 8, 0.0001D0, status ) - - - - - - - - - - if( status .eq. sai__ok ) then - write(*,*) 'All AST_TRANGRID tests passed' - else - write(*,*) 'AST_TRANGRID tests failed' - end if - - end - - - - - - subroutine testmap( map, itest, tol, status ) - implicit none - include 'SAE_PAR' - - integer status, maxpix, itest, map - double precision tol - - if( status .ne. sai__ok ) return - - maxpix = 100 - call testgridpair( map, tol, maxpix, itest*10, status ) - call testgridpair( map, 0.0D0, maxpix, itest*10+2, status ) - - maxpix = 4 - call testgridpair( map, tol, maxpix, itest*10+4, status ) - call testgridpair( map, 0.0D0, maxpix, itest*10+6, status ) - - end - - - - - subroutine testgridpair( map, tol, maxpix, itest, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - integer status, lbnd( 3 ), ubnd( 3 ), nin, nout, i, outdim, - : maxpix, itest, size, pos(3), j, map, lbndi(3), ubndi(3) - logical fwd - double precision tol, xl(3), xu(3), dlbndi(3), dubndi(3), - : dlbnd(3), dubnd(3) - - data lbnd / -6, 0, 10 / - data ubnd / 15, 30, 40/ - - if( status .ne. sai__ok ) return - - - nin = ast_geti( map, 'nin', status ) - nout = ast_geti( map, 'nout', status ) - - outdim = 1 - do i = 1, nin - outdim = outdim*( ubnd( i ) - lbnd( i ) + 1 ) - dlbnd( i ) = lbnd( i ) - dubnd( i ) = ubnd( i ) - end do - - call testgrid( map, nin, lbnd, ubnd, tol, maxpix, .true., nout, - : outdim, itest, status ) - - outdim = 1 - do i = 1, nout - call ast_mapbox( map, dlbnd, dubnd, .true., i, dlbndi(i), - : dubndi(i), xl, xu, status ) - lbndi( i ) = dlbndi( i ) - ubndi( i ) = dubndi( i ) - outdim = outdim*( ubndi( i ) - lbndi( i ) + 1 ) - end do - - call testgrid( map, nout, lbndi, ubndi, tol, maxpix, .false., nin, - : outdim, itest + 1, status ) - - - end - - - - - - subroutine testgrid( map, nin, lbnd, ubnd, tol, maxpix, fwd, nout, - : outdim, itest, status ) - implicit none - include 'SAE_PAR' - - integer MAXPNT - parameter( MAXPNT = 50000 ) - - integer status, lbnd( 3 ), ubnd( 3 ), nin, nout, i, outdim, - : maxpix, itest, pos(3), j, map - logical fwd - double precision tol, out( MAXPNT, 3 ), in( MAXPNT, 3 ) - - if( status .ne. sai__ok ) return - -* Check arrays are not over full - if( outdim .gt. MAXPNT ) then - status = sai__error - write(*,*) 'Array length exceeded in TESTTRANGRID:TESTGRID' - return - end if - -* Create a regular grid of positions within the input space of the -* Mapping, and transform it to the output space of the Mapping. - call ast_trangrid( map, nin, lbnd, ubnd, tol, maxpix, fwd, - : nout, MAXPNT, out, status ) - -* Convert the transformed output positions back into the input space. - call ast_trann( map, outdim, nout, MAXPNT, out, .not. fwd, nin, - : MAXPNT, in, status ) - -* Check the input space positions are close to a regular grid. - if( status .eq. sai__ok ) then - - do i = 1, nin - pos( i ) = lbnd( i ) - end do - - do j = 1, outdim - - do i = 1, nin - - if( pos( i ) .ne. 0 ) then - if( abs( in( j, i ) - pos( i ) ) .gt. - : 1.0E-6*abs( 0.5*( in( j, i ) + pos( i ) ) ) ) then - status = sai__error - write(*,*) 'Test ',itest,' failed at point ',j, - : ' axis ',i,': ',in( j, i ), - : ' should be ',pos(1) - return - end if - else - if( abs( in( j, i ) ) .gt. 1.0E-5 ) then - status = sai__error - write(*,*) 'Test ',itest,' failed at point ',j, - : ' axis ',i,': ',in( j, i ), - : ' should be ', pos(i) - return - end if - end if - end do - - pos( 1 ) = pos( 1 ) + 1 - if( pos( 1 ) .gt. ubnd( 1 ) ) then - pos( 1 ) = lbnd( 1 ) - if( nin .gt. 1 ) then - pos( 2 ) = pos( 2 ) + 1 - if( pos( 2 ) .gt. ubnd( 2 ) ) then - pos( 2 ) = lbnd( 2 ) - if( nin .gt. 2 ) then - pos( 3 ) = pos( 3 ) + 1 - end if - end if - end if - end if - end do - end if - - end diff --git a/ast/ast_tester/testunitnormmap.f b/ast/ast_tester/testunitnormmap.f deleted file mode 100644 index 4437f2c..0000000 --- a/ast/ast_tester/testunitnormmap.f +++ /dev/null @@ -1,324 +0,0 @@ - program testunitnormmap - implicit none - - include 'AST_PAR' - include 'SAE_PAR' - - integer status, map, cmpmap, smap, invmap, nin, i - logical good, differ - double precision norm, frompos(3), centre(3), topos(4) - - data centre /-1.0D0, 1.0D0, 2.0D0 /, - : frompos /-22.0D0, 3.0D0, 0.5D0/ - - - status = sai__ok - call err_mark( status ) - call ast_begin( status ) - - do nin = 1, 3 - map = ast_unitnormmap( nin, centre, ' ', status ) - - if( .not. ast_isaunitnormmap( map, status ) ) - : call stopit( status, 'Error 1' ) - if( .not. ast_isamapping( map, status ) ) - : call stopit( status, 'Error 2' ) - if( ast_geti( map, 'Nin', status ) .ne. nin ) - : call stopit( status, 'Error 3' ) - if( ast_geti( map, 'Nout', status ) .ne. nin+1 ) - : call stopit( status, 'Error 4' ) - if( ast_getl( map, 'IsLinear', status ) ) - : call stopit( status, 'Error 5' ) - - call checkdump( map, status ) - - call checkroundtrip( map, frompos, good, status ) - if( .not. good ) call stopit( status, 'Error 6' ) - - call checkroundtrip( map, centre, good, status ) - if( .not. good ) call stopit( status, 'Error 6' ) - - invmap = ast_copy( map, status ) - call ast_invert( invmap, status ) - cmpmap = ast_cmpmap( map, invmap, .true., ' ', status ) - smap = ast_simplify( cmpmap, status ) - if( .not. ast_isaunitmap( smap, status ) ) - : call stopit( status, 'Error 7' ) - if( ast_geti( smap, 'Nin', status ) .ne. nin ) - : call stopit( status, 'Error 8' ) - - cmpmap = ast_cmpmap( invmap, map, .true., ' ', status ) - smap = ast_simplify( cmpmap, status ) - if( .not. ast_isaunitmap( smap, status ) ) - : call stopit( status, 'Error 9' ) - if( ast_geti( smap, 'Nin', status ) .ne. nin+1 ) - : call stopit( status, 'Error 10' ) - - - call ast_trann( map, 1, nin, 1, frompos, .true., nin+1, - : 1, topos, status ); - - norm = 0.0D0 - do i = 1, nin - norm = norm + (frompos(i)-centre(i))**2 - end do - norm = sqrt( norm ) - - if( differ( norm, topos(nin+1) ) ) - : call stopit( status, 'Error 11' ) - - do i = 1, nin - if( differ( norm*topos(i), frompos(i)-centre(i) ) ) - : call stopit( status, 'Error 12' ) - end do - - end do - - call testsimplify( status ) - - call ast_end( status ) - call err_rlse( status ) - -c call ast_activememory( 'testunitnormmap' ) - call ast_flushmemory( 1 ) - - if( status .eq. sai__ok ) then - write(*,*) 'All UnitNormMap tests passed' - else - write(*,*) 'UnitNormMap tests failed' - end if - - end - - - - subroutine stopit( status, text ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - if( status .ne. sai__ok ) return - status = sai__error - write(*,*) text - end - - - - - - subroutine checkdump( obj, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer obj, status, stat, ch, result, nin, i - logical differ - double precision in(3), out1(3), out2(3) - - data in /10.0D0, 5.0D0, -12.0D0 / - - if( status .ne. sai__ok ) return - - ch = ast_channel( AST_NULL, AST_NULL, 'SinkFile=testdmp', status ) - - if( ast_write( ch, obj, status ) .ne.1 ) then - call stopit( status, 'Cannot write supplied object to '// - : 'channel' ) - end if - - call ast_clear( ch, 'SinkFile', status ) - call ast_setc( ch, 'SourceFile', 'testdmp', status ) - result = ast_read( ch, status ) - - if( result .eq. ast__null ) then - call stopit( status, 'Cannot read object from channel' ) - end if - - if( .not. ast_isaunitnormmap( result, status ) ) then - call stopit( status, 'Object read from channel is not a '// - : 'UnitNormMap') - else if( ast_geti( result, 'Nin', status ) .ne. - : ast_geti( obj, 'Nin', status ) ) then - call stopit( status, 'UnitNormMap have different Nin values' ) - - else - nin = ast_geti( result, 'Nin', status ) - call ast_trann( result, 1, nin, 1, in, .TRUE., nin+1, 1, out1, - : status ); - call ast_trann( obj, 1, nin, 1, in, .TRUE., nin+1, 1, out2, - : status ); - - do i = 1, nin - if( differ( out2(i), out1(i) ) ) - : call stopit( status, 'Error - Recovered UnitNormMap '// - : 'differs from suppled UnitNormMap' ) - end do - - end if - - call ast_annul( result, status ) - - open( unit=1234, iostat=stat, file='testdmp', status='old') - if (stat == 0) close(1234, status='delete') - - end - - - - subroutine checkroundtrip( map, pos, good, status ) - - implicit none - - include 'SAE_PAR' - include 'AST_PAR' - - logical good, differ - integer status, map, mapinv, cmp, i, nin, nout - double precision pos(*), rtol, atol, out(7), in(7) - - good = .true. - - if( status .ne. sai__ok ) return - - nin = ast_geti( map, 'Nin', status ) - nout = ast_geti( map, 'Nout', status ) - call ast_trann( map, 1, nin, 1, pos, .TRUE., nout, 1, out, - : status ); - call ast_trann( map, 1, nout, 1, out, .FALSE., nin, 1, in, - : status ); - do i = 1, nin - if( differ( in(i), pos(i) ) ) good = .false. - end do - - mapinv = ast_copy( map, status ) - call ast_invert( mapinv, status ) - cmp = ast_cmpmap( map, mapinv, .TRUE., ' ', status ) - - call ast_trann( cmp, 1, nin, 1, pos, .true., nin, 1, in, - : status ); - do i = 1, nin - if( differ( in(i), pos(i) ) ) good = .false. - end do - - end - - - - subroutine testsimplify( status ) - implicit none - - include 'SAE_PAR' - include 'AST_PAR' - - integer status, unm1, unm1inv, unm2, unm2inv, shiftmap, - : winmap1, winmap2, i, j, k, nin, nout, cmpmap, - : cmpmap_simp - double precision centre1(3) - double precision centre2(3) - double precision shift(3) - double precision zeros(3) - double precision ones(3) - double precision a(3) - double precision testpoints(3,4) - double precision outpoints(3,4) - double precision outpoints_simp(3,4) - - integer map1(7), map2(7) - character class(7)*30 - logical differ - - data centre1 /2.0D0, -1.0D0, 0.0D0/, - : centre2 /-1.0D0, 6.0D0, 4.0D0/, - : shift /3.0D0, 7.0D0, -9.0D0/, - : zeros /0.0D0, 0.0D0, 0.0D0/, - : ones /1.0D0, 1.0D0, 1.0D0/, - : testpoints / 1.0D0, 3.0D0, -5.0D0, 2.0D0, 3.0D0, 99.0D0, - : -6.0D0, -5.0D0, -7.0D0, 30.0D0, 21.0D0, 37.0D0 / - - if( status .ne. sai__ok ) return - - unm1 = ast_unitnormmap( 3, centre1, ' ', status ) - unm1inv = ast_copy( unm1, status ) - call ast_setl( unm1inv, 'Invert', .TRUE., status ) - - unm2 = ast_unitnormmap( 3, centre2, ' ', status ) - unm2inv = ast_copy( unm2, status ) - call ast_setl( unm2inv, 'Invert', .TRUE., status ) - - shiftmap = ast_shiftmap(3, shift, ' ', status ) - - do i = 1, 3 - a(i) = ones(i) + shift(i) - end do - winmap1 = ast_winmap( 3, zeros, shift, ones, a, ' ', status ) - - do i = 1, 3 - a(i) = 2*ones(i) + shift(i) - end do - winmap2 = ast_winmap( 3, zeros, shift, ones, a, ' ', status ) - - map1(1) = unm1 - map2(1) = unm2inv - class(1) = 'WinMap' - - map1(2) = shiftmap - map2(2) = unm2 - class(2) = 'UnitNormMap' - - map1(3) = winmap1 - map2(3) = unm1 - class(3) = 'UnitNormMap' - - map1(4) = winmap2 - map2(4) = unm1 - class(4) = 'CmpMap' - - map1(5) = unm1inv - map2(5) = shiftmap - class(5) = 'UnitNormMap' - - map1(6) = unm1inv - map2(6) = winmap1 - class(6) = 'UnitNormMap' - - map1(7) = unm1inv - map2(7) = winmap2 - class(7) = 'CmpMap' - - do i = 1, 7 - cmpmap = ast_cmpmap( map1(i), map2(i), .true., ' ', status ) - cmpmap_simp = ast_simplify( cmpmap, status ) - - if( ast_getc( cmpmap_simp, 'Class', status ) .ne. class(i) ) - : call stopit( status, 'Simplify error 1' ) - - nin = ast_geti( cmpmap, 'Nin', status ) - if( nin .ne. ast_geti( cmpmap_simp, 'Nin', status ) ) - : call stopit( status, 'Simplify error 2' ) - - nout = ast_geti( cmpmap, 'Nout', status ) - if( nout .ne. ast_geti( cmpmap_simp, 'Nout', status ) ) - : call stopit( status, 'Simplify error 3' ) - - call ast_trann( cmpmap, 3, nin, 3, testpoints, .true., nout, - : 3, outpoints, status ) - call ast_trann( cmpmap_simp, 3, nin, 3, testpoints, .true., - : nout, 3, outpoints_simp, status ) - - do j = 1, nout - do k = 1, 3 - if( differ( outpoints(k,j), outpoints_simp(k,j) ) ) - : call stopit( status, 'Simplify error 4' ) - end do - end do - end do - - end - - - logical function differ( aa, bb ) - implicit none - double precision aa, bb, diff - differ = abs( (aa) - (bb) ) .gt. - : abs( 0.5D0*( (aa) + (bb) ) )*1.0D-14 - - end diff --git a/ast/ast_tester/testxmlchan.f b/ast/ast_tester/testxmlchan.f deleted file mode 100644 index 51e58ec..0000000 --- a/ast/ast_tester/testxmlchan.f +++ /dev/null @@ -1,246 +0,0 @@ - program testxmlchan - implicit none - include 'SAE_PAR' - include 'AST_PAR' - include 'testxmlchan_com' - - integer status, obj, i, ifmt, nfmt - character fmt(2)*30 - logical ok - - data nfmt /2/, - : fmt / 'native', 'quoted' / - - status = sai__ok - - call ast_begin( status ) - -* -* Create an AST object. -* - call makeobject( obj, status ) - -* -* Create a normal Channel and write the object out to file1 -* - call chanwrite( obj, 1, status ) - -* -* Test each XML format in turn. - do ifmt = 1, nfmt - -* -* Create an XmlChan and write the object out to file2 using the current -* format. -* - call xmlwrite( obj, 2, fmt( ifmt ), status ) - -* -* Use a new XmlChan to read an object from file2 -* - call xmlread( 2, obj, status ) - -* -* Write this object out to file 3 using a simple Channel. -* - call chanwrite( obj, 3, status ) - -* -* Report an error if the contents of files 1 and 3 differ. -* - ok = .true. - if( filelen( 1 ) .ne. filelen( 3 ) ) then - write(*,*) 'TestXmlChan: files 1 and 3 have different '// - : 'lengths (',filelen( 1 ),',',filelen( 3 ),').' - ok =.false. - else - do i = 1, filelen( 1 ) - if( files( 1, i ) .ne. files( 3, i ) ) then - write(*,*) 'TestXmlChan: Line ',i,' differs in '// - : 'files 1 and 3:' - write(*,*) files( 1, i ) - write(*,*) files( 3, i ) - ok = .false. - go to 10 - end if - end do - end if - - 10 continue - - if( .not. ok ) then - write(*,*) 'TestXmlChan: Test failed on XmlFormat ''', - : fmt(ifmt),'''.' - go to 20 - end if - - end do - - 20 continue - - call ast_end( status ) - - if( ok ) then - write(*,*) 'All XmlChan tests passed' - else - write(*,*) 'XmlChan tests failed' - end if - - end - -* -* Reads line "iline" from internal file "ifile" and returns it to AST using -* the AST_PULINE routine. Then increments "iline" ready for next time. -* - subroutine source( status ) - implicit none - - include 'testxmlchan_com' - - integer status, l, chr_len - - if( iline .le. filelen( ifile ) ) then - l = chr_len( files(ifile,iline) ) - call ast_putline( files(ifile,iline), l, status ) - iline = iline + 1 - else - call ast_putline( ' ', -1, status ) - end if - - end - -* -* Append a line obtained using ast_getline function to the end of the -* internal file indicated by "ifile", and increment the file length. -* - subroutine sink( status ) - implicit none - - include 'testxmlchan_com' - - integer status, l - character line*(linelen) - - call ast_getline( line, l, status ) - if( l .gt. 0 ) then - - if( filelen( ifile ) .ge. mxline ) then - stop 'TestXmlChan: Too many lines sent to sink function' - - else if( l .gt. linelen ) then - stop 'TestXmlChan: Text truncated in sink function' - - else - filelen( ifile ) = filelen( ifile ) + 1 - files( ifile, filelen( ifile ) ) = line(:l) - end if - - end if - - end - -* -* Create an AST object to be used as the test object. -* - subroutine makeobject( obj, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - integer obj, sf, f, m, status - - obj = ast__null - if( status .ne. sai__ok ) return - - sf = Ast_SkyFrame( ' ', status ) - f = Ast_Frame( 2, ' ', status ) - call ast_setc( f, 'title', 'A new title', status ) - m = ast_UnitMap( 2, ' ', status ) - obj = ast_FrameSet( f, ' ', status ) - call ast_addFrame( obj, 1, m, sf, status ) - - end - -* -* Write the supplied object out to the specified internal file using a -* basic Channel. -* - subroutine chanwrite( obj, ifil, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - include 'testxmlchan_com' - - external sink - integer obj, ifil, status, ch - - if( status .ne. sai__ok ) return - - ifile = ifil - filelen( ifil ) = 0 - - ch = ast_channel( ast_null, sink, ' ', status ) - if( ast_write( ch, obj, status ) .ne. 1 ) then - stop 'TestXmlChan: Failed to write object to Channel.' - end if - call ast_annul( ch, status ) - - end - -* -* Write the supplied object out to the specified internal file using an -* XmlChan. -* - subroutine xmlwrite( obj, ifil, fmt, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - include 'testxmlchan_com' - - external sink - integer obj, ifil, status, ch - character fmt*(*) - - if( status .ne. sai__ok ) return - - ifile = ifil - filelen( ifil ) = 0 - - ch = ast_xmlchan( ast_null, sink, 'indent=1,comment=1', - : status ) - call ast_seti( ch, 'xmllength', linelen, status ) - call ast_setc( ch, 'xmlformat', fmt, status ) - if( ast_write( ch, obj, status ) .ne. 1 ) then - stop 'TestXmlChan: Failed to write object to XmlChan.' - end if - call ast_annul( ch, status ) - - end - -* -* Read an object out of the specified internal file using an XmlChan. -* - subroutine xmlread( ifil, obj, status ) - implicit none - include 'SAE_PAR' - include 'AST_PAR' - - include 'testxmlchan_com' - - external source - integer obj, ifil, status, ch - - if( status .ne. sai__ok ) return - - ifile = ifil - iline = 1 - - ch = ast_xmlchan( source, ast_null, ' ', status ) - obj = ast_read( ch, status ) - if( obj .eq. ast__null ) then - stop 'TestXmlChan: Failed to read object from XmlChan.' - end if - call ast_annul( ch, status ) - - end diff --git a/ast/ast_tester/testxmlchan_com b/ast/ast_tester/testxmlchan_com deleted file mode 100644 index 3b7500e..0000000 --- a/ast/ast_tester/testxmlchan_com +++ /dev/null @@ -1,13 +0,0 @@ -* -* Common block declaration used by testxmlchan.f for storing internal -* files and associated info. -* - integer mxline - parameter ( mxline = 500 ) - - integer linelen - parameter ( linelen = 100 ) - - character files( 3, mxline )*(linelen) - integer ifile,iline,filelen( 3 ) - common /files/ files, ifile, iline, filelen diff --git a/ast/ast_tester/testzoommap.f b/ast/ast_tester/testzoommap.f deleted file mode 100644 index 0c2afd7..0000000 --- a/ast/ast_tester/testzoommap.f +++ /dev/null @@ -1,91 +0,0 @@ - program testzoommap - implicit none - - include 'AST_PAR' - include 'AST_ERR' - include 'SAE_PAR' - - integer zm, cm, status - - status = sai__ok - call ast_begin( status ) - - zm = ast_zoommap( 1, -1.0D0, ' ', status ) - if( .not. ast_test( zm, 'Zoom', status ) ) then - call stopit( status, "Error 1" ); - else if( ast_getd( zm, 'Zoom', status ) .ne. -1.0D0 ) then - call stopit( status, "Error 2" ); - end if - - call ast_clear( zm, 'Zoom', status ) - if( ast_test( zm, 'Zoom', status ) ) then - call stopit( status, "Error 3" ); - else if( ast_getd( zm, 'Zoom', status ) .ne. 1.0D0 ) then - call stopit( status, "Error 4" ); - end if - - call ast_setd( zm, 'Zoom', 2.5D0, status ) - if( .not. ast_test( zm, 'Zoom', status ) ) then - call stopit( status, "Error 5" ); - else if( ast_getd( zm, 'Zoom', status ) .ne. 2.5D0 ) then - call stopit( status, "Error 6" ); - end if - - cm = ast_cmpmap( zm, ast_unitmap( 1, ' ', status ), .TRUE., - : ' ', status ) - - if( .not. ast_test( zm, 'Zoom', status ) ) then - call stopit( status, "Error 7" ); - else if( ast_getd( zm, 'Zoom', status ) .ne. 2.5D0 ) then - call stopit( status, "Error 8" ); - end if - - call err_mark - - call ast_setd( zm, 'Zoom', 1.5D0, status ) - if( status .eq. ast__immut ) then - call err_annul( status ) - else if( status .eq. sai__ok ) then - call stopit( status, "Error 9" ); - else - call stopit( status, "Error 10" ); - end if - - call ast_clear( zm, 'Zoom', status ) - if( status .eq. ast__immut ) then - call err_annul( status ) - else if( status .eq. sai__ok ) then - call stopit( status, "Error 11" ); - else - call stopit( status, "Error 12" ); - end if - - call err_rlse - - call ast_end( status ) - -c call ast_activememory( 'testzoommap' ) - call ast_flushmemory( 1 ) - - if( status .eq. sai__ok ) then - write(*,*) 'All ZoomMap tests passed' - else - write(*,*) 'ZoomMap tests failed' - end if - - end - - - - subroutine stopit( status, text ) - implicit none - include 'SAE_PAR' - integer status - character text*(*) - if( status .ne. sai__ok ) return - status = sai__error - write(*,*) text - end - - - diff --git a/ast/ast_tester/timeplot.attr b/ast/ast_tester/timeplot.attr deleted file mode 100644 index 5b43238..0000000 --- a/ast/ast_tester/timeplot.attr +++ /dev/null @@ -1 +0,0 @@ -minticklen=0.02,majticklen=0.05,gap(2)=0.1,NumLabGap=0.05,textlabgap=0.1,size=0.9 diff --git a/ast/ast_tester/timeplot.box b/ast/ast_tester/timeplot.box deleted file mode 100644 index c2351b4..0000000 --- a/ast/ast_tester/timeplot.box +++ /dev/null @@ -1 +0,0 @@ -0.046 3.0 1.008 3.3 diff --git a/ast/ast_tester/timeplot.head b/ast/ast_tester/timeplot.head deleted file mode 100644 index 95ea8d5..0000000 --- a/ast/ast_tester/timeplot.head +++ /dev/null @@ -1,34 +0,0 @@ - -COMMENT AST ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ AST -COMMENT AST Beginning of AST data for CmpFrame object AST -COMMENT AST ................................................................ AST -BEGAST_A= 'CmpFrame' / Compound coordinate system description -DOMAIN_A= 'DATAPLOT' / Coordinate system domain -ACTUNT_A= 1 / Unit strings affects alignment -ISA_A = 'Frame ' / Coordinate system description -FRAMEA_A= ' ' / First component Frame -BEGAST_B= 'TimeFrame' / Description of time coordinate system -TITLE_A = 'KAPPA - Trandat' / Title of coordinate system -NAXES_A = 1 / Number of coordinate axes -AX1_A = ' ' / Axis number 1 -BEGAST_C= 'Axis ' / Coordinate axis -FORMAT_A= 'iso.0 ' / Format specifier -ENDAST_A= 'Axis ' / End of object definition -ISA_B = 'Frame ' / Coordinate system description -TMORG_A = 57128.585856 / Time offset -ENDAST_B= 'TimeFrame' / End of object definition -FRAMEB_A= ' ' / Second component Frame -BEGAST_D= 'Frame ' / Coordinate system description -NAXES_B = 1 / Number of coordinate axes -ACTUNT_B= 1 / Unit strings affects alignment -AX1_B = ' ' / Axis number 1 -BEGAST_E= 'Axis ' / Coordinate axis -LABEL_A = 'Data up-loaded' / Axis Label -SYMBOL_A= 'Data ' / Axis symbol -UNIT_A = 'GB ' / Axis units -ENDAST_C= 'Axis ' / End of object definition -ENDAST_D= 'Frame ' / End of object definition -ENDAST_E= 'CmpFrame' / End of object definition -COMMENT AST ................................................................ AST -COMMENT AST End of AST data for CmpFrame object AST -COMMENT AST ---------------------------------------------------------------- AST diff --git a/ast/ast_tester/timj.ast b/ast/ast_tester/timj.ast deleted file mode 100644 index ed011dd..0000000 --- a/ast/ast_tester/timj.ast +++ /dev/null @@ -1,234 +0,0 @@ - Begin FrameSet -# Title = "FK5 equatorial coordinates; mean equinox J2000.0; gnomonic projection" # Title of coordinate system -# Naxes = 2 # Number of coordinate axes -# Domain = "SKY" # Coordinate system domain -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 -# Uni1 = "hh:mm:ss.s" # Units for axis 1 -# Uni2 = "ddd:mm:ss" # Units for axis 2 -# Dir1 = 0 # Plot axis 1 in reverse direction - IsA Frame # Coordinate system description - Nframe = 4 # Number of Frames in FrameSet -# Base = 1 # Index of base Frame - Currnt = 4 # Index of current Frame - Nnode = 5 # Number of nodes in FrameSet - Nod1 = 3 # Frame 1 is associated with node 3 - Nod2 = 4 # Frame 2 is associated with node 4 - Nod3 = 5 # Frame 3 is associated with node 5 - Nod4 = 2 # Frame 4 is associated with node 2 - Lnk2 = 1 # Node 2 is derived from node 1 - Lnk3 = 1 # Node 3 is derived from node 1 - Lnk4 = 1 # Node 4 is derived from node 1 - Lnk5 = 1 # Node 5 is derived from node 1 - Frm1 = # Frame number 1 - Begin Frame - Title = "Data grid indices; first pixel at (1,1)" # Title of coordinate system - Naxes = 2 # Number of coordinate axes - Domain = "GRID" # Coordinate system domain -# Lbl1 = "Data grid index 1" # Label for axis 1 -# Lbl2 = "Data grid index 2" # Label for axis 2 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 - Ax1 = # Axis number 1 - Begin Axis - Label = "Data grid index 1" # Axis Label - Symbol = "g1" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis - Label = "Data grid index 2" # Axis Label - Symbol = "g2" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - End Frame - Frm2 = # Frame number 2 - Begin Frame - Title = "Pixel coordinates; first pixel at (-128.5,-127.5)" # Title of coordinate system - Naxes = 2 # Number of coordinate axes - Domain = "PIXEL" # Coordinate system domain -# Lbl1 = "Pixel coordinate 1" # Label for axis 1 -# Lbl2 = "Pixel coordinate 2" # Label for axis 2 -# Uni1 = "pixel" # Units for axis 1 -# Uni2 = "pixel" # Units for axis 2 - Ax1 = # Axis number 1 - Begin Axis - Label = "Pixel coordinate 1" # Axis Label - Symbol = "p1" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - Ax2 = # Axis number 2 - Begin Axis - Label = "Pixel coordinate 2" # Axis Label - Symbol = "p2" # Axis symbol - Unit = "pixel" # Axis units - Format = "%3.1f" # Format specifier - End Axis - End Frame - Frm3 = # Frame number 3 - Begin Frame - Title = "Axis coordinates; first pixel at (384,-381)" # Title of coordinate system - Naxes = 2 # Number of coordinate axes - Domain = "AXIS" # Coordinate system domain -# Lbl1 = "R.A. offset" # Label for axis 1 -# Lbl2 = "Declination offset" # Label for axis 2 -# Uni1 = "arcsec" # Units for axis 1 -# Uni2 = "arcsec" # Units for axis 2 - Ax1 = # Axis number 1 - Begin Axis - Label = "R.A. offset" # Axis Label - Symbol = "a1" # Axis symbol - Unit = "arcsec" # Axis units - End Axis - Ax2 = # Axis number 2 - Begin Axis - Label = "Declination offset" # Axis Label - Symbol = "a2" # Axis symbol - Unit = "arcsec" # Axis units - End Axis - End Frame - Frm4 = # Frame number 4 - Begin SkyFrame -# Title = "FK5 equatorial coordinates; mean equinox J2000.0; gnomonic projection" # Title of coordinate system - Naxes = 2 # Number of coordinate axes -# Domain = "SKY" # Coordinate system domain -# Lbl1 = "Right ascension" # Label for axis 1 -# Lbl2 = "Declination" # Label for axis 2 -# Uni1 = "hh:mm:ss.s" # Units for axis 1 -# Uni2 = "ddd:mm:ss" # Units for axis 2 -# Dir1 = 0 # Plot axis 1 in reverse direction - Ax1 = # Axis number 1 - Begin SkyAxis - End SkyAxis - Ax2 = # Axis number 2 - Begin SkyAxis - End SkyAxis - IsA Frame # Coordinate system description - System = "FK5" # Celestial coordinate system type - Proj = "gnomonic" # Description of sky projection - Epoch = 2002.3821786502 # Julian epoch of observation - Eqnox = 2000 # Julian epoch of mean equinox - End SkyFrame - Map2 = # Mapping between nodes 1 and 2 - Begin CmpMap - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin WinMap - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - Sft1 = -129 # Shift for axis 1 - Sft2 = -128 # Shift for axis 2 - End WinMap - MapB = # Second component Mapping - Begin CmpMap - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap - Nin = 2 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = -1.45444097695548e-05 # Forward matrix value - M1 = 1.45444097695548e-05 # Forward matrix value - Form = "Diagonal" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin CmpMap - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin WcsMap - Nin = 2 # Number of input coordinates - Invert = 1 # Mapping inverted - IsA Mapping # Mapping between coordinate systems - Type = "TAN" # Gnomonic projection - End WcsMap - MapB = # Second component Mapping - Begin CmpMap - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - InvA = 1 # First Mapping used in inverse direction - MapA = # First component Mapping - Begin SphMap - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - End SphMap - MapB = # Second component Mapping - Begin CmpMap - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin MatrixMap - Nin = 3 # Number of input coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - M0 = 0.425569982779421 # Forward matrix value - M1 = 0.773738866158297 # Forward matrix value - M2 = 0.469274287334386 # Forward matrix value - M3 = -0.519775230563316 # Forward matrix value - M4 = 0.633504670066506 # Forward matrix value - M5 = -0.573154030516038 # Forward matrix value - M6 = -0.740759002274002 # Forward matrix value - M7 = 0 # Forward matrix value - M8 = 0.671770869084113 # Forward matrix value - Form = "Full" # Matrix storage form - End MatrixMap - MapB = # Second component Mapping - Begin CmpMap - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - IsA Mapping # Mapping between coordinate systems - MapA = # First component Mapping - Begin SphMap - Nin = 3 # Number of input coordinates - Nout = 2 # Number of output coordinates - Invert = 0 # Mapping not inverted - IsA Mapping # Mapping between coordinate systems - UntRd = 1 # All input vectors have unit length - End SphMap - MapB = # Second component Mapping - Begin SlaMap - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - Nsla = 1 # Number of conversion steps - Sla1 = "FK45Z" # FK4 to FK5 J2000.0 (no PM or parallax) - Sla1a = 2002.38350704493 # Besselian epoch of FK4 coordinates - End SlaMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - End CmpMap - Map3 = # Mapping between nodes 1 and 3 - Begin UnitMap - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - End UnitMap - Map4 = # Mapping between nodes 1 and 4 - Begin WinMap - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - Sft1 = -129.5 # Shift for axis 1 - Sft2 = -128.5 # Shift for axis 2 - End WinMap - Map5 = # Mapping between nodes 1 and 5 - Begin WinMap - Nin = 2 # Number of input coordinates - IsA Mapping # Mapping between coordinate systems - Sft1 = 387 # Shift for axis 1 - Scl1 = -3 # Scale factor for axis 1 - Sft2 = -384 # Shift for axis 2 - Scl2 = 3 # Scale factor for axis 2 - End WinMap - End FrameSet diff --git a/ast/ast_tester/timj.fits-aips b/ast/ast_tester/timj.fits-aips deleted file mode 100644 index 4fdd94b..0000000 --- a/ast/ast_tester/timj.fits-aips +++ /dev/null @@ -1,11 +0,0 @@ -CRPIX1 = 129.0 / Reference pixel on axis 1 -CRPIX2 = 128.0 / Reference pixel on axis 2 -CRVAL1 = 309.75469 / Value at ref. pixel on axis 1 -CRVAL2 = 42.381032 / Value at ref. pixel on axis 2 -CTYPE1 = 'RA---TAN' / Type of co-ordinate on axis 1 -CTYPE2 = 'DEC--TAN' / Type of co-ordinate on axis 2 -CDELT1 = -8.3333273E-4 / Pixel size -CDELT2 = 0.00083333273 / Pixel size -CROTA2 = 0.29013902 / Axis rotation -EPOCH = 2000.0 / Epoch of reference equinox -DATE-OBS= '2002-05-20T14:09:36.786' / Date of observation diff --git a/ast/ast_tester/timj.fits-iraf b/ast/ast_tester/timj.fits-iraf deleted file mode 100644 index 88c3d94..0000000 --- a/ast/ast_tester/timj.fits-iraf +++ /dev/null @@ -1,13 +0,0 @@ -CRPIX1 = 129.0 / Reference pixel on axis 1 -CRPIX2 = 128.0 / Reference pixel on axis 2 -CRVAL1 = 309.75469 / Value at ref. pixel on axis 1 -CRVAL2 = 42.381032 / Value at ref. pixel on axis 2 -CTYPE1 = 'RA---TAN' / Type of co-ordinate on axis 1 -CTYPE2 = 'DEC--TAN' / Type of co-ordinate on axis 2 -CD1_1 = -8.3332205E-4 / Transformation matrix element -CD1_2 = -4.2198799E-6 / Transformation matrix element -CD2_1 = -4.2198799E-6 / Transformation matrix element -CD2_2 = 0.00083332205 / Transformation matrix element -RADECSYS= 'FK5 ' / Reference frame for RA/DEC values -EQUINOX = 2000.0 / Epoch of reference equinox -DATE-OBS= '2002-05-20T14:09:36.786' / Date of observation diff --git a/ast/ast_tester/timj.fits-pc b/ast/ast_tester/timj.fits-pc deleted file mode 100644 index f3bfc6f..0000000 --- a/ast/ast_tester/timj.fits-pc +++ /dev/null @@ -1,16 +0,0 @@ -PC001001= 1.0 -PC001002= 0.0050638595 -PC002001= -0.0050638595 -PC002002= 1.0 -CDELT1 = -8.3333273E-4 / Pixel scale on axis 1 -CDELT2 = 0.00083333273 / Pixel scale on axis 2 -CRPIX1 = 129.0 / Reference pixel on axis 1 -CRPIX2 = 128.0 / Reference pixel on axis 2 -CRVAL1 = 309.75469 / Value at ref. pixel on axis 1 -CRVAL2 = 42.381032 / Value at ref. pixel on axis 2 -CTYPE1 = 'RA---TAN' / Type of co-ordinate on axis 1 -CTYPE2 = 'DEC--TAN' / Type of co-ordinate on axis 2 -RADECSYS= 'FK5 ' / Reference frame for RA/DEC values -EQUINOX = 2000.0 / Epoch of reference equinox -MJD-OBS = 52414.59 / Modified Julian Date of observation -DATE-OBS= '2002-05-20T14:09:36.786' / Date of observation diff --git a/ast/ast_tester/timj.fits-wcs b/ast/ast_tester/timj.fits-wcs deleted file mode 100644 index f8b3e8a..0000000 --- a/ast/ast_tester/timj.fits-wcs +++ /dev/null @@ -1,39 +0,0 @@ -WCSAXES = 2 / Number of WCS axes -CRPIX1 = 129.0 / Reference pixel on axis 1 -CRPIX2 = 128.0 / Reference pixel on axis 2 -CRVAL1 = 309.75469 / Value at ref. pixel on axis 1 -CRVAL2 = 42.381032 / Value at ref. pixel on axis 2 -CTYPE1 = 'RA---TAN' / Type of co-ordinate on axis 1 -CTYPE2 = 'DEC--TAN' / Type of co-ordinate on axis 2 -CD1_1 = -8.3332205E-4 / Transformation matrix element -CD1_2 = -4.2198799E-6 / Transformation matrix element -CD2_1 = -4.2198799E-6 / Transformation matrix element -CD2_2 = 0.00083332205 / Transformation matrix element -MJD-OBS = 52414.59 / Modified Julian Date of observation -DATE-OBS= '2002-05-20T14:09:36.786' / Date of observation -RADESYS = 'FK5 ' / Reference frame for RA/DEC values -EQUINOX = 2000.0 / [yr] Epoch of reference equinox -WCSAXESA= 2 / Number of WCS axes -WCSNAMEA= 'PIXEL ' / Reference name for the coord. frame -CRPIX1A = 1.0 / Reference pixel on axis 1 -CRPIX2A = 1.0 / Reference pixel on axis 2 -CRVAL1A = -128.5 / Value at ref. pixel on axis 1 -CRVAL2A = -127.5 / Value at ref. pixel on axis 2 -CTYPE1A = 'p1 ' / Pixel coordinate 1 -CTYPE2A = 'p2 ' / Pixel coordinate 2 -CD1_1A = 1.0 / Transformation matrix element -CD2_2A = 1.0 / Transformation matrix element -CUNIT1A = 'pixel ' / Units for axis 1 -CUNIT2A = 'pixel ' / Units for axis 2 -WCSAXESB= 2 / Number of WCS axes -WCSNAMEB= 'AXIS ' / Reference name for the coord. frame -CRPIX1B = 1.0 / Reference pixel on axis 1 -CRPIX2B = 1.0 / Reference pixel on axis 2 -CRVAL1B = 384.0 / Value at ref. pixel on axis 1 -CRVAL2B = -381.0 / Value at ref. pixel on axis 2 -CTYPE1B = 'a1 ' / R.A. offset -CTYPE2B = 'a2 ' / Declination offset -CD1_1B = -3.0 / Transformation matrix element -CD2_2B = 3.0 / Transformation matrix element -CUNIT1B = 'arcsec ' / Units for axis 1 -CUNIT2B = 'arcsec ' / Units for axis 2 diff --git a/ast/ast_tester/timj.native b/ast/ast_tester/timj.native deleted file mode 100644 index fb54315..0000000 --- a/ast/ast_tester/timj.native +++ /dev/null @@ -1,217 +0,0 @@ - -COMMENT AST ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ AST -COMMENT AST WCS information in AST format AST -COMMENT AST See http://www.starlink.ac.uk/ast/ AST -COMMENT AST Beginning of AST data for FrameSet object AST -COMMENT AST ................................................................ AST -BEGAST_A= 'FrameSet' / Set of inter-related coordinate systems -NFRAME_A= 4 / Number of Frames in FrameSet -CURRNT_A= 4 / Index of current Frame -NNODE_A = 5 / Number of nodes in FrameSet -NOD1_A = 3 / Frame 1 is associated with node 3 -NOD2_A = 4 / Frame 2 is associated with node 4 -NOD3_A = 5 / Frame 3 is associated with node 5 -NOD4_A = 2 / Frame 4 is associated with node 2 -LNK2_A = 1 / Node 2 is derived from node 1 -LNK3_A = 1 / Node 3 is derived from node 1 -LNK4_A = 1 / Node 4 is derived from node 1 -LNK5_A = 1 / Node 5 is derived from node 1 -FRM1_A = ' ' / Frame number 1 -BEGAST_B= 'Frame ' / Coordinate system description -TITLE_A = 'Data grid indices; first pixel at (1&' / Title of coordinate system -CONTINUE ',1) ' -NAXES_A = 2 / Number of coordinate axes -DOMAIN_A= 'GRID ' / Coordinate system domain -AX1_A = ' ' / Axis number 1 -BEGAST_C= 'Axis ' / Coordinate axis -LABEL_A = 'Data grid index 1' / Axis Label -SYMBOL_A= 'g1 ' / Axis symbol -UNIT_A = 'pixel ' / Axis units -FORMAT_A= '%3.1f ' / Format specifier -ENDAST_A= 'Axis ' / End of object definition -AX2_A = ' ' / Axis number 2 -BEGAST_D= 'Axis ' / Coordinate axis -LABEL_B = 'Data grid index 2' / Axis Label -SYMBOL_B= 'g2 ' / Axis symbol -UNIT_B = 'pixel ' / Axis units -FORMAT_B= '%3.1f ' / Format specifier -ENDAST_B= 'Axis ' / End of object definition -ENDAST_C= 'Frame ' / End of object definition -FRM2_A = ' ' / Frame number 2 -BEGAST_E= 'Frame ' / Coordinate system description -TITLE_B = 'Pixel coordinates; first pixel at (-&' / Title of coordinate system -CONTINUE '128.5,-127.5)' -NAXES_B = 2 / Number of coordinate axes -DOMAIN_B= 'PIXEL ' / Coordinate system domain -AX1_B = ' ' / Axis number 1 -BEGAST_F= 'Axis ' / Coordinate axis -LABEL_C = 'Pixel coordinate 1' / Axis Label -SYMBOL_C= 'p1 ' / Axis symbol -UNIT_C = 'pixel ' / Axis units -FORMAT_C= '%3.1f ' / Format specifier -ENDAST_D= 'Axis ' / End of object definition -AX2_B = ' ' / Axis number 2 -BEGAST_G= 'Axis ' / Coordinate axis -LABEL_D = 'Pixel coordinate 2' / Axis Label -SYMBOL_D= 'p2 ' / Axis symbol -UNIT_D = 'pixel ' / Axis units -FORMAT_D= '%3.1f ' / Format specifier -ENDAST_E= 'Axis ' / End of object definition -ENDAST_F= 'Frame ' / End of object definition -FRM3_A = ' ' / Frame number 3 -BEGAST_H= 'Frame ' / Coordinate system description -TITLE_C = 'Axis coordinates; first pixel at (38&' / Title of coordinate system -CONTINUE '4,-381) ' -NAXES_C = 2 / Number of coordinate axes -DOMAIN_C= 'AXIS ' / Coordinate system domain -AX1_C = ' ' / Axis number 1 -BEGAST_I= 'Axis ' / Coordinate axis -LABEL_E = 'R.A. offset' / Axis Label -SYMBOL_E= 'a1 ' / Axis symbol -UNIT_E = 'arcsec ' / Axis units (arc-second) -ENDAST_G= 'Axis ' / End of object definition -AX2_C = ' ' / Axis number 2 -BEGAST_J= 'Axis ' / Coordinate axis -LABEL_F = 'Declination offset' / Axis Label -SYMBOL_F= 'a2 ' / Axis symbol -UNIT_F = 'arcsec ' / Axis units (arc-second) -ENDAST_H= 'Axis ' / End of object definition -ENDAST_I= 'Frame ' / End of object definition -FRM4_A = ' ' / Frame number 4 -BEGAST_K= 'SkyFrame' / Description of celestial coordinate system -NAXES_D = 2 / Number of coordinate axes -EPOCH_A = 2002.3822 / Julian epoch of observation -SYSTEM_A= 'FK5 ' / Coordinate system type -AX1_D = ' ' / Axis number 1 -BEGAST_L= 'SkyAxis ' / Celestial coordinate axis -ENDAST_J= 'SkyAxis ' / End of object definition -AX2_D = ' ' / Axis number 2 -BEGAST_M= 'SkyAxis ' / Celestial coordinate axis -ENDAST_K= 'SkyAxis ' / End of object definition -ISA_A = 'Frame ' / Coordinate system description -PROJ_A = 'gnomonic' / Description of sky projection -EQNOX_A = 2000.0 / Julian epoch of mean equinox -ENDAST_L= 'SkyFrame' / End of object definition -MAP2_A = ' ' / Mapping between nodes 1 and 2 -BEGAST_N= 'CmpMap ' / Compound Mapping -NIN_A = 2 / Number of input coordinates -ISA_B = 'Mapping ' / Mapping between coordinate systems -MAPA_A = ' ' / First component Mapping -BEGAST_O= 'WinMap ' / Map one window on to another -NIN_B = 2 / Number of input coordinates -INVERT_A= 0 / Mapping not inverted -ISA_C = 'Mapping ' / Mapping between coordinate systems -SFT1_A = -129.0 / Shift for axis 1 -SFT2_A = -128.0 / Shift for axis 2 -ENDAST_M= 'WinMap ' / End of object definition -MAPB_A = ' ' / Second component Mapping -BEGAST_P= 'CmpMap ' / Compound Mapping -NIN_C = 2 / Number of input coordinates -ISA_D = 'Mapping ' / Mapping between coordinate systems -MAPA_B = ' ' / First component Mapping -BEGAST_Q= 'MatrixMap' / Matrix transformation -NIN_D = 2 / Number of input coordinates -INVERT_B= 0 / Mapping not inverted -ISA_E = 'Mapping ' / Mapping between coordinate systems -M0_A = -1.454441E-5 / Forward matrix value -M1_A = 1.454441E-5 / Forward matrix value -FORM_A = 'Diagonal' / Matrix storage form -ENDAST_N= 'MatrixMap' / End of object definition -MAPB_B = ' ' / Second component Mapping -BEGAST_R= 'CmpMap ' / Compound Mapping -NIN_E = 2 / Number of input coordinates -ISA_F = 'Mapping ' / Mapping between coordinate systems -INVA_A = 1 / First Mapping used in inverse direction -MAPA_C = ' ' / First component Mapping -BEGAST_S= 'WcsMap ' / FITS-WCS sky projection -NIN_F = 2 / Number of input coordinates -INVERT_C= 1 / Mapping inverted -ISA_G = 'Mapping ' / Mapping between coordinate systems -TYPE_A = 'TAN ' / Gnomonic projection -ENDAST_O= 'WcsMap ' / End of object definition -MAPB_C = ' ' / Second component Mapping -BEGAST_T= 'CmpMap ' / Compound Mapping -NIN_G = 2 / Number of input coordinates -ISA_H = 'Mapping ' / Mapping between coordinate systems -INVA_B = 1 / First Mapping used in inverse direction -MAPA_D = ' ' / First component Mapping -BEGAST_U= 'SphMap ' / Cartesian to Spherical mapping -NIN_H = 3 / Number of input coordinates -NOUT_A = 2 / Number of output coordinates -INVERT_D= 0 / Mapping not inverted -ISA_I = 'Mapping ' / Mapping between coordinate systems -UNTRD_A = 1 / All input vectors have unit length -ENDAST_P= 'SphMap ' / End of object definition -MAPB_D = ' ' / Second component Mapping -BEGAST_V= 'CmpMap ' / Compound Mapping -NIN_I = 3 / Number of input coordinates -NOUT_B = 2 / Number of output coordinates -ISA_J = 'Mapping ' / Mapping between coordinate systems -MAPA_E = ' ' / First component Mapping -BEGAST_W= 'MatrixMap' / Matrix transformation -NIN_J = 3 / Number of input coordinates -INVERT_E= 0 / Mapping not inverted -ISA_K = 'Mapping ' / Mapping between coordinate systems -M0_B = 0.42556998 / Forward matrix value -M1_B = 0.77373887 / Forward matrix value -M2_A = 0.46927429 / Forward matrix value -M3_A = -0.51977523 / Forward matrix value -M4_A = 0.63350467 / Forward matrix value -M5_A = -0.57315403 / Forward matrix value -M6_A = -0.740759 / Forward matrix value -M7_A = 0.0 / Forward matrix value -M8_A = 0.67177087 / Forward matrix value -FORM_B = 'Full ' / Matrix storage form -ENDAST_Q= 'MatrixMap' / End of object definition -MAPB_E = ' ' / Second component Mapping -BEGAST_X= 'CmpMap ' / Compound Mapping -NIN_K = 3 / Number of input coordinates -NOUT_C = 2 / Number of output coordinates -ISA_L = 'Mapping ' / Mapping between coordinate systems -MAPA_F = ' ' / First component Mapping -BEGAST_Y= 'SphMap ' / Cartesian to Spherical mapping -NIN_L = 3 / Number of input coordinates -NOUT_D = 2 / Number of output coordinates -INVERT_F= 0 / Mapping not inverted -ISA_M = 'Mapping ' / Mapping between coordinate systems -UNTRD_B = 1 / All input vectors have unit length -ENDAST_R= 'SphMap ' / End of object definition -MAPB_F = ' ' / Second component Mapping -BEGAST_Z= 'SlaMap ' / Conversion between sky coordinate systems -NIN_M = 2 / Number of input coordinates -ISA_N = 'Mapping ' / Mapping between coordinate systems -NSLA_A = 1 / Number of conversion steps -SLA1_A = 'FK45Z ' / FK4 to FK5 J2000.0 (no PM or parallax) -SLA1A_A = 2002.3835 / Besselian epoch of FK4 coordinates -ENDAST_S= 'SlaMap ' / End of object definition -ENDAST_T= 'CmpMap ' / End of object definition -ENDAST_U= 'CmpMap ' / End of object definition -ENDAST_V= 'CmpMap ' / End of object definition -ENDAST_W= 'CmpMap ' / End of object definition -ENDAST_X= 'CmpMap ' / End of object definition -ENDAST_Y= 'CmpMap ' / End of object definition -MAP3_A = ' ' / Mapping between nodes 1 and 3 -BEGASTA_= 'UnitMap ' / Unit (null) Mapping -NIN_N = 2 / Number of input coordinates -ISA_O = 'Mapping ' / Mapping between coordinate systems -ENDAST_Z= 'UnitMap ' / End of object definition -MAP4_A = ' ' / Mapping between nodes 1 and 4 -BEGASTAA= 'WinMap ' / Map one window on to another -NIN_O = 2 / Number of input coordinates -ISA_P = 'Mapping ' / Mapping between coordinate systems -SFT1_B = -129.5 / Shift for axis 1 -SFT2_B = -128.5 / Shift for axis 2 -ENDASTA_= 'WinMap ' / End of object definition -MAP5_A = ' ' / Mapping between nodes 1 and 5 -BEGASTAB= 'WinMap ' / Map one window on to another -NIN_P = 2 / Number of input coordinates -ISA_Q = 'Mapping ' / Mapping between coordinate systems -SFT1_C = 387.0 / Shift for axis 1 -SCL1_A = -3.0 / Scale factor for axis 1 -SFT2_C = -384.0 / Shift for axis 2 -SCL2_A = 3.0 / Scale factor for axis 2 -ENDASTAA= 'WinMap ' / End of object definition -ENDASTAB= 'FrameSet' / End of object definition -COMMENT AST ................................................................ AST -COMMENT AST End of AST data for FrameSet object AST -COMMENT AST ---------------------------------------------------------------- AST diff --git a/ast/ast_tester/tnx.attr b/ast/ast_tester/tnx.attr deleted file mode 100644 index e5498b5..0000000 --- a/ast/ast_tester/tnx.attr +++ /dev/null @@ -1 +0,0 @@ -Grid=1,textlabgap=0.1,border=0 diff --git a/ast/ast_tester/tnx.box b/ast/ast_tester/tnx.box deleted file mode 100644 index f69daff..0000000 --- a/ast/ast_tester/tnx.box +++ /dev/null @@ -1 +0,0 @@ -0.0 0.0 2048.0 4096.0 diff --git a/ast/ast_tester/tnx.head b/ast/ast_tester/tnx.head deleted file mode 100644 index 58c6aa0..0000000 --- a/ast/ast_tester/tnx.head +++ /dev/null @@ -1,180 +0,0 @@ -SIMPLE = T / Fits standard -BITPIX = 16 / Bits per pixel -NAXIS = 2 / Number of axes -NAXIS1 = 2048 / Axis length -NAXIS2 = 4096 / Axis length -EXTEND = F / File may contain extensions -ORIGIN = 'NOAO-IRAF FITS Image Kernel July 1999' / FITS file originator -DATE = '2001-11-20T16:52:11' / Date FITS file was generated -IRAF-TLM= '16:52:09 (20/11/2001)' / Time of last modification -OBJECT = 'A576 R ' / Name of the object observed -NEXTEND = 8 / Number of extensions -FILENAME= 'obj214r ' / Original host filename -OBSTYPE = 'object ' / Observation type -EXPTIME = 350.000 / Exposure time (sec) -DARKTIME= 351.888 / Dark time (sec) -PREFLASH= 0.000000 / Preflash time (sec) -RADECSYS= 'FK5 ' / Default coordinate system -RA = '07:21:44.00 ' / RA of observation (hr) -DEC = '55:53:16.99 ' / DEC of observation (deg) -EQUINOX = 1.9998000490000E+03 / Equinox of coordinate system - -TIMESYS = 'UTC approximate' / Time system -DATE-OBS= '1999-10-09' / Date of observation start (UTC approximate) -TIME-OBS= '12:08:33.0' / Time of observation start -MJD-OBS = 51460.50593750 / MJD of observation start -MJDHDR = 51460.50591435 / MJD of header creation -LSTHDR = '05:52:50.00 ' / LST of header creation - -OBSERVAT= 'KPNO ' / Observatory -TELESCOP= 'KPNO 0.9 meter telescope' / Telescope -ZD = 2.8469999000000E+01 / Zenith distance -AIRMASS = 1.1400000000000E+00 / Airmass -TELFOCUS= 4414 / Telescope focus -CORRCTOR= 'KPNO 0.9m Corrector' / Corrector Identification -ADC = 'none ' / ADC Identification - -DETECTOR= 'CCDMosaThin1' / Detector -DETSIZE = '[1:8176,1:8192]' / Detector size for DETSEC -NCCDS = 8 / Number of CCDs -NAMPS = 8 / Number of Amplifiers -PIXSIZE1= 15. / Pixel size for axis 1 (microns) -PIXSIZE2= 15. / Pixel size for axis 2 (microns) -PIXSCAL1= 0.423 / Pixel scale for axis 1 (arcsec/pixel) -PIXSCAL2= 0.423 / Pixel scale for axis 2 (arcsec/pixel) -RAPANGL = 0. / Position angle of RA axis (deg) -DECPANGL= 270. / Position angle of DEC axis (deg) -FILPOS = 4 / Filter position -FILTER = 'R ' / Filter name(s) -SHUTSTAT= 'guide ' / Shutter status -TV1FOC = -5.9600000000000E-01 / North TV Camera focus position -TV2FOC = -1.6230000000000E+00 / South Camera focus position -ENVTEM = 1.7299999000000E+01 / Ambient temperature (C) -DEWAR = 'CCDMosaThin1 Dewar' / Dewar identification -DEWTEM1 = -1.7060000600000E+02 / Dewar temperature (C) -DEWTEM2 = -4.7000000000000E+00 / Fill Neck temperature (C) -CCDTEM = -9.5000000000000E+01 / CCD temperature (C) - -CONTROLR= 'Mosaic Arcon' / Controller identification -CONSWV = '2.000 13Feb96 (add mode and group to hdrs)' / Controller softwar -AMPINTEG= 3000 / (ns) Double Correlated Sample time -READTIME= 13200 / (ns) unbinned pixel read time -ARCONWD = 'Obs Thu Aug 19 10:45:52 1999' / Date waveforms last compiled -ARCONWM = 'OverlapXmit EarlyReset SplitShift ' / Waveform mode switches on -ARCONGI = 1 / Gain selection (index into Gain Table) - -OBSERVER= 'G.Wegner,M.Hudson' / Observer(s) -PROPOSER= '<unknown>' / Proposer(s) -PROPOSAL= '<unknown>' / Proposal title -PROPID = '99B-0020' / Proposal identification -OBSID = 'kp09m.19991009T120833' / Observation ID - -IMAGESWV= 'mosdca (Aug99), CCDMosaThin1V8.tcl (Aug99)' / Image creation software -KWDICT = 'MosaicV1.dic (Sep97)' / Keyword dictionary - -CHECKSUM= '<unknown>' / Header checksum -DATASUM = '<unknown>' / Data checksum -CHECKVER= '<unknown>' / Checksum version -RECNO = 0 / NOAO archive sequence number -IMAGEID = 5 / Image identification - -TELRA = '07:21:44.00 ' / RA of observation (hr) -TELDEC = '55:53:16.99 ' / DEC of observation (deg) -TELEQUIN= 1.9998000490000E+03 / Equinox of coordinate system -TELRADEC= 'FK5 ' / Default coordinate system - -CCDNAME = 'SITe #7061FBR03-02 (NOAO 02)' / CCD name -AMPNAME = 'SITe #7061FBR03-02 (NOAO 02), upper left (Amp321)' / Amplifier name -GAIN = 2.3 / gain for amp 321 (e-/ADU) -RDNOISE = 9.5 / read noise for amp 321 (e-) -SATURATE= 22000 / Maximum good data value (ADU) -CONHWV = 'ACEB003_AMP21' / Controller hardware version -ARCONG = 2.3 / gain expected for amp 321 (e-/ADU) -ARCONRN = 5.1 / read noise expected for amp 321 (e-) -BPM = 'mscdb$noao/CCDMosaThin1/bpm_im5' / Bad pixel mask -CCDSIZE = '[1:2048,1:4096]' / CCD size -CCDSUM = '1 1 ' / CCD pixel summing -CCDSEC = '[1:2048,1:4096]' / CCD section -AMPSEC = '[1:2048,4096:1]' / Amplifier section -DETSEC = '[1:2048,4097:8192]' / Detector section - -ATM1_1 = 1. / CCD to amplifier transformation -ATM2_2 = -1. / CCD to amplifier transformation -ATV1 = 0. / CCD to amplifier transformation -ATV2 = 4097. / CCD to amplifier transformation -LTM1_1 = 1.0 / CCD to image transformation -LTM2_2 = 1.0 / CCD to image transformation -DTM1_1 = 1. / CCD to detector transformation -DTM2_2 = 1. / CCD to detector transformation -DTV1 = 0. / CCD to detector transformation -DTV2 = 4096. / CCD to detector transformation - -WCSASTRM= 'kp09m.19980909T031418 (Tr 37 V Mosaic) by L. Davis 1998-09-09' / WCS -WCSDIM = 2 / WCS dimensionality -CTYPE1 = 'RA---TNX' / Coordinate type -CTYPE2 = 'DEC--TNX' / Coordinate type -CRVAL1 = 110.52095558563 / Coordinate reference value -CRVAL2 = 55.842849490386 / Coordinate reference value -CRPIX1 = 4189.77390083542 / Coordinate reference pixel -CRPIX2 = -30.0894072403876 / Coordinate reference pixel -CD1_1 = -7.5733524638274E-7 / Coordinate matrix -CD2_1 = -1.1748235187739E-4 / Coordinate matrix -CD1_2 = 1.17677003379415E-4 / Coordinate matrix -CD2_2 = -1.2623022560872E-6 / Coordinate matrix -WAT0_001= 'system=image' / Coordinate system -WAT1_001= 'wtype=tnx axtype=ra lngcor = "3. 4. 4. 2. 0.005280549145776419 0.488' -WAT1_002= '7181432338267 0.2464122630921897 0.4920677651238937 -0.23529018838' -WAT1_003= '0298 0.004720134828570101 -0.001121960789613695 -0.01414958280730338' -WAT1_004= ' 0.01246754057675834 1.048124909467771E-4 0.007168575568475281 -0.02' -WAT1_005= '778217836490202 -0.01675668830707639 0.02500648596542957 "' -WAT2_001= 'wtype=tnx axtype=dec latcor = "3. 4. 4. 2. 0.005280549145776419 0.48' -WAT2_002= '87181432338267 0.2464122630921897 0.4920677651238937 0.1531926820' -WAT2_003= '595278 -0.002539369349529043 6.454692689700324E-4 4.863689582871599E-' -WAT2_004= '4 0.003549715563706861 -0.002061136945766966 -0.01644646641299351 0.' -WAT2_005= '009061645978984397 0.005570842598401512 -0.02240395721775152 "' -XTALKCOR= '03-Oct-2000 21:33:16 No crosstalk correction' -TRIM = 'Oct 3 21:34 Trim is [1:2048,1:4096]' -FIXPIX = 'Oct 3 21:35 Pixel mask is mscdb$noao/CCDMosaThin1/bpm_im5' -OVERSCAN= 'Oct 3 21:34 Overscan is [2063:2112,1:4096], mean 993.5216' -ZEROCOR = 'Oct 3 21:35 Zero is Zeromed[im5]' -FLATCOR = 'Oct 3 21:35 Flat is FlatR.fits[im5], scale 5081.475' -CCDMEAN = 255.7904 -CCDMEANT= 655076137 -CCDPROC = 'Oct 3 21:35 CCD processing done' -CHIPNUM = 5 -FZEROPT = 22.040344 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -END diff --git a/ast/ast_tester/tsc.attr b/ast/ast_tester/tsc.attr deleted file mode 100644 index 496403c..0000000 --- a/ast/ast_tester/tsc.attr +++ /dev/null @@ -1 +0,0 @@ -border=1 diff --git a/ast/ast_tester/tsc.box b/ast/ast_tester/tsc.box deleted file mode 100644 index 45cc65e..0000000 --- a/ast/ast_tester/tsc.box +++ /dev/null @@ -1 +0,0 @@ -1 1 1600 1600 diff --git a/ast/ast_tester/tsc.head b/ast/ast_tester/tsc.head deleted file mode 100644 index e41aefb..0000000 --- a/ast/ast_tester/tsc.head +++ /dev/null @@ -1,116 +0,0 @@ -SIMPLE = T -BITPIX = -32 / IEEE (big-endian) 32-bit floating point data -NAXIS = 2 -NAXIS1 = 1600 -NAXIS2 = 1600 -BUNIT = 'JY/BEAM ' -CTYPE1 = 'RA---TSC' -CRPIX1 = 1000 -CDELT1 = -3.666666666667E-01 -CRVAL1 = 0.000000000000E+00 -CTYPE2 = 'DEC--TSC' -CRPIX2 = 800 -CDELT2 = 3.666666666667E-01 -CRVAL2 = -9.000000000000E+01 -LONPOLE = 1.800000000000E+02 / Native longitude of celestial pole -LATPOLE = 0.000000000000E+00 / Native latitude of celestial pole -EQUINOX = 2.000000000000E+03 / Equinox of equatorial coordinates -BMAJ = 2.399999936422E-01 / Beam major axis in degrees -BMIN = 2.399999936422E-01 / Beam minor axis in degrees -BPA = 0.000000000000E+00 / Beam position angle in degrees -RESTFREQ= 1.420405750000E+09 / Line rest frequency, Hz -HISTORY Parkes Multibeam continuum map -HISTORY Formed on Mon 2004/02/09 02:23:02 GMT by "pksgridzilla" which was -HISTORY compiled on Feb 9 2004 12:08:02 (local time) within -HISTORY AIPS++ version 19.405.00 dated . -HISTORY Polarization mode: A and B aggregated -HISTORY Gridding parameters: -HISTORY Method: WGTMED -HISTORY Clip fraction: 0.000 -HISTORY Tsys weighting: applied -HISTORY Beam weight order: 1 -HISTORY Beam FWHM: 14.4 arcmin -HISTORY Beam normalization: applied -HISTORY Smoothing kernel type: TOP-HAT -HISTORY Kernel FWHM: 12.0 arcmin -HISTORY Cutoff radius: 6.0 arcmin -HISTORY Beam RSS cutoff: 0.0 -HISTORY Input data sets: -HISTORY 97-10-09_0356_193558-66_206a.sdfits -HISTORY 97-10-12_0142_182123-66_193a.sdfits -HISTORY 97-10-12_0151_182707-66_194a.sdfits -HISTORY 97-10-12_0200_183252-66_195a.sdfits -HISTORY 97-11-07_0510_183836-66_196a.sdfits -HISTORY 97-11-07_0519_184420-66_197a.sdfits -HISTORY 97-11-07_0528_185004-66_198a.sdfits -HISTORY 97-11-07_0537_185548-66_199a.sdfits -HISTORY 97-11-07_0546_190132-66_200a.sdfits -HISTORY 97-11-07_0556_190717-66_201a.sdfits -HISTORY 97-11-07_0645_191301-66_202a.sdfits -HISTORY 97-11-07_0654_191845-66_203a.sdfits -HISTORY 97-11-07_0703_192429-66_204a.sdfits -HISTORY 97-11-07_0712_193013-66_205a.sdfits -HISTORY 97-11-07_0724_194142-66_207a.sdfits -HISTORY 97-11-18_0256_193815-66_206c.sdfits -HISTORY 97-11-18_0306_194359-66_207c.sdfits -HISTORY 97-11-19_0447_182341-66_193c.sdfits -HISTORY 97-11-19_0456_182925-66_194c.sdfits -HISTORY 97-11-19_0507_190350-66_200c.sdfits -HISTORY 97-11-19_0516_190934-66_201c.sdfits -HISTORY 97-11-19_0525_191519-66_202c.sdfits -HISTORY 97-11-19_0534_192103-66_203c.sdfits -HISTORY 97-11-19_0544_192647-66_204c.sdfits -HISTORY 97-11-19_0553_193231-66_205c.sdfits -HISTORY 97-11-19_0602_183509-66_195c.sdfits -HISTORY 97-11-19_0612_184053-66_196c.sdfits -HISTORY 97-11-19_0622_184638-66_197c.sdfits -HISTORY 97-11-19_0631_185222-66_198c.sdfits -HISTORY 97-11-19_0640_185806-66_199c.sdfits -HISTORY 98-03-24_2107_193706-66_206b.sdfits -HISTORY 98-03-24_2116_194251-66_207b.sdfits -HISTORY 98-03-25_2020_190826-66_201b.sdfits -HISTORY 98-03-25_2029_191410-66_202b.sdfits -HISTORY 98-03-25_2038_191954-66_203b.sdfits -HISTORY 98-03-25_2047_192538-66_204b.sdfits -HISTORY 98-03-25_2056_193122-66_205b.sdfits -HISTORY 98-03-26_2048_190459-66_200d.sdfits -HISTORY 98-03-27_2034_191627-66_202d.sdfits -HISTORY 98-03-27_2043_192212-66_203d.sdfits -HISTORY 98-03-27_2052_192756-66_204d.sdfits -HISTORY 98-03-27_2102_193340-66_205d.sdfits -HISTORY 98-03-27_2111_193924-66_206d.sdfits -HISTORY 98-03-27_2120_194508-66_207d.sdfits -HISTORY 98-03-27_2130_191043-66_201d.sdfits -HISTORY 98-05-10_2123_182232-66_193b.sdfits -HISTORY 98-05-10_2133_182816-66_194b.sdfits -HISTORY 98-05-10_2142_183400-66_195b.sdfits -HISTORY 98-05-10_2151_183945-66_196b.sdfits -HISTORY 98-05-10_2200_184529-66_197b.sdfits -HISTORY 98-05-10_2209_185113-66_198b.sdfits -HISTORY 98-05-10_2219_185657-66_199b.sdfits -HISTORY 98-05-10_2228_190241-66_200b.sdfits -HISTORY 98-05-13_2132_182450-66_193d.sdfits -HISTORY 98-05-13_2151_183034-66_194d.sdfits -HISTORY 98-05-13_2200_183618-66_195d.sdfits -HISTORY 98-05-13_2210_184202-66_196d.sdfits -HISTORY 98-05-13_2219_184746-66_197d.sdfits -HISTORY 98-05-13_2228_185331-66_198d.sdfits -HISTORY 98-05-13_2237_185915-66_199d.sdfits -HISTORY 98-05-25_1711_182559-66_193e.sdfits -HISTORY 98-05-25_1720_183143-66_194e.sdfits -HISTORY 98-05-25_1729_183727-66_195e.sdfits -HISTORY 98-05-25_1738_184311-66_196e.sdfits -HISTORY 98-05-25_1747_184855-66_197e.sdfits -HISTORY 98-05-25_1756_185439-66_198e.sdfits -HISTORY 98-05-25_1806_190024-66_199e.sdfits -HISTORY 98-05-25_1815_190608-66_200e.sdfits -HISTORY 98-05-25_1824_191152-66_201e.sdfits -HISTORY 98-05-25_1833_191736-66_202e.sdfits -HISTORY 98-05-25_1842_192320-66_203e.sdfits -HISTORY 98-05-25_1851_192905-66_204e.sdfits -HISTORY 98-05-25_1901_193449-66_205e.sdfits -HISTORY 98-05-25_1910_194033-66_206e.sdfits -HISTORY 98-05-25_1919_194617-66_207e.sdfits -HISTORY Original FITS filename "1904-66_TSC.continuum.fits". -HISTORY Noise level of continuum map: 61 mJy (RMS) -END diff --git a/ast/ast_tester/wcsconverter.f b/ast/ast_tester/wcsconverter.f deleted file mode 100644 index 9af2e30..0000000 --- a/ast/ast_tester/wcsconverter.f +++ /dev/null @@ -1,222 +0,0 @@ - PROGRAM WCSCONVERTER - -* Usage: -* WCSCONVERTER <in file> <encoding> <out file> <attrs> - -* Description: -* Reads a FrameSet from "in file" (as a FITS header if possible, -* otherwise as an AST dump of a FrameSet), and writes out the -* FrameSet to "out file" using the specified encoding. - -* Parameters: -* in file -* A text file containing fits headers or an AST dump of a FrameSet. -* encoding -* The name of a FITS encoding (e.g. "FITS-WCS", "NATIVE", etc), or -* "AST". -* out file -* The output file. Contains an AST dump of the FrameSet if -* "encoding" is "AST", or a set of FITS header cards otherwise. -* attrs -* A list of attribute settings to apply to the FitsChan before -* reading the input headers. - - - IMPLICIT NONE - INCLUDE 'AST_PAR' - EXTERNAL SOURCE, SINK - - INTEGER STATUS, FC, OBJECT, IARGC, CHAN, CHR_LEN, OC - CHARACTER FILE*80, OFILE*80, LINE*255, ENCODING*50 - CHARACTER ATTRS*200 - LOGICAL CDM - - STATUS = 0 -* -* Check command line arguments have been supplied. -* - IF( IARGC() .LT. 3 ) THEN - WRITE(*,*) 'Usage: wcsconverter <in file> <encoding> '// - : '<out file> <attrs>' - RETURN - END IF - -* -* Use object caching to minimise allocation of new memory -* - OC = AST_TUNE( 'ObjectCaching', 1, STATUS ) - IF( OC .NE. 0 ) THEN - WRITE(*,'(A,I6)') 'Default ObjectCaching VALUE is ',OC - END IF - - IF( AST_TUNE( 'ObjectCaching', AST__TUNULL, STATUS ) .NE. 1 ) THEN - WRITE(*,'(A,I6)') 'Set ObjectCaching VALUE is ',OC - END IF - -* -* Create a FitsChan to store the FITS headers. -* - FC = AST_FITSCHAN( AST_NULL, AST_NULL, ' ', STATUS ) - -* -* Apply any attribute settings to the FitsChan. -* - IF( IARGC() .EQ. 4 ) THEN - CALL GETARG( 4, ATTRS ) - CALL AST_SET( FC, ATTRS, STATUS ) - ELSE - ATTRS = ' ' - END IF - -* -* Open the input text file. -* - CALL GETARG( 1, FILE ) - OPEN( UNIT=10, FILE=FILE, STATUS='OLD' ) - -* -* Read each line out of the text file and store it in the FitsChan. -* - CALL ERR_MARK - DO WHILE( .TRUE. ) - READ( 10, '(A)', END = 10 ) LINE - CALL AST_PUTFITS( FC, LINE, 0, STATUS ) - END DO - - 10 CLOSE( 10 ) - -* -* Set the value of CDMatrix, unless it has already been set. -* - IF( .NOT. AST_TEST( FC, 'CDMATRIX', STATUS ) ) THEN - CDM = AST_GETL( FC, 'CDMATRIX', STATUS ) - CALL AST_SETL( FC, 'CDMATRIX', CDM, status ) - END IF - -* -* Attempt to read an Object form the FitsChan. -* - CALL AST_CLEAR( FC, 'CARD', STATUS ) - OBJECT = AST_READ( FC, STATUS ) - - IF( STATUS .NE. 0 ) CALL ERR_ANNUL( STATUS ) - CALL ERR_RLSE - -* If no object was read, attempt to read an object from the text file as -* an AST dump. - IF( OBJECT .EQ. AST__NULL ) THEN - CALL AST_ANNUL( FC, STATUS ) - OPEN( UNIT=10, FILE=FILE, STATUS='OLD' ) - CHAN = AST_CHANNEL( SOURCE, AST_NULL, ' ', STATUS ) - OBJECT = AST_READ( CHAN, STATUS ) - CALL AST_ANNUL( CHAN, STATUS ) - CLOSE( 10 ) - END IF - -* -* Abort if no object was read. -* - IF( OBJECT .EQ. AST__NULL ) THEN - WRITE(*,*) 'wcsconverter: no WCS could be read from ', - : file( : chr_len( file ) ) - RETURN - - -* -* Otherwise write out the object using the specified encoding. -* - ELSE - CALL GETARG( 3, OFILE ) - CALL DELETEFILE( OFILE ) - - CALL GETARG( 2, ENCODING ) - IF( ENCODING .EQ. 'AST' .OR. ENCODING .EQ. 'ast' ) THEN - OPEN( UNIT=10, FILE=OFILE, STATUS='NEW' ) - CHAN = AST_CHANNEL( AST_NULL, SINK, ' ', STATUS ) - IF( AST_WRITE( CHAN, OBJECT, STATUS ) .NE. 1 ) THEN - WRITE(*,*) 'wcsconverter: WCS read from ', - : file( : chr_len( file ) ),' could not be '// - : 'converted to ', - : encoding( : chr_len(encoding ) ),' format.' - END IF - CALL AST_ANNUL( CHAN, STATUS ) - CLOSE( 10 ) - - ELSE - OPEN( UNIT=10, FILE=OFILE, STATUS='NEW' ) - IF( FC .EQ. AST__NULL ) THEN - FC = AST_FITSCHAN( AST_NULL, AST_NULL, ATTRS, STATUS ) - END IF - CALL AST_SETC( FC, 'ENCODING', ENCODING, STATUS ) - CALL AST_CLEAR( FC, 'CARD', STATUS ) - - IF( AST_WRITE( FC, OBJECT, STATUS ) .NE. 1 ) THEN - WRITE(*,*) 'wcsconverter: WCS read from ', - : file( : chr_len( file ) ),' could not be '// - : 'converted to ', - : encoding( : chr_len(encoding ) ),' format.' - ELSE - CALL AST_CLEAR( FC, 'CARD', STATUS ) - DO WHILE( AST_FINDFITS( FC, '%f', LINE, .TRUE., - : STATUS ) ) - WRITE(10,'(A)') LINE( : 80 ) - END DO - END IF - CLOSE( 10 ) - - CALL AST_ANNUL( FC, STATUS ) - - - END IF - CALL AST_ANNUL( OBJECT, STATUS ) - END IF - - - END - - -* -* Delete a file if it exists. -* - SUBROUTINE DELETEFILE( FILNAM ) - IMPLICIT NONE - - CHARACTER FILNAM*(*) - LOGICAL EXISTS - - INQUIRE ( FILE = FILNAM, - : EXIST = EXISTS ) - - IF( EXISTS ) THEN - OPEN ( UNIT=10, FILE=FILNAM, STATUS='OLD' ) - CLOSE ( 10, STATUS='DELETE' ) - END IF - - END - - -* -* SOURCE FUNCTION FOR AST_CHANNEL. -* - SUBROUTINE SOURCE( STATUS ) - IMPLICIT NONE - INTEGER STATUS - CHARACTER BUFFER*200 - READ( 10, '(A)', END=99 ) BUFFER - CALL AST_PUTLINE( BUFFER, LEN( BUFFER ), STATUS ) - RETURN - 99 CALL AST_PUTLINE( BUFFER, -1, STATUS ) - END - -* -* SINK FUNCTION FOR AST_CHANNEL. -* - SUBROUTINE SINK( STATUS ) - IMPLICIT NONE - INTEGER STATUS, L - CHARACTER BUFFER*200 - - CALL AST_GETLINE( BUFFER, L, STATUS ) - IF( L .GT. 0 ) WRITE( 10, '(A)' ) BUFFER( : L ) - - END diff --git a/ast/ast_tester/zpn.attr b/ast/ast_tester/zpn.attr deleted file mode 100644 index d74badf..0000000 --- a/ast/ast_tester/zpn.attr +++ /dev/null @@ -1 +0,0 @@ -tol=0.0001 diff --git a/ast/ast_tester/zpn.box b/ast/ast_tester/zpn.box deleted file mode 100644 index ee14a3a..0000000 --- a/ast/ast_tester/zpn.box +++ /dev/null @@ -1 +0,0 @@ -1 1 200.0 200.0 diff --git a/ast/ast_tester/zpn.head b/ast/ast_tester/zpn.head deleted file mode 100644 index a5e90af..0000000 --- a/ast/ast_tester/zpn.head +++ /dev/null @@ -1,136 +0,0 @@ -SIMPLE = T -BITPIX = -32 / IEEE (big-endian) 32-bit floating point data -NAXIS = 2 -NAXIS1 = 200 -NAXIS2 = 200 -BUNIT = 'JY/BEAM ' -CTYPE1 = 'RA---ZPN' -CRPIX1 = 100 -CDELT1 = -6.666666666667E-02 -CRVAL1 = 0.000000000000E+00 -CTYPE2 = 'DEC--ZPN' -CRPIX2 = 100 -CDELT2 = 6.666666666667E-02 -CRVAL2 = -9.000000000000E+01 -LONPOLE = 1.800000000000E+02 / Native longitude of celestial pole -LATPOLE = -9.000000000000E+01 / Native latitude of celestial pole -PV2_0 = 10.000000000000E-02 / Projection parameter 0 -PV2_1 = 9.750000000000E-01 / Projection parameter 1 -COMMENT PV2_2 = -8.070000000000E-01 / Projection parameter 2 -COMMENT PV2_3 = 3.370000000000E-01 / Projection parameter 3 -COMMENT PV2_4 = -6.500000000000E-02 / Projection parameter 4 -COMMENT PV2_5 = 1.000000000000E-02 / Projection parameter 5 -COMMENT PV2_6 = 3.000000000000E-03 / Projection parameter 6 -COMMENT PV2_7 = -1.000000000000E-03 / Projection parameter 7 -COMMENT PV2_8 = 0.000000000000E+00 / Projection parameter 8 -COMMENT PV2_9 = 0.000000000000E+00 / Projection parameter 9 -COMMENT PV2_10 = 0.000000000000E+00 / Projection parameter 10 -COMMENT PV2_11 = 0.000000000000E+00 / Projection parameter 11 -COMMENT PV2_12 = 0.000000000000E+00 / Projection parameter 12 -COMMENT PV2_13 = 0.000000000000E+00 / Projection parameter 13 -COMMENT PV2_14 = 0.000000000000E+00 / Projection parameter 14 -COMMENT PV2_15 = 0.000000000000E+00 / Projection parameter 15 -COMMENT PV2_16 = 0.000000000000E+00 / Projection parameter 16 -COMMENT PV2_17 = 0.000000000000E+00 / Projection parameter 17 -COMMENT PV2_18 = 0.000000000000E+00 / Projection parameter 18 -COMMENT PV2_19 = 0.000000000000E+00 / Projection parameter 19 -EQUINOX = 2.000000000000E+03 / Equinox of equatorial coordinates -BMAJ = 2.399999936422E-01 / Beam major axis in degrees -BMIN = 2.399999936422E-01 / Beam minor axis in degrees -BPA = 0.000000000000E+00 / Beam position angle in degrees -RESTFREQ= 1.420405750000E+09 / Line rest frequency, Hz -HISTORY Parkes Multibeam continuum map -HISTORY Formed on Mon 2004/02/09 01:38:20 GMT by "pksgridzilla" which was -HISTORY compiled on Feb 9 2004 12:08:02 (local time) within -HISTORY AIPS++ version 19.405.00 dated . -HISTORY Polarization mode: A and B aggregated -HISTORY Gridding parameters: -HISTORY Method: WGTMED -HISTORY Clip fraction: 0.000 -HISTORY Tsys weighting: applied -HISTORY Beam weight order: 1 -HISTORY Beam FWHM: 14.4 arcmin -HISTORY Beam normalization: applied -HISTORY Smoothing kernel type: TOP-HAT -HISTORY Kernel FWHM: 12.0 arcmin -HISTORY Cutoff radius: 6.0 arcmin -HISTORY Beam RSS cutoff: 0.0 -HISTORY Input data sets: -HISTORY 97-10-09_0356_193558-66_206a.sdfits -HISTORY 97-10-12_0142_182123-66_193a.sdfits -HISTORY 97-10-12_0151_182707-66_194a.sdfits -HISTORY 97-10-12_0200_183252-66_195a.sdfits -HISTORY 97-11-07_0510_183836-66_196a.sdfits -HISTORY 97-11-07_0519_184420-66_197a.sdfits -HISTORY 97-11-07_0528_185004-66_198a.sdfits -HISTORY 97-11-07_0537_185548-66_199a.sdfits -HISTORY 97-11-07_0546_190132-66_200a.sdfits -HISTORY 97-11-07_0556_190717-66_201a.sdfits -HISTORY 97-11-07_0645_191301-66_202a.sdfits -HISTORY 97-11-07_0654_191845-66_203a.sdfits -HISTORY 97-11-07_0703_192429-66_204a.sdfits -HISTORY 97-11-07_0712_193013-66_205a.sdfits -HISTORY 97-11-07_0724_194142-66_207a.sdfits -HISTORY 97-11-18_0256_193815-66_206c.sdfits -HISTORY 97-11-18_0306_194359-66_207c.sdfits -HISTORY 97-11-19_0447_182341-66_193c.sdfits -HISTORY 97-11-19_0456_182925-66_194c.sdfits -HISTORY 97-11-19_0507_190350-66_200c.sdfits -HISTORY 97-11-19_0516_190934-66_201c.sdfits -HISTORY 97-11-19_0525_191519-66_202c.sdfits -HISTORY 97-11-19_0534_192103-66_203c.sdfits -HISTORY 97-11-19_0544_192647-66_204c.sdfits -HISTORY 97-11-19_0553_193231-66_205c.sdfits -HISTORY 97-11-19_0602_183509-66_195c.sdfits -HISTORY 97-11-19_0612_184053-66_196c.sdfits -HISTORY 97-11-19_0622_184638-66_197c.sdfits -HISTORY 97-11-19_0631_185222-66_198c.sdfits -HISTORY 97-11-19_0640_185806-66_199c.sdfits -HISTORY 98-03-24_2107_193706-66_206b.sdfits -HISTORY 98-03-24_2116_194251-66_207b.sdfits -HISTORY 98-03-25_2020_190826-66_201b.sdfits -HISTORY 98-03-25_2029_191410-66_202b.sdfits -HISTORY 98-03-25_2038_191954-66_203b.sdfits -HISTORY 98-03-25_2047_192538-66_204b.sdfits -HISTORY 98-03-25_2056_193122-66_205b.sdfits -HISTORY 98-03-26_2048_190459-66_200d.sdfits -HISTORY 98-03-27_2034_191627-66_202d.sdfits -HISTORY 98-03-27_2043_192212-66_203d.sdfits -HISTORY 98-03-27_2052_192756-66_204d.sdfits -HISTORY 98-03-27_2102_193340-66_205d.sdfits -HISTORY 98-03-27_2111_193924-66_206d.sdfits -HISTORY 98-03-27_2120_194508-66_207d.sdfits -HISTORY 98-03-27_2130_191043-66_201d.sdfits -HISTORY 98-05-10_2123_182232-66_193b.sdfits -HISTORY 98-05-10_2133_182816-66_194b.sdfits -HISTORY 98-05-10_2142_183400-66_195b.sdfits -HISTORY 98-05-10_2151_183945-66_196b.sdfits -HISTORY 98-05-10_2200_184529-66_197b.sdfits -HISTORY 98-05-10_2209_185113-66_198b.sdfits -HISTORY 98-05-10_2219_185657-66_199b.sdfits -HISTORY 98-05-10_2228_190241-66_200b.sdfits -HISTORY 98-05-13_2132_182450-66_193d.sdfits -HISTORY 98-05-13_2151_183034-66_194d.sdfits -HISTORY 98-05-13_2200_183618-66_195d.sdfits -HISTORY 98-05-13_2210_184202-66_196d.sdfits -HISTORY 98-05-13_2219_184746-66_197d.sdfits -HISTORY 98-05-13_2228_185331-66_198d.sdfits -HISTORY 98-05-13_2237_185915-66_199d.sdfits -HISTORY 98-05-25_1711_182559-66_193e.sdfits -HISTORY 98-05-25_1720_183143-66_194e.sdfits -HISTORY 98-05-25_1729_183727-66_195e.sdfits -HISTORY 98-05-25_1738_184311-66_196e.sdfits -HISTORY 98-05-25_1747_184855-66_197e.sdfits -HISTORY 98-05-25_1756_185439-66_198e.sdfits -HISTORY 98-05-25_1806_190024-66_199e.sdfits -HISTORY 98-05-25_1815_190608-66_200e.sdfits -HISTORY 98-05-25_1824_191152-66_201e.sdfits -HISTORY 98-05-25_1833_191736-66_202e.sdfits -HISTORY 98-05-25_1842_192320-66_203e.sdfits -HISTORY 98-05-25_1851_192905-66_204e.sdfits -HISTORY 98-05-25_1901_193449-66_205e.sdfits -HISTORY 98-05-25_1910_194033-66_206e.sdfits -HISTORY 98-05-25_1919_194617-66_207e.sdfits -HISTORY Original FITS filename "1904-66_ZPN.continuum.fits". -HISTORY Noise level of continuum map: 61 mJy (RMS) -END diff --git a/ast/ast_tester/zpx.attr b/ast/ast_tester/zpx.attr deleted file mode 100644 index f073d5c..0000000 --- a/ast/ast_tester/zpx.attr +++ /dev/null @@ -1 +0,0 @@ -Grid=1,style(grid1)=2,size(textlab2)=2 diff --git a/ast/ast_tester/zpx.head b/ast/ast_tester/zpx.head deleted file mode 100644 index a69353a..0000000 --- a/ast/ast_tester/zpx.head +++ /dev/null @@ -1,153 +0,0 @@ -SIMPLE = T / Fits standard -BITPIX = 16 / Bits per pixel -NAXIS = 2 / Number of axes -NAXIS1 = 2048 / Axis length -NAXIS2 = 4100 / Axis length -BSCALE = 1.145669E0 / REAL = TAPE*BSCALE + BZERO -BZERO = 3.793600E4 / -EXTEND = F / File may contain extensions -IRAF-TLM= '14:31:18 (18/05/1999)' / Time of last modification -OBJECT = 'VIRGO311' / -ORIGIN = 'KPNO-IRAF' / -DATE = '19/05/99' / -IRAFNAME= 'iraf3432b' / NAME OF IRAF IMAGE FILE -IRAF-MAX= 7.546810E4 / DATA MAX -IRAF-MIN= 4.038996E2 / DATA MIN -IRAF-BPX= 64 / DATA BITS/PIXEL -IRAFTYPE= 'DOUBLE ' / PIXEL TYPE -ORIGIN = 'NOAO-IRAF FITS Image Kernel Aug 1 1997' / FITS file originator -DATE = '18/05/99' / Date FITS file was generated -RUN = 158500 / Run number -SYSVER = 's7-1 ' / Version of observing system -OBSERVAT= 'LAPALMA ' / Name of observatory (IRAF style) -OBSTYPE = 'TARGET ' / Type of observation, eg. ARC -IMAGETYP= 'TARGET ' / Type of observation, eg. ARC -CTYPE1 = 'RA---ZPX' / Type of coordinate on axis 1 -CTYPE2 = 'DEC--ZPX' / Type of coordinate on axis 2 -CRPIX1 = -319.077517318151 / Reference pixel on axis 1 -CRPIX2 = 3035.64982635572 / Reference pixel on axis 2 -CRVAL1 = 187.8708 / Value at ref. pixel on axis 1 -CRVAL2 = 12.40001 / Value at ref. pixel on axis 2 -CD1_1 = -1.5845078730445E-6 / Transformation matrix -CD1_2 = -9.2521190078722E-5 / Transformation matrix -CD2_1 = -9.2538856101295E-5 / Transformation matrix -CD2_2 = 1.63254208024377E-6 / Transformation matrix -LATITUDE= 28.762000 / Telescope latitude (degrees), +28:45:43.2 -LONGITUD= 17.877639 / Telescope longitude (degrees), +17:52:39.5 -HEIGHT = 2348 / [m] Height above sea level. -SLATEL = 'LPO2.5 ' / Telescope name known to SLALIB -TELESCOP= 'INT ' / 2.5m Isaac Newton Telescope -TELSTAT = 'GUIDING ' / Telescope status: TRACKING or GUIDING normally. -RA = ' 12:31:28.998' / RA (187.8708261822271200 degrees) -DEC = '+12:24:00.04' / DEC ( 12.4000109941873690 degrees) -EQUINOX = '2000. ' / Equinox of coordinates -RADECSYS= 'FK5 ' / mean place new (after the 1976 IAU) system -XAPNOM = 0.0000000000 / nominal aperture in x (0.00 arcsec) -YAPNOM = 0.0000000000 / nominal aperture in y (0.00 arcsec) -XAPOFF = 0.0000000000 / total aperture offset in x (0.00 arcsec) -YAPOFF = 0.0000000000 / total aperture offset in y (0.00 arcsec) -MJD-OBS = 51277.9941545 / Modified Julian Date of midtime of observation -JD = 2451278.4941545 / Julian Date of midtime of observation -STSTART = ' 11:44:54.8' / Local sidereal time at start of observation -ST = ' 11:44:54.8' / Local sidereal time at start of observation -AZIMUTH = 148.155505 / Mean azimuth of observation (degrees) -ZD = 18.907242 / Mean zenith-distance of observation (degrees) -FSTATION= 'PRIME ' / Focal station of observation -PLATESCA= 6.856013 / [d/m] Platescale ( 24.68arcsec/mm) -TELFOCUS= 0.045998 / Telescope focus (metres) -ROTTRACK= T / Rotator always tracks sky on equatorial mount -ROTSKYPA= 179.899970 / Turntable position angle (degrees) -PARANGLE= 331.834373 / Parallactic angle at observation midpoint -VIGNETTE= F / Can we see out? -DOMEAZ = 147.089879 / Mean dome azimuth during observation -AIRMASS = 1.056698 / Effective mean airmass -TEMPTUBE= 9.005279 / Truss Temperature (degrees Celsius) -CAT-NAME= 'VIRGO311' / Target input-catalogue name -CAT-RA = ' 12:31:29.000' / Target Right Ascension -CAT-DEC = '+12:24:00.00' / Target Declination -CAT-EQUI= 'J2000.00' / Equinox of target coordinates -CAT-EPOC= 2000.00 / Target epoch of proper motions -PM-RA = 0.000000 / Target proper-motion RA (sec time/year) -PM-DEC = 0.000000 / Target proper-motion (sec arc/year) -PARALLAX= 0.000000 / Target Parallax (arcsec) -RADVEL = 0.000000 / Target radial velocity (km/s) -RATRACK = 0.000000 / Differential-tracking rate RA (arcsec/sec) -DECTRACK= 0.000000 / Differential-tracking rate Dec (arcsec/sec) -INSTRUME= 'WFC ' / INT wide-field camera is in use. -WFFPOS = 1 / Position-number of deployed filter -WFFBAND = 'B ' / Waveband of filter -WFFPSYS = 'Kitt Peak ' / Photometric system of filter -WFFID = '210 ' / Unique identifier of filter -SECPPIX = 0.333 / Arcseconds per pixel -UTSTART = '23:45:20.1 ' / UTC of start of observation -ELAPSED = 749.340 / Length of observation including pauses -DARKTIME= 749.340 / Length of observation including pauses -EXPOSED = 749.340 / Length of observation excluding pauses -EXPTIME = 749.340 / Length of observation excluding pauses -DATE-OBS= '1999-04-09 ' / UTC date start of observation -DETECTOR= 'MOS1 ' / Name of the detector -PREFLASH= 0.000 / Length of Preflash in seconds -BUNIT = 'ADU ' / Unit of the array of image data -GAIN = 2.900 / Electrons per ADU -READNOIS= 12.000 / Readout noise in electrons per pix -CCDSPEED= 'TURBO ' / Readout speed of the CCD -CCDNCHIP= 1 / Number of CCDs in this head -CCDCHIP = 1 / Head number of this CCD -CCDTYPE = 'EEV42 ' / Type of CCD used in this detector -CCDXSIZE= 2148 / X Size in pixels of digitised frame -CCDYSIZE= 4128 / Y Size in pixels of digitised frame -CCDXIMSI= 2048 / X Size of useful imaging area -CCDYIMSI= 4100 / Y Size of useful imaging area -CCDXIMST= 50 / X Start pixel of useful imaging area -CCDYIMST= 0 / Y Start pixel of useful imaging area -CCDWMODE= F / True is windows are enabled -CCDWXO1 = 0 / Offset of window 1 in X -CCDWYO1 = 0 / Offset of window 1 in Y -CCDWXS1 = 0 / Size of window 1 in X -CCDWYS1 = 0 / Size of window 1 in Y -CCDWXO2 = 0 / Offset of window 2 in X -CCDWYO2 = 0 / Offset of window 2 in Y -CCDWXS2 = 0 / Size of window 2 in X -CCDWYS2 = 0 / Size of window 2 in Y -CCDWXO3 = 0 / Offset of window 3 in X -CCDWYO3 = 0 / Offset of window 3 in Y -CCDWXS3 = 0 / Size of window 3 in X -CCDWYS3 = 0 / Size of window 3 in Y -CCDWXO4 = 0 / Offset of window 4 in X -CCDWYO4 = 0 / Offset of window 4 in Y -CCDWXS4 = 0 / Size of window 4 in X -CCDWYS4 = 0 / Size of window 4 in Y -CCDXPIXE= 1.350000e-05 / Size in meters of the pixels, in X -CCDYPIXE= 1.350000e-05 / Size in meters of the pixels, in Y -CCDXBIN = 1 / Binning factor, in X -CCDYBIN = 1 / Binning factor, in Y -CCDSTEMP= 153 / Required temperature of CCD, in Kevlin -CCDATEMP= 154 / Actual temperature of CCD, in Kevlin -CHIPNAME= 'A5506-4 ' / Name of CCD chip -DASCHAN = 1 / DAS channel -WINSEC1 = '[0:0,0:0] ' / Readout window 1 -WINSEC2 = '[0:0,0:0] ' / Readout window 2 -WINSEC3 = '[0:0,0:0] ' / Readout window 3 -WINSEC4 = '[0:0,0:0] ' / Readout window 4 -HISTORY This is the end of the header written by the ING observing-system. -WAT0_001= 'system=image' -WAT1_001= 'wtype=zpx axtype=ra projp1=6.0 projp2=100.0 projp3=2059.8' -WAT2_001= 'wtype=zpx axtype=dec projp1=1.0 projp3=-1000.8' -WFCWCS = 'Done ' -IMDTOI = 'Done ' -WCSDIM = 2 -LTM1_1 = 1. -LTM2_2 = 1. -TRIM = 'May 18 13:12 Trim data section is [51:2098,1:4100]' -BP-FLAG = 'May 18 13:12 Bad pixel file is /home/jrl/wfcred/stds/A5506-4.bad' -BT-FLAG = 'May 18 13:12 Overscan section is [1:50,1:4128] with mean=1501.636' -BI-FLAG = 'May 18 13:12 Zero level correction image is /data/cass03a/was/mframe' -FF-FLAG = 'May 18 13:12 Flat field image is /data/cass03c/was/mframes/B_9269342' -ILLUMCOR= 'May 18 13:12 Illumination image is tmpill.pl with scale=0.9314932' -CCDSEC = '[51:2098,1:4100]' -LTV1 = -50. -CCDPROC = 'May 18 13:12 CCD processing done' -XIRMS = 0.3418021 -ETARMS = 0.2019652 -WFCREDVR= 'v0.1 ' -END |