Engineering PapersSearch

SEARCH · Engineering Papers

Results for “Modern 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.

At least 37 records · Page 2

Updates and Modernization of the Chemical Equilibrium with Applications (CEA) Code

NASA’s Chemical Equilibrium with Applications (CEA) code is a foundational tool for propulsion system analysis. It provides equilibrium chemistry, rocket performance, shock, and detonation calculations used across NASA and the broader aerospace community. NASA Engineering and Safety Center (NESC) Activity TI-22-01730 modernized the legacy CEA2 Fortran code into CEA v3, a Fortran 2008, object-oriented software package with expanded interface support, updated thermochemical data, improved maintainability, and substantially improved workflow integration. The modernized code preserves backward compatibility with legacy CEA input workflows while enabling direct use from modern analysis environments, including Python, C, MATLAB, and automated design studies.

Combustion

Object-Oriented Scientific Programming with Fortran 90

Fortran 90 is a modern language that introduces many important new features beneficial for scientific programming. We discuss our experiences in plasma particle simulation and unstructured adaptive mesh refinement on supercomputers, illustrating the features of Fortran 90 that support the object-oriented methodology.

Fortran 90 Supercomputing Object-Oriented Adaptive

Generation of random geological models using multi-randomization for machine learning

Generating high-fidelity geological models is essential for advancing machine learning (ML) methods in automated seismic interpretation. For instance, seismic images paired with corresponding fault labels are foundational for ML-based fault detection from seismic migration sections. While several open-access datasets of random geological models exist, open-source tools specifically designed to produce large volumes of such models for ML applications remain scarce. To address this gap, we present RGM (Random Geological Model), an open-source software package for efficiently generating 2D and 3D synthetic geological models tailored for ML workflows. RGM supports the creation of diverse model components, including medium property distributions (P-/S-wave velocities and density), seismic reflectivity images (i.e., synthetic migration sections), relative geological time, and discrete fault attributes such as probability, dip, strike, rake, and displacement. It also accommodates the creation of complex geological features such as salt bodies and unconformities. The model generation algorithm employs a multi-randomization strategy, yielding an effectively infinite-dimensional model space that encompasses a wide range of geological scenarios and associated seismic features. Furthermore, RGM incorporates a method to generate synthetic elastic migration images using analytical elastic reflection coefficients combined with frequency-dependent scaling. This functionality enables the creation of training datasets for ML models that leverage elastic seismic images. RGM is implemented in modern object-oriented Fortran, allowing users to flexibly control statistical parameters governing model variability. We demonstrate the capability, performance, and geological realism of the package through comprehensive 2D and 3D examples.

58 GEOSCIENCES

A discrete Fourier transform for virtual memory machines

An algebraic theory of the Discrete Fourier Transform is developed in great detail. Examination of the details of the theory leads to a computationally efficient fast Fourier transform for the use on computers with virtual memory. Such an algorithm is of great use on modern desktop machines. A FORTRAN coded version of the algorithm is given for the case when the sequence of numbers to be transformed is a power of two.

Galant, David C.

LHC Event Generation in the Exascale Era

MCFM is a dedicated Monte-Carlo simulation program for collider phenomenology at highest energies. Designed during the Tevatron era, it has successfully incorporated the latest developments needed for LHC precision calculations and remained on the forefront of collider phenomenology. The Fortran code includes interfaces to modern PDF and loop reduction libraries but has been unchanged structurally compared to the earlier versions. Parallel computing has been enabled using OpenMP and MPI. MCFM provides numerically highly stable one-loop amplitudes and superior phase-space efficiency, leading to excellent performance in NXLO calculations using jettiness or qT subtraction techniques for IR regularization.

Campbell, John [Fermilab]

Development of a Turbofan Engine Simulation in a Graphical Simulation Environment

This paper presents progress on the development of a generic component level model of a turbofan engine simulation, with a digital controller, in an advanced graphical simulation environment. The goal of this effort is to develop and demonstrate a flexible simulation platform for future research in propulsion system control and diagnostic technology. A FORTRAN-based model of a modern, high- performance, military-type turbofan engine is being used to validate the platform development. The implementation process required the development of various innovative procedures, which are discussed in the paper. Open-loop and closed-loop comparisons are made between the two simulations. Future enhancements that are to be made to the modular engine simulation are summarized.

