Release Notes
Version 5.8 (8993) - October 09, 2025
SAS Version 5.8 includes bug fixes since the 5.7.2 release. For information on receiving SAS Version 5.8, please contact the Argonne Science and TechnologyPartnerships and Outreach (S&TPO) office. SAS is provided as a 64-bit executable for Intel-based Linux, macOS and Windows operating systems.
New Developments
MFUEL: Annular Metallic Fuel Performance Model
The SAS metallic fuel modeling routines have been updated to accommodate the modeling of annular fuel with a cladding inner liner. Several components of the MFUEL module have been revised and enhanced to better capture the physical behavior differences between annular and solid cylindrical metallic fuels.
In the annular metallic fuel configuration, a central void region exists and the fuel is bonded to the cladding. This design limits axial fuel elongation, causing radial swelling to occur primarily inward. Once the fuel is fully swollen at a specific axial location, its behavior resembles that of solid cylindrical fuel at the corresponding location. The annular fuel configuration includes a liner between fuel and cladding, which is assumed to prevent fuel cladding chemical interaction up to high temperatures (e.g., 1000 °C). Additionally, annular fuel pins do not contain in-pin sodium, which could offer benefits in spent fuel management and possible reduction in total fuel pin volume. However, maintaining bonding between fuel and cladding is a critical issue for effective heat transfer.
The mechanical analysis, plenum pressure, fuel-cladding chemical interaction (FCCI), in-pin sodium, and gap heat transfer models of the MFUEL module have been updated to model annular metallic fuels with a cladding inner liner.
The cladding inner liner is designed to prevent fuel-cladding chemical interactions during both steady-state and transient conditions up to a user-defined cladding inner temperature, beyond which the liner dissolves. FCCI models have been revised to ensure that no cladding inner wastage occurs up to the temperature limit of the liner.
The mechanical analysis model calculates radial and axial fuel pin displacements, contact stresses, and stress distributions based on elastic and permanent strain components at each time step. During steady-state conditions, the annular fuel is assumed to be in a soft contact condition, with inward radial swelling of the fuel and negligible interfacial stress between the fuel and cladding. Axially, the fuel is constrained by the cladding. Once inward fuel swelling is complete and the central void is closed, the fuel behaves like a solid cylindrical pin under hard contact conditions with the cladding. In this scenario, contact stress is determined based on the radial displacement of the fuel's outer surface and the cladding's inner surface. During transients, the annular fuel remains axially constrained by the cladding, with axial stress computed using the fuel and cladding axial displacements, while radial expansion continues inward. If cladding inner surface temperatures exceed a user-defined threshold temperature, the cladding inner liner is assumed to degrade, allowing for fuel cladding chemical interaction.
Plenum pressure is calculated considering the central void and the absence of in-pin sodium. Sodium infiltration into the fuel's open porosity is turned off, leading to a degradation in fuel thermal conductivity. Additionally, the gap conductance between the fuel and cladding has been updated to assume perfect bonding. A new SAS input allows users to define gap conductance as a function of time and axial nodes, enabling the study of reduced gap conductance due to debonding.
Limitations to the Annular MFUEL Model
The current modeling approach for annular metallic fuel assumes that the fuel and cladding remain bonded, ensuring high gap conductance between them. While a user-defined gap conductance model is available, it does not fully account for the physics of debonding or its impact on thermal, chemical, and mechanical models. The liner is assumed to maintain its integrity up to a user-defined temperature limit.
Although MFUEL models are applicable across a broad range of plutonium contents, the annular fuel models are specifically suitable only for low plutonium content fuels (<8 wt%). High plutonium content fuels exhibit brittle behavior and are prone to fracturing, making it challenging to establish and maintain bonding between the fuel and cladding.
MFUEL: Additional Modeling Options
Within the MFUEL model a number of different improvements were made since its original release in 5.7. Improvements include:
- introducing a user-defined sensitivity coefficient for tertiary creep in HT9 cladding,
- introducing sensitivity coefficients to the lanthanide diffusion coefficient, actinide diffusion coefficient, eutectic penetration rate, and the cladding thermal creep rate,
- adding a user-defined maximum time step size for transient calculations,
- implementing a Plutonium breeding/burning functionality,
- allowing users to select between the ideal gas law and the non-ideal, Van Der Waal’s, gas law for the plenum pressure calculation,
- updating the axial anisotropy function at high linear heat rates,
- updating the fission enhanced diffusion temperature,
- updating the pore compressibility factor,
- updating the diffusion coefficients and activation energy for the fuel clad chemical interaction models, and
- enabling multiple modeling options for D9 and HT9 cladding void swelling rates and user-defined void swelling and thermal creep rates.
OFUEL: Oxide Fuel Performance Model =
After several years of continuous development, SAS Version 5.8 includes the initial re-integration of a new oxide fuel model, OFUEL. The OFUEL model simulates oxide fuel behavior during pre-transient irradiation and transient conditions. OFUEL can be used for UO2 and MOX fuel with up to 35 wt% Plutonium content. In contrast to DEFORM-4, the legacy oxide fuel model in SAS, OFUEL utilizes mechanistic fission gas, fuel chemistry, and cladding failure models.
Fission Gas Behavior
The new fission gas behavior model now tracks fission gas in the fuel matrix, intragranular gas bubbles, and intergranular gas bubbles separately. During pre-transient irradiation, the intragranular gas is partitioned to dissolved gas in the matrix and gas in intragranular gas bubbles using correlations for the rate of gas trapping by the bubbles and rate of gas dissolution from the bubbles. During transients, intragranular gas bubble coarsening, their movement under the temperature gradient, and deposition to the grain boundaries are modeled using a rate theory model. The lenticular bubbles at intergranular sites are modeled as an intergranular gas bubble network. When the concentration of the intergranular gas bubbles exceeds a threshold value, tunnels form at the intergranular sites and gas release to the free volume of the fuel pin starts for the corresponding node. The impact of fuel chemistry evolution on the fission gas behavior is modeled by modifying the gas diffusivity as a function of the oxygen-to-metal ratio (O/M) of the fuel.
Fuel Chemistry
Fuel chemistry evolution directly affects thermal, mechanical, and fission gas behavior of oxide fuel. Volatile behavior of cesium is modeled by a rate equation such that fuel swelling due to cesium decreases at elevated temperatures. O/M of the oxide fuel is tracked as a function of burnup. The radial redistribution of oxygen under the temperature gradient driving force is also computed using a diffusion model for each axial location. The formation is Cs2MoO4 joint oxide gain (JOG) at the fuel outer surface and its effect on fuel swelling and gap conductance is modeled as a function of O/M evolution, burnup, temperature, and cesium concentration. It is also assumed that JOG formation rate is proportional to the fission gas release at the corresponding node. Cladding inner corrosion due to intergranular attack of cesium, iodine, and tellurium is modeled by a rate theory equation as a function temperature, O/M, and burnup. Finally, plutonium radial redistribution is modeled using a diffusion model based on thermo-transport theory. Plutonium redistribution and its effect the fuel melting temperature are taken into consideration.
Thermal Behavior
The fuel thermal conductivity and gap conductance models have been updated as part of the OFUEL development. Lucuta’s thermal conductivity model, which is based on JOYO MOX fuel database and which accounts for O/M, burnup, and porosity dependencies explicitly has been adopted. The MOX correlation has also been extended to model UO2 and low Pu bearing MOX fuels.
To compute the gap conductance between the cracked fuel surface and the cladding, it is assumed that the heat passes through the JOG layer and gas layer. The porosity in the JOG layer is conservatively assumed to be 50 % while computing the thermal conductivity. The conductance through the gas layer is computed using the modified Ross-Stoute model, summarized in Section 8.3.8 of the SAS user manual. The effective thermal resistance between the fuel outer surface and clad inner surface is used to compute the temperatures.
Fuel Pin Mechanics
New models have been introduced for simulating the fuel cracking, fuel hot pressing, and fuel clad mechanical interaction. Given the strain components of the fuel pellet and cladding, the interfacial pressure is computed iteratively. The new mechanics model is capable of predicting the mechanical behavior below the yield stress and creep rupture of the cladding during slow transient over power (TOP) conditions as well as the behavior above the yield stress and clad failure due to overloading during rapid TOP scenarios. Furthermore, the inwards fuel swelling/expansion behavior that is observed for irradiated annular MOX fuels, which is not capturable using the DEFORM-4 models, is well characterized by OFUEL.
Reactor Vessel Auxiliary Cooling (RVACS) Model =
Within SAS there are three different models which give users the ability to capture passive decay heat removal at the reactor vessel (RV) wall:
- a simple boundary condition model,
- a detailed model,
- and a coupling interface.
As a user moves from the simple boundary condition to the coupled model, approximations are removed at the expense of run times.
The SAS detailed RVACS model provides users with the ability to capture the quasi-static response of an RVACS using a representative geometry and user-defined friction and heat transfer correlations. Historically, the detailed RVACS model neglected any heat exchange that may occur at the lower guard vessel (GV) head. This approximation meant that all of the air entering the riser section of the RVACS was the same temperature as the air exiting the downcomer. In reality, some of the air exiting the downcomer will exchange heat with the lower GV head, providing some cooling to the lower GV and the surrounding structure.
The detailed RVACS model has been extended in Version 5.8, providing users with the ability to capture the heat exchanged in the area surrounding the lower GV head. Due to the geometry-dependent flow fields in this area, the extended SAS model does not try to explicitly represent the flow branching but instead provides users with the ability to define the flow split fraction. The air entering the lower GV head region exchanges heat with the GV based on the user-provided heat transfer coefficient and heat transfer area.
In addition to the geometry extension in the detailed RVACS model, SAS Version 5.8 introduces the ability for users to account for wall temperature effects in the heat transfer coefficient within the detailed RVACS model, and time and temperature dependent heat transfer coefficients within the simple RVACS model. These rather simple extensions of the existing models allow for a better representation of the RV and GV wall temperatures during different stages of a transient.
Summary of Changes
Developments
- An additional Oxide Fuel performance model, OFUEL, may now be utilized for annular and cylindrical mixed oxide fuel. (#208)
- The MFUEL fuel performance model has been updated to allow for annular, sodium-free metallic fuel. Additionally, the MFUEL model now allows users to define sensitivity coefficients for key fuel cladding chemical interaction parameters, utilize the real gas law when calculating the plenum pressure and account for changes in the plutonium concentration due to burnup. (#409,#413,#447)
- The MFUEL and OFUEL models may now utilize stainless steel 316, D9, HT9 or 15-15Ti cladding. Additionally, users may define custom cladding properties for void swelling and irradiation induced creep. (#438)
- The RVACS models within SAS can now account for lower guard vessel heat transfer, and wall temperature effects in the heat transfer coefficient between structures and air. (#427)
Bug Fixes
- A memory error in CLAP that prevented the TREAT R5 boiling cases from running to completion was resolved. (#434)
- A memory error in the control system related to the time delay block was resolved. This bug prevented simulations from taking a large number of small time steps. (#448)
- An indexing error within the OFUEL contact algorithm was corrected. This error prevented OFUEL from correctly detecting the contact state of the fuel and cladding. Additionally a unit error in the 15-15 Ti cladding properties was resolved. (#449)
Miscellaneous
- A unit test was created to verify that the distributed binary converters correctly parse the data within the binary files. (#412)
- The RVACS validation test cases (56 in total) were updated to correct for a typo in the `XLUNRV` parameter. Additionally, the RVACS validation input was restructured to leverage a common include file. (#414)
- The tools subdirectory within the SAS source code was cleaned to better reflect which auxiliary tools/scripts are supported under the SAS SQA program. Tools/scripts that are not supported under the SQA program were moved to a public Github [repository](https://github.com/Argonne-SASTools/SAS4A-SASSYS-1-Sandbox-Tools) (#415)
- The SAS Makefile was updated such that support for macOS was maintained pre- and post-Sonoma OS and pre- and post-Xcode 15 (#425,#433)
- The SAS Makefile was updated to prevent internal build targets from being included in the release package. Additionally, the user identification behavior within the SAS output headers was updated to reduce the number of changes that are tracked by svn. (#439)
- The SAS source code was updated to remove legacy registry entries. (#440)
- The SASTest python utility was updated to allow for directory copying in support of multiple include files. (#446)
Documentation
- The manual was updated to include a description of the TABLE block based extended reactivity feedback implementation. (#213)
- The manual restructured text was updated, allowing for pdf rendering using an Argonne-based template. (#430)
- The SAS Acceptance Testing Report (ATR) was updated to better align with EPRI commercial grade dedication guidelines. (#437)
Version 5.7.2 (7807) - October 21, 2024
SAS Version 5.7.2 includes bug fixes since the 5.7.1 release. For information on receiving SAS Version 5.7.2, please contact the Argonne Science and Technology Partnerships and Outreach (S&TPO) office.
SAS is provided as a 64-bit executable for Intel-based Linux, macOS, and Windows operating systems.
Summary of Changes
Bug Fixes
- Input checking for radial expansion reactivity feedback was updated to prevent user confusion. Additional clarification was added to the user manual on the intended use of IRDEXP. (#420)
Documentation
- Errata in Chapter 1, 2, 3, 5, 8, and 10 were corrected. (#421)
- The manual restructured text was updated, allowing for pdf rendering. Updates include:
- Corrections to syntax errors in the math environment,
- Automatic numbering and cross referencing of all equations, and
- Many other cosmetic changes. (#429)
- The spelling of SAS was normalized throughout the manual. (#428)
- The compilation instructions for the manual were upgraded. A requirements file and a virtual environment are now utilized to establish the compilation environment. (#426)
Version 5.7.1 (7266) - September 11, 2023
SAS Version 5.7.1 includes bug fixes since the 5.7 release. For information on receiving SAS Version 5.7.1, please contact the Argonne Science and Technology Partnerships and Outreach (S&TPO) office.
SAS is provided as a 64-bit executable for Intel-based Linux, macOS, and Windows operating systems.
Summary of Changes
Bug Fixes
- The PRIMAR-4 null transient algorithm was updated such that the energy contribution from direct element heating was correctly accounted for. This error only impacted the relative temperature drop IHX and SG models. (#416)
- The unit test scripts were modified such that all temporary files are created in a temporary directory. Additionally, the unit test scripts were updated such that the temporary directory is printed only if the
unit test fails. (#395)
- The PRIMAR-4 steady state algorithm was updated such that the adjustments to G2PRDR values cannot result in a negative loss coefficient. If PRIMAR-4 detects the adjustment to G2PRDR would result in a negative loss coefficient, a warning message is printed and the adjustment is not made. (#293)
Documentation
- Errata in Chapter 3 - 5 were corrected. Legacy figures in Chapters 2 and 3 were recreated to improve readability. (#411)
- The theory for the pump-bowl and pressurizer CV types was included in Chapter 5 of the manual. (#348)
Version 5.7.0 (7132) - June 30, 2023
The SAS4A/SASSYS-1 Version 5.7.0 release notes can be found at https://www.osti.gov/biblio/1988140
Version 5.6.0 (6296) - December 1, 2022
SAS4A/SASSYS-1 Version 5.6.0 includes new features and minor bug fixes since the 5.5.1 release. Significant updates are described below.
Summary of Changes
New Features
- Flow-dependent (Reynolds-dependent) orifice coefficients may now be specified in the core channels and in PRIMAR-4. (#341)
- The SAS core channel hydraulics model now supports the specification of a transition region friction correlation for single-phase flow in a wire-wrapped pin bundle. (#40,#362)
Bug Fixes
- Adjustments to the channel inlet orifice coefficients have been updated to avoid introducing a negligible (but non-zero machine precision, O(1E-16)) roundoff error to the channel with the highest pressure drop. (#371)
- Channel-dependent TABLE and FUNCTION blocks are now properly restored to their previous states following a restart. TABLE and FUNCTION blocks defined at the file scope are not affected by this issue. (#376)
- If decay heat precursor yields are scaled by the user-input BETAHT, this scaling is now maintained through a restart. (#380)
- The precision to which Pi is defined is now consistent throughout the code. This change has a minor impact on the evaluation of the homologous pump curves over the different quadrants of operation. (#369)
- Frictional losses are now treated explicitly in all pump elements rather than assuming they are captured by the pump head. (#364)
- An uninitialized variable in the legacy (EBR-II and centrifugal) pump models has been corrected. This issue does not affect the homologous pump models. (#379)
Documentation
- The manual now clarifies that control system function tables must be defined with the independent variable in ascending order. (#372)
- Errata in the documentation of homologous pumps have been corrected. (#241)
- Documentation of the coupling between the SAS core channels and PRIMAR has been significantly improved. (#382)
- Defaults for RELAM, HFPIHX, and HFIIHX are now documented in the manual. (#40,#381,#383)
Code Changes
- Minor changes have been implemented to improve interoperability with C language interfaces. This update provides support for compiling with the Intel Fortran 2022 compiler. (#387)
Miscellaneous
- Validation cases based on UIUC tests of natural circulation flow have been incorporated into the test suite. (#295)
- The software Copyright statement has been updated per Laboratory guidance. (#374)
- The internal testing script now provides an option to reduce the volume of output generated during regression testing. (#375)
Version 5.5.1 (5946) - August 13, 2022
SAS4A/SASSYS-1 Version 5.5.1 includes minor bug fixes and improvements to the 5.5 release. SAS is provided as a 64-bit executable for Intel-based macOS, Linux, and Windows operating systems.
Summary of Changes
Improvements
- Renamed the reporting file `fort.1` (enabled by input parameter `IFT1TM`) to "!MaxTemps.txt". (#252)
- Removed redundant code for compressible volumes. (#352)
- Eliminated a potential divide-by-zero error in the detailed RVACS model. (#357)
- Fixed a potential memory leak in PRIMAR-4. (#360)
- Resolved a potential segmentation violation that might occur when looking up the node of a temperature group associated with the new primary heat exchanger (PHX). (#361)
- Improved the reliability of steady-state initialization of IHXs and PHXs when the heat exchangers are grossly oversized for the initial conditions. (#365)
Documentation
- Added a description for the input parameter `IFT1TM`, which enables reporting of peak temperatures to a separate file. (#252)
- Corrected various errors in the manual. (#346)
Miscellaneous
- Corrected a typographical error in an internal regression test for lead and lead-bismuth properties. (#319)
- Added missing wall heat capacities in affected regression tests. (#347)
- Applied consistent repository properties to all source files to ensure common attributes such as native line endings. (#349)
- Updated the build environment to support running unit tests in debug mode. (#350)
- Updated platform-dependent compiler options. (#356)
Version 5.5.0 (5554) - February 16, 2022
SAS4A/SASSYS-1 Version 5.5 includes new features, improvements to code architecture, and a minor bug fix since the 5.4.2 release. Major updates are described below.
SAS is provided as a 64-bit executable for Intel-based macOS, Linux, and Windows operating systems.
Equivalent Circuit EM Pump Model
SAS includes a new electromagnetic (EM) pump model based on equivalent circuit theory. Equivalent circuit theory is a physics-based model which enables generalized systems-level modeling of EM pumps based on an electric circuit with components that represent the main responses of the pump. Two options are available: a detailed pump option where the characteristics of the electric components are defined by the user, and a simple pump option that infers component parameters with limited user input. Capabilities of the new model are intended to provide:
- generic control of the pump as a function of applied voltage and source frequency
- flexibility to model a wide range of ALIP designs without limitations to specific subsets of pump characteristics
- ability to model pump performance across a wide range of flow rates
Applied voltage and source frequency are provided through `FUNCTION` blocks, which means the new EM pump model can be controlled via the plant Control System.
Pump characteristics for the detailed model are provided by user-defined field functions (see next).
Field Functions
The `FUNCTION` block has been extended to support two-dimensional field interpolation. In addition to `TABLE`, `USER`, `CONTROL`, and `EXTERNAL`, function blocks support a new type, `FIELD`. Field functions utilize tabulated data to perform two-dimensional linear interpolation. The primary motivation for this is to support the new EM pump model that requires parameters that depend on both frequency and slip.
Variable RVACS Inlet Conditions
SAS now supports variable reactor vessel auxiliary cooling system (RVACS) air inlet temperatures and orifice coefficients. Previously, the code only allowed for a constant air inlet temperature and loss coefficient, specified by `TAIRVC` and `ORFIN`, respectively.
Two new input parameters, `IDRVACSTin` (INPMR4:1439) and `IDRVACSKin` (INPMR4:1440), can be used to identify time-dependent `FUNCTION` blocks to be used for the inlet temperature and orifice coefficient, respectively. Note that FUNCTION blocks may refer to a Control System parameter. Therefore, inlet conditions can be manipulated by the Control System.
Coupled SAS/CFD Compressible Volumes
Support for coupling PRIMAR-4 Compressible Volumes with an external CFD code has existed since 5.0. With Version 5.5, the state of coupling may be changed during a restart. For example, a long, steady-state transient may be executed without coupling to save computational time, followed by a restarted simulation where a coupled CFD model is added to the simulation.
It is up to the user to ensure that changes to the coupling state are consistent with physical reality.
Code Manual
Due to its size, the code manual is no longer included in the executable distribution package. Instead, it will be made available as a separate download.
Summary of Changes
New Features
- A new electromagnetic pump model based on equivalent circuit theory has been added. (#272)
- `FUNCTION` blocks now support two-dimensional (bi-linear) interpolation. (#322,#343)
- RVACS inlet temperature and loss coefficient can be time dependent. (#199)
- The use of a coupled SAS/CFD Compressible Volume may change during a restart. (#320)
- Input checking has been improved. (#248)
Bug Fixes
- An issue has been resolved where `TABLE` (interpolated) `FUNCTION` blocks may not initialize properly after a restart. (#337)
Documentation
- Numerous errata have been corrected in the code manual. (#279,#339)
Verification and Validation
- An extensive verification test suite has been added for lead-cooled reactors. (#185)
Code Changes
- Code and documentation builds are automated with Jenkins. (#297,#298)
- Compilation has been updated to use the Intel Fortran 2020 compiler. (#155,#161)
- Nearly all legacy memory management has been eliminated. (#289)
- Organization of PRIMAR-4 data management has been improved. (#344)
- Regression testing is more robust. (#290,#302)
Version 5.4.2 (5308) - December 17, 2021
SAS4A/SASSYS-1 Version 5.4.2 includes minor bug fixes to the 5.4.1 code release and considerable improvements to the code manual.
SAS is provided as a 64-bit executable for Intel-based macOS, Linux, and Windows operating systems.
Bug Fixes and Improvements
- Removed an undocumented input that would allow users to re-initialize input blocks during a restart. (#257)
- Resolved an issue in the calculation of acceleration pressure drop during steady-state initialization. Corrections to the related equations in the manual have also been made. (#307)
- Resolved a minor issue in the formulation of compressible volumes with cover gas. (#310)
- Updated a utility used to create input for sub-channel models to be compatible with the current build environment. (#321)
- Resolved an issue where an incorrect pressure may be used for a segment that flows into a compressible volume that is represented by an external CFD code. (#325)
- SAS now reports a more helpful error message if fuel type (`IFUELV` or `IFUELB`) is not defined for a channel. (#332)
Documentation Improvements
- A description of how arguments are handled by function blocks has been added to the manual. (#270)
- Extensive updates have been made throughout the manual to improve caption numbering and cross-references to tables, figures, chapters, and sections. (#308)
- Numerous errata have been eliminated in the code manual. (#315)
Internal Code Changes
- The build target used to create source distributions no longer requires an undistributed dependency. (#323)
- Unused Python plotting tools have been deprecated in the source tree. (#326)
Version 5.4.1 (4936) - June 1, 2021
SAS4A/SASSYS-1 Version 5.4.1 includes minor bug fixes and code improvements to the 5.4 release. In addition, the 5.4.1 release is compiled using the Intel Fortran 2020 compiler.
SAS is provided as a 64-bit executable for Intel-based macOS, Linux, and Windows operating systems.
Bug Fixes and Improvements
- Resolved an issue where coupling RVACS to an external code may fail if running multiple simulations on the same platform. (#278,#304)
- The Intel Fortran 2020 compiler release is now required for compiling the SAS source. (#301)
- Numerous errata in the code documentation have been corrected. (#224,#286,#288,#309)
- An array length mismatch in the detailed IHX calculations has been resolved. (#283)
- An assertion failure is no longer emitted if the code terminates prior to initializing internal timers. (#303)
Internal Code Changes
- Potential false positives during regression testing have been eliminated. (#239)
- Updated unit test names for thick-walled CVs. (#300)
- Regression tests that utilize a restart now link to a reference RESTART file. (#271)
- Environment variables are now automatically set when running unit tests on Windows. (#277)
- Sample code illustrating SAS-Gothic coupling now compiles without errors. (#287)
- The 5.4 branch is now included in the Jenkins build. (#305)
Version 5.4.0 (4526) - November 16, 2020
SAS4A/SASSYS-1 Version 5.4 includes several new features and improvements to the code architecture. Major updates are described below.
SAS is provided as a 64-bit executable for Intel-based macOS, Linux, and Windows operating systems.
Channel-Dependent Reactivity Feedback
The channel-dependent reactivity feedback models for fuel, cladding, coolant (void), and structure have been rewritten to support additional flexibility. Doppler and channel-independent reactivity feedback models have not been changed. As a result of the update, minor numerical differences consistent with machine precision may be observed when results are compared with previous versions of SAS. Other than differences due to machine precision, existing models will function as before.
Existing inputs for `FUELRA`, `CLADRA`, `VOIDRA`, and `STRCRA` are supported by the new model. However the updated model includes support for a more flexible input format that is not constrained by the axial core channel mesh. To use the new input, users can provide a table identifier to reference channel-dependent `TABLE`s that describe reactivity feedback coefficients. Note that the new input structure does not yet support boiling (TSBOIL), fuel melting (PINACLE), or fuel relocation (PLUTO and LEVITATE).
Two new input locations have been defined in `INPCHN` to support this functionality.
| Input | Location | Description |
|---|---|---|
| `ReactivityTable` | 543 | Table ID referencing new table-based reactivity feedback data. |
| `MassFractionTable` | 544 | Table ID referencing new table-based mass fraction component descriptions for fuel. |
If `ReactivityTable` is not zero and it references a valid input table block, then the columns of the table may override zero or more of the reactivity feedback components normally defined in `POWINC`. The `TABLE` block referenced by the `ReactivityTable` input parameter may contain the following columns:
| Column | Description |
|---|---|
| `LENGTH` (optional) | Axial lengths of the mesh intervals over which the reactivity feedback data in this table applies. The total length of all mesh intervals must match the length of the `MZ` or `MZC` mesh, depending on the value of `IREACZ`. If the `LENGTH` column is omitted, then the mesh is assume to be the same as the `MZ` or `MZC` mesh, according to `IREACZ` |
| `FUELRA` (optional) | Fuel reactivity worth for each axial mesh interval. If this column is present, the values for `FUELRA` in block `POWINC` are ignored. |
| `CLADRA` (optional) | Clad reactivity worth for each axial mesh interval. If this column is present, the values for `CLADRA` in block `POWINC` are ignored. |
| `CLADRA2` (dependent) | Second-order clad reactivity worth for each axial mesh interval. May only be present if `CLADRA` is present. |
| `VOIDRA` (optional) | Void reactivity worth for each axial mesh interval. If this column is present, the values for `VOIDRA` in block `POWINC` are ignored. |
| `VOIDRA2` (dependent) | Second-order void reactivity worth for each axial mesh interval. May only be present if `VOIDRA` is present. |
| `STRCRA` (optional) | Structure reactivity worth for each axial mesh interval. |
| `STRCRA2` (dependent) | Second-order structure reactivity worth for each axial mesh interval. May only be present if `STRCRA` is present. |
| any (optional) | Reactivity worth distribution(s) for multi-component fuel compositions. The interpretation of additional columns in this table is determined by the definition of the fuel mass fraction table (see below). |
If `MassFractionTable` is not zero and it references a valid input table block, then the columns must correspond to columns in the `ReactivityTable`. If the parameter `MassFractionTable` is zero, it is equivalent to defining a table with a single column labeled `FUELRA`, where all values are equal to 1.0.
| Column | Description |
|---|---|
| any | Mass fraction of fuel component “any” for each axial mesh interval in the original fuel (`MZ`) mesh. Column labels in the `MassFractionTable` must match a column label in the `ReactivityTable`. |
Reactor Vessel Cooling System Coupling Interface
Previously, SAS provided two options for representing a reactor vessel auxiliary cooling system (RVACS): a table lookup option that defined heat rejection boundary conditions for the reactor vessel, and a more detailed model of an air-cooled RVACS system to predict heat rejection rates during a transient. A new option has been introduced that allows coupling with third-party models so that alternative reactor vessel cooling systems can be modeled.
The existing input `IRVOPT` has been expanded to recognize additional options:
| IRVOPT | Description |
|---|---|
| 0 | Use detailed RVACS model. |
| 1 – 12 | Use the simple RVACS model. IRVOPT is the number of entries in the table of h vs T. |
| > 12 | Use the simple RVACS model. IRVOPT is the function block ID for h(T). |
| -1 | Use coupled RVACS model, participate in null transient. |
| -1000 | Use coupled RVACS model, do not participate in null transient. |
| -1001 – -1012 | Use coupled RVACS model during transient, and simple RVACS model during the null transient. ABS(IRVOPT+1000) is the number of entries in the table of h vs T. |
| < -1012 | Use the coupled RVACS model during the transient, and function block ID ABS(IRVOPT+1000) for h(T) during the null transient. |
Negative values for `IRVOPT` invoke the new coupling interface. When coupling is active, SAS will exchange data with third-party software using the open-source ZMQ communication library. The different options for coupling only represent different ways in which the null transient is handled. When `IRVOPT = -1`, third-party software is expected to contribute to the null transient solution. The remaining options use internal code for solving the null transient to simplify the coupling process. Details of the coupling interface will be documented separately.
Additional positive values for `IRVOPT` are also recognized: When `IRVOPT > 12`, the simple model will obtain its boundary condition from a user-defined FUNCTION block.
15-15Ti Cladding Properties
Performance and failure assessment models for stabilized austenitic stainless steel (15-15Ti) cladding materials have been added to SAS. 15-15Ti was the reference cladding material for PHENIX reactor fuel and is now one of the candidate materials for some mixed oxide and nitride fueled sodium-cooled and lead-cooled fast reactor concepts. Descriptions of the model have been incorporated into the manual. To use the new models, set `IDEFOPT > 0` and `ICTYPE = 4`.
Existing SAS inputs are utilized and new input locations have been defined to support the new models. New or modified inputs include the following:
In the `INPCHN` input block:
| ! Input | Location | Description |
|---|---|---|
| `IDEFOPT` | 497 | When >0, invoke the updated DEFORM-4 module. |
| `IDEFSTFAL` | 498 | When >0, invoke stochastic clad damage evaluation model as an additional analysis. |
| `ICTYPE` | 225 | When =4, use new 15-15Ti cladding properties (requires `IDEFOPT > 0`). |
| `MFAIL` | 86 | When =8, activate MOX fuel post-failure models upon new 15-15Ti cladding creep rupture. |
In the `PMATCH` input block:
| Input | Location | Description |
|---|---|---|
| `CDOSECONV` | 149 | Conversion factor from clad fast neutron flux (n/cm2/s/1.0E+22) to dose rate (dpa/s). |
| `COCOR` | 150 | Clad outer corrosion thickness prior to transient initiation (m). |
| `CDFMEAN` | 151 | Mean value of the normal distribution describing the predicted fraction of the fuel pins failed due to creep rupture as a function of the common logarithm of CDF. |
| `CDFSIGMA` | 152 | Standard deviation value of the normal distribution describing the predicted fraction of the fuel pins failed due to creep rupture as a function of the common logarithm of CDF. |
| `FSTRAN` | 1261 | Limits the maximum clad strain. It is essential to set a reasonable value, such as 0.02, for stability. |
Heavy Metal Coolant Properties Updates
Coolant properties for lead and lead-bismuth eutectic have been updated to be consistent with the 2015 edition of the OECD "Handbook on Lead-bismuth Eutectic Alloy and Lead Properties, Materials Compatibility, Thermal-hydraulics and Technologies".
Thick-Walled Compressible Volumes
Compressible volumes (CVs) now support a thick-walled approximation where multiple nodes are used to model the temperature distribution within the wall. This capability provides an additional option for representing thermal inertia of thick-walled structures.
To invoke the feature, users define a value for `ThickWallTableID` (INPMR4, Location 1414) that references a user-defined table block with the following contents:
| Column Label | Description |
|---|---|
| `ICV` | ID of the CV using a thick-walled approximation |
| `nNodes` | Number of wall nodes in the thick-walled approximation. Must be greater than 2. |
| `kWall` | Wall thermal conductivity (W/m-K). |
| `tWall` | Wall thickness (m). |
Existing input locations are used to describe the CV geometry and other relevant parameters of the thick-walled CV.
Primary Heat Exchanger Model
Previously, SAS provided two options for modeling an intermediate heat exchanger (IHX): a table lookup option and a detailed tube-and-shell heat exchanger option. The latter option requires a complete coolant loop on the secondary side of the IHX. A new option, referred to as a primary heat exchanger (PHX), is similar to the existing detailed model except it does not require a secondary-side loop. In this case, the secondary side of the PHX is represented by user-defined boundary conditions.
To invoke the new model, users define an extra element for the secondary side of the PHX, and assign that element as a negative value for `ILIHXS`. Boundary conditions for temperature and flow are defined by two function blocks specified by `iPHXTID` and `iPHXWID`. If the secondary coolant is different than the primary coolant, it can be specified by the new input `iPHXPRP`. A summary of the new input locations in `INPMR4` is shown below:
| Input | Location | Description |
|---|---|---|
| `ILIHXS` | 481-484 | Index of the secondary element in the heat exchanger. A negative value invokes the new primary heat exchanger model. |
| `iPHXPRP` | 1415-1422 | Coolant property selection for the secondary side of a primary heat exchanger. Default is `ICLPRP`. |
| `iPHXTID` | 1423-1430 | Function ID for the inlet temperature boundary condition of the secondary element in the Kth HX. |
| `iPHXWID` | 1431-1438 | Function ID for the mass flow rate boundary condition of the secondary element in the Kth HX. |
For practical reasons, flow reversal is not supported. Therefore, if the function referenced by `iPHXWID` changes sign during a transient simulation, SAS will terminate with an error.
Code Manual
Since Version 5.3, the code manual for SAS4A/SASSYS-1 has been maintained as reStructuredText and is compiled to HTML using Sphinx. Improvements continue to be made to the Sphinx-based documentation. The previously published (Word-based) PDF files are no longer included with the distribution, but a monolithic PDF is available for download from OSTI.
Summary of Changes
New Features
- The binary file `CHANNEL.dat` now includes the initial steady-state condition. (#32)
- New channel-dependent reactivity feedback models have been implemented in the code that support a more flexible input format. Existing input locations will continue to be supported. (#106)
- A new coupling interface has been added that allows third-party software to represent a reactor vessel cooling system. (#194)
- Properties for 15-15Ti cladding have been added to the code. (#171,#217)
- Coolant properties for lead have been updated to be consistent with the 2015 edition of the OECD "Handbook on Lead-bismuth Eutectic Alloy and Lead Properties, Materials Compatibility, Thermal-hydraulics and Technologies". (#172)
- Coolant properties for lead-bismuth eutectic (LBE) have been updated to be consistent with the 2015 edition of the OECD "Handbook on Lead-bismuth Eutectic Alloy and Lead Properties, Materials Compatibility, Thermal-hydraulics and Technologies". (#227)
- The core channel data acquisition system of the Control System has been extended to include temperature limits across a range of channels. (#205)
- Compressible volumes include the option of a thick-walled treatment where multiple nodes are used to characterize heat transfer through the vessel wall. (#232)
- The ALMR EM pump model can now be tripped by means of a user-defined function block. (#236)
- The detailed IHX model may now be used independent of a user-defined secondary-side loop. Boundary conditions for the PHX are provided by user-defined functions. (#240)
- SAS will now issue a warning if a previously defined input block is overwritten due to the parameter `IZERO`. (#258)
Bug Fixes
- A regression failure when using lead properties has been resolved. (#190)
- A few local variables in PINACLE and LEVITATE that might be uninitialized are now properly initialized. (#225,#226)
- A potential double allocation in the new reactivity feedback model has been eliminated. (#231)
- Format statements have been updated to be compliant with Fortran 2008 standards (#235)
- The user-specified initial conditions for a simple (table) heat exchanger are respected during a null transient. (#244)
- When multiple compressible volumes share a common cover gas, it is possible one may "overflow" numerically, resulting in a negative gas volume. This condition is now detected and reported as an error. (#259)
- Potential inconsistencies in the use of shell- and tube-side heat transfer coefficients have been resolved in the detailed IHX model. (#262)
- An error is now generated if a liquid segment connects to compressible volumes with different coolant properties (#263)
- A configuration error for unit tests on Windows has been resolved. (#273)
Documentation
- The documentation incorrectly stated that `ZPLENU` and `ZPLENL` have defaults. They do not. Incorrect statements have been removed. (#105)
- Documentation has been added to describe the existing ALMR electromagnetic pump model. (#164)
- Lead coolant properties are now documented in the manual. (#180,#209)
- LBE coolant properties are now documented in the manual. (#230)
- Definitions for user-defined coolant property coefficients are now included in the manual. (#222)
- Typographical errors in the detailed radial expansion equations have been corrected. (#238)
- Notations in the manual that DRACS capabilities are "not yet available" have been removed. Instead, the input for `ISGLNK` and `ICVNAK` are the accepted means for modeling decay heat loops in SAS. (#242)
- The description for input `IFT16` has been improved. (#246)
- The descriptions for `BTAPNA` and `BTATNA` have been improved, and specific references to sodium have been removed. (#260)
- Legacy PDF (Word) versions of the manual are no longer included in the distribution. (#269)
Validation
- Numerous validation cases for RVACS performance have been added to the internal test suite. (#198)
Code Changes
- Use of blank common has been significantly reduced, but not completely eliminated. (#19)
- The internal regression testing scripts have been updated to Python 3 (#186)
- Internal development scripts are now under the same version control as the source code. (#187)
- Compiler options have been modified to improve floating-point consistency across different platforms and architectures. (#233)
- Documentation is now internally built using Jenkins. (#249)
Version 5.3.2 (3957) - April 1, 2020
SAS4A/SASSYS-1 Version 5.3.2 includes minor bug fixes and code improvements to the 5.3.1 release.
Bug Fixes and Improvements
- Disabled compiler vectorization on a loop in the multiple-pin model that could result in segmentation violations.
- Added a tool to convert a CONTROL.dat file to a CSV file.
- SAS now reports an error if a PRIMAR-4 valve element is used but no valve property tables are defined.
- Several minor errors in the documentation have been fixed.
- Resolved issues with a small number of uninitialized variables when debugging.
- Resolved potential inexact floating-point exceptions when user-defined coolant properties are used.
Code Changes
- Updated README and COPYRIGHT files for release.
- Corrected a regression case on coolant properties.
Version 5.3.1 (3595) - October 12, 2019
SAS4A/SASSYS-1 Version 5.3.1 includes minor bug fixes and code improvements to the 5.3 release.
Bug Fixes and Improvements
- Corrected an error when interpolating constant-temperature material properties.
- Resolved an issue where some output may be written to the terminal when the command-line option
--outputis used. - Resolved an issue where the control-rod driveline expansion model might cause failures if there was full reversal of primary coolant flow.
- Various improvements to documentation in the user manual.
- Various improvements to formatting of the user manual.
Code Changes
- Added additional source comments to the RVACS routines.
- A Sphinx extension for syntax highlighting of SAS input files has been defined.
- Corrected an issue where regression tests might fail due to platform-dependent line endings.
Version 5.3 (3357) - April 15, 2019
SAS4A/SASSYS-1 Version 5.3 includes significant improvements to the code architecture and to the input processing capabilities. Major updates are summarized below.
64-bit Executable
SAS4A/SASSYS-1 and the supporting plotting tools are now being distributed as 64-bit executables. To support this transition, significant restructuring of the data management has been under way since the release of Version 5.0. In nearly all cases, users should not see differences in the numerical result when compared to Version 5.2.3. The known exception to this is when a model depends on the use of trigonometric functions, such as the sin function available in the Control System. In these cases, numerical results may differ in the least few significant bits.
Input Processing
The SAS Input Processor has been upgraded to include a pre-processor that supports two new features: free-formatted input and INCLUDE directives.
Free-formatted input may be used in integer and floating-point input blocks to simplify the preparation of input and to reduce errors. Free-formatted input differs from fixed-formatted input in that the location field is followed by a colon (:) rather than an integer specifying the number of input values to follow. Arbitrary numbers of space-, tab-, or comma-delimited input may follow the colon. For example:
INPCOM 1 1 1
# Fixed formatted:
# NCHAN
# |
1 1 5
#
# IPOWER
# | IPOWOP
8 2 0 0
# Free Formatted:
1: 5 ! NCHAN = number of channels
8: 0, 0 ! IPOWER, IPOWOP
END
The INCLUDE directive is similar to that used in Fortran, C/C++, and other programming languages. When an include directive is encountered in the main body of a SAS input file, the argument after the directive specifies a file to be read at that location as additional input for the SAS simulation. If the included file name has spaces or quotes, the argument must be quoted. Fortran conventions apply to quoting. The preprocessor supports nesting of include files to any arbitrary depth. For example:
INPCOM 1 1 1
1: 5 ! NCHAN
END
INCLUDE ChannelDefs.inp
...
Command-Line Arguments
SAS4A/SASSYS-1 now supports command-line arguments for specifying model input and output files. By default, SAS reads model input from standard input and writes simulation results to standard output:
$ sas.x < file.inp > file.out
As an alternative, the input file may be specified as the first positional argument:
$ sas.x file.inp
Command-line options may also be used:
$ sas.x --input file.inp --output file.out
Code Manual
The entire code manual for SAS4A/SASSYS-1 has been converted to reStructuredText and is compiled to HTML using Sphinx. The developers are aware that improvements will be needed in the Sphinx-based documentation. Therefore, the previously published (Word-based) PDF files are included with Version 5.3. However, new content and corrections will be incorporated only into the new markup format. Suggestions for improving the new documentation will be appreciated.
Summary
New Features
- SAS is now distributed as a 64-bit executable. Some very minor changes may be observed in simulation results that depend on trigonometric functions. (#149)
- Plotting utilities are now provided as 64-bit executables. (#152)
- The SAS input processor now supports free-formatted input for integer and floating-point blocks. (#134,#154)
- The SAS input processor now supports an
INCLUDEdirective so that model files can be composed from multiple input files. (#150,#153) - The Control System supports a Variable Lag Compensator as a new Block Signal. This is similar to a Lag Compensator, however the time delay parameter can be varied during a simulation. (#71,#160)
- The Code Manual is now distributed as a collection of HTML pages compiled with Sphinx. (#119,#137,)
- A binary file (
STRATCV.dat) can be generated that contains transient information on stratified compressible volumes. (#139)
Bug Fixes
- SAS would fail to terminate properly if an invalid value for
NTwas defined by a user. (#115) - Variables
ISSADXandIVIS3Dwere not previously defined in the manual. (#101, #103) - Units for heat of vaporization were corrected in the appendix of Chapter 12 of the manual. (#124)
- The temperature ranges for Eq. 10.3-5 in the manual have been corrected. (#143)
- The layout of Eq 9.2-6 was corrected in the HTML version of the manual. (#157)
- A typo in the definition of the Prandtl number in Eq. 5.4-122 has been corrected. (#158)
Code Changes
- The Control System now accesses PRIMAR-4 data through a Virtual Data Acquisition System. The implementation matches the new modeling features added in Version 5.2. (#87)
- The internal test suite has been improved to eliminate problems with cases that have liquid segments that bypass an IHX or pump. (#89)
- The internal test suite has been improved to define better job titles. (#90)
- The test suite has been expanded to include extensive nodalization tests. (#113)
- Data structures for the balance-of-plant model have been modernized. (#117,#121)
- Minor code cleanup to improve readability. (#122,#135)
- Analytical test suite has undergone an extensive internal review. (#136)
- Regression testing has been improved for better compatibility under Cygwin on Windows. (#142)
- Custom Sphinx plugins have been updated to support older (3.5) versions of Python. (#159)
Version 5.2.3 (3251) - January 24, 2019
Bug Fixes
- Fixed a minor issue with one of the built-in terms used to represent the decay of Pu-241 fission products. (#147)
Code Changes
- Fixed an issue with the regression script where it could fail if no cases were being executed. (#151)
Version 5.2.2 (3098) - October 12, 2018
Bug Fixes
- Step changes in programmed reactivity (`PREA`) at t = 0 are properly handled. (#123)
- User functions are no longer truncated to 32 characters. The maximum length is now 256 characters. (#125)
Code Changes
- Extensive unit testing of point-kinetics and decay heat has been added. (#123)
- Simplified implementation of "developer" build used for regression testing. (#127)
- Removed unused `AutoRef` source file from build configuration. (#128)
- Minor improvement to `make` configuration file to improve compatibility on Windows. (#129)
- Shortened some regression test filenames to be compatible with Windows path limitations. (#130)
- Improved compatibility of temporary directory creation for unit tests on Linux. (#131)
- Removed references to unused dynamic library (`libcrypto` on Linux) to improve compatibility with different Linux distributions. (#132)
- Reduced dependency on `-save` compiler option for better error detection. (#133)
- Sample cases distributed with SAS are now properly included in regression testing. (#145)
Version 5.2.1 (2848) - January 24, 2018
Bug Fixes
- `RESTART` files are not generated if `NSTEP = 0`, consistent with documentation. (#48)
- Eliminated a potential divide-by-zero error when the Young's Modulus for cladding and fuel are not provided in input. (#88)
- Corrected the declaration of a local variable used in debug print statements. (#91,#98)
- Corrected an issue where input parameter `IPRION` was not treated consistently when PRIMAR-4 was not being used. (#95)
- Eliminated a potential floating-point exception on Windows when debug prints are enabled. (#99)
- Eliminated a potential divide-by-zero error when predicting the time-step cutback in PRIMAR-4 if core channel flow rates are not changing. (#100)
- Corrected an issue where a non-zero value for `IFLOW` would impact PRIMAR-4 calculations. (#102)
- Eliminated a rare divide-by-zero error on Windows caused by poor CPU timing resolution. (#104)
Code Changes
- Removed unneeded compilation of `fpoptimizer` from the FParser library. (#81)
- Added support for "developer" build to simplify regression testing. (#85,#97)
- Updated copyright. (#86)
- Replaced non-standard calls to `ETIME` with calls to standard `CPU_TIME`. (#92)
- Corrected typos in the README file. (#94)
Version 5.2 (2568) - March 2017
New Features
- Control System models now have access to an extensive set of core and core channel state variables such as fuel, cladding, coolant, and structure temperatures; coolant flow rates and pressures; and several other parameters.
Bug Fixes
- All fixes from release 5.1.1 have been incorporated into 5.2
Code Changes
- Nearly all obsolete code constructs have been removed to bring the code into compliance with Fortran 2003 standards. (#82)
- Compiler options for Windows have been significantly revised for better consistency with macOS and Linux builds. (#79)
- `make source` now works on Linux (#83)
Version 5.1.1 (2524) - January 2017
Bug Fixes
- Corrected an issue in the input processor where integer input in a floating-point field would be interpreted with an assumed decimal point with five decimal digits. [2304],[2307]
- When input parsing fails in fixed-formatted input, a warning is printed if one or more tab characters was found. [2305]
- The `COMC` data structure is now fully initialized. (#69)
- Corrected an issue in the decay heat model where the 5^th^ decay heat region would not be properly initialized during steady state (#73)
- Corrected an array bounds violations error in the BOP module that produced different results depending on compilation options (#74)
Code Changes
- Removed unused character array processing routines (#61,#63,#64,#65,#66)
- SAS now reports errors if undefined element types or compressible volume types are detected in the PRIMAR4 input. (#68)
Version 5.1 (2238) - October 2015
New Features
- Full support for compiling on Mac OS X, Linux (x86), and Windows platforms.
- Consistent licensing mechanism across all three supported platforms.
- Support for user-defined input tables of arbitrary size.
- Support for user-defined input functions based on table lookup, scripted function, external plug-in, and control-system signals. Table lookup functions support linear, log-linear, spline, log-spline, and several other cubic interpolation options.
- Added binary "CONTROL.dat" file for logging control system signals during a simulation.
- Added conversion utility for reading "CONTROL.dat" file and generating Excel-compatible XML file.
- Input model files can now contain blank lines.
- Input files now require an explicit `ENDJOB` statement. Previously, a lone `-1` would qualify as an end-of-job indicator.
- Input blocks may be terminated by an `END` statement rather than specifying a data location of `-1`.
- Simulations that use the DIF3D-K Coupling Interface may specify radial, axial, and control-rod expansion models in SAS that are passed as additional feedback effects to the quasi-static solvers.
- Simulations that use the DIF3D-K Coupling Interface may include a Control System feedback model that will be passed as an additional feedback effect to the quasi-static solvers.
- Explicit control-rod motion may be specified in DIF3D-K Coupling Interface. Movable rod compositions are defined by new TABLE blocks and rod motions are defined by FUNCTION blocks.
- Initial steady-state flows in liquid segments in PRIMAR-4 may now be negative.
- Basic control system models that do not access PRIMAR-4 variables can be defined when only PRIMAR-1 is in use.
- The code now allows more than six delayed neutron precursor families in a `DLAYXS` file when `NPK > 1`.
- Extended interpretation of IPOBOI input to optionally terminate simulation when boiling is encountered.
Bug Fixes
- Corrected an issue where the acceleration pressure drop was not correctly evaluated for non-isothermal pipes.
- Corrected an issue with a missing `USE` declaration that led to a regression failure in an FPIN model.
- A lone `-1` in input is no longer interpreted as an end-of-job marker.
- Channel-dependent input arrays are now properly initialized and do not depend on compiler settings or relying on users to zero a block on first use.
- Corrected an issue in the DIF3D-K coupling interface where a lower fission gas plenum (IPLUC ≠ 0) was not handled properly.
- Issues with reading a restart file with multiple restart frames have been resolved.
- Corrected an array bounds violation that could result in improper null transient initialization with table lookup steam generators.
- Upper reflector temperatures are now printed correctly by the boiling module.
- Resolved an issue where job titles were mangled by the DIF3D-K output routines.
- Corrected a memory issue that occurred when a file-wide chi vector is not present in an ISOTXS file.
Code Changes
- Added distribution target builds to include licensing pre-flight checks in executable.
- Renamed GEOMIN common block in fpin to "FPGEOMIN" to avoid naming conflicts with original GEOMIN input block.
- Eliminated some code structures that led to optimization failures with the Intel 2013 compiler.
- All source code is now declared with `IMPLICIT NONE`.
- The `COMC` common block has been completely rewritten as two new modules.
- The `COLC` common block has been completely rewritten and merged into one of the new modules for `COMC`.
- The `PLUC` common block has been completely rewritten as a new module.
- Internal data structures for DEFORM-4 and DEFORM-5 have been completely rewritten as new modules.
- The common blocks for `ANEUTR`, `INEUTR`, and `RNEUTR` have been rewritten as new modules.
- Implemented significant refactoring of the DIF3D-K Coupling Interface to extract the transient driver as a separate source file.
- Eliminated legacy timers and checks on remaining CPU time that weren't enforced anyway.
- Source code has been improved to be more compliant with pre-processor requirements.
- Added an internal `sleep` function where the argument is interpreted in milliseconds.
- Added `svn:keywords` property on files that were missing the setting.
- Corrected some minor issues where dummy arguments were not declared with the correct shape.
- Debug build target now implements more aggressive checking for uninitialized variables. Some previously uninitialized variables are now properly initialized.
- The Control System module has been significantly refactored and is no longer dependent on PRIMAR-4 to operate.
- All FPIN code has been converted to free-format source style.
- Full source can be optionally compiled to produce "Mini SAS", which excludes severe accident and balance-of-plant modules and limits models to five channels.