Here, the structure and function of the data file used by the code is described.

`DATA (fort.20)`

This is file that effects how the model will be run. It consists of a block of 221 numbers, some of which relate to the model's evolution, while the others affect the format of the output. The structure of `DATA` is given below. I have tried to keep the variable names the same as in the code, at the expense of aesthetics in displaying the file's structure. The function of each variable is discussed below, with bracketed quantities representing the usual values they take.

`
NMSH2 ITER1 ITER2 JIN JOUT NCH JP ITH IX IY IZ
ICL ION IAM IOP INUC IBC ICN
NWRT1 NWRT2 NWRT3 NWRT4 NWRT5 NSAVE
EPS DEL DH0 DT3 DDD
NE1 NE2 NE3 NB NEV NF J1 J2 IH JH
ID(11-110) - 7 lines
ISX(1-45) - 3 lines
DT1 DT2 CT(1) CT(2) CT(3) CT(4) CT(5) CT(6) CT(7) CT(8) CT(9) CT(10)
ZS ALPHA CH CC CN CO CNE CMG CSI CFE
RCD OS RML RMG ECA XF DR
RMT RHL AC AK1 AK2 ECT TRB
`

`NMSH2` - The desired number of mesh points. If this is different from that in `modin`, the code should interpolate the given model to give the new one, provided that NCH is greater than or equal to 1. (199)

`ITER1` - The maximum number of iterations allowed on the first timestep. (10)

`ITER2` - The maximum number of iterations allowed on later timesteps. (10)

`JIN` - The number of independent variables of the H, DH arrays to be read in. (11)

`JOUT` - The number of independent variables written out at the end of a run. (11)

`NCH` - This affects the remeshing of the model. For an NCH of 2 or 3, the model will alter the spacing of the mesh points so that they are optimally spaced according to the mesh spacing function. NCH=3 is used for changing the composition of a model. (1,2 or 3)

`JP` - This affects the guessed increments for DH for the next timestep. If it is set to 1, the values used are those of the previous timestep. If it is zero, then the increments are set to zero. (0, sometimes 1)

`ITH` - The thermal energy generation rate is `ITH`*T*DS/Dt. Setting `ITH` to zero enables T*DS/Dt to be ignores. (1, sometimes 0)

`IX` - DX/Dt = IX * (burning rate of Hydrogen). Setting this equal to 0 allows the model to ignore composition changes whilst still burning hydrogen. This is useful for creating intial models. (1, sometimes 0)

`IY` - as for `IX`, but relates to helium-4 instead. (1, sometimes 0)

`IZ` - as for `IX`, but relates to carbon-12 and oxygen-16. (1, sometimes 0)

`ICL` - If `ICL`=1, then `PRESSI` will include the effects of the Coloumb interaction. (1)

`ION` - Used by `STATEF`. This is the number of elements that that the routine will calculate ionizations for. (2)

`IAM` - If set to zero, the program will use integer atomic weights. (1)

`IOP` - Used to select spline interpolation in opacity. If set to 1, spline interpolation will be used. If set to zero, a linear interpolation in opacity will be used. (1)

`INUC` - No current function.

`IBC` - No current function.

`ICN` - Used for CNO equilibrium on the main sequence. If `ICN`=1, a baryon correction is applied to the hydrogen evolution equation. The timestep used is also affected by `ICN`=1. (0)

`NWRT1` - Prints the internal details of every `NWRT1`'th model to `OUT`. (e.g. 100)

`NWRT2` - Prints the internal of every `NWRT2`'th meshpoint when the internal model is printed to `OUT`. (e.g. 1 or 2)

`NWRT3` - Affects the number of 'pages' printed out for every `NWRT1`'th model. (1-3)

`NWRT4` - Prints a short summary of every `NWRT4`'th model. (e.g. 1 or 4)

`NWRT5` - Prints a one-line summary of each iteration of each model, excluding the first `NWRT5` iterations of each model. (e.g. 0 or 2)

`NSAVE` - An output model is saved to `MODOUT` every `NSAVE`'th timestep, in the same format as the input model, so that it can be used for a further run. The final model is automatically saved. (300)

`EPS` - The accuracy to which `SOLVER` is expected to solve the equations. (10^{-6} or 10^{-7})

`DEL` - This is the maximum value in `ERR` for which the whole correction is applied in `SOLVER`. Above this limit, the correction applied is reduced by a factor of `ERR/DEL`. (0.01)

`DH0` - Affects the value of the increments of the variables during the numeric differentiation. It is no longer so important, now that everything is in double precision. (10^{-7})

`DT3` - No current function.

`DDD` - Sets the modulus of the total increment that is desired in one timestep. (0.5 to 4)

`NE1` - The number of 1st order equations the code will use. (5)

`NE2` - The number of 2nd order equations the code will use. (5)

`NE3` - This defines a subset of the 1st order equations that may be defined at 3, rather than two, adjacent meshpoints. At present, this is not implemented in the code. (0)

`NB` - The number of boundary conditions possessed by the 1st order equations at the stellar surface. (3)

