SEARCH · Engineering Papers
Results for “Fortran”
Search indexed NASA NTRS and DOE OSTI research on propulsion, heat transfer, battery materials and energy systems. Follow report and document links to the original sources.
Quote a phrase for an exact phrase match. Source license links do not imply unrestricted reuse.
Fortran Package for Least Squares Curve Fitting and the Solution of Simultaneous Equations
Fortran subroutines for least squares curve fitting and solution of simultaneous equations
Fortran program for computation of Weber functions and their first derivatives
Fortran program for computation of Weber functions and first derivatives
Item program manual, Fortran IV version
Orbit calculation using Encke perturbation method and Fortran IV programming
Fortran IV program for calculation of thermodynamic data
Fortran IV program for calculating thermodynamic functions, fitting them to empirical equations, and calculating heats of formation and equilibrium constants
A set of Fortran IV subroutines for generating printed plots
Subroutines written in Fortran IV for generating printed plots as part of normal output
Innovative Language-Based & Object-Oriented Structured AMR Using Fortran 90 and OpenMP
Parallel adaptive mesh refinement (AMR) is an important numerical technique that leads to the efficient solution of many physical and engineering problems. In this paper, we describe how AMR programing can be performed in an object-oreinted way using the modern aspects of Fortran 90 combined with the parallelization features of OpenMP.
Position Paper - pFLogger: The Parallel Fortran Logging framework for HPC Applications
In the context of high performance computing (HPC), software investments in support of text-based diagnostics, which monitor a running application, are typically limited compared to those for other types of IO. Examples of such diagnostics include reiteration of configuration parameters, progress indicators, simple metrics (e.g., mass conservation, convergence of solvers, etc.), and timers. To some degree, this difference in priority is justifiable as other forms of output are the primary products of a scientific model and, due to their large data volume, much more likely to be a significant performance concern. In contrast, text-based diagnostic content is generally not shared beyond the individual or group running an application and is most often used to troubleshoot when something goes wrong. We suggest that a more systematic approach enabled by a logging facility (or logger) similar to those routinely used by many communities would provide significant value to complex scientific applications. In the context of high-performance computing, an appropriate logger would provide specialized support for distributed and shared-memory parallelism and have low performance overhead. In this paper, we present our prototype implementation of pFlogger a parallel Fortran-based logging framework, and assess its suitability for use in a complex scientific application.
phq: A Fortran code to compute phonon quasiparticle properties and dispersions
We here introduce a Fortran code that computes anharmonic free energy of solids from first-principles based on our phonon quasiparticle approach. In this code, phonon quasiparticle properties, i.e., renormalized phonon frequencies and lifetimes, are extracted from mode-projected velocity auto-correlation functions (VAF) of modes sampled by molecular dynamics (MD) trajectories. Using renormalized frequencies as input, the code next constructs an effective harmonic force constant matrix to calculate anharmonic phonon dispersions over the whole Brillouin zone and thus the anharmonic free energy in the thermodynamic limit ( N → ∞ ). A detailed description of all the input parameters and the subroutines is provided as well. We illustrate the use of this code to compute ab initio temperature-dependent anharmonic phonons of Si in the diamond structure.
Optimization and Portability of a Fusion OpenACC-based FORTRAN HPC Code from NVIDIA to AMD GPUs
NVIDIA has been the main provider of GPU hardware in HPC systems for over a decade. Most applications that benefit from GPUs have thus been developed and optimized for the NVIDIA software stack. Recent exascale HPC systems are, however, introducing GPUs from other vendors, e.g. with the AMD GPU-based OLCF Frontier system just becoming available. AMD GPUs cannot be directly accessed using the NVIDIA software stack, and require a porting effort by the application developers. This paper provides an overview of our experience porting and optimizing the CGYRO code, a widely-used fusion simulation tool based on FORTRAN with OpenACC-based GPU acceleration. While the porting from the NVIDIA compilers was relatively straightforward using the CRAY compilers on the AMD systems, the performance optimization required more fine-tuning. In the optimization effort, we uncovered code sections that had performed well on NVIDIA GPUs, but were unexpectedly slow on AMD GPUs. After AMD-targeted code optimizations, performance on AMD GPUs has increased to meet our expectations. Modest speed improvements were also seen on NVIDIA GPUs, which was an unexpected benefit of this exercise.
Time Series Fortran 90 Modules
This provides several Fortran for consistent handling of time series data. These are used by PNNL's MASS1 and MASS2 codes.
H2OI95: A Stand-Alone Fortran Code for Evaluating the IAPWS-95 Equation-of-State Model for Water
H2OI95 is a stand-alone Fortran code for evaluating the IAPWS-95 equation-of-state model (Wagner and Pruss, 2002) for the thermodynamic properties of water. It further evaluates the corresponding thermochemical properties of water consistent with the CODATA recommendations (Cox et al., 1989). The IAPWS-95 model is based on a model equation for the dimensionless Helmholtz energy for which the primary variables are the inverse reduced temperature and reduced density. Here is the absolute temperature (K), is density (kg/m3), and the subscript refers to the critical point of water (647.096 K and 22.064 MPa pressure in this model, for which is 322 kg/m3). The code solves four basic types of problems, distinguished by the specified inputs: 1, Temperature (K) and density (kg/m3) or reduced density 2. Temperature (K) and pressure (MPa). 3. Temperature (K) on the saturation (liquid-vapor equilibrium) curve 4. Pressure (MPa) on the saturation curve Each type of problem is run using a corresponding input (text) file. All but the first type of problem require iteration. For example, to solve for desired temperature and pressure, the reduced density must be adjusted to give the desired pressure. Iteration is accomplished using the Newton-Raphson method, though the secant method is also used in solving the fourth type of problem. H2OI95 has been used to conduct numerical studies of convergence and the problem of multiple numerical solutions, only some of which correspond to valid results. Obtaining valid results depends mainly on appropriate choice of starting values. The default values in H2OI95 appear to consistently lead to generally desired results. With modification (not addressed here), H2OI95 can be used to support SUPCRT92 (Johnson et al., 1992) and similar codes that compute chemical thermodynamic properties of species and reactions over a wide range of temperature and pressure (273.16-1273K and 0-1000 MPa).
Fortran Compiler Test Suite v0.1.0
There is no currently available, open-source, easily adapted test suite for checking a compiler's conformance to the Fortran Standard. The main innovation of this software is in the framework to make the test suite apply to a new compiler. Making it open-source will enable community contributions of the test cases. Single organization construction of a comprehensive test suite is something that would be financially infeasible.
H2OI95: A Stand-Alone Fortran Code for Evaluating the IAPWS-95 Equation-of-State Model for Water
H2OI95 is a stand-alone Fortran code for evaluating the IAPWS-95 equation-of-state model (Wagner and Pruss, 2002) for the thermodynamic properties of water. It further evaluates the corresponding thermochemical properties of water consistent with the CODATA recommendations (Cox et al., 1989). The IAPWS-95 model is based on a model equation for the dimensionless Helmholtz energy for which the primary variables are the inverse reduced temperature (τ = T cr /T) and reduced density ( δ= ρ/ρ cr ). Here T is the absolute temperature (K), ρ is density (kg/m 3 ), and the subscript “cr” refers to the critical point of water (647.096 K and 22.064 MPa pressure in this model, for which ρ cr is 322 kg/m 3 ). The code solves four basic types of problems, distinguished by the specified inputs: 1, Temperature (K) and density (ρ kg/m 3 ) or reduced density (δ) 2. Temperature (K) and pressure (MPa). 3. Temperature (K) on the saturation (liquid-vapor equilibrium) curve 4. Pressure (MPa) on the saturation curve Each type of problem is run using a corresponding input (text) file. All but the first type of problem require iteration. For example, to solve for desired temperature and pressure, the reduced density must be adjusted to give the desired pressure. Iteration is accomplished using the Newton-Raphson method, though the secant method is also used in solving the fourth type of problem. H2OI95 has been used to conduct numerical studies of convergence and the problem of multiple numerical solutions, only some of which correspond to valid results. Obtaining valid results depends mainly on appropriate choice of starting values. The default values in H2OI95 appear to consistently lead to generally desired results. With modification (not addressed here), H2OI95 can be used to support SUPCRT92 (Johnson et al., 1992) and similar codes that compute chemical thermodynamic properties of species and reactions over a wide range of temperature and pressure (273.16-1273K and 0-1000 MPa).
H2OI95: A Stand-Alone Fortran Code for Evaluating the IAPWS-95 Equation-of-State Model for Water (Rev. 1)
H2OI95 is a stand-alone Fortran code for evaluating the IAPWS-95 equation-of-state model for the thermodynamic properties of water. It also evaluates the corresponding thermochemical properties of water consistent with the CODATA recommendations. The IAPWS-95 model is based on a model equation for the dimensionless Helmholtz energy for which the primary variables are the inverse reduced temperature (τ = T cr /T ) and reduced density (δ = ρ/ρ cr ). Here T is the absolute temperature (K), ρ is density (kg/m³), and the subscript “ cr ” refers to the critical point of water (647.096 K and 22.064 MPa pressure in this model, for which ρ cr is 322 kg/m³). The code solves four basic types of problems, distinguished by the specified inputs: 1. Temperature (K) and density (ρ kg/m³) or reduced density (δ) 2. Temperature (K) and pressure (MPa). 3. Temperature (K) on the saturation (liquid-vapor equilibrium) curve 4. Pressure (MPa) on the saturation curve. Each type of problem is run using a corresponding input (text) file. All but the first type of problem require iteration. For example, to solve for desired temperature and pressure, the reduced density must be adjusted to give the desired pressure. Iteration is accomplished using the Newton-Raphson method, though the secant method is also used in solving the fourth type of problem. For the last three types of problems, H2OI95 has been used to conduct numerical studies of convergence and the problem of multiple numerical solutions, some of which are not physically valid. Obtaining valid results depends mainly on appropriate choice of starting values for the density. The default values used in H2OI95 appear to consistently lead to generally desired results. With modification (not addressed here), H2OI95 can be used to support SUPCRT92 and similar codes that compute chemical thermodynamic properties of species and reactions over a wide range of temperature and pressure (273.16-1273K and 0-1000 MPa). Version 1.1 of this software calculates an extended set of water properties, including some derivable solely from IAPWS-95, such as the isobaric thermal expansivity and the isothermal compressibility, and still other properties based on supplementary models sanctioned by IAPWS, including the dynamic viscosity, thermal conductivity, surface tension, and static dielectric constant, and various other properties (notably Debye-Hückel parameters) derivable from the dielectric constant and its partial derivatives with respect to temperature and pressure. A coding error in Version 1.0 was identified while testing the implementation of the viscosity model. This error is described in Appendix C. It mainly affects calculation of “higher order” properties such as compressibility and heat capacity near the critical point.
Automatically parallelizing batch inference on deep neural networks using Fiats and Fortran 2023 `do concurrent`
This paper introduces novel programming strategies that leverage features of the Fortran 2023 standard of the International Standards Organization (ISO) to automatically parallelize computations on deep neural networks. The paper focuses on the interplay of object-oriented, parallel, and functional programming paradigms in the Fiats deep learning library. We demonstrate how several infrequently used language features play a role in enabling efficient, parallel execution. Specifically, the ability to explicitly declare that a procedure is pure facilitates inference in the context of the language’s loop-parallelism construct `do concurrent`. Also, explicitly prohibiting the overriding of a parent type’s type-bound procedures eliminates the need for dynamic dispatch in performance-critical code. Finally, this paper uses batch inference calculations on a neural network surrogate for atmospheric aerosol dynamics to demonstrate that LLVM Flang compiler’s automatic parallelization of `do concurrent` achieves roughly the same performance and scalability as achieved by OpenMP compiler directives. We also demonstrate that double-precision inference costs 37–72% longer runtime than default-real precision with most values in the range 57-60%.
FORTRAN program flow chart is automatically produced
Computer under control of the flo-tran program automatically produces and updates flowcharts of fortran program source decks fed to it. The flowcharts are produced on either 35mm film or paper.
Fortran IV computer program for the evaluation of natural frequencies and unstable values of the thrust frequency for a circular cylindrical shell subjected to a gimbaled periodically-varying end thrust
Fortran IV computer program to evaluate natural frequencies and unstable values of thrust frequency for circular cylindrical shell subjected to periodically varying end thrust