This release note outlines the modifications, additions, and/or removal of features of VARSKIN in moving from version 6.2 to 6.2.1. A set of 50 exhaustive test scenarios was developed for regression testing. VARSKIN 6.2 was run against that set and found to contain an error (see below); V6.2.1 was also run against that set and shown to provide appropriate results. These test scenarios will become part of our new regression testing as we move forward with VARSKIN improvements.
Inclusion of Po-212 (pure-alpha emitters). When selecting a nuclide that is not a photon or electron emitter (212Po is listed as a pure alpha emitter in the ICRP 38 and 107 databases), the output of SadCalc returns NaN for the spectrum values and may result in a program abort ("ERROR: Input string in incorrect format"). The issue was tracked down to an array beyond its bounds and a divide-by-zero error. The appropriate iterate loop is now used such that correct bounding is maintained. This will prevent the divide-by-zero from occurring. The result is that the Sadout file now outputs 0.0 instead of NaN.
Inclusion of N-16 (high-energy emissions). Nitrogen-16 emits very high-energy photons and electrons (out of the normal bounds for VARSKIN). At these high energies, due to selected functional fits, charged particle equilibrium (CPE) factors begin to flip to very large negative values after CPE has already been established. This occurs at distances near the edge of the 10 cm2 dose averaging plane. Near the end of this integration, the fit for the CPE function fails and significant negative numbers are averaged into the final dose calculation. Protection was added to ensure that path and range lengths cannot take on negative values. If this protection is activated, VARSKIN will set fcpe equal to 1.0, as required.
Spherical geometry distributed source error fix. Using the Distributed Source option for a sphere yielded results that were 75% of the expected value. Within the GUI, there is a routine that converts the distributed activity to total source activity. In one of the calculations, integer and real constants were combined causing a calculation mismatch. This error has been present since the first use of the GUI (V3.0). In addition to changing this instance of an integer to a real, the remainder of this source file was verified to ensure that constants that are part of real operations are entered as reals. Various modifications were carried out within this source file to ensure this real/integer consistency. This error was discovered while running the 50 new test scenarios.
Code Infrastructure Updates
Single FORTRAN DLL creation. The three FORTRAN executables (GamCalc, SadCalc, and VarCalc) were combined into a single dynamic-link library (DLL). This reduces the number of configuration items in the entire VARSKIN package and will allow for future improvements of passing information directly through memory versus text files through read-write statements. This results in tremendous run-time performance gains.
User input precision. The allowed user input precision was increased from 3 significant digits to 5 significant digits.
Conversion from fixed to free format. Work began on converting FORTRAN files from fixed-form format to the modern free-form format.
Removal of fort.20 file. A WRITE statement for debugging purposes was set to WRITE to UNIT 20 which was not previously defined. As a result, information was dumped to fort.20. This statement was removed as being not necessary and the file is no longer written.
Creation of MODULE constants. A MODULE was created to hold the FORTRAN project constants that are used throughout the FORTRAN program. This includes constants for
the TYPE definitions below.
Created standardized TYPE definitions. Standard TYPE definitions were defined in a newly create constants MODULE. This ensures consistent use of precision throughout the FORTRAN project. A precision of 15 digits is specified for REALs (double precision on most machines) with SDK (selected double kind) and INTEGERs were specified to contain 10 elements with SIK (selected integer kind).
Addition of an error log file. An error log file was defined to direct all output warnings and errors during the execution of the FORTRAN project. This was defined within the newly created MODULE constants.
FORTRAN program restructuring. A general restructuring and functionalization of the FORTRAN source was performed. This is included functionalizing certain methods for
organization and reuse.
Source directory clean-up. A general cleanup of directories was performed.
VARSKIN 6.2 corrects the functionality of photon attenuation with a single cover when entered on the main input GUI. In terms of the attenuation calculation, previous versions would ignore user inputs of cover thickness and cover density if they were entered on the main screen. No changes were necessary when using the multiple cover calculator
VARSKIN will print a hardcopy: In the past, a hardcopy of VARSKIN results was obtained by generating an HTML window and then printing that image. While that option still exists, the user now has the ability to print output directly to a local or network printer. In the lower right corner of the results window press “Print Results”. A data entry window will appear asking that the User enter a Title for the VARSKIN run. Enter the title, then press View to see the HTML on-screen version, or press Print Results to obtain a hardcopy.
VARSKIN is available in Spanish: In the upper left corner of the main window, the User will see a new drop-down menu option, “Language”. Clicking that option will reveal two languages, English and Spanish (more to come!). The User then selects their desired language. Functionality is identical for both options. Note that when the user selects a language (even if it’s the one currently in use), the “reset” function is activated, the data-entry window is cleared, and all options revert to their default values.
VARSKIN will handle mono-energetic radiations: The mono-energetic option is activated by selecting the “Add” button in the Radionuclide Library portion (top middle) of the main window. Leave the ICRP 38 radio button selected and press OK. Scroll through all nuclides to the end of the library; the last entry is “XX-MeV”. Enter the atomic number of the source (if different from water) and double-click XX-MeV (or single-click and press Add Radionuclide). A new Specify Energy window will appear to enter either or both photon and electron energy values. The minimum acceptable value is 1 keV and the maximum is 3 MeV for photons and 8 MeV for electrons. If the XX-MeV file already exists in the user radionuclide library, and the user goes through the process of entering new energy values, the file is over-written with the new selection of energies. The “dummy” nuclide established with this mono-energetic energy is assumed to have a very long half-life and to emit photons and/or electrons with 100% yield.
Erroneous high dose-rate calculations: Users reported that dose calculations for specific nuclides seemed to be much larger than anticipated, specifically 7Be, 95Nb, and 166mHo. Additionally, we note that the calculated dose became unusually high for relatively long exposure times from very short-lived nuclides. This task was to locate and repair any error(s) associated with high dose-rate calculations.
We determined that one error was occurring with nuclides having a large number of low-probability emissions of conversion electrons. The calculation of average electron energy for a given nuclide was corrected so that those conversion electrons did not drive the calculation of average electron range and hence dose. This correction took the form of only considering conversion electrons with yields greater than 1%. Many nuclides emit a large number of very low yield electrons and this greatly impacted (by orders of magnitude) average electron energy, maximum range, and the specific absorbed dose distribution (SADD). For nuclides that are pure electron emitters (e.g., 123I, 57Co, 123mTe, and 99mTc), the change in yield threshold to 1% had significant changes in the calculation of average energy, but minor effects on overall dose calculations.
The other issue of apparently large dose calculation was evident when calculating the dose for very short-lived nuclides. The VARSKIN code calculates the dose-rate for the skin exposures defined in the scenario. Total dose, either decay corrected or not, is then determined in the GUI based on dose-rate and exposure time. Prior to the fix (appearing in v5.3), the GUI calculation became very unstable when the exposure time exceeded approximately 20 half-lives. This error was eliminated by simply limiting the dose integration (exposure time) to 20 half-lives, regardless of actual exposure. This change affects very few nuclides, except when exposure times become relatively large.
Off-axis angle: There existed an error in which the message, “Input string was not in a correct format” would appear when there was a significant difference between the radius of a volumetric source and the radius of the dose averaging disk. This suggested that when calculating the off-axis factor, the angle of correction became so close to zero that an arcsine calculation error was occurring. As it turns out, this was not due to a trigonometric error, but rather was caused by the code trying to calculate the square root of a negative number. This attempted calculation occurred when the location of the source kernel was near the edge, or outside of, the dose averaging disk. By limiting that parameter value to a minimum of zero, this error was resolved.
Air-gap limit: Participants at the 2015 RAMP training suggested increasing the current limit of 5 cm maximum air gap to something greater. This is a very easy change in itself, however running comparisons with MCNP will be important to verify that algorithms continue to be stable at some threshold distance. We increased the current air-gap limit from 5 cm to 20 cm.
The new look of VARSKIN: The development team has changed the look of VARSKIN to be more easily readable with dark numerals on white surfaces, and action buttons (e.g., Calculate Doses) are color-coded in green and red. This distinctive look is new for VARSKIN 5.3.