Fixes:
1. Bessel functions have been wrong as it returns f[x,x] instead of f[n,x]. I am not sure when it happened.
2. Physical constants based of CODATA 2018. New constants PlanckConstant and PlanckHbar are added.
3. BoltzmannConstant's spell.
4. The interface to bbbrem (BBBRem1) now returns tje momentum after radiation.
5. HistoPlot has dropped some samples near the maximum.
6. Tkinter wrongly Clears a protected symbol 'In'.
Added:
1. Now FFS has a "Reference optics". It is automatically set by the first CALC or GO after USE or VISIT, and can be updated by a new command REFERENCE(REF).
- The reference optics can be printed by DISP REF (mode).
- Twiss function returns the reference optics with "R"//(Twiss function), eg. Twiss["RBX", p];
- The diffrence between the currnt optics and the reference optics are printed by DISP DREF (mode). Relative changes are shown for beta functions.
- Twiss["D"//(Twiss function",..] returns the difference between the current optics and the reference. Relative changes are returned for beta functions
- OpticsPlot and the DRAW command handle "R" and "D" functions as above, eg. DRAW DBX & DBY;
2. A new option TitleFontSize is added to control the font size of PlotTitle.
3. Another example of designing a storage ring, "example_booster.sad".
Changes:
1. The DISPLAY(DISP) command now halts at every 66 output lines to ask
(c_ontinue, q_uit, a_ll)?
to avoid unwanted too large output, in the input/output is terminal. If the kwyeword ALL is attached, the dialog is skipped. For instance
DISP ALL e1 e2
prints out from e1 to e2 without intervention.
2. Now the DISPLAY(DISP) accepts a location number for the range. For instance
DISP 100 110
prints out from 100th to 110th components. A nevative number n means $$$+n+1.
3. In DISPLAY(DISP):
DISP e1 e2
If e1 is a component after e2, it prints out starting from e1 through $$$, then continues printing from ^^^ through e2.
4. Internal algorithms for file reading was further updated to avoid intermetiate buffering. The handling of comment (!), tab, and \\\n become more consistent. These changes affect Read, Get, FFS, StringToStream, and other file input functions.
5. The formal maximum vaules of beam line length, etc., are set small to avoid a unnecessary large size of the object files. It is a little bit strange why gfortran generates a large object with a dummy size of a pointer which is not allocated at the start.
6. PolynomialFit has become somewhat more robust against the range and scale of the independent variable.
7. Comply with gcc/gfortran 9.
8. SetElement now allows {} for the third arg (keyword->value list).
Fixed:
1. Some lines ending with " " in HelpMessages caused an issue after the new strict input handling.
2. Probably due to the compiler optimization since gcc9, some alternative keywords of elements have been ignored, such as BETAX of BEAMBEAM, etc.
Changes:
1. Try to set the buffer pointer right after the point to be evaluated for the input stream.
2. Updated SADHelp.
ing a blank line from a file and terminal has been incorrect.
2. If an input line ends with '\\', it continues to the next line, even in the middle of a number or symbol.
Changes:
1. The routine tfreadbuf was divided into individual routines. Simplified tfreadstringf. tfsystemcommand does not look like reasonable: why does it accumulate ntable?
Fixed:
1. PhotonList with PHOTONS, which has not been working since the kinematic evaluation of radiation wasintroduces, now comes back. It requires all PHOTONS, RAD, FLUC flags.
Fixes:
1. An issue in MAIN to read C_CARRIAGE_RETURN.
2. Passing the length of character*(*) by value, from some routines in c.
Changes:
1. Removeal of some of unused variables in *.f .
2. Now BEAMBEAM can generate PhotonList due to beamstrahlung (coded by Ohmi-san, on-going).