Fortran package RMATRIX

Subroutine package to calculate the frequency-dependent transmission coefficients written by Colin J. Thomson.

Copyright (c) 1996 C. J. Thomson.
All rights reserved by the author

RMATRIX and associated programs may be used free of charge.

Compiling and linking program RMATRIX

Program 'rmatrix.for'

Main file 'rmatrix.for' contains Fortran 90 INCLUDE statements to include the files with the main program RMATRIX and the subroutines required. It is thus sufficient to compile and link single file 'rmatrix.for'. Note the below mentioned changes in the input data for program RMATRIX!

Used Fortran 90 features not present in Fortran 77

Names longer than 6 characters.
Underscores in variable names.
Variable declarations REAL*8 and COMPLEX*16.
COMPLEX*16 constants like (1.d0,0.d0).
DO loops without labels like DO I=1,6 ... END DO.

Intrinsic functions of the VAX/IBM extensions present in the source code

CDABS
CDEXP
DCONJG
DCMPLX
CDSQRT
DREAL
DIMAG

Changes in the source code made by L.Klimes

'rmatrix1.f'
The file has been split into main program 'rmatrix0.f' and subroutines 'rmatrix1.f'.
Originally the second line of the input data (read in subroutine INPUT) is now read as the first line of the input data in the main program.
Input logical unit number 10 has been changed to LU in subroutine INPUT.
Dummy arguments PX,PY,OMEGA of subroutine INPUT have been discarded and replaced with new dummy argument LU.
Prints to the console (device *) have been disabled.
Calls to output subroutines WRITE4, J1SYMTST and J2SYMTST have been disabled.
'rmatrix2.f'
All four calls to output subroutine WRITE1 have been disabled.
Limits for reporting of the rounding errors in subroutine LAYER have been moderated.
'isotroc.f'
The correction for the normal incidence has been supplemented.

The changes are mostly denoted by string 'c-LK'.

Running demo program RMATRIX

Demo input data are read from file 'rmatrix.inp'. Program RMATRIX generates output file 'rmatrix.out'. Note the above mentioned limitation of the output of program RMATRIX.

File list of package RMATRIX

(A) Documentation:
rmatrix.htm (this file)
(B) Demo program:
rmatrix.for File to be compiled.
rmatrix0.f Main program RMATRIX.
(C) Subroutines to calculate the transmission coefficients:
rmatrix1.f
rmatrix2.f
isotroc.f
aniso6cg.f
aniso6c1.f
aniso3c.f
deigv.f
cg.f
(D) Sample input data for program RMATRIX:
rmatrix.inp