Up: PCCM2 CODING STANDARDS
parallel model adopts the use of columnar physics modules
that are ``plug compatible''. The CHAMMP development group adopts
the guidelines set forth in ``Rules for Interchange of Physical
Parameterizations'', by Kalnay, Kanamitsu, Pfaendtner, Sela,
Suarez, Stackpole, Tuccillo, Umscheid and Williamson. These
rules are duplicated for reference purposes.
- A package shall refer only to its own subprograms
and the ANSI FORTRAN intrinsic functions.
- A package shall provide separate set-up and
running procedures, each with a single entry point.
All initialization of static data must be done in the set-up
procedure, and the running procedure shall not modify
the static data.
- All communication with the package shall be through
the argument list at the entry points.
- The package shall not use blank COMMON
- Arguments shall be clearly documented. In particular,
data items shall be defined in physical terms, and
identified as being: (1) needed on input
and not changed, (2) needed on input and modified, (3)
simply output, or (4) workspace; and EXTERNAL subprograms
shall be described in detail. All data shall be in SI units.
- The horizontal index shall be the innermost of FORTRAN
arrays. The range of this index processed on each call
shall be specifiable through the argument list.
- The number of levels the package uses shall be specifiable through the
- All dimensions of dummy argument arrays shall appear
in the argument list.
- No array index shall exceed its declared dimension.
- The package shall not use the STOP statement.
- I/O form the package shall be limited to
diagnostic output written to FORTRAN units specified in the
As point physics methods are developed these
should also be plug-compatible with the appropriate
extension and modification of the above rules.
John B. Drake
Wed May 15 09:51:22 EDT 1996