`NEV` - The number of 'eigenvalues' (i.e. quantites that don't vary with the mesh) used by the model. At present there is only one, that being the gradient of the mesh spacing function. (1)

`NF` - This affects the number of variables being passed between the routines used by `SOLVER`. (30)

`J1, J2, IH, JH` - These variables are used for debugging. Suitable choice gives an output via `PRINTC` that can be used to see if `FUNCS` and `EQUNS` are setting up the difference equations correctly. (0,0,0,99 - this suppresses the debugging output.)

`ID(1-110)` - This is two blocks of numbers, one for `FUNCS1`/`EQUNS1`, the other for `FUNCS2`/`EQUNS2`. Each block consists of 1 lines of ten, and 3 lines of 15 integers. The line of 10 contains `NE1,NE2,NB,NEV,NF,J1,J2,IH,JH` (ie ID(1-10) is the previous line of the data file). The usual values are (5,5,0,3,1,30,0,0,0,99). Of the 3 lines of 15 integers, the first is a permutation of the independent variables (1,2,4,5,3,9,10,8,7,6,0,0,0,0,0), the second that of the the equations (6,7,8,9,4,2,1,3,5,0,0,0,0,0,0) and the last that of the boundary conditions (4,5,6,7,2,3,1,2,3,1,0,0,0,0,0).

`ISX(1-45)` - These values affect the variables of the internal structure that are printed to `OUT`. The first 15 values define what will be placed on the first 'page', with the next two sets of 15 defining the output to the extra pages. The options are:

1 - , 2 - P, 3 - , 4 - T, 5 - , 6 - , 7 - , 8 - , 9 - m, 10 - ^{1}H, 11 - ^{4}He, 12 - ^{12}C, 13 - ^{14}N, 14 - ^{16}0, 15 - ^{20}Ne

, 16 - ^{24}Mg, 17 - r, 18 - L, 19 - , 20 - , 21 - , 22 - , 23 - k^{2}, 24 - n/n+1, 25 - U_{hom}, 26 - V_{hom}, 27 - U, 28 - S, 29 - L/L_{Edd}, 30 - w.l

23 is the square of the radius of gyration; 24-26 are homology invariants; 30 is the convective velocity times the mixing length.

`DT1` - Places a lower limit of `DT1` * current timestep on the size of the next timestep. (0.8. 0.95 or 1.0)

`DT2` - Places an upper limit of `DT2` * current timestep on the size of the next timestep. If both `DT1` and `DT2` are set to 1, then the timestep is constant, unless the model fails to converge (in which case it will become 0.8 times the current value for the next run). (1.2, 1.05 or 1)

`CT(1-10)` - These are coefficients used in the mesh spacing function, Q.

`ZS` - This is the star's metallicity. See the receipes section if you wish to change the metallicity of the model you currently have. (e.g. 0.02, 0.001)

`ALPHA` - The mixing length. (2.00)

`CH-CFE` - These are the values for initalising the abundances of hydrogen-1 through to iron-56 of a model. The metals are expressed as a fraction of the total metallicity. These are only used for ZAMS models, and with `NCH` set to 3. (0.7 or 0.73, 0.176, 0.502, 0.092, 0.034, 0.072, 0.072)

`RCD` - The diffusion coefficient for convective mixing is `RCD`*()^{2}/t_{nuc}. (10^{6})

`OS` - A convective overshoot parameter. Zero implies no overshoot. (0)

`RML`, `RMG` and `RMT` - At the surface, the mass loss rate is equal to -RML*Lr/m + RMG*m - RMT*[r_{star}/r_{lobe}-1]^{3}. This enables inclusion of a Reimers' type mass-loss rate, a constant mass-loss/gain rate (used mainly for running up and down the main sequence - see the receipes), and/or Roche-lobe overflow. All the units are solar and years. (0 or 4x10^{-13}, 0 or +/- 5x10^{-7}, 10^{3} respectively)

`ECA` - Used in the evolution of EC for pre-MS construction. (0)

`XF` - Defines the boundary of a core, for printout purposes only, to be at X(^{1}H) or X(^{4}He) = `XF`

`DR` - Defines the boundary between a convection and semiconvection zone, for printout purposes only, to be at = DR. (0.01)

`RHL` - The intrinsic rate of loss of angular momentum from the binary, excluding that from stellar wind by either star. The total angular momentum loss is a combination of the intrinsic loss (here just a constant logarithmic rate) combined with the wind from both stars. (0)

`AC` - If there is Roche-lobe overflow, the stellar wind is a fraction 1-`AC` of the mass being lost by star 1. (1.0)

`AK1` - The loss of angular momentum from star 1 as wind is `AK1`*the orbital angular momentum per unit mass as star 1. (0.0 or 1.0)

`AK2` - The loss of angular momentum from star 2 as wind is `AK2`*the orbital angular momentum per unit mass as star 2.(1.0 or 0.0)

`ECT` - A constant logarithmic increase or decrease for EC (see the section on `MODIN`), which can be used to push a ZAMS star back up it's Hayashi track to make a pre-MS star.(0)

`TRB` - Used in setting the surface conditions of binaries.

E-mail: stars@ast.cam.ac.uk

Last modified: Thu Oct 9 15:00:47 2003

By R. Stancliffe