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 37 records · Page 2

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↗

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↗

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↗

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↗

Software engineering

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. The Johnson Space Center (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 reengineer 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. The latest release of the environment was in Feb. 1992.

Fridge, Ernest M., III↗

Updated Integrated Mission Program

Integrated Mission Program (IMP) is a computer program for simulating spacecraft missions around the Earth, Moon, Mars, and/or other large bodies. IMP solves the differential equations of motion by use of a Runge-Kutta numerical-integration algorithm. Users control missions through selection from a large menu of events and maneuvers. Mission profiles, time lines, propellant requirements, feasibility analyses, and perturbation analyses can be computed quickly and accurately. A prior version of IMP, written in FORTRAN 77, was reported in Program Simulates Spacecraft Missions (MFS-28606), NASA Tech Briefs, Vol. 17, No. 4 (April 1993), page 60. The present version, written in double-precision Lahey FORTRAN 90, incorporates a number of improvements over the prior version. Some of the improvements modernize the code to take advantage of today's greater central-processing-unit speeds. Other improvements render the code more modular; provide additional input, output, and debugging capabilities; and add to the variety of maneuvers, events, and means of propulsion that can be simulated. The IMP user manuals (of which there are now ten, each addressing a different aspect of the code and its use) have been updated accordingly.

Dauro, Vincent A., Sr.↗

Creation of fully vectorized FORTRAN code for integrating the movement of dust grains in interplanetary environments

The main objective is to improve the performance of a specific FORTRAN computer code from the Planetary Sciences Division of NASA/Johnson Space Center when used on a modern vectorizing supercomputer. The code is used to calculate orbits of dust grains that separate from comets and asteroids. This code accounts for influences of the sun and 8 planets (neglecting Pluto), solar wind, and solar light pressure including Poynting-Robertson drag. Calculations allow one to study the motion of these particles as they are influenced by the Earth or one of the other planets. Some of these particles become trapped just beyond the Earth for long periods of time. These integer period resonances vary from 3 orbits of the Earth and 2 orbits of the particles to as high as 14 to 13.

Colquitt, Walter↗

Legacy Code Modernization

Over the past decade, high performance computing has evolved rapidly; systems based on commodity microprocessors have been introduced in quick succession from at least seven vendors/families. Porting codes to every new architecture is a difficult problem; in particular, here at NASA, there are many large CFD applications that are very costly to port to new machines by hand. The LCM ("Legacy Code Modernization") Project is the development of an integrated parallelization environment (IPE) which performs the automated mapping of legacy CFD (Fortran) applications to state-of-the-art high performance computers. While most projects to port codes focus on the parallelization of the code, we consider porting to be an iterative process consisting of several steps: 1) code cleanup, 2) serial optimization,3) parallelization, 4) performance monitoring and visualization, 5) intelligent tools for automated tuning using performance prediction and 6) machine specific optimization. The approach for building this parallelization environment is to build the components for each of the steps simultaneously and then integrate them together. The demonstration will exhibit our latest research in building this environment: 1. Parallelizing tools and compiler evaluation. 2. Code cleanup and serial optimization using automated scripts 3. Development of a code generator for performance prediction 4. Automated partitioning 5. Automated insertion of directives. These demonstrations will exhibit the effectiveness of an automated approach for all the steps involved with porting and tuning a legacy code application for a new architecture.

Hribar, Michelle R.↗