Engineering Papers⌕ Search

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 55 records · Page 3

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↗

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↗

DASSH-F: Subchannel Based Thermal Analysis

The DASSH thermal analysis code is designed to rapidly allow a reactor design engineer to obtain flow rates requirements that satisfy peak temperature constraints in the domain. The advantage of using DASSH over a hand calculation is that it has a more rigorous treatment of the pin power distribution and coolant heat transfer within an assembly and between assemblies. The advantage of using DASSH over a conventional 3D subchannel code or a computational fluid dynamics code (CFD) is that it can obtain the desired solution in a matter of minutes in serial with minor computer memory needs. The DASSH methodology is virtually identical to SUPERENERGY-2 with additional functionalities taken from follow on work to SUPERENERGY-2 done at ANL in the 1980s. DASSH today is an integral component of the Argonne Fast Reactor analysis suite for reactor design work. DASSH obtains the power distribution from a coupled neutron-gamma heating calculation in GAMSOR (including DIF3D) at each time point of a companion fuel cycle analysis calculation with REBUS. The domain in DASSH assumes a hexagonal grid typical for fast reactors with much of the geometry information taken from the DIF3D model. DASSH assumes the assemblies that are loaded into each grid position are ducted to control the coolant flow. Considerable detail is given on the subchannel formulation of DASSH in this document. Much of the formulation and design of the code builds upon research done by previous authors with little new investigation. Thus the decisions made in developing the subchannel model used in DASSH have their origins over 50 years ago. Much of the heat transfer methodology in DASSH is built upon correlations for both the coolant mixing and heat transfer coefficients for pins and ducts. DASSH is thus not a rigorous treatment of a given problem, but a rapid assessment of the temperature field that has known limitations with respect to an experimental measurement or CFD calculation. The DASSH input and output are detailed along with usage of the software. The DASSH output provides tables of evaluated material properties and key coolant and pin temperature results. DASSH can create Python scripts that generate domain summary pictures. DASSH can also generate assembly temperature maps and VTK output files which allow the DASSH solution to be visualized. As the primary purpose of the DASSH software is to compute the coolant and fuel pin temperature distribution for a given model of a reactor, much of the output focus is giving the user quick summary tables needed to assess the performance of a given orifice flow specification. The present version of DASSH has a crude orifice search capability and an efficient orifice flow search capability. The flow search tries to meet user specified constraints for 1) peak 2-sigma clad midwall temperature, 2) peak coolant temperature, and 3) desired bulk outlet temperature. There are many development shortcomings in DASSH detailed in this document, but this version is functional for modern analysis needs. This document serves as the manual for the Fortran based DASSH software that was developed to replace the Python version of DASSH developed as part of the VTR program.

22 GENERAL STUDIES OF NUCLEAR REACTORS↗

Fifty Year Canon of Solar Eclipses: 1986 - 2035

A complete catalog is presented, listing the general characteristics of every solar eclipse from 1901 through 2100. To complement this catalog, a detailed set of cylindrical projection world maps shows the umbral paths of every solar eclipse over the 200 year interval. Focusing in on the next 50 years, accurate geodetic path coordinates and local circumstances for the 71 central eclipses from 1987 through 2035 are tabulated. Finally, the geodetic paths of the umbral and penumbral shadows of all 109 solar eclipses in this period are plotted on orthographic projection maps of the Earth. Appendices are included which discuss eclipse geometry, eclipse frequency and occurrence, modern eclipse prediction and time determination. Finally, code for a simple Fortran program is given to predict the occurrence and characteristics of solar eclipses.

Espenak, Fred↗

Modernization efforts for the R -Matrix code SAMMY [Abstract]

