LLNL Home Page
Basis Home Page
More About Basis

More About Basis

What is Basis

Basis is the name of the program which results from loading the Basis System with no attached physics. It is a useful program for interactive calculations and graphics. Authors create other programs by specifying one or more packages of variables and modules to be loaded. A package is specified using a Fortran source and a variable description file in which the user specifies the common blocks to be used in the Fortran source and the functions or subroutines that are to be callable from the interactive language parser.

Basis programs are steerable applications, that is, applications whose behavior can be greatly modified by their users. Basis also contains optional facilities to help authors do their jobs more easily. A library of Basis packages is available that can be easily added to a program. The progammable nature of the application simplifies testing and debugging.

The Basis Language includes variable and function declarations, graphics, several looping and conditional control structures, array syntax, operators for matrix multiplication, dot product, transpose, array or character concatenation, and a stream I/O facility. Data types include real, double, integer, complex, logical, character, chameleon, and structure. There are more than 100 built-in functions, including all the Fortran intrinsics.

Basis' interaction with compiled routines is particularly powerful. When calling a compiled routine from the interactive language, Basis verifies the number of arguments and coerces the types of the actual arguments to match those expected by the function. A compiled function can also call a user-defined function passing arguments through common.

The Basis system includes many facilities designed to ease porting of Fortran codes among the supported platforms, including a Fortran preprocessor, MPPL, and a system for creating Makefiles for multi-platform, multi-directory development.

Basis runs on UNIX and Linux operating systems. It requires Perl 5.6 or later. Basis can be built with NCAR graphics, PGS graphics or with no graphics. If you build basis with NCAR graphics, then you need a license for the NCAR (National Center for Atmospheric Research). If you build basis with PACT then you can use the interface to PACT's PDB portable self-describing data files.

Originally authored by Paul Dubois, basis has been in continual use and development at the Lawrence Livermore National Laboratory since 1985. It is used in many programs here. Users can contribute to the library of packages.

We cannot promise support for users outside the Laboratory but we will answer questions if we have time. Please read the distribution instructions carefully before attempting to install basis.

Related Reading:

Dubois, P.F., "Making Applications Programmable", Computers in Physics, Jan/Feb 1994.

Brown, S.A., M. Folk, G. Goucher, R. Rew, "Software for Portable Data Management", Computers in Physics, May/June 1993.