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)