10.08.2013 Views

Code Manual for CONTAIN 2.0 - Federation of American Scientists

Code Manual for CONTAIN 2.0 - Federation of American Scientists

Code Manual for CONTAIN 2.0 - Federation of American Scientists

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

● ensures that modifications will promulgate in the correct order,<br />

● maintains the completeness <strong>of</strong> a set <strong>of</strong> modifications,<br />

● maintains the historical integrity <strong>of</strong> the code, and<br />

● provides a controlled means <strong>for</strong> reversing modifications, allowing a clean return to a<br />

previous well-defined baseline.<br />

To simplify the use <strong>of</strong> UPDATE emulators, <strong>CONTAIN</strong> developers are restricted to the use <strong>of</strong> a<br />

limited subset <strong>of</strong> Cray’s UPDATE features. These features include<br />

*deck to introduce a deck<br />

*comdeck to introduce a COMMON DECK<br />

*i to insert<br />

*d to delete or replace<br />

*compile to specify compile or source data set<br />

*/ to comment<br />

*purgedk to remove a deck.<br />

In addition to the above restriction, blank lines are not allowed in the update files.<br />

With the ongoing evolution <strong>of</strong> computing plat<strong>for</strong>ms, the <strong>CONTAIN</strong> code must be adaptable if it is<br />

to keep pace with the changing environment. Following <strong>CONTAIN</strong> 1.2,CMP[Tho91] will be used<br />

<strong>for</strong> creating updates. CMP is similar to UPDATE and has demonstrated compatibility in the<br />

workstation environment. Under the new environment, it will be possible to make changes to<br />

<strong>CONTAIN</strong> using a more direct approach than be<strong>for</strong>e, while still retaining the level <strong>of</strong> protection<br />

<strong>of</strong>fered by UPDATE. In this approach an old and new copy <strong>of</strong> the code will be kept in separate<br />

directories by each <strong>of</strong> the various developers and a “differences” program provided as part <strong>of</strong> the<br />

CMP tools will be used to generate code updates.<br />

CMP consists <strong>of</strong> four major functions to maintain computer programs and other data sets. The frost<br />

function is an UPDATE processor with system independent libraries that allow corrections and retain<br />

a correction history. Program libraries can be transported between systems without loss <strong>of</strong><br />

in<strong>for</strong>mation. The second function is a sorting processor that alphabetically sorts all subroutines,<br />

fimctions, and other program units allowed under FORTRAN 77. Another option allows <strong>for</strong> sorting<br />

<strong>of</strong> decks and comdecks in a program library. The third function is a differences and correction set<br />

generator that operates by finding differences between two files. An update correction set is<br />

produced to modi~ an update library. The fourth function is a collection <strong>of</strong> text file copying<br />

utilities. A complete description <strong>of</strong> the CMP utility is given in ReferenceTho91.<br />

An important part <strong>of</strong> <strong>CONTAIN</strong> configuration control is the concept <strong>of</strong> update freezing, introduced<br />

in Section D.2.3. Should a need <strong>for</strong> modifying a frozen update be discovered during internal beta<br />

testing, the modification would be implemented with a follow-on correction update. The follow-on<br />

O D-n 6/30/97

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!