Parker, Khary I.

Development of a Turbofan Engine Simulation in a Graphical Simulation Environment

This paper presents the development of a generic component level model of a turbofan engine simulation with a digital controller, in an advanced graphical simulation environment. The goal of this effort is to develop and demonstrate a flexible simulation platform for future research in propulsion system control and diagnostic technology. A previously validated FORTRAN-based model of a modern, high-performance, military-type turbofan engine is being used to validate the platform development. The implementation process required the development of various innovative procedures, which are discussed in the paper. Open-loop and closed-loop comparisons are made between the two simulations. Future enhancements that are to be made to the modular engine simulation are summarized.

Parker, Khary I.

Software reengineering

Programs in use today generally have all of the function and information processing capabilities required to do their specified job. However, older programs usually use obsolete technology, are not integrated properly with other programs, and are difficult to maintain. Reengineering is becoming a prominent discipline as organizations try to move their systems to more modern and maintainable technologies. The Johnson Space Center (JSC) Software Technology Branch (STB) is researching and developing a system to support reengineering older FORTRAN programs into more maintainable forms that can also be more readily translated to a modern languages such as FORTRAN 8x, Ada, or C. This activity has led to the development of maintenance strategies for design recovery and reengineering. These strategies include a set of standards, methodologies, and the concepts for a software environment to support design recovery and reengineering. A brief description of the problem being addressed and the approach that is being taken by the STB toward providing an economic solution to the problem is provided. A statement of the maintenance problems, the benefits and drawbacks of three alternative solutions, and a brief history of the STB experience in software reengineering are followed by the STB new FORTRAN standards, methodology, and the concepts for a software environment.

Fridge, Ernest M., III

A core + modules approach to FORTRAN standardization

A framework for the revision of FORTRAN 77 is presented. There are two kinds of changes: features added to FORTRAN 77, and features remaining in FORTRAN 77 but not included in the core. The net effect of these changes is the following: (1) subroutine linkage facilities are enhanced to improve the interface with applications modules written in FORTRAN, (2) archaic control structures are replaced with modern ones, (3) the concept of storage association is removed, and (4) fixed-form source is replaced with free-form source.

Brainerd, W.

Computer-Aided Parallelizer and Optimizer

The Computer-Aided Parallelizer and Optimizer (CAPO) automates the insertion of compiler directives (see figure) to facilitate parallel processing on Shared Memory Parallel (SMP) machines. While CAPO currently is integrated seamlessly into CAPTools (developed at the University of Greenwich, now marketed as ParaWise), CAPO was independently developed at Ames Research Center as one of the components for the Legacy Code Modernization (LCM) project. The current version takes serial FORTRAN programs, performs interprocedural data dependence analysis, and generates OpenMP directives. Due to the widely supported OpenMP standard, the generated OpenMP codes have the potential to run on a wide range of SMP machines. CAPO relies on accurate interprocedural data dependence information currently provided by CAPTools. Compiler directives are generated through identification of parallel loops in the outermost level, construction of parallel regions around parallel loops and optimization of parallel regions, and insertion of directives with automatic identification of private, reduction, induction, and shared variables. Attempts also have been made to identify potential pipeline parallelism (implemented with point-to-point synchronization). Although directives are generated automatically, user interaction with the tool is still important for producing good parallel codes. A comprehensive graphical user interface is included for users to interact with the parallelization process.

Jin, Haoqiang

Splashdown Visualization of Spent Stages

