Before running gmake in this src-bin directory, using either the Makefile in this directory or a suitably modified one for the particular machine being used, it is necessary to create a numrec.f file. The park.f code needs to be linked with this and other files. This will be done by running gmake, since they are all referred to in the Makefile. However, the numrec.f file needs to be created. This is because the file we have used is copyrighted, so we cannot make it available on the web. The numrec.f file contains two subroutines from Vol. 1 of the second edition of Numerical Recipes (NR) by Press et al. (Press, W. H., S. A. Teukolsky, W. T. Vetterling, and B. P. Flannery, Numerical Recipes in Fortran 77, The Art of Scientific Computing, Second Edition, Volume 1 of Fortran Numerical Recipes, Cambridge University Press, Cambridge, New York and Melbourne, 933 pages, 2001 - originally published 1992.) These two subroutines are rkqs and rkck, and they are found on pages 712-714. These routines are not included in this package of earthquake programs distributed freely on the web site because the NR programs are copyrighted. However, they can be obtained at minimal cost from the publisher. Two ways to do this are 1) Go to the Numerical Recipes On-Line Software Store at http://www.nr.com, or 2) Get from Cambridge University Press by telephone at (800) 872-7423 in North America, or by email to orders@cup.org for North America or tread@cup.cam.ac.us for the rest of the world, or on the web at http://www.cup.org for North America or http://w2ww.cup.cam.ac.uk for the rest of the world. We used the Fortran77 versions of the two Runge Kutta subroutines, rkqs and rkck, namely the version in Volume 1 of 2nd Ed. of NR rather than the version in Volume 2. Nevertheless, we are using it with other Fortran90 code and in fact we make one modification to it that requires it to be compiled as F90. Several minor modifications have to be made to both of these subroutines, either due to the need to make them run with MPI in parallel, or to be sure the variable types are done consistently with the rest of the earthquake code. These changes follow. Note that the lines below that do not begin in column one are code and should begin either in column 7 or 6 as they do below. Those with a ! at the start are intended to be inserted as comment lines. The changes that need to be made in rkqs are: Add the following two lines right after the "SUBROUTINE rkqs(y, dydx, . . )" line: implicit real*8 (a-h,o-z) include 'mpif.h' In the 2 REAL type declaration lines, replace "REAL" with "REAL*8" Remove the "PARAMETER (NMAX=50)" line. In the second REAL type declaration line, replace "NMAX" with "n" (These two changes would be invalid in F77, but are allowed in F90 - this is the "automatic array" feature of F90) Add a third REAL type declaration line: real*8 errscratch ! scratch variable added for mpi call Add the following lines right after the line "errmax=errmax/eps": ! ! parallel: check other processors to get the maximum values of errmax call MPI_ALLREDUCE(errmax, errscratch,1, + MPI_DOUBLE_PRECISION,MPI_MAX, MPI_COMM_WORLD,ierr) ! errmax=errscratch ! End of changes in rkqs. The changes that need to be made in rkck are: Add the following line right after the "SUBROUTINE rkck(y,dydy, . . )" line: implicit real*8 (a-h,o-z) In the 2 REAL type declaration lines, replace "REAL" with "REAL*8" Remove the "PARAMETER (NMAX=50)" line. In the second REAL type declaration line, replace "NMAX" with "n" (in 6 places) (These two changes would be invalid in F77, but are allowed in F90 - this is the "automatic array" feature of F90) End of changes in rkck.