header graphic
************************

Two-integral Jeans Modeling Software

************************




Authors
-------
 
* Roeland P. van der Marel, 
    1989-1992 : program development
    1997      : minor modifications and installation on Sun Ultra 170
    address   : Space Telescope Science Institute
                Research Programs Office (RPO)
                3700 San Martin Drive
                Baltimore, MD 21218
                Tel : (+1) 410 338 4931
                Fax : (+1) 410 338 4596
                e-mail   : marel@stsci.edu
                homepage : http://sol.stsci.edu/~marel/

* James J. Binney
    1985-1989 : algorithm development and initial fortran implementation
    address   : James J. Binney
                Oxford University
                Department of Theoretical Physics 
                Keble Road
                Oxford OX1 3NP
                Great-Britain
                Tel : (+44) 1865 273979
                Fax : (+44) 1865 273947
                e-mail   : binney@thphys.ox.ac.uk


Collaborators
-------------

Development of these programs took place in collaborative efforts with
Roger Davies, Garth Illingworth and Pierantonio Cinzano.


Summary of the method
---------------------

The observed kinematics of an (early-type) galaxies are modeled
starting from observed surface photometry, using the assumptions of:

   - axisymmetry
   - constant mass-to-light ratio
   - a distribution function of the form f(E,Lz)

Both oblate and prolate models can be constructed. For oblate models
it is possible to assume that there is an infinitesimally thin disk
in the equatorial plane. 

   
References
----------

The method and various applications are discussed at length in the following 
papers:
 
   - Binney, Davies & Illingworth 1990, ApJ, 361, 78 
   - van der Marel, Binney & Davies 1990, MNRAS, 245, 582
   - van der Marel 1991, MNRAS, 253, 710 
   - Cinzano & van der Marel 1994, MNRAS, 270, 325-340

The latter three can be retrieved from the homepage of R. van der Marel.


Acknowledgments
---------------
 
If you have found this software useful for your research, we would
appreciate an acknowledgment to `use of the Two-integral Jeans Modeling 
Software developed by R.P. van der Marel and J.J. Binney'.


Bug Reports
-----------
 
Please send bug reports and important comments or questions to 
marel@stsci.edu
 
 
Caveats
-------
 
This software comes without guarantee and on an `as is' basis. It is
not being actively maintained or upgraded.

All original testing of the code was done on a UNIX Sparc 2
workstation with the SunOS operating system in the period
1989-1992. In 1997 I made several minor modifications in the code to
make it run properly on a Sun Ultra 170 workstation with the solaris
operating system, and to correct some minor bugs that had been
reported to me by various people. However, no further detailed testing
of the revised code was performed.

It is not guaranteed that the software will work without problems on
other platforms, with different operating systems and different
compilers. However, the code is close to standard fortran, so if any,
only minor revisions will be necessary.

The dynamical modeling programs require no external software. However,
to make plots of the results with the program dynprog/aftmon, you will
need to link this program to the standard MONGO (copyright: John
L. Tonry) library. To use a different package, such as SuperMongo, you
will need to rewrite the program dynprog/aftmon (should not be a major
hassle).

I will consider all requests for use of this software. However, I do
not allow people who have received the software from me to distribute
it to third parties. Anyone who uses this software is encouraged to
send me an email with their address, so that I can send the reports of
bugs and revisions.
 
Dynamical modeling with the enclosed software can be tricky, and
non-transparent. An understanding of the underlying physics is
required. So please do not draw inferences from this software in a
quick-and-dirty manner. This will almost certainly lead to erroneous
results.


Directory structure
-------------------
 
The directory structure of the software is as follows:
  
  dynprog     : source of the main programs
  dynsub      : subroutines used by the main programs
  surfprog    : programs to prepare surface photometry data for input into the
                  models
  kinprog     : programs to prepare kinematical data for input into the
                  models
  lib         : object libraries
  bin         : executables of all the programs
  examples    : examples of the use of the programs
  README      : this file

 
Installation 
------------
 
To install the software, edit the file setup.com. All site dependent
environment variables should be made to point at the correct directories
and libraries. Then issue the UNIX command
 
   prompt> source install.com
 
This will construct all executables and put them in the directory bin.
 
Once the programs have been installed and the executables created, the
environment variables in setup.com are not needed anymore. However, they
are required every time any of the programs is recompiled. Users who
will be modifying the programs regularly may wish to add the command
   source ....path..../setup.com
to their .cshrc file (where ....path.... should be the path to the directory
that contains the file setup.com). 
 

Main Programs
-------------
 
The main programs are contained in the directory dynprog/. The three
programs dynmain1, dynmain2 and dynmain3 do the actual modeling. The
program aftmon serves to plot the results. The directory dynsub/
contains subroutines that are linked to the main programs.

Here is a short description of the programs, and of the subroutines that 
they use.


dynmain1.f :  
____________

  This program reads surface photometry data, and deprojects it using
  Lucy's algorithm. The program requires a file grid.dat to set up the grid.
  An example file grid.dat is contained in the directory examples/.

    dynsub1a.f : subroutines to read input surface photometry and
                 interpolate onto grid.

    dynsub1b.f : subroutines to fit a Hubble, Jaffe or Hernquist model
                 to the surface photometry on the grid, used as an initial
                 guess for the Lucy iteration.

    dynsub1c.f : Subroutines to perform the Lucy iteration.


