Program: ROTMOD
Purpose: This program calculates the rotation curve for a truncated
exponential disk (Casertano, M.N.R.A.S., vol. 203,
p735-p747, 1983), or for any other user supplied density
law. It can also calculate the rotation curve for a
spherical bulge.
Category: DYNAMICS, MODELS, ROTATION CURVES
File: rotmod.c
Author: K.G. Begeman
Keywords:
TYPE= Please choose type of potential, [DISK] or spherical BULGE.
ZLAW= DISK Density distribution in z [NONE].
There are three distribution laws possible; the Van der
Kruit and Searle law (SECH-SQUARED): D(Z)=sech(Z/Z0)**2/Z0,
an exponential density law (EXPONENTIAL):
D(Z)=exp(-Z/Z0)/Z0 and a simple sech law (SIMPLE-SECH):
D(Z)=2*sech(Z/Z0)/Z0/PI. If either of those three distributions
is wanted, the next keyword will be asked.
Z0= Scale height of DISK in kpc [0.0].
Note: The integration in Z is the most time consuming part
of the calculation. For example it takes about 0.2 seconds
to calculate a point on the rotation curve for a disk with zero
thickness, and about 2 seconds for a disk with non-zero
thickness.
** ACCURACY= DISK Accuracy parameter [1].
Can be in the range 0-10. The programme needs more time
for higher accuracies. If no ZLAW is specified, the accuracy
parameter is always 10.
USER= DISK radial surface density distribution supplied by the user [Y],
or a truncated exponential surface density distribution.
In case the user wants to supply his own density distribution,
the following two keywords will be asked:
UNITS= Enter units of radius and surface density [KPC,MSUN/PC**2].
It is possible to enter ARCSEC or ARCMIN for radius units,
but then the keyword DISTANCE= will appear. It is also
possible to enter MAG/ARCSEC**2 as surface density units.
Then also the keyword DISTANCE= will appear and magnitudes
will be converted to intensities and it is assumed that
M/L = 1. Note that in the conversion from MAGnitudes to MSUN
no corrections are made (i.e. M = 10**(-0.4*MAG)).
** PAIRS= Enter radii and surface densities in pairs [Y]/N?
If Y, the keyword RADDENS= will be prompted, if N the keywords
RADIUS= and DENSITY=.
RADDENS= Enter radius and surface density in UNITS (if PAIRS=Y).
Up to 20000 radius-density pairs can be handled.
Note: this keyword is repeated until carriage
return is given. So you can use recall files!
RADIUS= Enter radii (if PAIRS=N). Up to 20000 radii can be handled.
Note: this keyword is repeated until carriage return
is given.
DENSITY= Enter surface densities (if PAIRS=N). Up to 20000 densities
can be handled.
Note: this keyword is repeated until carriage return
is given.
DENS0= Central density of exponential DISK in solar
masses per square parsec. Only asked if USER=N.
H= Scale length of DISK in kpc. Only asked if USER=N.
RCUT= Cutoff radius for DISK in kpc [no cutoff]. Only asked if USER=N.
DELTA= Softening parameter of DISK in kpc [0.0]. It may be wise
to have a non-zero softening in case of a
truncated disk, because then the sharp features
in the calculated rotation curve will be smoothed
out. A softening parameter of about 0.2 scale
lengths would be sufficient. Only asked if USER=N.
MASS= Wanted disk mass (in 10^9 solar masses) [mass
calculated from from surface densities].
RADII= Sampling radii (in kpc) for which the rotation
velocities will be calculated (up to 20000 radii
can be given).
** EXTRA= Calculate DISK rotation velocities also for some interesting
radii, i.e. the sampling radii for the density distribution
or the radii near a truncation Y/[N].
FILE= Name of file in which the calculated rotation
curve is saved [rotmod.dat]. This file can be the
input to the program ROTMAS.
Notes: - The accuracy of the calculation is about 1 in 1000 for a
thick disk with default accuracy.
- The sign of the calculated rotation velocity is the sign
of rotation velocity squared. So if this sign is negative,
this means that there is a net force away from the centre
of the galaxy.
- For the sampling radii you should use an increment of
about 0.2 times the disk scale length, and the maximum
sampling radius should at least be larger than the radius
of the last measured point on your observed rotation curve.
- If the user wants to enter a measured density profile, and
the central density is not given (density at R=0), the
program will use linear extrapolation to obtain the central
density.
Updates: Sep 24, 1984: KGB document created.
Mar 19, 1985: KGB revision of document and program.
Jun 11, 1985: KGB minor change in program.
Jan 14, 1986: KGB minor change, interpolate to zero.
Jun 14, 1986: KGB migrated to VAX-VMS.
Mar 22, 1988: AXL document somewhat standardized.
Jul 22, 1988: KGB bug in estimating scalelength repaired.
Sep 10, 1988: KGB USERCHAR implemented.
Aug 13, 1991: AHB more use of repinp.
Nov 12, 1992: KGB C source.
Feb 2, 1995: KGB Keyword EXTRA= implemented.
May 11, 1995: KGB Spherical bulge implemented.
Jul 16, 1996: KGB Bug in selecting radii fixed.
Dec 9, 1996: KGB Simple-Sech z-density law implemented.
Jul 22, 1998: VOG Anyout level changed from 3 to 0
Mar 02, 2001: VOG Changed max number of radii (20000)