Comments concerning all codes.


m_script codes
These codes are the same as those that appear in the text with possible minor improvements and corrections. The codes were written and tested on a LINUX based machine, but should run on other platforms with the possible necessity of adding a file extension to the ASCII data files.

MATLAB codes
These codes use the built in functions and matrix algebra supplied with the student version of MATLAB. Hence, they are much more compact than the m_script codes and should run faster. The stiffness matrices are stored in MATLAB sparse matrix configuration and MATLAB's equation solver is used in all codes. For that reason, the Gauss elimination routines and the NEWNUM.m programs are not needed to run these codes. For courses which do not place emphasis on code development, these codes might be preferable to the m_script codes. In order to distinguish the MATLAB codes from the m_script codes (they both are *.m codes) the MATLAB codes begin with upper case letters.

FORTRAN codes
These codes follow the same structure as the m_script codes presented in the text and the correspondence should be easily understood by FORTRAN programmers. The major difference between these codes and the m_script codes is the necessity of dimensioning all arrays at the beginning of each program. To facilitate this, PARAMETER statements have been used in most codes for the purpose of dimensioning all arrays. These PARAMETER statements are placed in the codes through the use of INCLUDE statements. Hence, it is only necessary to change the parameter values in these files rather than the dimensions in each code. These parameter files, e.g. "param_mesh", must be in the working directory.

Some changes have been made for plotting results. MATLAB graphics can still be used to plot the output from the programs; however, if MATLAB is not available, several codes have been provided which create postscript files. The program topo.f is similar to topo.m, but plots contours only. However, the contours are plotted in color to help interpret their values. The mesh and newnum programs do not automatically make plots, but plots similar to those available with the m_script codes can be made using mshplt.f. Other graphical help can be obtained by clicking on GRAPHICSf. There are no codes for plotting 1D results (graphs). Any number of graphical packages can be used for this purpose, e.g. GNUPLOT, and some command files have been provided for those who wish to use GNUPLOT.

C codes
These codes also follow the same structure as the m_script codes presented in the text. Memory is allocated using malloc(); hence, there is no need to dimension matrices as was done in the FORTRAN codes. Because pointers are used, these codes are not as easily compared with the codes in the text. However, C-programmers should be able to make the transition.

The plotting packages are the same as those descirbed above in the FORTRAN section. Of course, if the user has access to MATLAB, the m_script codes can also be used to plot output from the C-programs.

Final comments
The author makes no claim to being an experienced programmer in all of these languages; hence, you may notice a lack of sophistication in many of the codes - my apologies for that. Other than the m_script codes, these codes have not been class room tested and there could be some errors lurking in them, although I hope not. However, if you do find any, I would greatly appreciate you letting me now at:

thompson@engr.colostate.edu


Updates in all codes will be made periodically, and will be posted on the text's web page by Wiley. However, you can always obtain the very latest update on my web page at:

http://www.engr.colostate.edu/~thompson/hPage/


Good luck, and do not hesitate to email me if you have any questions.