dynmain2.f  :
_____________

  This program reads a three dimensional axisymmetric luminosity density,
  evaluates the potential using a multipole expansion, and solves the Jeans
  equations to find sig^2 and v_phi^2 for every point in the meridional plane.
  It is assumed that f=f(E,L_z) and that the galaxy has constant mass-to-light
  ratio. Possibility to add to the potential a contribution of a disk 
  component. Possibility to test with a Satoh model.

    dynsub2a.f : Subroutines to evaluate the potential that corresponds
                 to the 3D density on the grid.

    dynsub2b.f : Subroutines to include the potential of a disk.

    dynsub2c.f : Subroutines to evaluate Bessel functions.


dynmain3.f  :
_____________

  This program reads 3D-velocities and projects them onto the sky

    dynsub3a.f : Subroutines to projected quantities onto the plane of
                 the sky.

    dynsub3b.f : Subroutines to plot projected quantities along individual
                 slits.

    dynsub3c.f : Subroutines to plot the ratio of major and minor axis
                 kinematics.

    dynsub3d.f : Subroutines to fit a Gaussian to a double Gaussian
                 velocity profile, and to calculate Gauss-Hermite moments.
                 Used in the case in which the galaxy consists of separate 
                 bulge and disk components. 

    dynsub3e.f : Subroutines to plot the results for the case in which 
                 the galaxy consists of separate bulge and disk components. 


subroutines used by multiple programs :
---------------------------------------

    dynsub4.f  : Cubic Spline interpolation subroutines from 
                 Numerical Recipes (Press et. al.)    
    
    prepmon.f  : mongo preprocessor. Dummy subroutines which are called from 
                 the modeling programs to write to files plt*. The latter 
                 can be transformed into real plots using aftmon.f


aftmon.f  :
___________

  This is the mongo `afterprocessor'. It reads files plt* created by
  either dynmain1 or dynmain3, and uses MONGO to make plots that
  can be send to a terminal or printer. See the comments under `Caveats'
  above if you do not have access to MONGO.

    mongo83.f  : subroutines that convert from MONGO 1983 to MONGO 1987.


Preparing data for input into the modeling software
---------------------------------------------------

The program dynmain1 reads surface photometry data for a particular
galaxy, whereas the program dynmain3 reads kinematical data. These
data must be stored in files with particular names, so that the
programs can find them. Also they must be written in a particular
fashion so that the programs can understand them.  The subdirectories
/kinprog and /surfprog contain programs that write such files. The
user must input the data by answering the questions of the programs.

Here is a short description of the files in surfprog/ and kinprog/:

surfprog/

  surfmake.f : create a file containing a table of radii, surface 
               brightnesses, ellipticities, and cos(4theta) deviations.
               The standard name of the output file is sp9999
               if the galaxy is NGC 9999.

  fillin.f   : fit a Hubble, Hernquist, or Jaffe profile to the data
               over a certain radial range. Use this model to
               write a new surface photometry file in which the data
               is extrapolated inwards to the inner edge of the grid,
               using this particular model. The standard name of the
               output file is sp9999l (for Hernquist extrapolation),
               sp9999h (for Hubble extrapolation), or sp9999j
               (for Jaffe extrapolation). Note: this step may not
               be necessary if one uses high spatial resolution surface 
               photometry from HST, that extends all the way into the center 
               of the galaxy. 

  fillall.f  : does the same as fillin.f, but now for many galaxies at the
               same time.


kinprog/

  kinmake.f  : create a file containing radii, rotation velocities, and
               formal errors, followed by radii, dispersions and formal
               errors. Possibility to include a second dataset too (for
               example data from other authors). The standard names of the
               output files are
                  kin9999a for major axis data of NGC 9999
                  kin9999b for minor axis data of NGC 9999
 
  kinz.f     : if the velocities in the above output files are heliocentric
               rather than rotation velocities, subtract the systemic 
               velocity.

  kinrms.f   : Read a kin-file and add at the bottom a table of radii, 
               SQRT(v^2 + sig^2) values and formal errors. 
               For this program to work one must first edit the kin-file,
               adding an integer at the end of each row. The program 
               kinrms then takes v and sigma vales with the same integer
               together to form one SQRT(v^2 + sig^2) value.

  kinrat.f   : This program reads files kin9999a and kin9999b 
               and creates a file kin9999m. This file 
               contains radii, values of SQRT(v^2+sig^2)_maj / 
               SQRT(v^2+sig^2)_min, and formal errors. For this program
               to work, the files kin9999a and kin9999b must first
               have been edited. At the end of each line that contains a
               SQRT(v^2 + sig^2) value an integer must have been added.
               The program kinrat takes all lines with the same integer
               together to form one value of SQRT(v^2+sig^2)_maj / 
               SQRT(v^2+sig^2)_min.


Examples
--------

The subdirectory /examples contains example files that can be used to
run all programs on the case of NGC 2974. Please go to the directory
examples/, read the file examples.com, and the issue the command

  prompt> source examples.com

This will allow you to test whether everything has been properly
installed. If everything is OK, you should be able to reproduce the
postscript files in the directory examples/ yourself.


Miscellaneous comments
----------------------

The paper by Cinzano & van der Marel, referenced above, explicitly
modeled the filtering in Fourier space that is done in the analysis of
real spectroscopic and kinematical data. However, this modeling of
Fourier filtering has not been implemented in the current set of
programs.


Known Bugs
----------
 
The line-of-sight projection of the intrinsic dynamical quantities is
more inaccurate for lower inclinations (i.e., more face-on
viewing). See the discussion in dynsub/franx/README. 

(Note: the deprojection of the surface photometry is of course also
less well constrained for lower inclinations [it is unique only for
edge-on viewing].  However, this is a physical limitation, not a bug
in the programs).


                                    Roeland van der Marel.



Home Return to my home page.

Last modified December 8, 1998.
Roeland van der Marel, marel@stsci.edu.
Copyright © 1998 The Association of Universities for Research in Astronomy, Inc. All Rights Reserved.