Install of SPC
Instructions for Mac OS
SPC is designed to run in /usr/local/bin/
SPC requires gfortran and spicelib
XCode - Apple's main compiler for OS X. It has many libraries you need. - https://developer.apple.com/xcode/
spicelib - This contains routines created by JPL's NAIF division which does an excellent job of handling flight kernels (known as SPICE). It can be found at http://naif.jpl.nasa.gov/naif/toolkit_FORTRAN.html
- toolkit should be placed in /usr/local/src
- The actual spicelib.a file should be placed in /usr/local/lib/spicelib.a
Once you've set up your system to compile with gfortran, you need to complete three steps.
- Create object files (whatever.o) for every component in the directory "COMMON". You do this by running the script AAmake _ _ COMMON_objects.txt. This was built for csh, so I find that it works well to do:
- Build the COMMON.a library. This combines all of the object files into a single library that is used for most SPC processing.
- Run the script that compiles all of the SPC binaries. It is likely to be warnings, but shouldn't have any errors.
mkdir -p BIN csh AACOMPILE.TXT
To complete the installation, you simply copy the items within the <srcpath>/BIN directory.
cp BIN/* /usr/local/bin/
- Once it is installed
- Run LITHOS -v to ensure the program runs. You should be able to run that program from any directory (and not just /usr/local/bin)
Issue with using a PC and VM
If you get an error something like:
LITHOS.f:(.text+0x13568): relocation truncated to fit: R_X86_64_32S against symbol `array_' defined in COMMON section in /tmp/ccvxIrot.o
Then it may be that your system (usually a PC) is not running the system fully as 64bit architecture, but only using 32bits for some memory allocations. SPC needs to use more than 2GB, so you must have more than 32bit addressing.
You may need to add the following: -mcmodel=medium
Thus, the gfortran alias would be
alias ftn '/usr/local/bin/gfortran -O2 -mcmodel=medium -fbounds-check'