Description

This is a Fortran program (46 procedures, over 1700 code lines, over 400 comment lines) which scans the three-dimensional space of Euler angles for a piezoelectric medium. For each scanned point of the angle space (i.e. crystal orientation) the program determines whether the surface acoustic wave exists or not. If it exists then the program calculates propagation parameters of the wave. The calculations are described in Ref. 3 and 4, where the formulae implemented in the program can be found. The calculation time for a crystal orientation is about 1 second on a 400MHz Pentium II PC.

The source file Saw.for lists procedures in the alphabetical order except for a few major procedures which are listed at the beginning. The following style conventions are used. Names of non-executable statements and names of parameters are written in upper-case letters. In names of procedures, lower- and upper-case letters are used freely to make the names more intelligible. All variables and parameters are local (except one variable) and are declared explicitly. In each procedure, the interface section and the implementation section are seperated by a comment line consisting of three colons. The interface section is intended to be self-contained; therefore, all arguments of a procedure are declared in its interface section, and remaining variables are declared in its implementation section. For the same reason, the main comment of the procedure is inserted into the interface section. Three non-standard statements (as comments) are employed in the interface section. The statement GETS lists input arguments and the external input (i.e. stdin and files). The statement GIVES lists output arguments and the external output (i.e. stdout and files). The statement USES lists subroutines and functions used in the procedure.

The logical organization of the program is given in the file Saw.dgm. Main comments of subroutines and functions explain details. The program reads from the standard input and writes to the standard output.

The input data are material constants and scanning parameters. The material constants should be given in Nye's form as in the file Saw-i.dgm. This is explained in the main comment of the subroutine GetDat.

The output data are error messages and wave parameters. They are written in the form shown in the file Saw-o.dgm. This is explained in the main comment of the subroutine WriteW. The error messages are listed in the file Saw.err.

Acknowledgment

The program has been suggested by Prof. E. Danicki, to whom the author is indebted for the idea of the main algorithm and for many detailed discussions helpful in writing and testing the program.