| Version 1.4.9-26 | ISIS Frequently Asked Questions | |||||||||||||||||
|
Q1.
Why are the text annotations and axis labels missing from my isis plots?
Q2. I'm seeing Internal Error: insert(): Duplicate key found! (Mac/Intel). Q3. ISIS compilation failed with undefined reference errors.
A1.
Are you using isis in a shell environment that has been
configured for HEAsoft? A recent [2006
Aug] release of HEAsoft includes a version of PGPLOT that
has been modified in a way that makes it incompatible with the
standard version of PGPLOT. Specifically,
the HEAsoft-modified version of PGPLOT uses an ASCII-format font
file (grfont.dat), instead of the native binary file expected
by the standard PGPLOT library. Because the HEAsoft setup
script sets the PGPLOT environment variables
PGPLOT_DIR and PGPLOT_FONT,
all non-HEAsoft PGPLOT programs used in that shell
environment will be unable to display symbols from the font
file until those environment variables are either un-set or
reset to point to a standard installation of PGPLOT.
A2. For example
Welcome to ISIS Version 1.4.8
Copyright (C) 1998-2007 Massachusetts Institute of Technology
isis> require("xspec");
Internal Error: insert(): Duplicate key found!
This error message originates in libf95.a which is part of the g95 Fortran compiler distribution. One solution is to use a different Fortran compiler to compile pgplot and isis. Two free alternatives are g77 and gfortran. g77 has been used successfully. Note that g95 is listed as a requirement for building xspec on this platform. A g77-built isis appears to be compatible with a g95 build of the xspec libraries.
You might also try using the A3. For example:
gfortran -g -O2 -o /tmp/isis/src/objs/isis -Wl,-export-dynamic ... /usr/local/lib/libpgplot.so: undefined reference to `e_wsfe' /usr/local/lib/libpgplot.so: undefined reference to `s_rsfe' /usr/local/lib/libpgplot.so: undefined reference to `s_cmp' /usr/local/lib/libpgplot.so: undefined reference to `do_uio' /usr/local/lib/libpgplot.so: undefined reference to `e_rsfe' /usr/local/lib/libpgplot.so: undefined reference to `f_inqu' /usr/local/lib/libpgplot.so: undefined reference to `e_rsue' /usr/local/lib/libpgplot.so: undefined reference to `i_indx' /usr/local/lib/libpgplot.so: undefined reference to `do_fio' /usr/local/lib/libpgplot.so: undefined reference to `e_wsfi' /usr/local/lib/libpgplot.so: undefined reference to `s_cat' /usr/local/lib/libpgplot.so: undefined reference to `s_stop' /usr/local/lib/libpgplot.so: undefined reference to `s_wsfi' /usr/local/lib/libpgplot.so: undefined reference to `G77_getenv_0' /usr/local/lib/libpgplot.so: undefined reference to `s_rsue' /usr/local/lib/libpgplot.so: undefined reference to `f_clos' /usr/local/lib/libpgplot.so: undefined reference to `f_open' /usr/local/lib/libpgplot.so: undefined reference to `s_wsfe' /usr/local/lib/libpgplot.so: undefined reference to `s_copy' collect2: ld returned 1 exit status The problem here is an incompatibility between two different Fortran compilers; libpgplot.so was compiled with g77 (note the undefined reference to G77_setenv_0) but you're using gfortran to build isis. Although it's possible to use gfortran to build code that is back-compatible with g77 (read about gfortran's -ff2c compiler option and the associated warnings), the most reliable approach is to use a matching set of compilers to build all the components that will be linked together. The compilers supported by HEAsoft should also work for isis. In this case, consider either using g77 to build isis, or re-building pgplot with gfortran. |
[ Made with JED | Best Viewed with a Browser | Valid HTML 4.01 | Valid CSS ]
This page is maintained by John C. Houck. Last updated: Aug 2, 2008