jerry.greenough@jgxsoft.com

Services

_. Fortran Modernization
_. Custom Software Development in C++ or Fortran
_. Analysis, Simulation and Modeling Software
_. Mathematical Model Implementation
_. Software Testing / Code Review


Fortran Modernization

The increased availability of computational resources from the 1960’s onwards in tandem with the formulation of high-level computer languages such as Fortran IV brought about a boom in the generation of computer-based predictive simulation software that was used in the solution of complex scientific and engineering problems. The software was typically applied to the areas of aeronautics, space exploration, nuclear engineering and structural design.

The majority of the software written for the various engineering industries in the 1960’s and 1970’s was written in Fortran IV, a language which by modern standards is somewhat limited in versatility, and which contains some constructs that today’s programmers would euphemistically describe as ‘deprecated.’ The notion of well-documented, structured source code was not always a priority for the programmers of the day. However, the software that was created from the source code of this era continues to work well.

The result of this is that there are many commercially available predictive software suites that to this very day still contain what is referred to as ‘legacy code.’ Whilst legacy Fortran code often works well, it has some notable disadvantages. Firstly, it is difficult to maintain and/or develop as its lack of structure makes it challenging to comprehend. Source code is much easier to debug and develop in a robust way when it is properly structured. Maintaining or extending functionality that is built from unstructured source code requires patience and experience. Manipulation of legacy Fortran source code necessitates an enormous amount of care during development if new errors are not to be introduced into the software. Secondly, it is becoming increasingly rare for graduate level employees to become involved with Fortran, particularly with some of its older incarnations.

The need to modernize may stem from one of several sources including performance issues, maintainability, unexpected behavior when when building on a new compiler / platform to name but a few. If you have a development requirement involving legacy Fortran source code and would like to investigate if careful modernization would help, then I would be very happy to discuss how I can be of assistance.

Back to Services


Custom Software Development

The complex and voluminous data that are output by commerical analysis software often require additional postprocessing before useful conclusions can be made. The ability of software vendors to adequately answer requests for additional functionality to address results interpretation and post-processing is often limited by constraints such as time and economic feasibility.

For this reason, it is sometimes desirable to have a simple utility program that will read the data and perform a very specific analysis task. The utility program may take the form of a command line executable or it might be delivered with a graphical interface.

If you would like to consider whether a custom-developed utility program (no matter how small) can complement your exisiting software tools, I'd be interested to talk to you about your requirements.

Back to Services


Analysis Simulation and Modeling Software

During my career I have acquired a great deal of experience in practical numerical programming in areas such as non-linear finite element analysis, mesh generation and geometric modeling. Much of my work has been contributory to commercial software including the SACS® suite (from Bentley Systems) for analyzing offshore structures as well as Femgv, a finite element pre- and post- processor. In each instance, the work has been underpinned by a solid, working knowledge of numerical linear algebra.

If you have a simulation product that involves numerical modeling through matrix-based methods (such as finite element analysis, finite differences) and you feel you could benefit from the assistance of someone who is experienced in scientific and engineering software, then please get in touch with me so that we can discuss the matter further.

Back to Services


Mathematical Model Implementation

Throughout my career there have been occasions when I have been presented with reports, documents and technical papers containing novel and detailed mathematical formulations for models of engineering and scientific phenomena. They have usually been accompanied by the requirement to digest the contents of the report efficiently and accurately, and subsequently implement the model as a library containing a suite of procedures to be used by in-house or in some cases production software.

When dealing with the implementation of third party mathematical models it is desirable, if possible, to open up an informed discussion with the authors in order to ascertain the limitations of the model (particularly with regard to its intended environment) as well as to collect any validation data that can be used for subsequent testing of the software.

Thereafter, it is essential that the implementation of the mathematical model be properly documented for both users of the software as well as future programmers and that a comprehensive collection of tests be developed for quality assurance purposes.

The successful implementation of a mathematical model rests on a combination of three skills: knowledge of software development, the selection and application of numerical algorithms and an ability to comprehend mathematically intensive reports. If this skill set if something you would like to investigate further, then I would be delighted to talk about your implementation requirement.

Back to Services


Software Testing / Code Review

Feature testing, unit testing and regression testing are the cornerstones of software QA. If you are interested in hiring someone to assist you in any of these areas, please don't hesitate to get in touch with me.

Peer review of source code is a healthy ingredient for the production of high quality software. An experienced second pair of eyes can often spot a problem that a compiler (even with the strictest of error checking) may not be able to detect. Code review can also help in promoting portability, maintainability, scalability and efficiency of the source code. The review process is also a key factor in encouraging a readable style of coding.

However, the peer review process has the potential to create challenges for interpersonal relationships in the workplace. Consequently, a diplomatic approach to code review is required in order for the process to be undertaken constructively. An independent reviewer has the advantage of being sufficiently detached from the regular work force to be able to minimize any adverse effect that an otherwise healthy critique might incur. Please contact me if you feel that an independent code reviwer is something that could benefit you, or even if you would like to have a second opinion on a passage of source code.

Back to Services


Jerry Greenough Jerry Greenough Jerry Greenough Jerry Greenough Jerry Greenough Jerry Greenough

Copyright © 2018 JGX Software Solutions LLC. All Rights Reserved.