Part of H. D. Knoble's Collection of Fortran Algorithms and Techniques. hdk at NOpsu dot SPAMedu, 17 November 2008 This file is at: http://ftp.aset.psu.edu/pub/ger/fortran/hdk/00-index.txt FILEID BRIEF DESCRIPTION append.for Standard Fortran 77 program to append (or create) a file. ArrayConstructor.f90 Examples of Array Constructors and Reshape ArrayExample.f90 Several posters solutions to an Array manipulation problem. AutomaticArray.f90 Illustrates how to use/allocate automatic arrays. BigNegInt.f90 Shows how to code the largest negative integer. bigrec.f90 Illustrates how to sllocate, fill and write a big unformatted logical record. bsrch.for Knuth's Binary Search algorithm. BubbleSort.for Simple Bubble Sort Algorithm. Also see Qsort*.for. byterand.f90 State-of-the-art Quasi-random number generator/sampler. cmxdhe.for Diagnalization of a Complex Hermetian Matrix. CheckMono.f90 Checks real number array for monotonicity; by Mike Metcalf. combenum.for Enumerate Combinations of an N-Vector. compare.for Shows compiler dependent codes for retrieving commandline options. compare.txt Documentation for compare.exe. counties.dat data file for exqsortc.for and exhash.for. CountCols.f90 Counts colums of each data input line. cpolydr.for Finds the Zeros of a complex polynomial. data.inp Sample input file for ReverseEndian.f90 datesub.for Date Arithmetic with correct refereed date routines. datesub.f90 F90 version of Datesub by Alan Miller. F-Compatible. deblank.f90 Example by James Giles of removing blanks from a character string. direct.f90 Direct Access example to preformat and read a DIRECT file. DPKindExample.f90 How to declare and use Real or Double Precision variables and constants. dq.f90 How to distinguish Real numbers from other character string input. dq.in Sample data for dq.f90 dyng.f90 Allocate a global array by Michael Metcalf. F-Compatible. dynmax.f90 Illustrates how to allocate the maximum possible DP array for this pltform. dyn7.f90 Dynamic Allocation of Arrays interactive test program. eigtest.dat Sample data for eigtest.for. eigtest.for Certification of Algorithm 343. eigtest.out Output from compiling/running eigtest.for on eigtest.dat. elemental.f90 Example of use of Elemental procedure. endian.f90 Tells whether computer binaries are Big or Little Endian. endian2.f90 Shorter alternative version of endian.f90 . enter.for Illustrates how to read a number and detect Enter key. enter.f90 Illustrates how to read a number and detect Enter key. eps.f90 Tolerant or Fuzzy comparisons, Floor/Ceil, Round functions. eps.for Tolerant or Fuzzy comparisons, Floor/Ceil, Round functions. estdst.f90 Computes Eastern Standard and Day Light Savings date changes. examplel.f90 Example of drastic significance loss. example1.txt Text File Explanation of example1.f90 example1.doc Word File Explanation of example1.f90 exchrows.f90 Example illustrating how to exchange rows of a matrix. exhash.for Sample driver for Hashing using Brent's Hashing. exinv1.for Sample driver for Matrix Solution using MOLAR package. exminv.for Sample driver for Matrix Inverse using LINV3F IMSL routine. exqsortc.for Sample driver for QSORT of Character array. extfloor.for Sample driver for Tolerant Floor Function. farray1.f90 Sample Fortran 95 function that returns an array; code #1. farray2.f90 Sample Fortran 95 function that returns an array; code #2. farray3.f90 Sample Fortran 95 function that returns an array; code #3. farray4.f90 Allocatable array allocated in Subroutine passed to Main. FindKinds.f90 Searches and displays the available real precisions. FloatingPointHDK.txt Short lecture on Floating-Point Arithmetic and Significance Loss. FuncOverSheets.xls Excel 2002 file showing how to overcom the 2**16-1 row (record) limit. fuzzloop.for Sample driver for real valued fuzzy do loop. gamma.for Gamma and Log Gamma function. gamma.f90 Gamma function and sample driver by "Robin". gauss.for Gaussian Quadrature example. getlun.f90 Example code to return next free Fortran Logical Unit Number. ginv.f90 Generalized Inverse from CACM 9(5):381-387 (May, 1966) by Rust, et al. gnuExample.f90 Shows how to write Gnuplot data and command files using Fortran. gray2bin.f90 Gray code to binary, and binary to gray code conversion. hash.for Brent's Hashing Algorithm. hashord.for Steve Wharten's Hashing Algorithm. ieee2ibm.for Subprogram to convert IEEE floating-point binary to IBM. ieor.for Exclusive OR function. intcat.f90 Illustrates concatenatination of integers to chararacter strings ('a'//n//'b')by James Giles interface.f90 Richard Maine's wisdom on explicit Interface, with example. int2string.f90 Converts integers to strings just long enough to hold respective integers. iso_varying_string.f95 Rich Townsend's Iso Varying Length String Module and sample driver. JExample.doc Word file illustrating how to append text to a Postscript file (Mathematica output file). KahanSum.f90 Illustrates and compares Kahn's Summation Algorithm by James Giles KahanSum.txt James Giles' companion prose to KahanSum.f90. KindExample.f90 An example of how to use KIND by Michael Metcalf. knuths.for Knuth's Sample of first K records of N records. LongString.f90 Example of how to split a string across two lines of F90 code. loopnest.f90 Run-time variable number of nested DO loops. lsfit.for Least Squares Fit example. lsrch.for Linear Search example. machparm.f90 Determine Some Floating-Point Machine Parameters. machparm.for Determine Some Floating-Point Machine Parameters. MathConstants.f95 Illustrates how to make a module with DP math constants in it. MathModuleDemo.f95 Illustrates how to handle math (DP) constants and functions within a module. MatrixMultOperator.f90 Illustrative F95 Example by Michael Metcalf and Jos R Bergervoet. mpiSim.html Web pointer to MPI Simulation package, mpiSim. MxoutDemo.f90 Real Square Matrix Print Demo nan.f90 Illustrates testing for NaNs. nonsqu.for Generate the first N non-square numbers. OptTest.f90 Illustrates that vector arithmetic (1/y, y a vector) may not be optimized by compilers. OptionalArgs.f90 Example of using Fortran 90 Optional Subprogram Arguments. overloading Example of overloading for combos of argument types and numbers. PackExample.f90 Pick specific elements of an array using Pack intrinsic. PackPick.f90 Pick elements of an array with certain properties using PACK intrinsic. permenum.for Enumerate Permutations of an N-Vector. perspec.for Yates Borden's subroutine generate 3-point perspective. prepend.f90 Illustrates how to read new data such that it is prepend to existing file. existing.dat ASCII input file required by prepend.f90 prepend.dat ASCII input file required by prepend.f90 primes.for Pedagogical program to find the first five prime numbers. Also see sieves.f90. primes.f90 Interactive example by James Van Buskirk. primesbench.f90 Primes Benchmark Example by James Van Buskirk and David Frank. PrivateModExample.f90 Why use general PIVATE statement by James Van Buskirk purdtest.dat Sample data for PURDTEST.FOR. purdtest.for Subroutine Purdy Test Program. purdy.for Subroutine Purdy, ACM Algorithm 536. QorDPrecision.f90 Illustrates how to us Quad Precision if compiler supports it; DP otherwise. qpnote.for Quadruple Division note. qsortc.for T.O.M.S. Algorithm 402, Quick Sort(Character). Bill Verity qsorti.for T.O.M.S. Algorithm 402, Quick Sort(Integer), Bill Verity RandKargl.f90 Illustrates use of intrinsics Random_number and Random_seed by Steven Kargl. Random.f90 Demo for using F90 Intrinsics Random_Seed and Random_Number. RecLen.f90 Shows how to use the Inquire function to compute record length of I/O list. RemoveCh.f90 Shows how to remove occurrence(s) of a character from a C String or a String. ReverseEndian.f90 Shows how to reverse an input file's Endian by reversing bytes in its words. ReverseVectorValues.f90 David Frank's Example of Array Constructor and use of Stride to reverse Vector elements. ReshapeDemo.f90 Demonstrates the Reshape Intrinsic. Reshape3D.f90 Illustrates how to reshape a 3D matrix via TRANSPOSE and RESHAPE. scale2.for Fuzzy Scaling routine. search.for Sample driver to time four searching algorithms. SelIntKind.f90 Example of using Double Length Integers. sieve.f90 Find prime numbers using array processing via The Sieve of Eratosthenes by Frederik Pohl. Spacingxemo.f90 Example of how to use Intrinsic Procedure Spacing to test for relative equality of reals. stream.f90 Stream Input routine and sample driver. Strings.f90 David Frank's string functions (as a module). strip.for Strips blanks from strings, Left, Right, or Both. substr.for Substring function example. testdumach.f90 Tests F90 code for computing Intrinsic Epsilon and compares same. TestNegativeZero.f90 Example how to test for negative zero (in imaginary part of complex number). TestSortAM.f90 Illustrates use of Quick Sort using functional programming style by Arjen Markus. TestSortAJM.f90 Illustrates use of Quick Sort by Alan Miller TestSortWHV.f90 Illustrates use of Quick Sort by Bill Verity TestSortWSB.f90 Illustrates use of Quick Sort by Walt Brainerd via Alan Miller. ticks.for Fuzzy Tick Marks for graphs. tree.for Knuth's Algorithm for Binary Tree search/traversal. ucaseCP.f90 Convert lower case letters to upper case, by Clive Page. ucaseRM.f90 Convert lower case string to uppercse by Richard Maine. ulcaseJA.f90 Convert a string's case, by John Appleyard. vchin.f90 Shows how to read formatted varying length ASCII records. VectorSubscripts.f90 Examples of using Vector subscripts with/without strides. w77stuff.zip Watfor77 documentation and example files. weibull.for Weibull Distribution parameter computations. weibull.inp Sample data for Weibull.for. xyzplh.zip F90 code for converting (back and forth) NAD83 Latitude and Longitude to earth centered XYZ values on the GRS80 ellipsoid. ----------------------------------------------------------------------------------------