Doe software: scientific and engineering software for sharing

This presentation describes the methods used by the National Energy Software Center to facilitate the sharing of DOE software. The focus of the presentation will be on the materials requested of the developers and the software screening procedure.The National Energy Software Center (NESC) is the U. S. Department of Energy (DOE) software exchange and information center. Currently, the NESC collection contains approximately 1250 computer programs, which are licensed to installations on an indefinite use basis.In carrying out the objective of sharing software and transferring DOE developed applications to the information processing community, NESC has developed a checklist of recommended package elements, software screening procedures, and dissemination practices designed to enhance portability. The goal of these procedures is that software will be usable by individuals other than the author and operable in computing environments different from those in which they are developed. From the start of the development project, it should be planned that adequate documentation be provided and the software should be written to be transferable. The NESC has held installation representative (IR) meetings in 1984 and 1985 with the intent of improving communications with the IRs; these topics of documentation and portability were covered there.The recommended contents of an NESC software package are defined as the aggregate of all elements required for use of the software by another user. This is formed from two components: the computer-media material and the printed material.The material may include all of the following: Source decks (S), Run decks (B), Sample problems (P), Data libraries (L), Control information (C), Auxiliary information (X), and Documentation (R). Not all seven elements are required to successfully transfer every program but R, S, and P are almost always present.The documentation should include a definition of the required computing environment, should describe the software, and should provide the user with a guide for specifying input data and for interpreting the results. Sample input and output are considered to be very important in verifying the successful transfer of software. These sample problem data can be found in either the printed material or the computer-media material.The source language material is usually found on magnetic tape. ANSI standard languages are encouraged in order that the software be portable and assembly language should be used only when necessary. Extensions to standard languages should be avoided, and these can be found when using alternate compilers or machines. NESC discourages the reliance on operating systems to preset areas of storage to assigned values such as zero. Error conditions should come from the software rather than the operating system.If the software is sufficiently complex, it is essential for control information to be included. This would describe the assignment of devices, storage allocation, and overlay structure, if present. Difficulties with local control information are prevalent as this information is often customized.Data should be formatted in order to provide portability between machines with different word lengths and different number representations. Sometimes auxiliary routines are provided to move data to and from formatted representations and binary representation. Other auxiliary routines sometimes deal with graphics output.Run decks are the least common element present in NESC software. When accompanied by the equivalent source statements, it is a redundant element. Without the corresponding source statements, a run deck will enable limited interchange between users of similar systems.Software screening procedures consist of some quality assurance applied to all software contributed to the Center. Whether the software is implemented by NESC or not results in its being denoted respectively as evaluated or “As Is” software.The screening process consists of an initial review of the contributed material for completeness and an assessment of the readability of the computer-media and documentation.The pertinent details of the initial review are to note if items were omitted in the submission such as: documentation, sample I/O, an NESC abstract, or an NESC release form. A note should also be made if there are any binary files which might not be readily transportable.To insure readability of the author's submitted computer-media material, an NESC backup copy is made. This tape will usually be 9-track format, recorded at 1600 bpi, and unlabeled. A summary listing is generated describing the tape contents of the original tape by indicating the number of characters per record, records per file, and number of files on the tape.A complete listing of the tape is made to determine the contents of the contribution and for archival purposes. For source files, it is useful to generate a list of subroutine names, function names, and entry points. These listings of source and subroutine names are sometimes inconvenient to produce with many machine specific tapes such as: CDC Display code, UNIVAC's Fieldata, DEC backup format, and IBM CMS dump tapes. Binary files are dumped in hexadecimal representation.The status of a contribution has to be established upon the completion of this preliminary screening. If difficulties such as copyright problems, unreadable media, or the submission of an incomplete preliminary version of a program arise, the contributor is contacted and the material is either returned or the missing elements are requested. Some software is made available to NESC recipients “As Is”. Other software is taken through an evaluation process, which includes compilation, execution of sample problems, and a more detailed examination of the documentation. An NESC Summary or Abstract is prepared and sent to IR's when the software becomes an “As Is” or an evaluated package, respectively. Supplemental documentation is sometimes created by NESC to help subsequent users install the software on their own machines.Distribution is usually on magnetic tape, and it is essential that sufficient descriptive information be provided for the recipient to recover the material. Recipients of NESC software are notified should an error be detected, or revisions or a new edition of the software becomes available.