The state of the art for many Earth-to-orbit trajectory analysis toolsets used at NASA is somewhat dated in terms of the languages they are written in and their user interfaces. Many of these programs are written in languages like Fortran or C that are no longer considered modern in the technology industry, and are command-line based without any means of interpreting the data outputs. This presentation is meant to demonstrate a specific use case for a newly developed web app that visualizes the output data for one of these tools. Specifically, one key usage is to investigate and validate launches for notional multi-stage vehicle concepts to various non-standard high-inclination orbits. Some NASA requirements dictate that trajectories be designed such that no surviving debris lands closer than 200 nautical miles (nm) from foreign landmasses or 27 nm from the continental United States, therefore validating re-entry locations of spent stages is an integral part of the launch planning process. In addition, at programmatic levels it can prove insightful and clarifying for the decision-making process to enhance the technical results of numerical simulations with visualizations. The intent with this tool is to provide the mission analyst and program level management with an intuitive and clear grasp of key information on possible mission scenarios either departing from or arriving at Earth, and in the future, the moon or Mars as well. The software tool was developed with an agile development approach and utilizes the latest frameworks and technologies. The front end uses the React JavaScript library for making a state of the art frontend and a backend based on the Django Python framework for handling data using Python’s powerful and free scientific libraries. In addition, the CesiumJS open-source library is key for visualizing these end-to-end trajectories on a high-resolution Earth model. The presentation will demonstrate the current capability and tested use cases.

Jack Agolli

Venus Global Reference Atmospheric Model (Venus-GRAM) Upgrades

Introduction: The Venus Global Reference Atmospheric Model (Venus-GRAM) is one of the most widely used engineering models of Venus’ atmosphere. The Venus-GRAM upgrades are being developed by NASA Marshall Space Flight Center (MSFC) and NASA Langley Research Center (LaRC). This presentation will provide details regarding the upgrades that have been made to Venus-GRAM and the ongoing objectives, tasks, and milestones related to the GRAM upgrades funded by the NASA Science Mission Directorate (SMD). Venus-GRAM: Venus-GRAM is an engineering-oriented atmospheric model that estimates mean values and statistical variations of the atmospheric properties of Venus. Venus-GRAM provides mean values and variability for any point in the atmosphere as well as seasonal, geographic, and altitude variations. Venus-GRAM outputs include atmospheric density, temperature, pressure, winds, and chemical composition along a user-defined path. It is extensively used by the engineering community because of its ability to create realistic dispersions. GRAMs have been integrated into high fidelity flight dynamic simulations of launch, entry, descent and landing (EDL), aerobraking and aerocapture. GRAMs are currently available for Earth, Mars, Venus, Neptune, Titan, and Uranus. The lower atmosphere model in Venus-GRAM (up to 250 km) is based on the Venus International Reference Atmosphere (VIRA) [1]. The Venus-GRAM thermosphere (250 to 1000 km) is based on a MSFC-developed model [2] which assumes an isothermal temperature profile initialized using VIRA conditions at 250 km [3]. The VIRA version included in Venus-GRAM includes Pioneer Venus Orbiter and Probe data as well as Venera probe data, but it does not include a solid planet model or a high-resolution gravity model [4]. Venus-GRAM Upgrade Status: Code Modernization. Venus-GRAM has been rearchitected from Fortran to a common object-oriented C++ framework called the GRAM Suite. This new architecture creates a common GRAM library of data models and utilities. The first C++ release of the rearchitected Venus-GRAM is a straight conversion from the latest Fortran version. Model Upgrades. The focus of the model upgrade task is to improve the atmosphere models in the existing GRAMs and to establish a foundation for developing GRAMs for additional destinations. The GRAM ephemeris has been upgraded to the NASA Navigation and Ancillary Information Facility (NAIF) SPICE toolkit (version N0066). The calculation of the speed of sound has also been improved in the GRAMs. In FY20, the GRAM project established contracts to improve the model data within Venus-GRAM. Hampton University is developing an empirical global model for Venus. The University of Wisconsin is reanalyzing the Venus Express radio occultation observations and analyzing the Akatsuki thermal imaging data. Upgraded Venus-GRAM Release. GRAM Suite Version 1.3 will be released in September 2021 and will contain the rearchitected Venus-GRAM, including the common GRAM framework and planet–specific code. A User Guide and Programmer’s Manual are released with all GRAMs. Conclusions: GRAMs are frequently used toolsets and vital in assessing effects of atmospheres on interplanetary spacecraft during the program life cycle process. Releases of the GRAM Suite, upgrades of the existing planetary GRAMs, and development of new planetary GRAMs are ongoing. Venus-GRAM atmosphere model upgrades will be included in the next phase of GRAM tasks. References: [1] Kliore, A. J. et al. (1985) ASR, 5, 11, 1-304. [2] Justh, H. L. et al. (2006) AIAA/AAS Astrodynamics Specialist Conference & Exhibit, Abstract AIAA-2006-6394. [3] Guide to Reference and Standard Atmosphere Models, BSR/AIAA G-003-2010. [4] Limaye, S. S. (2012), LPSC VEXAG Townhall Meeting. Acknowledgments: The authors gratefully acknowledge support from the NASA SMD.

