GENERAL STANDARDS
Standard: |
Provide source code for each physics module or code.
|
|
Standard: |
Provide test case(s) with driver program(s) with input and output data and their documentation.
|
|
Standard: |
Provide script to compile and link (e.g., makefile). Thescript should make at least some
provision for portability to multiple brands of UNIX (at minimum). Provide clear
documentation (possibly in the README file) on how to use the script or makefile.
|
|
Standard: |
Provide a README file giving (a) the name of the module andits authors, (b) the
location and form of general module documentation, and (c) information (or pointer
to more detailed documentation) enabling a user to build binariesfrom the source code.
|
|
Standard: |
Provide documentation about how the module should be used, for example, whether
the module needs to be initialized or used sequentially. Important usability issues,
such as the existence of state information in COMMON or other static memory, which
persists between calls, must be described.
|
|
Standard: |
Eliminate graphics calls embedded in physics modules.
|
|
Standard: |
The source code files (e.g. *.f, *.c, or *.cpp files) should be submitted rather
than requiring extraction from another file.
|
|
Standard: |
Authors may upgrade their modules with approval of the current chairperson of the NTCC
modules committee. If the upgrade is extensive, the chairperson can require that the
upgrade be subject to a full review.
|
|
Goal: |
Offer single and double precision versions or offer user control of
precision at compile time.
|
|
Goal: |
Provide error checking (but not stops).
|
|
Goal: |
Portability (code should run on multiple platforms and under different
operating systems).
|
|
Goal: |
Minimize external dependencies that cost money (i.e. avoid using expensive
proprietary licenses).
|
|
Standard: |
Supply warnings in the documentation when the above goal has not been met.
|
|
Goal: |
Arrays should be dynamically allocated.
|
|
Standard: |
The characteristics of I/O should be clearly documented(i.e. the implementation
of I/O unit numbers, if any).
|
|
Goal: |
Avoid using hard-wired I/O unit numbers. Allow informational output to be switched
on or off. Provide a method for rerouting warning or error message outputto a
user specified file or I/O unit number .
|
|
DOCUMENTATION STANDARDS
Standard: |
Provide name of contact person for support.
|
|
Standard: |
Provide date of last revision.
|
|
Standard: |
Provide at least comments describing module or code,citations to publications
(if any), and range of validity .
|
|
Standard: |
Specify the precision of floating point calculations.
|
|
Standard: |
Provide the index of input-output variables for each module (include type of
variable, dimension, units).
|
|
Standard: |
Provide statement of known bugs.
|
|
Goal: |
Index of modules, routines, variables.
|
|
Goal: |
Publication of code or module in journal (such as Computer Physics Communications).
|
|
Goal: |
Online hyper-text reference documentation.
|
|
Goal: |
Interactive online help menus.
|
|