ARTA Processes

Autoregressive to Anything (ARTA) processes are stationary time series with arbitrary marginal distributions and feasible autocorrelation structure specified through lag p.

ARTA processes are designed to be used as input to computer simulations.

For more on the theory of ARTA processes, see the paper (in Postscript) by Cario and Nelson.

ARTA Software

All ARTA software is Fortran source code that reads an input file and produces an output file; it is not interactive. The software is distributed "as is," without warranties of any kind, either express or implied. Please report problems to

The original portion of the software is copyrighted by Marne C. Cario and Barry L. Nelson 1996. The authors grant permission for unlimited personal use of this software without fee. However, no derivative works based on the software may be prepared, including embedding any portion of it in another software product, without permission of the authors.

Click to download the software you need. Latest Release: 1.1 (5/30/96).

Installation Notes

ARTAFACTS and ARTAGEN have been successfully compiled using standard Fortran compilers under HP-UX, SunOS, VMS and with Micrsoft Fortran.

General Notes

ARTAFACTS contains two Block Data structures that cause problems for some compliers. If problems arise, comment out or delete the Block Data structures, and un-comment the equivalent assignment statements included in the Main program.

Microsoft Fortran Notes

(notes courtesy of Jim Steinbugl at Ohio State University)

For anyone trying to compile and link under MS FORTRAN 5.1, the following hints might be helpful:

  1. Use the /Gt option on the FORTRAN compiler to get around the DATA SEGMENT problem. Without this option, the compiler will report something to the effect that "DGROUP data allocation exceeds 64K". Basically, the amount of data is to large to be held in one 64K segment of memory. Using the /Gt option tells the compiler to allocate multiple 64K data segments to the program.

  2. Using the inline 8087 emulator calls works well (I did not try inline 8087 calls).

  3. Trying to use the regular 8087 floating point calls or the regular 8087 emulator calls does NOT work. Both result in too much overhead and the result is a CODE segment overflow (i.e., the code segment overflows the 64K barrier).

  4. You MUST use the Optimize for SPACE option on the compiler. If you do not, the compiler will experience a heap overflow on the 3rd pass (i.e., the compiler runs out of dynamic memory space).

  5. Also, do NOT use any other optimizations (i.e., Optimize for TIME, LOOP Optimization, or Improve Floating Point Consistency) because this results in a heap overflow on the 3rd pass REGARDLESS of whether or not you have Optimize for SPACE turned on.