atmospheric models

Enabling Parallel Performance and Portability of Solid Mechanics Simulations Across CPU and GPU Architectures

Efficiently simulating solid mechanics is vital across various engineering applications. As constitutive models grow more complex and simulations scale up in size, harnessing the capabilities of modern computer architectures has become essential for achieving timely results. This paper presents advancements in running parallel simulations of solid mechanics on multi-core CPUs and GPUs using a single-code implementation. This portability is made possible by the C++ matrix and array (MATAR) library, which interfaces with the C++ Kokkos library, enabling the selection of fine-grained parallelism backends (e.g., CUDA, HIP, OpenMP, pthreads, etc.) at compile time. MATAR simplifies the transition from Fortran to C++ and Kokkos, making it easier to modernize legacy solid mechanics codes. We applied this approach to modernize a suite of constitutive models and to demonstrate substantial performance improvements across different computer architectures. This paper includes comparative performance studies using multi-core CPUs along with AMD and NVIDIA GPUs. Results are presented using a hypoelastic–plastic model, a crystal plasticity model, and the viscoplastic self-consistent generalized material model (VPSC-GMM). The results underscore the potential of using the MATAR library and modern computer architectures to accelerate solid mechanics simulations.

Morgan, Nathaniel (ORCID:0000000276118449)

Concurrent file operations in a high performance FORTRAN

Distributed memory multiprocessor systems can provide the computing power necessary for large scale scientific applications. A critical performance issue for a number of these applications is the efficient transfer of data to secondary storage. Recently several research groups have proposed FORTRAN language extensions for exploiting the data parallelism of such scientific codes on distributed memory architectures. However, few of these high performance FORTRAN's provide appropriate constructs for controlling the use of the parallel I/O capabilities of modern multiprocessing machines. In this paper, we propose constructs to specify I/O operations for distributed data structures in the context of Vienna Fortran. These operations can be used by the programmer to provide information which can help the compiler and runtime environment make the most efficient use of the I/O subsystem.

Brezany, Peter

LARCRIM user's guide, version 1.0

LARCRIM is a relational database management system (RDBMS) which performs the conventional duties of an RDBMS with the added feature that it can store attributes which consist of arrays or matrices. This makes it particularly valuable for scientific data management. It is accessible as a stand-alone system and through an application program interface. The stand-alone system may be executed in two modes: menu or command. The menu mode prompts the user for the input required to create, update, and/or query the database. The command mode requires the direct input of LARCRIM commands. Although LARCRIM is an update of an old database family, its performance on modern computers is quite satisfactory. LARCRIM is written in FORTRAN 77 and runs under the UNIX operating system. Versions have been released for the following computers: SUN (3 & 4), Convex, IRIS, Hewlett-Packard, CRAY 2 & Y-MP.

Davis, John S.

Eigensystem realization algorithm user's guide forVAX/VMS computers: Version 931216

The eigensystem realization algorithm (ERA) is a multiple-input, multiple-output, time domain technique for structural modal identification and minimum-order system realization. Modal identification is the process of calculating structural eigenvalues and eigenvectors (natural vibration frequencies, damping, mode shapes, and modal masses) from experimental data. System realization is the process of constructing state-space dynamic models for modern control design. This user's guide documents VAX/VMS-based FORTRAN software developed by the author since 1984 in conjunction with many applications. It consists of a main ERA program and 66 pre- and post-processors. The software provides complete modal identification capabilities and most system realization capabilities.

Pappa, Richard S.

Outer Planet Global Reference Atmospheric Model (GRAM) Upgrades

