Jump to Content
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.

Q1. Why are the text annotations and axis labels missing from my isis plots?

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.
Suggested workaround: Try un-setting the PGPLOT environment variables (PGPLOT_DIR and PGPLOT_FONT) before starting isis. You may also have to un-set LD_LIBRARY_PATH.
Update[2006 Sep] The PGPLOT modification was removed from HEAsoft and a patch is available on the HEAsoft bugs page.

Q2. I'm seeing Internal Error: insert(): Duplicate key found! (Mac/Intel).

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 --with-xspec-static option when running the isis configure script. This option ensures that the xspec module will be statically linked to the isis executable.

Q3. ISIS compilation failed with undefined reference errors.

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