Errata for Quantitative Modeling of Earth Surface Processes: 1) p. 3: Equation 1.1 is incorrect. The minus sign in front of kappa should be a plus sign. 2) p. 14: Equation 1.15 is incorrect. In the denominator of equation 1.15, rho_s should be rho_a 3) p. 36: Equation 2.21 is incorrect. It should be "theta = 1 - h/h_0" instead of "theta = h/h_0 - 1" 4) 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))] 5) 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 realistic estimates for the flexural parameter in the central Andes in the immediate vicinity of the Bolivian Orocline. A better estimate for this region is alpha = 150 km, as noted on p. 119. 6) 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). 7) 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);" 8) A2.1&A2.2: In the programs for fillinpitsandflats and mfdrouting, lattice_size_x and lattice_size_y should be initialized prior to calling "setupgridneighbors();". so, the line "setupgridneighbors();" should be moved to immediately below "lattice_size_y=300;" 9) A2.3, p. 240: In the successive flow routing example, the subroutine call "calculatechannelslope();" in the main program should be replaced with "calculatealongchannelslope();" 10) 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;" Finally, in the main code, the line "if (K*sqrt(flow[i][j])>max) max=K*sqrt(flow[i][j]);" should read "if (K*sqrt(flow[i][j])*deltax>max) max=K*sqrt(flow[i][j])*deltax;" 11) A3.3, p. 251&252: In the code implementing the sediment flux driven model, the flexure component of the code needs modification. In the subroutine "void computeflexure()", each existing instance of delrho should be replaced with 1+delrho, a factor 4*delrho should be placed in front of each instance of pow(..), and the final line should read "{U[i][j]=load[2*(i-1)*lattice_size_y+2*j-1] /(lattice_size_x*lattice_size_y);}" Finally, in the main program, the line "if (capacity>X)" should be changed to "if (capacity>1/X)". 12) 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 placed in front of each instance of pow() in the Fourier filtering terms in the code. Finally, the reader should realize that the units of alpha differ 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. 13) A6.3, In the code for Werner's dune model, three changes are needed. 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. 14) 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);" 15) 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"). 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 have been fixed in the codes available in the online supplement and will be fixed in the second edition of the book. Please send any additional errors or points needing clarification to jdpellet@email.arizona.edu Jon Pelletier