Introduction: The Global Reference Atmospheric Model (GRAM) is one of the most widely used engineering models of planetary atmospheres. The GRAM upgrades are being developed by NASA Marshall Space Flight Center and NASA Langley Research Center. This presentation will provide details regarding the upgrades to the existing GRAMs, the development of new GRAMs, and the ongoing objectives, tasks, and milestones related to the GRAM upgrades funded by the NASA Science Mission Directorate (SMD). GRAM: The GRAMs are engineering-oriented atmospheric models that estimate mean values and statistical variations of the atmospheric properties for numerous planetary destinations. They provide mean values and variability for any point in the atmosphere as well as seasonal, geographic, and altitude variations. GRAM outputs include atmospheric density, temperature, pressure, winds, and chemical composition along a user-defined path. They are extensively used by the engineering community because of their ability to create realistic dispersions. GRAMs have been integrated into high fidelity flight dynamic simulations of launch, entry, descent and landing (EDL), aerobraking and aerocapture. GRAMs are currently available for Earth, Mars, Venus, Neptune, Titan, and Uranus. Outer Planet GRAM Upgrade Status: Code Modernization. The outer planet GRAMs have been rearchitected from Fortran to a common object-oriented C++ framework called the GRAM Suite. This new architecture creates a common GRAM library of data models and utilities. The first C++ releases of the rearchitected legacy outer planet GRAMs (Neptune and Titan-GRAM) are straight conversions from the latest Fortran version. Model Upgrades. The focus of the model upgrade task is to improve the atmosphere models in the existing GRAMs and to establish a foundation for developing GRAMs for additional destinations. The GRAM ephemeris has been upgraded to the NASA Navigation and Ancillary Information Facility (NAIF) SPICE toolkit (version N0066). The calculation of the speed of sound has also been improved in the GRAMs. In FY20, the GRAM project established a contract with Hampton University to develop empirical global models for Jupiter, Saturn, Uranus, Neptune, and Titan. Upgraded Outer Planet GRAM Releases. GRAM Suite Version 1.0 was released in May 2020 and contains the rearchitected Neptune-GRAM, including the common GRAM framework and planet–specific code. GRAM Suite Version 1.1 was released in September 2020 and added the rearchitected Titan-GRAM to the GRAM Suite. A User Guide and Programmer’s Manual are released with all GRAMs. New Outer Planet GRAM Releases. New GRAMs have been developed for Uranus and Jupiter. Uranus-GRAM is based on the NASA Ames Research Center (ARC) Uranus Atmospheric Model [1,2] and was released in GRAM Suite Version 1.2 in July 2021. Jupiter-GRAM is based on Galileo probe Atmospheric Structure Instrument (ASI) data from Seiff et al. [3] Saturn-GRAM is also under development. Both Jupiter and Saturn-GRAM will be released in future versions of the GRAM Suite. Conclusions: GRAMs are vital and frequently used toolsets. Releases of the GRAM Suite, upgrades of the existing planetary GRAMs, and development of new planetary GRAMs are ongoing. Titan-GRAM atmosphere model upgrades will be included in the next phase of GRAM tasks. References: [1] Allen Jr., G.A. et al. (2014) 11th International Planetary Probe Workshop, Abstract #8023. [2] Allen Jr., G.A. et al. (2014) Workshop on the Study of the Ice Giant Planets, Abstract #2001. [3] Seiff, A. et al. (1998) JGR, 103, 22,857 -22,889. Acknowledgments: The authors gratefully acknowledge support from the NASA SMD.

atmospheric models

GPU Implementation of the OVERFLOW CFD Code

The high-performance computing (HPC) landscape is quickly changing to systems where most of the performance comes from specialized chips, specifically graphics processing units (GPUs). Such GPU systems are throughput machines, where efficient use of the GPU often requires code refactoring to expose a few orders of magnitude more fine grain parallelism than was previously used on the CPU. Recent modifications to OVERFLOW, an overset, structured grid, computational fluid dynamics flow solver, written in Fortran will be presented. These modifications include both code modernization efforts and algorithmic changes to enable OVERFLOW to efficiently utilize GPUs. Many of these algorithmic changes would likely also be applicable for other structured grid, stencil-based codes wanting to utilize GPUs. The capabilities that have been ported to run on the GPUs are presented, along with the performance gains of the GPU version relative the CPU version of OVERFLOW.

GPU Programming