BEDFORMS 3.0 for Macintosh Computer Programs for Simulation and QuickTime Animation of Bedforms and Cross-Bedding, Companion Diskette to Cross-Bedding, Bedforms, and Paleocurrents David M. Rubin U.S. Geological Survey MS-999 345 Middlefield Rd. Menlo Park, California 94025 dr@octopus.wr.usgs.gov NOTICE Macintosh, ImageWriter, and LaserWriter are trademarks of Apple Computer, Inc.; POSTSCRIPT and Adobe Illustrator are trademarks of Adobe Systems Incorporated. Use of these trademarks is for descriptive purposes only and does not constitute endorsement by the author or the USGS. TABLE OF CONTENTS INTRODUCTION PROGRAM INSTALLATION SINGLE-IMAGE OPERATION QUICKTIME MOVIES EXAMPLES OF OPERATION INPUT VARIABLES HARDWARE REQUIREMENTS AND RUN TIMES SOFTWARE SOURCES ACKNOWLEDGMENTS REFERENCE INTRODUCTION This disk contains a Macintosh program for mathematically simulating bedforms and cross-bedding. The program does not run on the Power Macintosh but runs on other Macintosh computers that have a math coprocessor. The disk also contains input files that can be used to reproduce the illustrations published by Rubin (1987); test input files for drawing images on the screen; sample input files for making sequences of PICT images; a program for converting the PICT sequences created by the Bedforms program to QuickTime movies; a program for playing QuickTime movies; a program for printing POSTSCRIPT images on a LaserWriter; and source code for the bedform and cross-bedding routines. The bedform program can be used experimentally to create cross-bedding produced by bedforms with a known morphology and behavior or can be used by trial and error to recreate the morphology and behavior of bedforms that produced specific deposits. Examples of the modeling, comparison with real structures, and results of computer experiments are discussed by Rubin (1987). This documentation describes the use of the bedform program but assumes that the user is familiar with the Macintosh operating system. The bedform program is written in FORTRAN 77. The program generates bedform topography, computes the x-y-z coordinates of the surface, and converts the three-dimensional coordinates of the simulated structures to the corresponding two-dimensional coordinates on the page (while performing hidden-line removal), and covers the topography with a mesh or shaded surface. The program uses sine curves to create surfaces that approximate the shape of bedforms. Displacement of the sine curves simulates bedform migration, changing amplitude simulates changing bedform height, and combining sets of sine curves simulates superpositioning of bedforms. The equations that generate these mathematical surfaces can be inspected in the program source code, but such inspection is not necessary to use the programs. The program can be used to produce block diagrams that display vertical sections through cross-bedding; mesh surfaces and shaded surfaces of bedform topography (cover illustration and Fig. 1A); horizontal sections through the bedforms (Fig. 1B); horizontal sections through the underlying strata (Fig. 1C); sequences of images that can be animated to illustrate bedform behavior; and plots that show bedform migration directions, trends of trough axes, cross-bed and bounding-surface poles, and rose diagrams of cross-bed and bounding-surface azimuths (Fig. 2). The bedform migration directions plotted in the dip plots are those specified in the input file. Trough-axis trends are calculated from the paths of the main scour pits (those that occur in the troughs of the first set of bedforms). This includes scour pits formed where troughs of superimposed bedforms intersect troughs of the main bedforms and includes scour pits formed by out-of- phase crestlines. Trough axes produced by scour pits that are independent of the troughs of the main bedforms are not plotted. In all cases, the trough-axis trends that are plotted are the mean trends; changes through time in the direction of scour-pit migration are not considered. In plots of cross-bed and bounding-surface dips, azimuth is given by the direction from the center of the plot to each point, and inclination is proportional to the distance from the center. Inclinations are relative; actual values are not assigned because the computer model does not incorporate such processes as avalanching. Because bounding surfaces are commonly diachronous, determining their orientation is quite complicated. The mathematical solution requires solving for a plane from three points, but because bounding surfaces do not always originate everywhere at the same time, bounding surfaces must be correlated between three vertical arrays. To avoid miscorrelations between arrays, the program does not attempt to recognize bounding surfaces in a very small percentage of occurrences where their vertical spacing is very slight (such as where two or more bounding surfaces converge at the site of the imaginary borehole). The dip-plotting program also plots rose diagrams of cross-bed and bounding-surface azimuths (in 10û azimuth classes). To create these plots, every bed encountered in the vertical profiles is weighted in proportion to the bed inclination of the bed. Weighting the beds by inclination has two benefits. The weighted rose diagrams are more representative (volumetrically) of the computer- generated structures, and by emphasizing steeper dips the measurements are similar to those made by field geologists. PROGRAM INSTALLATION To install the Bedforms program on a hard disk, insert the Bedforms disk in the floppy drive, and drag the Bedforms disk icon to the hard disk. This process installs the Bedforms program and related files. The next step is to decompress the movie conversion application. This is done by double clicking on the file named "Movie conversion (compressed)" in the "QuickTime Files" folder. Select "Extract" when the "Select Destination Folder..." dialog box appears on the screen. The decompressed files will be placed in a folder named "QT <-> PICS/PICT". The compressed file "Movie conversion (compressed)" can be discarded from the hard disk, but all original files should be retained for backup on the original program disk. Errors can arise if the Bedforms program is not installed on a hard disk, because the floppy disk is almost completely full. Attempting to save drawings to the floppy will cause a disk error. SINGLE-IMAGE OPERATION Summary of Operation The first step in running the bedform program is to create an input file with the desired values of the input parameters; instructions for creating input files are presented in the section "INPUT VARIABLES". The input file must then be opened by the bedform program. The user creates an image or sequence of images by selecting "Bedforms", "Bedform sequence", or "Dips" from the "Draw" menu. The user will then be prompted to specify the names of any files which will be saved to disk, and will be given the option of modifying several of the bedform-drawing parameters (Fig. 3). Plotting can be terminated by typing any character on the keyboard. Output Bedform images may be drawn with either mesh surfaces or shaded surfaces. Either kind of image can be drawn as a PICT image, a generic POSTSCRIPT file, or an Illustrator 1.1 POSTSCRIPT file; the format of output images is specified in advance using the "Output" menu. Drawing PICT images on the screen is convenient but does not create as high-quality images as the two kinds of POSTSCRIPT files. Illustrator 1.1 POSTSCRIPT files have the advantage that they can be viewed and edited on the screen using an appropriate POSTSCRIPT drawing program such as Adobe Illustrator. Some bedform images require more than one megabyte of memory; to display, modify, redraw, and save the more complex bedform images in a POSTSCRIPT drawing program can require 4 megabytes or more of RAM. (To increase the amount of memory available to the drawing program, use the "Get Info" menu item under the "File" menu in the Finder; increase the "current size".) Although displaying, modifying, and printing the images in a drawing program is convenient, these operations are exceedingly slow for complex images. If the required software or memory are not available, then use generic POSTSCRIPT as the output format. These images can be printed on a LaserWriter using the MacLPR 1.3.2 program that is provided on the disk, even if the computer has a limited amount of RAM. Images that are drawn on the screen can be saved as PICT files by selecting "Save PICT image as" from the "File" menu. On certain Macintosh models, images can also be printed as paint files on an ImageWriter (by typing "Command Shift 4") or can be saved to the disk as paint files (by typing "Command Shift 3"). The size of the images created by the bedform program is adjustable. Images drawn on the screen can be enlarged or reduced by changing the size of the window before or after the images are drawn. The resolution of an image, however, depends on the size at which it was first drawn. Images that are drawn to a small window have low resolution, even if the images are later enlarged. The size of POSTSCRIPT images is proportional to the size of the window when the images are created. When the graphics window has its initial (default) size, images will fill a LaserWriter page; the images all have the same shape, so that reducing either the height or width of the window will limit the size of the image. QUICKTIME MOVIES The procedure for creating QuickTime movies is similar to the procedure for creating single images but includes a few additional steps. First, specify the sequence to be animated using the animation script dialog box (Fig. 4). This procedure determines the frame-to-frame differences in five input parameters: the time in evolution of the bedform (modifying line 81 in the input file), elevation of the horizontal section (modifying line 86), and orientation of as many as three sets of bedforms (modifying lines 21, 44, and 67). The default values define a 3-scene sequence with a total of 235 frames. The first scene (150 frames) shows the bedforms evolving through time; the second scene (40 frames) shows the bedforms while they are planed off by a horizontal section that descends from crest to trough; the third scene (45 frames) shows the cross-bedding within a block diagram rotating 90¡ around a vertical axis. The number of frames in each scene and the size of the steps between frames can be adjusted by changing the values in the dialog box. After the animation script is set, the user is prompted to choose a name and location (folder) for the image files. The images are named by appending a 4-digit frame number (beginning with 0001) to the name entered in the dialog box. The bedform program searches the specified folder to make sure that the files that will be created do not already exist. The program then runs repeatedly, each time modifying the appropriate parameters in the input file. When the bedform program has completed the "Bedform sequence" command from the "Draw" menu, the disk will contain a folder of PICT images. Before these PICT images can be animated, they must be converted to a QuickTime movie. (This will also greatly reduce the amount of disk space used to store the images.) The program "Movie Conversion", included on the disk can be used to perform this conversion, but a number of commercial and shareware programs are also available. The input files that are included in the folder named "Input Files" were designed to create images to be printed with a laser printer. To adapt the input files for animation, several changes are recommended: (1) change the surface grid to 25x25 or 20x20 by modifying line 85 of the input file or by using the adjustments to input dialog box; and (2) double the interval between drawing of cross-beds in line 80 (so that the lines will not plot too close together at the lower resolution available on the screen). Several input files with these modifications are provided in the folder named "Animation Input Files". These examples include one bedform from each of the eight major categories of bedforms illustrated by Rubin (1987, fig. 1). In summary, the following steps must be completed in order to display a QuickTime movie: 1. Create or edit the input file in a word processing program. 2. Open the input file in the Bedforms program. 3. Use the "Bedform sequence" command under the "Draw" menu to create a folder of PICT images. 4. Use the program "Movie Conversion" to convert the PICT sequence to a QuickTime movie. 5. Use the program "Fast Player" (or any other QuickTime player) to display the QuickTime movie. EXAMPLES OF OPERATION This section shows how to create single images and QuickTime movies using an existing input file; the following section shows how to modify input files in order to create different kinds of bedforms. The times that are given are for a Quadra 900. To create the illustration on the cover of this manual: 1. Start the Bedforms program by double-clicking on the Bedforms 3.0 file. 2. Open the "Demonstration" input file by typing "Command O" or by selecting "Open input file" from the "File" menu of the Bedforms program. A dialog box will appear on the screen; use it to select the "Demonstration" file, which is contained in the folder named "Test Input Files". 3. Choose the output format using the choices under the "Output" menu. Select PICT for any drawing on the screen and PostScript or Illustrator 1.1 to create high-resolution files to be printed on a laser printer. Any format of image can be created with either a mesh or shaded surface. 4. Draw the image by typing "Command B" or by selecting "Bedforms..." from the "Draw" menu. An "ADJUSTMENTS TO INPUT" dialog box will appear on the screen. To optimize the image for the reduced resolution of the screen (relative to laser-printer output), choose "25 x 25" for the bedform surface mesh, and choose "1 out of 3" for the interval between cross-beds. (Wait 2 minutes while the image is drawn on the screen.) Alternatively, to draw the bedform image exactly as it appears on the cover image (and as specified in the file), click on the "OK" button (7 minutes to draw the image on the screen). 5. After completing the drawing, it can be saved as a PICT file by typing "Command S" or by selecting "Save PICT image as..." . The same bedforms can be redrawn in a different format by selecting a new format under the "Output" menu, and then repeating the drawing using the "Draw" menu. To draw different bedforms, close the input file, modify it using a word processing program, and then re-open it from the Bedforms program (or open a different input file). To create a QuickTime movie: 1. Start the Bedforms program by double-clicking on the Bedforms 3.0 file. 2. Open an input file by typing "Command O" or by selecting "Open input file" from the "File" menu of the Bedforms program. A dialog box will appear on the screen. For this demonstration, use the dialog box to open the "animated fig. 34a" file, which is contained in the folder named "Animation Input Files". 3. Begin a sequence of PICT images by typing "Command A" or by selecting "Bedform sequence..." from the "Draw" menu. A "SCRIPT FOR ANIMATION SEQUENCE" dialog box will appear on the screen. To speed up this demonstration, change the following 5 values in this box: the number of frames in scene 1 should be 50, the number of frames in scene 2 should be 10, the change in elevation of the horizontal section should be 0.1 in scene 2 (so that the bedforms are completely exposed in the 10 frames of that sequence), the number of frames in scene 3 should be 15, and the change in bedform orientation in scene 3 should be 6 (so that the bedforms rotate by 90¡ in the 15 frames of that sequence). A dialog box will then appear on the screen asking for the root name of the images that will be created. Type "Fig.34a" or any other desired name. Next, an "ADJUSTMENTS TO INPUT" dialog box will appear on the screen. This input file is optimized for the reduced resolution of the screen, so it is not necessary to adjust any of the values that are displayed; merely click on the OK button. The next dialog box will notify the user regarding the naming procedure for the successive images; click on the OK button. For the next 70 minutes, the 75 specified images will be drawn on the screen and saved as PICT images in whichever folder that was specified in the preceding steps. These files will occupy on the order of 1 megabyte, if drawn as black and white mesh surface images. While these images are being drawn, the computer can be used for other tasks, but this will delay completion of the images. 4. To convert the folder of images to a single QuickTime movie, start (by double-clicking) the "Movie Conversion" program (which was installed in a folder named "QT <-> PICS/PICT" when the movie conversion program was decompressed); depending on the available memory on a given computer, it may be necessary to quit the Bedforms program in order to start the "Movie Conversion" program. This program is a Hypercard stack that requires that Hypercard be installed on the computer. 5. Select "Compression settings..." under the "Conversion" menu. When the dialog box appears, select "Animation" for the compressor, "Black & white" for the pixel depth, "0.99 Low" for the spatial quality, "0.50 Low" for temporal quality, and 300 for the key frame rate. 6. Select "PICT file sequence to Movie..." under the "Conversion" menu. This will initiate a sequence of four dialog boxes. In the first dialog box, identify the first PICT image in the bedform sequence (fig.34a0001); in the second dialog box, identify the last PICT image in the bedform sequence (fig.34a0075); in the third box, specify the name for the movie that will be created; in the fourth box, specify the movie frame rate (5 frames per second). When this step is completed (20 seconds) the individual images are compressed from approximately 1 megabyte to approximately 300 kilobytes. 7. To play the movie, quit all programs, and then start the "Fast Player" program in the folder named "QuickTime Files". Select "Open" from the "File" menu to open the QuickTime movie that was just created. Play the movie by pressing the right-pointing arrow (Ñ >) on the keyboard. INPUT VARIABLES It is the responsibility of the user of the bedform program to create an input file that describes the shape and behavior of the bedforms envisioned. Warning: it is quite easy to create bedforms with a physically unreasonable behavior, such as dunes that migrate in the opposite direction from that indicated by their asymmetry. The following discussion describes, line by line, what variables must be specified in an input file. The easiest way to create an input file is to edit an existing one, replacing old values of the input variables with the desired ones. Unless otherwise specified, all of the input variables are real numbers; those that are integers, logical, or character variables are noted. The input files provided in the folder named "Input Files" on the disk were designed for high-resolution POSTSCRIPT plotting and are not optimized for drawing on the screen. These files require unnecessarily long running times and will plot lines that are too close together for drawing on the screen. To convert the files for screen drawing, however, requires only that two lines be changed: the variable on line 80 should be increased by a factor of 2-4 and the variable on line 85 should be increased to 4, 5, or 10. Three such files are provided in the folder named "Test Input Files". The following list describes the input variables that are contained in all input files. (1) Name of the input file. This is a character variable with a maximum length of 31 characters. This variable is included in the input file so that the name of the file can be retained within the input file and plotted on the output figure. Changing the Macintosh system name of the file does not change the name that is plotted on the output image. Note that if the file name contains two words separated by a space, the second word will not be printed unless the name is bracketed by quotes. (2) Caption to be printed on the output figure. This is a character variable with a maximum length of 80 characters. This character variable should be contained in quotes. Lines (2-86) in the input file include a character variable that is used so that each line of the file can include a brief description of the variable that occurs on that line (see any of the example input files). The following group of variables describes the first set of bedforms. (3) Bedform wavelength. The sides of the block diagrams drawn by the dunes program are defined to have lengths equal to 100.0 units. All variables that specify length (or length components of variables that specify velocity) are expressed in the same arbitrary units. Bedforms with spacings of 100.0 units and 50.0 units are shown in Figure 5. (4) Bedform phase (in degrees). This variable specifies the position of the bedforms (at time=zero) within the block diagram. Where the spacing of the bedforms is equal to 100.0, phase of the bedforms has no effect on the actual structure that is produced; the variable merely controls the placement of the structure within the block. Where the spacing is greater than 100.0, the phase determines which part of the structure is included within the block. Bedforms with phases equal to 0.0 and 90.0 are shown in Figure 6. (5) Bedform symmetry or asymmetry (an arbitrary, dimensionless, real variable). A value of 1.0 produces bedforms that are asymmetric (Fig. 7A), and a value of 0.0 produces symmetrical bedforms (Fig. 7B); values between 0.0 and 1.0 produce intermediate amounts of asymmetry. Note that if a positive value is specified, the steeper flank will face in the direction defined by positive bedform migration (as should normally be the situation); where a negative value is specified, the steeper flank will face in the opposite direction (Fig. 7C). In situations where asymmetry varies through time, the value specified here defines the mean asymmetry. Asymmetry at any one instant is the sum of this value and a cyclic component that is described by the following three variables. Asymmetry is simulated mathematically by summing two sinusoidal components. The first has a wavelength equal to the bedform wavelength; the second component has a wavelength of one-half the bedform wavelength. The relative phase of the two components determines bedform asymmetry. (6) Amplitude of bedform-asymmetry cycle (same dimensionless units as in 5, above). During each complete cycle, asymmetry varies between (5) plus (6) and (5) minus (6). A value of 0.0, which produces no change in asymmetry, should be used to create bedforms that do not vary through time. Values greater than approximately 0.5 or 1.0 often produce peculiar results and should not be used without carefully inspecting the results. (7) Period of bedform-asymmetry cycle. This variable (and all others that specify periods or velocities) can be based on any arbitrary units of time, provided that these units are consistent throughout the input file. (8) Phase in the asymmetry cycle at time = zero. Values are in degrees; when this term is 90.0, asymmetry at time = zero is a maximum [equal to the mean asymmetry (5) plus the amplitude of asymmetry change (6)]. (9) Bedform steepness. Neglecting the effects of bedform superpositioning, a value of 1.0 causes bedform height to be approximately equal to 1/15 of the bedform wavelength. When other variables remain constant, bedform height is proportional to the value chosen. This variable defines the mean bedform steepness; where height varies through time, the instantaneous height also is a function of the next three variables. (10) Amplitude of bedform-steepness cycles; units are the same as for mean height (9, above). During a complete height-fluctuation cycle, height varies between (9) plus (10) and (9) minus (10). To create bedforms that do not change in height, this term should be equal to zero. (11) Period of time during which bedform steepness changes. (12) Phase at time = zero in the steepness-fluctuation cycle. Values are in degrees. A value of 0.0 produces bedforms with a steepness that is a minimum in the cycle. (13) Wavelength of the first set of plan-form sinuosities. Values have the same units of length as all other lengths. Each set of bedforms can have as many as two sets of plan-form sinuosities. By specifying the appropriate values for the wavelength and amplitude of these sinuosities (as discussed in the descriptions in 17-19, below), it is possible to create sinuous, linguoid, or lunate plan forms. Bedforms with sinuosity spacings of 100.0 and 50.0 are illustrated in Figure 8. Note that if either this term or the following term is equal to zero, no sinuosities are created. (14) Amplitude (measured in plan form) of the first set of sinuosities. Bedforms with sinuosity amplitudes of 5.0 and 10.0 are illustrated in Figure 9. (15) Phase (along-crest placement) of first set of plan-form sinuosities (Fig. 10). To create in-phase bedforms, this term should have the same value as (38), the analogous term for the second set of bedforms; to create out-of-phase bedforms, the two terms should differ by 180.0. (16) Migration speed (along crest) of the first set of plan-form sinuosities; units are in length/time. For the most natural-looking results, this term should have a value less than approximately 3.0 to 4.0. Positive values cause the sinuosities to migrate toward a direction 90û clockwise of the migration direction specified for the bedform (21); negative values cause the sinuosities to migrate 90û counterclockwise. (17) Wavelength of the second set of plan-form sinuosities. To create sine-shaped plan-form sinuosities, this term should have a value of 0.0. For lunate or linguoid bedforms this term should have a value equal to half of (13). (18) Amplitude (plan form) of the second set of sinuosities. To create lunate or linguoid bedforms with a realistic curvature, a good value for this term is 1/4 of the value of (17). (19) Phase (along-crest placement) of plan-form sinuosities. To create lunate bedforms, this term should have a value equal to (15)+270.0. To create linguoid bedforms, this term should have a value equal to (15)+90.0. (20) Migration speed (along crest) of the second set of plan-form sinuosities. By specifying this value to differ from (16), bedform plan-form shape can be caused to vary through time. (21) Migration direction of the first set of bedforms. Migration directions are normal to the bedform crestlines. Thus, specifying the migration direction also sets the bedform orientation. Directions are defined as shown in Figure 1. (22) Mean migration speed of the first set of bedforms. For the most realistic results, this value should be less than approximately 3.0 or 4.0. (23) Amplitude of migration-speed cycles; units are the same units of velocity as in (22). The value specified here should have a value of 0.0 if a constant migration speed is desired. (24) Period of migration-speed cycle. (25) Phase at time = zero in the migration-speed cycle. A value of 0.0 produces bedforms that at time = zero have a minimum speed. The following group of variables describes the second set of bedforms. All terms are analogous to the corresponding terms defined above. (26) Bedform wavelength. (27) Bedform phase. (28) Mean asymmetry. (29) Amplitude of asymmetry cycle. (30) Period of asymmetry cycle. (31) Phase of asymmetry cycle. (32) Mean steepness of second set of bedforms. The steepness specified is that of the bedforms before they are superimposed on the first set. Superpositioning can change the bedform steepness as discussed in the comments about the type of superpositioning (72). (33) Amplitude of bedform-steepness cycle. (34) Period of steepness cycle. (35) Phase of steepness cycle. (36) Wavelength of first set of plan-form sinuosities. (37) Amplitude of first set of plan-form sinuosities. (38) Phase of first set of plan-form sinuosities. To create in-phase bedforms, this term should have the same value as (15); to create out-of-phase bedforms, the two terms should differ by 180.0. (39) Migration speed (along crest) of first set of plan-form sinuosities. (40) Wavelength of second set of plan-form sinuosities. (41) Amplitude of second set of plan-form sinuosities. (42) Phase of second set of plan-form sinuosities. (43) Migration speed (along crest) of second set of plan-form sinuosities. (44) Migration direction of second set of bedforms. (45) Mean migration speed. (46) Amplitude of migration-speed cycles. (47) Period of speed cycles. (48) Phase of speed cycles. The following group of variables describes the third set of bedforms. All terms are analogous to the corresponding terms defined in (3)- (25). (49) Bedform wavelength. (50) Bedform phase. (51) Mean asymmetry. (52) Amplitude of asymmetry cycle. (53) Period of asymmetry cycle. (54) Phase of asymmetry cycle. (55) Mean steepness. (56) Amplitude of steepness fluctuations. (57) Period of steepness cycle. (58) Phase of steepness cycle. (59) Wavelength of first set of plan-form sinuosities. (60) Amplitude of first set of plan-form sinuosities. (61) Phase of first set of plan-form sinuosities. (62) Migration speed (along crest) of first set of plan-form sinuosities. (63) Wavelength of second set of plan-form sinuosities. (64) Amplitude of second set of plan-form sinuosities. (65) Phase of second set of plan-form sinuosities. (66) Migration speed (along crest) of second set of plan-form sinuosities. (67) Migration direction of third set of bedforms. (68) Mean migration speed. (69) Amplitude of migration-speed cycle. (70) Period of speed cycle. (71) Phase of speed cycle. The following terms define characteristics that apply to the entire depositional situation that is being modeled. (72) Integer variable that determines the geometric rules used to superimpose the second and third sets of bedforms on the first set. If this variable is equal to 1, superimposed bedforms are added to main bedforms by simple addition. If equal to 2, the local height of the superimposed bedforms is proportional to the local elevation of the main bedform. Steepnesses of superimposed bedforms thus vary from zero in the troughs of the main bedforms to a maximum at the crests of the main bedforms. The mean steepness of the superimposed bedforms is thus 1/2 of their steepness specified on lines (32) and (55). If the variable defined on line (72) of the input file is equal to 3, the elevations of all bedforms are calculated separately, and the elevation at any point on the surface is chosen to be that of whatever bedform is locally highest. This is the value to use to produce out-of-phase sinuous, lunate, or linguoid bedforms. Mean steepness of the resulting bedforms varies with the steepness, spacing, and phase relations of the various sets of bedforms. If the variable on line (72) is equal to 4, the height of the superimposed bedforms is inversely proportional to the local elevation of the main bedform. Steepnesses of superimposed bedforms vary from those specified on lines (32) and (55) in the troughs of the main bedforms to zero at the crests of the main bedforms. The mean steepness of the superimposed bedforms is thus 1/2 of the specified value. If the variable on line (72) is equal to 5, two sets of superimposed bedforms are created following the rules as if the variable were equal to 3; that assemblage is then added to the main bedforms as if the variable were equal to 1. If the variable on line (72) is equal to 6, the first set of superimposed bedforms is summed as if the variable were 2, and the second set is added as if the variable were 1. (73) Integer variable that can be used to rotate all bedforms and migration directions such that trough axes are normal or parallel to the sides of the block diagrams. If equal to 0, no rotation is performed. Values of 1, 2, 3, or 4 can be selected to cause scour pits to migrate out of any of the four vertical sides of the block (1 for the back right, 2 for the front right, 3 for the front left, and 4 for the back left). (74) Elevation of interdune flats. A value of less than -1.0 will generally produce no interdune flats. A value of 0.0 will cause approximately half of the surface area to be occupied by interdune flats. (75) Mean rate of deposition; same units of length/time as migration rates. (76) Amplitude of cycle in the rate of deposition; same units of length/time as migration rates. (77) Period of cycle in the rate of deposition; same units as all other time periods. (78) Phase of cycle in the rate of deposition (in degrees). If equal to 0.0û, the rate of deposition is at a minimum at time = zero. (79) Integer number of steps backward through time to the beginning of the depositional event that is being simulated. (80) Integer interval between the plotting of foresets. This term is normally equal to 1 for POSTSCRIPT files, but can be in increased for drawing on the screen or if bedforms move so slowly that the resulting foresets are too close to each other. Larger numbers require less computing time but produce less detailed images. (81) Integer that specifies the time of the end of the depositional episode (i.e., the time when the surface is illustrated). Changing this number causes a change in location of the bedforms within the block diagram. For making single images, this term need not differ from 0. In animation sequences, this number is automatically incremented from frame to frame. (82) Logical variable that, if true, causes the figure caption (2) to be plotted. (83) Logical variable that, if true, causes the name of the input file (1) to be plotted. (84) Logical variable that has been discontinued but was kept so that old input files will remain compatible. Can be either ".true." or ".false." . (85) Integer variable that chooses between long computation times (with high precision of plots) and shorter computation times (accompanied by lower precision); the value of this variable must equal 1, 2, 4, 5, or 10. In the bedform-drawing program, this variable specifies the spacing of the grid used to compute bedform topography and used to create the surface mesh or shading. Small values create more natural-looking images (smoother curves, particularly in horizontal sections) but take longer to run and require more disk space for each image. In the dip-plotting program, this variable determines the number of imaginary boreholes (24 boreholes if the value equals 1; 16 if the value equals 2; 10 if the value equals 4; and 6 if the value equals 5 or 10). The exception to this rule is where bedforms are two-dimensional and non- stationary. In this situation, only four boreholes are used. Plotted migration vectors and cross-bed dips are unaffected by this variable. In general, values of 2, 4, and 5 are good starting points for this variable. The high precision (and longer computation times) specified by a value of 1 is probably necessary only for publication- quality images of bedforms and bedding or for statistical studies of bounding-surface distribution. (86) Elevation of the horizontal section, expressed in non- dimensional units (relative to 0.0 at the lowest point on the bedform surface and 1.0 at the highest point). A value of 1.0 will cause the horizontal section to be equal to the highest point on the bedform surface; the entire bedform surface will be shown in a mesh diagram (Fig. 1A). A value of 0.0 will cause the elevation of the horizontal section to coincide with the lowest elevation of the bedform surface; the top of the block diagram will consist entirely of a horizontal section (Fig. 1C). Intermediate values will produce block diagrams that are capped by a horizontal section at the specified elevation; lower elevations of the bedform surface appear in mesh form (Fig. 1B). In animation sequences the initial value of this variable is defined in the input file but can be changed using the adjustments to input dialog box (Fig. 3). Subsequent frames in the sequence can be programmed to vary using the animation script dialog box (Fig. 4). To plane the bedforms from trough to crest, the initial value must be 1.0 and the value for the final frame must be 0.0. The value that should be entered in the animation script dialog box is therefore -1.0 divided by the number of frames in the scene. HARDWARE REQUIREMENTS AND RUN TIMES This program was developed to run on any Macintosh with a math coprocessor. Times required to run the programs vary with the type of computer and the input file. Input files that specify a coarse grid, short depositional episode (few steps through time), and bedform surface rather than a horizontal section enable the bedform program to run in times as short as a few tens of seconds. Finer grid spacing, longer depositional episodes, and horizontal sections can increase running times to as much as several hours. Running times for the plotting of directional data are determined by the length of the depositional episode and by a user-chosen input parameter that sets the number of imaginary boreholes to be computed for the structure; running times typically vary from several minutes to several tens of minutes. Times to complete animation sequences are considerably longer because several hundred images must be created. A typical sequence with the default animation script (235 frames) takes on the order of 10 hours on a Quadra 900. Because of the long running times, it is convenient to run the bedform program overnight or in the background. Background operation requires 2 megabytes of memory (750k for the bedform program, 400-500k for the system, and additional memory to run another program in the foreground). POSTSCRIPT files are written to the disk; the required space is typically several hundred kilobytes but can exceed 1 megabyte for complex images. A sequence of 235 animation images with a 50-by-50 grid requires approximately 40 megabytes of disk space; QuickTime compression reduces this to 5- 10 megabytes. To convert the Bedform images to a QuickTime movie requires a conversion program. A number of sophisticated programs are available commercially, and shareware programs are available from bulletin boards. This disk includes a free Hypercard stack that performs the conversion, but the stack requires the Hypercard application. A simple player is provided to display the QuickTime movies, but QuickTime must be installed on the computer. SOFTWARE SOURCES At the time of this printing, completed QuickTime movies and software updates are maintained on a USGS file server that can be accessed via anonymous ftp. The file server address is walrus.wr.usgs.gov, and the files are located in the directory /pub/mac/bedforms. ACKNOWLEDGMENTS Rex Sanders (U.S. Geological Survey, Menlo Park) provided advice about FORTRAN programming and computer operation, and he wrote a program to format POSTSCRIPT files that was adapted for use in this program. Rex Sanders and Hank Chezar (U.S. Geological Survey) tested the program and reviewed the documentation. REFERENCE Rubin, D.M., 1987, Cross-Bedding, Bedforms, and Paleocurrents: Society of Economic Paleontologists and Mineralogists, Tulsa, Oklahoma, Concepts in Sedimentology and Paleontology, v. 1, 187 p.