Errata for Quantitative Modeling of Earth Surface Processes: 1) p. 14: Equation 1.15 is incorrect. In the denominator of equation 1.15, the rho_s variable should be rho_a 2) p. 36: Equation 2.21 is incorrect. It should be "theta = 1 - h/h_0" instead of "theta = h/h_0 - 1" 3) p. 60: Equation 2.79 is incorrect. The dh/dx term in the numerator on the right side (outside the brackets) should be d^2h/dx^2. The correct equation is dh/dt = kappa * (d^2h/dx^2)/(1-(|dh/dx|/S_c)^n) * [1 + n|dh/dx|^n/(S_c^n*(1-(|dh/dx|/S_c)^n))] 4) p. 113: This page states that a good estimate of the flexural parameter of the Central Andes is alpha = 100 km. This statement is misleading, and more explanation is needed regarding the values of alpha chosen in this chapter. The values alpha = 50, 75, and 100 km are used in Chapter 5 simply to illustrate the sensitivity of the flexural response of the crust beneath the Andes to variations in the flexural parameter. Of these three values, 100 km is the most accurate value. However, the values 50, 75, and 100 km are all lower than the best estimate for the flexural parameter in the central Andes in the immediate vicinity of the Bolivian Orocline. The best estimate for this region is alpha = 150 km, as noted on p. 119. 5) A1.4, p. 229-232: In the example of the ADI method applied to 2D diffusion, there are two errors. First, the variable "timestep" should be defined as a global variable instead of being defined in the main section of the code as it is in the printed text. Second, in the subroutine "hillslopediffusion" there are two sets of "for" loops that read "for (i=1;i<=lattice_size_x;i++) for (j=1;j<=lattice_size_y;j++) topoold[i][j]=topo[i][j];" Both of these loops should be removed from the code and one set should be placed at the beginning of the subroutine (currently, both loops are within the while loop, which is incorrect). These errors have been fixed in the online supplement. 6) A1.5, p. 233: In the code that integrates the Bessel functions in A1.5, the last line if the code should be "fclose(fp0);" instead of "fclose(fp2);" This has been fixed in the online supplement. 7) A2.3, p. 240: In the successive flow routing example, the subroutine call "calculatechannelslope();" in the main program should be replaced with "calculatealongchannelslope();" This has been fixed in the online supplement. 8) A3.2, p. 244: In the example of the stream power model code, the value of "fillincrement" defined in this code may need to be increased from 0.001 to 0.01. On some machines, using the value of 0.001 will result in a termination of the program due to insufficient memory (i.e. the recursive fillinpitsandflats subroutine calls itself too many times). Also, in the code the variable idum was declared but not defined. This does not cause the program to fail, but best results are obtained by assigning a negative integer value to idum, which is used as the seed for the random number generator. Different realizations of the model can then be obtained by varying the specific value of idum, e.g. "idum=-789;" or "idum=-321;" These problems have been fixed in the online supplement. 9) A3.3, p. 251&252: In the code implementing the sediment flux driven model, the flexure component of the code needs modification. First, the flexural parameter alpha has units of multiples of deltax, not in units of m, so in the code the line "alpha=100000; /* m */" should be changed to "alpha=200; /* units of multiples of deltax */" in order to set alpha = 100 km given the default value of deltax equal to 500 m. If the value of deltax is changed but the reader wants to keep alpha fixed to a specific value in km, then alpha must be changed accordingly because alpha is defined in terms of multiples of deltax. Any multiple can be used, however, not just integer multiples. Also, in the subroutine "void computeflexure()", the final line should read "{U[i][j]=delrho*(1-delrho)*load[2*(i-1)*lattice_size_y+2*j-1] /(lattice_size_x*lattice_size_y);}" instead of "{U[i][j]=(load[2*(iup[i]-1)*lattice_size_y+2*j-1]+ load[2*(idown[i]-1)*lattice_size_y+2*j-1]+ load[2*(i-1)*lattice_size_y+2*jdown[j]-1]+ 1)*lattice_size_y+2*jup[j]-1)/(4*4*lattice_size_x*lattice_size_y);}" Finally, in the main program, the line "if (capacity>X)" should be changed to "if (capacity>1/X)". These errors have been fixed in the online supplement. 10) A4.1, p. 256 and A4.3, p. 258: In the Fourier filtering programs provided for solving the flexure equation, there are several inconsistencies. First, the comment in the line "delrho=0.27; /* (rho_m-rho_c)/rho_m */" is incorrect. The value of deltarho corresponds to the ratio (rho_m-rho_c)/rho_c, not (rho_m-rho_c)/rho_m. The default value given is 0.27, which is a relatively high value for this parameter. Values closer to 0.20 correspond more closely to typical values of mantle and crustal density (i.e. rho_m = 3300 kg/m^3 and rho_c = 2750 kg/m^3). Also, in the code, the value of alpha is defined slightly differently than in the chapter, where it is defined as (4D/((rho_m-rho_c)*g))^(1/4). To be consistent with the book chapter and the conventional definition for alpha, a factor of 4*delrho must be added to the Fourier filtering terms in the code. This has been done in the online supplement. Finally, clarification is needed regarding the units of alpha in the 1D and 2D versions of the program. In the 1D version, alpha is defined in units of km. In the 2D version, an alternative approach is used and alpha is defined in terms of multiples of delta. 11) A6.3, In the code for Werner's dune model, there are three errors. First, in the main code, the line "if (mask[ijump][jjump]>0.1) p=1;" should be "if (height[ijump][jjump]0.1))" should be "while ((height[ijump][jjump]==0)||(mask[ijump][jjump]>height[ijump][jjump]))". Third, in the subroutine avalancheup, the lines between the "else" statment and the and of the subroutine should be replaced with "i=1; hshadow=height[i][minj]; count=0; while (count<=2*lattice_size_x) {count++; if (height[i][minj]>hshadow) hshadow=height[i][minj]; mask[i][minj]=hshadow; i=iup[i];hshadow-=0.5;}" The integer variable "count" must be declared in the avalancheup subroutine after this code is added. These errors have been fixed in the online supplement. 12) A7.1, p. 275: In the 1D Fourier filtering program, the line "realft(precyear,length,1);" should be "realft(precyear,2*length,1);" and the line "realft(precyear,length,-1);" should be "realft(precyear,2*length,1);" These errors have been fixed in the online supplement. 13) A7.2, p. 277: In the stochastic model of Pleistocene climate change, the variable "timestep" is misspelled on the 12th line of the main program (it appears as "timstep"). This error has been fixed in the online supplement. My apologies to the reader for these errors. The errors in the codes were introduced when the working versions of the codes used by the author were rewritten (but not adequately debugged) to make them more understandable to the reader. These errors will be fixed in the second edition. Please send any additional errors or points needing clarification to jdpellet@email.arizona.edu Jon Pelletier