Here is my solution to Homework 9. Selection of method is via the
variable "f" set in DataM.f90. Default setup of this program runs
a transient to 0.8 seconds for 3 different time step sizes on three
different meshes and prints a file "errors.txt" giving results of
Richardson based analysis in space and time.

Files are:

trans.f90 - the main program driving the
calculation, plus a subroutine driving the transient calculation

DataM.f90 - Module containing most
variables,
and setting initial conditions for the problem

IntrTypeM.f90 - Sets precision level and number of digits in integers

LinAlgM.f90 -Module containing Linear
Algebra subroutines (Direct equation solvers)

OutputM.f90 - Module containing
subroutines
for output of results