Program: ROTMAS #begin section 1 Global description ------------------ Assume that matter circulates around a galactic center, at distance R to that center, with circular velocity Vc. A plot of radius versus circular velocity is called a rotation curve. Usually such a curve is a composition of several velocities and the purpose of ROTMAS is to fit these components interactively to an 'observed' rotation curve. Applying the tilted ring model, these velocities can also be transformed into so called line-of-sight velocities which can be plotted over a separate contour diagram (XV plot) of the galaxy. ROTMAS allows the following components for the rotation curve: A bulge (velocities in the program represented by data parameter Vb), a stellar disk (Vd), a gas disk (Vg) an extra component Vx (e.g. for molecular (CO, H_2) gas), and a dark halo or some other component represented by a 'user' function, called Vu. The total velocity is also a function (Vt). An expression usually contains variable parameters. See also help item 'Expressions' for help on expression syntax. All the components can be interactively varied to explore parameter space. ROTMAS uses the (modified) values of the variable parameters as initial estimates for a least squares fit. This fit routine provides the best fit parameters for the total velocity which can be compared then to the observed rotation curve or to the line-of-sight velocities plotted in an XV diagram. Fit results are written on screen and stored in the GIPSY log file. At any moment the status of the data and the status of the program itself can be saved to disk. Saved data has a fixed format so that it can be used as input for other programs. There are three special variable parameters called mb, md and mg which stand for mass scaling factor for bulge, disk and gas. If used in an expression, they will scale your curves for bulge, disk and gas in the plot, even if they do not represent a valid scaling factor in the expression. Note: ROTMAS can also be used as a simple fit program e.g to fit a straight line through your data. The only disadvantage of this will be that the labels along your axes are radii and velocity. Example: In the inputs window, enter for the observed radii: 1:10 and for the observed data also 1:10. Enter in the main window for Vt(r)=b+a*r and press the fit button. #end section 1 #begin section 2 Expressions ----------- You can enter expressions for a user function Vu and the total velocity Vt. Note that: -The expression must have a derivative. -Syntax is case insensitive -Maximum length of the expressions may not exceed 1024 characters. -The name of the variables in these expressions cannot exceed 16 characters. -Maximum number of variables is 32. -Variables always include data parameters Vg, Vd, Vb, Vu even if there is no data available. -Variables mb, md and mg have a special meaning. The program distinguishes two categories of variables. The first are the variables Vg, Vd, Vb, Vu. These represent the velocity of the gas, disk and bulge as read from a file, and Vu is a velocity entered as an expression for instance to represent a dark halo. Other variables can be changed interactively by so called valuators or can be fitted by a least squares routine. In this last category there are three special variables mb, md and mg which are the mass scaling factors for bulge, disk and gas. They are special because they rescale the the curves for bulge, disk and gas in the plot according to the relation Vb_plot = sqrt( mb ) * Vb_data etc. ROTMAS allows you to select some expressions from a menu. The standard formula for example is given by: Vt(r)=sqrt(mg*Vg*abs(Vg)+md*Vd*abs(Vd)+mb*Vb*abs(Vb)+Vu**2) The default expression for the total velocity is a summation of the individual contributions of gas, disk, bulge and Vu, the velocity expression that you entered for e.g. the dark halo. Note the use of the abs function. It conserves sign in the quadratic contribution! Other pre-programmed formulas: Standard Vtotal without bulge: Vt(r)=sqrt(mg*Vg*abs(Vg)+md*Vd*abs(Vd)+Vu**2) Mond: Vt(r)=sqrt((mg*abs(Vg)*Vg+md*Vd*abs(Vd)+mb*Vb*abs(Vb))* sqrt(1+sqrt(1+(2*r*a/(mg*abs(Vg)*Vg+md*Vd*abs(Vd)+mb*Vb*abs(Vb)))**2))/sqrt(2)) with default: a=3734 Special User functions: Exponential: sqrt(4*{PI}*4.321*sig0*r**2/ (4*h)*(bi(0,0.5*r/h)*bk(0,0.5*r/h)-bi(1,0.5*r/h)*bk(1,0.5*r/h))) Hernquist: sqrt(4.321*M0*1e4)*(sqrt(R))/(R0+R) with defaults: R0=35 M0=55 R0_MIN=30 R0_MAX=40 Isotherm: sqrt(4*{PI}*4.321*rho*rc*rc*(1-(rc/r)*atan(r/rc))) with defaults: RHO=7 RC=7" Navarro-Frenk-White profile: (R200/0.73)*sqrt(R200/R*((ln(1+C*R/R200)-(C*R/R200)/(1+C*R/R200))/(ln(1+C)-C/(1+C)))) Units: r in Kpc V in Km/s M in M0 (solar mass = 2x10^30 Kg) rho in 10^-3 M0/pc^3 a(mond) in Km/s.s^-1.Kpc^-1 Configuration of menu ===================== You can append menu items for the Vt and Vu menu, see text at Configuration. Warning ======= If your expression for Vu or Vt allows singularities at certain values of R, and your weight (error) in that point is unequal to zero then the fit will fail. Change the value of the error then to 0. If you are using uniform weights then the error value cannot be changed. What you can do in that situation is fill the errors field in the "INPUTS" window with an expression like 0 1::45 to enter a zero for the first radius and a one for the next 45 radii. #end section 2 #begin section 3 List of functions ----------------- functions abs(x) absolute value of x acos(x) inverse cosine of x asin(x) inverse sine of x atan(x) inverse tan of x bj(n,x) Bessel function of 1st kind, integer order by(n,x) Bessel function of 2nd kind, integer order bi(n,x) modified Bessel fn. of 1st kind, integer order bk(n,x) modified Bessel fn. of 2nd kind, integer order cos(x) cosine of x cosh(x) hyperbolic cosine of x deg(x) convert x to degrees exp(x) exponential of x ln(x) natural log of x log(x) log (base 10) of x rad(x) convert x to radians sign(x) sign of x (-1,0,1) sin(x) sine of x sinc(x) sin(x)/x (sinc function) sinh(x) hyperbolic sine of x sqrt(x) square root of x tan(x) tangent of x tanh(x) hyperbolic tangent of x constants (Enclose between braces to distinguish from variables) PI 3.14159.... C speed of light (SI) H Planck (SI) K Boltzmann (SI) G gravitation (SI) S Stefan-Boltzman (SI) M mass of sun (SI) P parsec (SI) available operators: + addition - subtraction * multiplication / division ** power Example: sqrt(4*{PI}*4.321*rho*rc**2*(1-(rc/r)*atan(r/rc))) #end section 3 #begin section 4 chi-square landscape -------------------- Recipe ====== To be able to explore parameter space and estimate errors on parameters, a chi-square (contour) landscape can be plotted. First press the button to open the chi square landscape window. The axes of the plot correspond to parameters in your function for Vu and Vt. an are selected by the and buttons in the new window. Pressing on one of the buttons will pop-up a menu with available parameters. After selecting the parameters, one must select the mode. First mode is a chi-square plot with chi square values as contour levels and the second mode plots the contours as confidence intervals in units of 1 sigma (see: Confidence intervals). The button starts calculating a minimum value for chi-square on each sample point in a grid with sizes given by the input field "sample size:" The sample ranges are copied from the ranges in the parameter valuators. To center your plot, use the button to set reasonable values for the valuator ranges. ROTMAS calculates defaults for the contour levels, but alternative values can be entered in the "Levels:" input field. The minimum value for chi-square is calculated using a least squares fit with the axis parameters as fixed parameters and the other parameters are fixed or free depending on their status in the GUI. Note that a real minimum chi-square can only be approached if all or most of the parameters are free in the fit. The chi-square values depend on the selected weights. For the interpretation of the chi-square landscape it is important to know whether uniform weights or errors as weights are used for the calculations. How to abort the calculations ============================= If you want to abort the process of calculating a chi-square landscape then press the again. The progress of a running process is displayed in the status line in the main window. Levels ====== As soon as the chi-square values are known to the program, defaults are calculated. For the confidence intervals mode, the default is 1 2 3 4 5 and the default for the reduced chi-square is derived from the same numbers but transformed to a chi-square value. The first contour level in the levels input field will be plotted in red. The other contours are plotted in yellow. A green cross is plotted at the position of the minimum value of chi-square found in the sample. Usually, because of the sampling, this is not the position of the real minimum. Confidence intervals ==================== A confidence region (or interval) is a region that contains a certain percentage of the total probability distribution. You can use constant chi-square boundaries as confidence limits. ROTMAS calculates the steps in chi-square as function of the number of fixed parameters (2) for which you want the confidence limits and as function of the probability. The probability is expressed in sigma (1 == 68.3%, 2 == 95.4% 3 == 99.73% etc.) The steps in chi-square are distributed as the chi-square distribution. Mouse interaction ================= If you click with the left mouse button somewhere in the chi-square landscape, then the landscape parameters at that point are fixed in a least squares fit while the other parameters keep their free/fixed status. The results of the fit are transmitted to the main window and the rotation curve(s) are replotted. The reported value of of the reduced chi-square after a fit must correspond then with the minimum value in the chi-square landscape. Warning ======= Allowing the event handling of this button in the middle of building the chi-square landscape, means in this case that also other events are allowed and some of them could harm the consistency of the program (e.g. changing the value of the least squares fit tolerance etc.). So please be patient and wait until the contours are plotted. #end section 4 #begin section 5 The XV-plot ----------- Recipe ====== Plotting a XV diagram must be started by pressing the button in the main window of ROTMAS. An empty window with input fields and buttons will pop-up. First you need a GIPSY input set e.g. made by program SLICE or from some other source. Together with values for contour levels, a plot is made with R in kpc along the x-axis and V in km/s along the y axis. But if you want an overlay of rotation curve velocities converted to line of sight velocities, then you have to enter tilted ring parameters like a set of inclinations, position angles, a systemic velocity, the position angle of the slice and a distance in Mpc. If you enter less inclinations or position angles than the number of radii, the missing values are copied from the last one entered. Converting tilted ring velocities to line of sight ================================================== For the velocity conversion we have the following relations: theta = arctan( tan(beta)/cos(i) ) Vz = V0 + Vc.sin(i).cos(theta) where: Vc tilted ring circular velocity theta azimuthal angle in the plane of the galaxy beta position angle (in the sky) of slice i inclination of tilted ring V0 systemic (line of sight) velocity Vz line of sight velocity For the radius conversion: Rproj = R.cos(theta)/cos(beta) where: R tilted ring radius Rproj radius in the sky The conversion factor for a pixel to an offset in radius is read from the header of the GIPSY (XV)set (i.e. CDELT for the first axis of the (sub)set) and this offset is converted to minutes of arc. We want to convert the offsets to kpc because the radii in the rotation curves are in kpc's. The following formula is used for the conversion: R(Kpc) = R(arcmin) * 0.290888 * distance(Mpc) Now it is possible to convert any rotation curve radius to a corresponding pixel in the XV map and we can plot any point in a rotation curve in the XV map. #end section 5 #begin section 6 Input fields an buttons ----------------------- WINDOW: MAIN ============ FILE (type: menu, keyword: FILEMENU=) Options are: 1) save data 2) save parameters 3) load parameters 4) save chi^2 data 5) exit For the save options, a new window appears where you are prompted to enter a filename. The program checks if the file already exists. ad 1) save data (type: input field (text), keyword OUTFILE=) Enter a name for the output file. Press enter or OK to confirm or CANCEL to return. The output of the (fitted) data has a fixed format. Data start at line 11. The order in columns is: Radius vgas vdisk vbulge vobs err vobs Vu Vt Rxv Vxy Radii are in kpc, velocities in km/s Example output: !# Results of ROTMAS saved at 03-Jul-1998 (14:59:31) !# User velocity : Vu=0 !# Total velocity : Vt=SQRT(MD*VD**2) !# Parameter name : MD !# Parameter value : 5.103946 !# Parameter error : 0.000000 !# !# Radius | vgas | vdisk | vbulge | vobs | err !# kpc km/s km/s km/s km/s km/s !#====================================================== 0.2546 -0.277155 33.5253 0 14.39 0.5093 -0.702933 40.2798 0 24.38 0.7639 -1.78983 46.0473 0 29.25 ad 2) save parameters (type: input field (text), keyword PARMFILE=) Enter a name for the program parameter file. Press enter or OK to confirm or CANCEL to return. The file with keywords can be used as a default file for a new ROTMAS session or to restore a previous program status without restarting. If you saved keywords to a file 'mykeys.def' then you can start ROTMAS on the Hermes prompt with: mykeys(rotmas) ad 3) load parameters (type: input field (text), keyword PARLOAD=) Enter a name for the program parameter file. For all the keywords in this file, events are generated as if you specified them manually. ad 4) save chi^2 data (type: input field (text), keyword CHI2FILE= ) Enter a name for a file on disk that contains data from the chi-squared plot. Example output: !# Results of ROTMAS chi2 data saved at 07-Dec-1999... !# chi2 landscape data from 20 x 20 sample !# A MD value of chi-square 297.220001 1.210000 1145.207642 328.506836 1.210000 973.705505 359.793671 1.210000 816.389221 etc. ad 5) exit If you did not save your data, ROTMAS will prompt with the save data window instead of aborting the program. If you did save your data once in the same session, then the program will not prompt anymore and will exit immediately. PLOTTER (type: menu, keyword: PLOTTER=) The system printers are listed. After selection of a device from the list, button PLOT becomes active. A plot is created after pressing the plot button. PLOT (type: button, keyword: PLOT=) Plot the rotation curve on the device selected with menu PLOTTER. If a XV plot is visible, plot this map and an overlay of the rotation curve on the same page. If the plot is ready, the program will tell you that in its status line. If a PostScript file is selected then the name of the created file is logged and displayed in the GIPSY log file. INPUTS (type: input window, keyword: INPUTS=) Pop up a new window for specification of input. See description at WINDOW: INPUTS ROTMOD (type: input window, keyword: ROTMOD=) Pop up a new window for specification of input for GIPSY task ROTMOD. After running ROTMOD new data files on disk wil be used as input for ROTMAS. See description at WINDOW: ROTMOD XVPLOT (type: button, keyword: XVPLOT=) Pop up a new window for specification of input for a GIPSY set and parameters to plot line of sight velocities on an XV plot. See description at WINDOW: XVPLOT CHI2PLOT (type: button, keyword: CHI2PLOT=) Pop up a new window for with input fields and plot window for a chi-square landscape. FIT (type: button, keyword: FIT=) Start a least squares fit algorithm for the current data. Use current parameter values as initial estimates for the routine. Results are displayed in the status line of ROTMAS. They are also logged in the GIPSY LOG file. Special options for the fit can be entered in the OPTIONS menu. The fit routine uses either weights from file (INPUTS window) or uniform weights. Three parameters (tolerance, mixing parameter and max. iterations) needed by the fit routine are specified in the OPTIONS window. If the program could make a fit then the results are displayed in the status line with the number of iterations, the reduced chi-square and the goodness-of-fit probability. WEIGHTS (type: menu, keyword: WEIGHTS=) options: 1) uniform 2) errors Set the weights for the least squares routine and the calculation of chi-square. If you select uniform then the weight at radius 0 is set to zero. If weights are set to errors and the weight at radius 0 kpc is unequal to zero, then you will be warned with a message in the status after fitting. OPTIONS (type: input window, keyword: OPTIONS=) See description at WINDOW: OTIONS HELP (type: menu, keyword: HELP=) A number of help items are listed. The help text is extracted from the dc1 document of ROTMAS. REFRESH (type: button, keyword: REFRESH=) Reread all the input files and replot the curves. Vu(r) (type: input field, keyword VUFUN=) Enter (or select from function menu) an expression for one of the rotation curve components e.g. a dark halo. See also help item expressions. Vt(r) (type: input field, keyword VTFUN=) Enter (or select from function menu) an expression for the total velocity. Vt (and Vu) recognizes 4 data parameters Vb, Vg, Vd and Vu and variables of which mb, mg and md have a special meaning (in the plot they always act as a mass scaling factor). If a so called 'standard' expression is selected then you can drag the plotted components in the plot by pressing the left mouse button. See also help item expressions. WINDOW: OPTIONS =============== Tolerance (type: input field (floats), keyword: TOL=) The least squares routine needs a criterion for stopping. It stops when successive iterations fail to produce a decrement in reduced chi-squared less than 'TOLERANCE'. If this value is less than the minimum tolerance possible, it will be set to this value. This means that maximum accuracy can be obtained by setting 'TOLERANCE' to 0.0. Lambda (type: input field (floats), keyword: LAB=) A mixing parameter, LAMBDA determines the initial weight of steepest descent method relative to the Taylor method in the least squares fit. LAMBDA should be a small value (e.g. 0.01). Maxits (type: input field (integer), keyword: MAXITS=) Maximum number of iterations allowed in least squares fit. WINDOW: INPUTS ============== INPUT FROM FILE =============== File (type: input field (text), keyword: FILE=) Enter the name of an ASCII file that contains columns with your observed rotation curve data. The name typed here will be used to compose the GIPSY command to read data from file. These commands are automatically listed in the input fields below. Rows (type: input field (integers), keyword: ROWS=) The FILE specification can only be active if also rows are entered. The rows field allows abbreviated input. Here are the options (same as input from recall files) m:n read lines from m to n m: read lines from line m to end of file. :n read lines from start of file to line n. : read all rows. Radii (type: input field (integer), keyword: RADII_COL=) Enter the number for the column that represents the radii. Radii must be in kpc. Observed (type: input field (integer), keyword: ODATA_COL=) Enter the column number in which your observed data is stored. Bulge (type: input field (integer), keyword: BDATA_COL=) Disk (type: input field (integer), keyword: DDATA_COL=) Gas (type: input field (integer), keyword: GDATA_COL=) Enter the column number in which you data is stored for your gaseous disk, bulge and stellar disk. Top title Annotation at the top of a plot can be set in this field or with keyword TOPTITLE= which accepts a string like "ngc 2343" (omit the quotes). You need to refresh the plot after specifying the title with the "refresh" button. INPUT FROM TABLES ================= Set (type: input field (text), keyword: TABSET=) Name of the set from which a table must be extracted. Table (type: input field (text), keyword: TABLE=) Name of the table in the set. Rows (type: input field (integers), keyword: TROWS=) Rows for which column data must be extracted. The syntax is the same as for recall files, i.e. m:n, m:, :n and : Radii (type: input field (column name), keyword: TRADII=) Observed (type: input field (column name), keyword: TODATA=) Errors (type: input field (column name), keyword: TERRORS=) Bulge (type: input field (column name), keyword: TBDATA=) Disk (type: input field (column name), keyword: TDDATA=) Gas (type: input field (column name), keyword: TGDATA=) COMMON INPUT ============ Observed radii (type: input field (floats), keyword: RADII=) If you did not use the input fields for input from text file then enter your radii (kpc) here. Example: file(rcfit7524.dat,1,13:) Errors (type: input field (floats), keyword: ERRORS=) Draw error bars in through the observed data points. Use values as weights in least square fit. Example: file(rcfit7524.dat,8,13:) 1.3::30 ! 31 times value 1.3 Bulge radii (type: input field (floats), keyword: BRADII=) Disk radii (type: input field (floats), keyword: DRADII=) Gas radii (type: input field (floats), keyword: GRADII=) If you have different radii compared to the observed radii, then enter your numbers here and the program will try to sample on the original radii using a spline algorithm. The length of the radii array must be equal to the length of the data array Bulge data (type: input field (integer), keyword: BDATA=) Disk data (type: input field (integer), keyword: GDATA=) Gas data (type: input field (integer), keyword: DDATA=) If you don't use the input for file rows and columns, then you can enter here the observed data. CLOSE (type: button, keyword: INPUTS=) Hide window. ROTMOD (type: button, keyword: ROTMOD=) Open input window for ROTMOD keywords. ROTMOD 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. WINDOW: ROTMOD ============== To get a Stellar Bulge ============= Radii (type: Input field (floats), keyword: BRADII=) Field will be filled if bulge radii was entered in a previous situation. Mass (type: Input field (float), keyword: B_MOD_MASS=) Bulge Data: Radii B_MOD_RADIUS= units B_MOD_RUNIT= distance B_MOD_DISTANCE= Densities B_MOD_DENSITY= units B_MOD_DUNIT= OK B_MOD_OK= Stellar disk ============ Zlaw D_MOD_ZLAW= Z0 D_MOD_Z0= Radii DRADII= (DDATA=) Mass D_MOD_MASS= Accuracy D_MOD_ACCURACY= DATA D_MOD_USER= PARAM D_MOD_PARAM= Disk data: Radii D_MOD_RADIUS= units D_MOD_RUNIT= distance D_MOD_DISTANCE= Densities D_MOD_DENSITY= units D_MOD_DUNIT= Disk parameters: Dens_0 D_MOD_DENS0= R_cutoff D_MOD_RCUT= H D_MOD_H= Delta D_MOD_DELTA= CLOSE ROTMOD= OK D_MOD_OK= Gaseous disk ============ Same keywords as above, except the prefix. This is G_ instead of D_. WINDOW: XVPLOT ============== Inset (type: Input field (text), keyword: XV_INSET=) Example: mjf7524s30 dec 0 Box (type: Input field (4 floats), keyword: XV_BOX=) Example: -80 -24 80 25 Levels (type: Input field (floats), keyword: XV_LEVELS=) Example: 1:13:2 From level 1 to level 13 in steps of 2 Inclinations (type: Input field (floats), keyword: XV_INC=) Input in degrees. Example: 46::31 For all (=31) radii the same number pos.angles (type: Input field (floats), keyword: XV_PA=) Input in degrees. Example: 327::31 For all (=31) radii 327 degrees Syst.vel. (type: Input field (1 float), keyword: XV_SYSV=) The units of the systemic velocity is km/s. Example: 320 Slice Pa (type: Input field (1 float), keyword: XV_SLICEPA=) Angle of the slice with which the xv map was created. the input is a number in degrees. Example: 327 D(Mpc) (type: Input field (1 float), keyword: XV_DISTANCE=) Distance of the galaxy in Mpc. This number is needed to convert the offsets in the XV map in minutes of arc, to Kpc. The conversion from arcmin to kpc is: x(kpc) = x(arcmin) * 0.290888 * D(Mpc) Close (type: Button, keyword: XVPLOT=) Hide window. GO (type: Button, keyword: XV_GO=) Make a contour plot for a set of levels of data from a GIPSY set. WINDOW: CHI2PLOT ================ x: (type menu, keyword VARNAME1=) Enter variable from the list for the x labels and scaling. Together with a variable for y: a chi-square landscape can be plotted. The boundaries for each variable is copied from the value in the corresponding valuator. For a sample of n x m data points a contour plot is made. The contour levels are entered in the LEVELS input field. The sample sizes are set in the sample size: input field. The default size is 20 x 20. y: (type menu, keyword VARNAME2=) See x: MODE (type menu, keyword CHI2MODE=) Select a mode for the chi-square plot. The options are 1) Chi-square 2) Confidence intervals See also description at 'Levels'. GO/STOP (type button, keyword GO=) Make the chi-square plot, i.e. calculate the data and draw the contours. However, calculating the minimum chi-square at all the sample points can take a while. Therefore this process can be interrupted by pressing the button again. Levels (type: input field, keyword LEVELS=) Enter values for the chi-square landscape. Input depends on the mode of the plot. 1) Reduced chi-square, needs levels in reduced chi-square. Default is a logarithmic scale. 2) Goodness of fit needs levels in probabilities between 0 and 1. Default are the probabilities 0.1 0.2 .... 1.0 3) Confidence intervals needs levels expressed in sigma e.g. Levels: 1 2 3 4 5 Default are the levels 1 2 3 4 5 (sigma). A default for each situation is used if nothing was specified before you started to plot. If you change mode, a new default is calculated, otherwise, while replotting, the levels do not change unless you enter new values. CLOSE (type button, keyword CHI2PLOT=) Close the chi-square landscape window. #end section 6 #begin section 7 Configuration ------------- There are three different ways to configure your application: 1) Configure colours and fonts with an X application resource file 2) Configure contents Vt and Vu menu's 3) Use a GIPSY defaults file to set the initial program status, or use a saved parameter file with keywords to restore a previous program status. 4) Use hidden keyword PLOTSIZE= to start with a different size of the main window. ad 1) Create a file with the name 'XGgi' in the directory where you want to run GIPSY. See also "Graphical User Interface" item in HELP menu. ad 2) It is possible to add your own functions in the Vt and Vu menu's. Create a file on disk with first line the name of your function and second line the expression. Repeat this for all your personal functions. Start ROTMAS with one or both of the keywords VUMENUFILE= or VTMENUFILE= followed by the name of your file on disk. Example: The personal menu file addexpr.txt contains the lines Modified standard sqrt(mg*Vg*abs(Vg)+(md+mb)*Vd**2+Vb**2+Vu**2) md = 1.2 Notice that you can also give initial values for the parameters. Start ROTMAS with command: ROTMAS VTMENUFILE=addexpr.txt ad 3) You can pre specify keywords (and therefore also the contents of input fields and the status of buttons) using a GIPSY defaults file. Once in ROTMAS you can create such a file after pressing the FILE button and selecting the "save parameters". Make sure that if you want to restart ROTMAS with a default file, then the filename must end on '.def'. Suppose you created the file myrot.def. Then start ROTMAS with your new defaults with command: myrot(rotmas) If you want to load ROTMAS parameters with the "load parameters" option in the FILE menu, then the status of the program is restored to the status as described in the parameter file. The latter method is always used in a running program. ad 4) If you want a different size of the main window, use keyword PLOTSIZE= at start up. This keyword accepts two integer numbers for the plotsize in pixels in x- and y direction. Example: ROTMAS PLOTSIZE=500 400 #end section 7 #begin section 8 Hardcopy -------- If a device is selected (menu "PLOTTER") and the button is pushed, then the window with the rotation curves is plotted and if the window with the XV map is open, also the XV map with overlay velocities is plotted. There is not a possibility to make a hardcopy of the chi-square landscape. However, the chi-square data can be saved to disk using the appropriate save option in the file menu. #end section 8 #begin section 9 About ----- Version: 1.1 Purpose: Interactive modeling of rotation curves Category: MODELS, ROTATION-CURVES, VELOCITY-FIELDS File: rotmas.src Author: M.G.R. Vogelaar (GUI: J.P. Terlouw) Keywords: See sections below. Example: ....... Updates: Mar 03, 1998: VOG, Document created. Jul 24, 2000: VOG, Small chi2/goodness of fit changes. Apr 15, 2009: VOG, Removed unused definition of NINT(). Initialized string 'dummy' to "" otherwise a weird error was displayed May 29, 2011: VOG, Added extra component 'Vx' for molecular gas (CO en H_2). Also added new entry for Vu: Navarro-Frenk-White profile. Sep 12, 2014: VOG, Bug in plot label Vx removed Note: This document is used by program ROTMAS to extract text for each item in a help menu. The sections are identified by: #begin section n where n is a number, and the end of a section is marked by: #begin section n Email M.G.R. Vogelaar (email: vogelaar@astro.rug.nl) J.P. Terlouw (Gui) (email: terlouw@astro.rug.nl) New: Added "load parameters" option in FILE menu. With this option you can restore a previous status of ROTMAS without the need to restart the program. #end section 9