The programs "fourd.f90 and fourdcu.f90 implement the scattering equations described in J. H. Richmond, "Scattering by a Dielectric Cylinder of Arbitrary Cross Section Shape." IEEE Trans. on Antennas and Propagation, vol AP-13, pp 334-341, May 1965. The output of these programs, out.dat, is a field strength around the dielectric cylinder as a function of angle. A similar program was used for parameter studies for the design of the AGM-129 Advanced Cruise Missile. See: http://www.fas.org/nuke/guide/usa/bomber/acm.htm and take a close at the picture that shows a number of missiles in the factory. These programs take two input files, wing.dat and source.dat The file wing.dat is generated by running the program airfoil.py. This generates a description of a wing. Airfoil.py can be run without any input parameters but it can take the number of cells in the decomposition. The file source.dat contains three lines. The first gives the method used to solve the linear system. It is one of the following: cgesv => use the LAPACK lu decomposition routine invert => a simple and slow matrix inversion routine cula => use the CULA version of cgesv *** The cula option is only valid for fourdcu.f90 *** The second line of source.dat gives the wavelength of the radar in meters. The third line gives the width of the radar beam in +/- degrees. The programs mkl.f, mkl.c, nrf.f90, and nrfcuda.f90 are some other test programs. The makefile contains options for several versions. fourd.mkl builds using the mkl version of cgesv and Intel compiler fourd.pg use Portland Group compiler and their non-optimized version of cgesv fourd use the NAG/g95/gfortran compiler and a version of cgesv based on routines form the Numerical Recipes in Fortran book fourd.cuda use the NAG/g95/gfortran compiler and the cula version of cgesv fourd.intel use the Intel compiler and a version of cgesv based on routines form the Numerical Recipes in Fortran book The makefile also creates the wing.dat file if it does not exist. As of Jan 28, 2010 the Portland Group and Intel compilers are now installed on cuda1. ****** My settings for cuda1.mines.edu are: #for cuda export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/cudaprof/bin:$LD_LIBRARY_PATH export PATH=$PATH:/usr/local/cuda/bin export PATH=$PATH:$HOME/cuda/bin/linux/release export MANPATH=$MANPATH:/usr/local/cuda/man export CUDA_INC_PATH=/usr/local/cuda/include #for cula export CULA_ROOT="/usr/local/cula" export CULA_INC_PATH="$CULA_ROOT/include" export CULA_BIN_PATH_64="$CULA_ROOT/bin64" export CULA_LIB_PATH_64="$CULA_ROOT/lib64" export LD_LIBRARY_PATH=$CULA_LIB_PATH_64:$LD_LIBRARY_PATH #for g95 export PATH=$PATH:/home/apps/g95/64/g95-install/bin #for nag export NAG_KUSARI_FILE=empower.mines.edu: #for Portland Group PGI=/opt/pgi export PGI # PATH if test -z "`echo $PATH | grep $PGI/linux86-64/10.0/bin`"; then PATH=$PGI/linux86-64/10.0/bin:${PATH} export PATH fi # MANPATH if test -z "`echo $MANPATH | grep $PGI/linux86-64/10.0/man`"; then MANPATH=$PGI/linux86-64/10.0/man:${MANPATH} export MANPATH fi