The R-Matrix code SAMMY is a widely used nuclear data evaluation code focused on the resolved range, which includes corrections for experimental effects. The code is still mostly written in Fortran 77, and uses a memory management system suitable for the time of its initial writing (1984). A modernization effort is under way to bring the code in-line with modern software development practices. A continuous-integration testing framework was added, automating the large existing set of test cases. It is run on every commit. The memory management was updated to current standard practices suitable for modern software analysis tools. The code can be obtained from https://code.ornl.gov/RNSD/SAMMY. The resonance parameters and covariance information are now stored in C++ objects shared by SAMMY and AMPX, the processing code that generates nuclear data libraries for SCALE. This allows for easier maintenance and access to the resonance parameters inside and outside of SAMMY. This feature is already used by accessing and changing parameters in memory in the Bayesian Monte Carlo Evaluation Framework for Cross Sections Nuclear Data and Integral Benchmark Experiments project, Further plans include the switch to the ENDF reading and writing routines in AMPX, as these routines are more robust, easier to maintain, and support more features. Of note here is support for the new GNDS format. Previously it wasn’t easy to share the full covariance matrix for evaluations containing more than one isotope due to limitations on the ENDF format; this is now supported in GNDS. The data are currently available in a binary SAMMY format and can be exported to GNDS to make them more widely available and sharable. The next step will be to use the same resonance processing code at 0K in AMPX and SAMMY as one of the available Reich-Moore R-Matrix formalism. The first step toward this goal is to isolate the reconstruction into a module that takes resonance parameters as its input and does not depend on SAMMY global parameters. This goal has been achieved and it should now be possible to more easily change the resonance formalism and add enhancements as the Phenomenological R-Matrix parameterization of direct, doorway, and compound nuclear reactions discussed elsewhere on this conference. This concerted modernization and enhancement effort provides multiple advantages to the nuclear data community. It will allow parameter optimization using enhanced formalisms, including experimental effects, that better match complex experimental data. Then those evaluated parameters can immediately be passed off to AMPX to be reconstructed with the exact same cross section model and be put into a data library for subsequent testing using SCALE and the Valid Benchmark suite or other suitable benchmark suites.

73 NUCLEAR PHYSICS AND RADIATION PHYSICS↗

Enabling Execution of a Legacy CFD Mini Application on Accelerators Using OpenMP

We describe the process and outcome of our efforts to port a legacy Fortran benchmark code to heterogeneous GPU-accelerated computing architectures using OpenMP. The benchmark code is one of the multi-zone NAS Parallel Benchmarks (NPB-MZ) called SP-MZ. This “mini-app” mimics the computation and data movement that is found in popular legacy and modern implicit computational fluid dynamics (CFD)solvers. Our objective was to examine how efficiently legacy Fortran codes can be ported to accelerators by leveraging OpenMP directives. We describe the development and optimization process and demonstrate the performance impact of various code modifications. We show select profiling results from the Nvidia nvvp profiler to help others diagnose and overcome performance issues in their own applications. We present results for two compute systems endowed with Nvidia V100 accelerators.

Ioannis Nompelis↗

Software reengineering

Today's software systems generally use obsolete technology, are not integrated properly with other software systems, and are difficult and costly to maintain. The discipline of reverse engineering is becoming prominent as organizations try to move their systems up to more modern and maintainable technology in a cost effective manner. JSC created a significant set of tools to develop and maintain FORTRAN and C code during development of the Space Shuttle. This tool set forms the basis for an integrated environment to re-engineer existing code into modern software engineering structures which are then easier and less costly to maintain and which allow a fairly straightforward translation into other target languages. The environment will support these structures and practices even in areas where the language definition and compilers do not enforce good software engineering. The knowledge and data captured using the reverse engineering tools is passed to standard forward engineering tools to redesign or perform major upgrades to software systems in a much more cost effective manner than using older technologies. A beta vision of the environment was released in Mar. 1991. The commercial potential for such re-engineering tools is very great. CASE TRENDS magazine reported it to be the primary concern of over four hundred of the top MIS executives.

Fridge, Ernest M., III↗