--------------------------------------- PHAST, Version 1.5.1 (March 24, 2008) --------------------------------------- svn 2766: Fixed bug with surfaces (svn 2745) in parallel version. svn 2751: Fixed bug with xyz_well print frequency. Caused an array deallocation error if no wells included in problem. svn 2745: Fixed bug related to surfaces. The error was a major bug when using the -no_edl surface option. The charge developed on a surface was not saved correctly in xsurface_save_hst. This routine was replaced with xsurface_save, which should give results equivalent to PHREEQC. svn 2729: Fixed bug in delimited values (values delimited by "< >" in the .trans.dat file. Earlier versions failed to handle multiple sets of delimited values unless there was a space before the concluding ">" for each set. Now, the space is not necessary. svn 2707: Modified mpimod.F90 to use mpif.h, which should be more robust than previous usage of mpi routines and variables. Made serial and parallel dependencies identical. Revised dependencies in Makefile. --------------------------------------- PHAST, Version 1.5.0 (February 5, 2008) --------------------------------------- svn 2628: Added optional rebalance algorithm for parallel version, -rebalance_by_cell T/F. Default is false. By default, PHAST looks at the total time taken to run chemistry on a block of cells and from that calculates the average time per cell, which is used to rebalance the load among the available processors. The new algorithm (-rebalance_by_cell T) measures the time for each cell individually and rebalances based on this information. The new method should only be needed for kinetic problems where some cells take much longer to run than other cells. svn 2529: Changed linker option for --hash-style. By default compilation used gnu style hash, which was incompatible with C libraries compiled with old style hash. New option should work with all libraries. --------------------------------------- PHAST, Version 1.4.2 (November 17, 2007) --------------------------------------- svn 2283: Now writes .restart.gz, a gzip file. File can be unzipped and edited. On restarting, either ascii or gzipped file can be read; type is determined automatically. Removed old code for restart file. svn 2228: Rewrote code for reading a restart file. Fixed a bug where a stream was receiving the echo of the restart file, which made it fail for large restart files. Also, previously, every process tried to read the entire restart file into memory. This also would cause problems if the restart file was large. Now the restart file is read by root keyword by keyword and data are passed to the appropriate process with MPI. --------------------------------------- PHAST, Version 1.4.1 (September 5, 2007) --------------------------------------- svn 2220: Fixed bug in WPhast, was not setting chemistry dimensions correctly when initializing from an h5 file. --------------------------------------- PHAST, Version 1.3.4 (August 30, 2007) --------------------------------------- svn 2188: Revised for MPICH2: new comm_world number, rearranged header files. Fixed bug with print_frequency sometimes failed with a zero deltim when using gfortran. svn 2088: Now uses hdf5 1.6.5. for both linux and windows. svn 2066: Fixed error trap for boundary condition solution that was not defined in .chem.dat file. svn 2066: Added -start_time to TIME_CONTROL data block. -start_time allows the calculations to begin at a time other than zero. This feature is useful for restart runs from the end of a previous calculation when chemical conditions were saved (PRINT_FREQUENCY; -restart). The original .trans.dat file can be used (preferably copied to a new name so previous results are not overwritten) with the -start_time set to the -end_time of the previous run and -end_time extended to a later time. CHEMISTRY_IC is modified to define the initial chemistry conditions to be read from the restart file of the previous run. For transient flow, the head should also be saved in the original run (PRINT_FREQUENCY; -save_final_heads) and set as initial conditions for the subsequent run (HEAD_IC). In the subsequent run, boundary conditions will be applied according to their time-series sequence, even if the changes are earlier than -start_time. No time stepping for flow and chemistry will occur until -start_time. The -start_time feature is also useful for running simulations by natural year number, say from 1990 to 2005 or by Julian day, when the simulation does not start at Julian day zero. --------------------------------------- PHAST, Version 1.3.2 (February 1, 2007) --------------------------------------- svn 1700: Updated to PHREEQC 2.13.2. svn 1641: Fixed bug in velocity interpolation for 1 element inactive zone. --------------------------------------- PHAST, Version 1.3.1 (January 16, 2007) --------------------------------------- svn 1595: Updated to PHREEQC 2.13.1. --------------------------------------- PHAST, Version 1.3.0 (November 3, 2006) --------------------------------------- svn 1004: Fixed diffuse_layer bug. Flag was not initialized between cells. Fixed formatting bug with .O.wel file. Changed format for TIMCHG in Phast.tmp file. Was fixed format now g format. Works better for very small time steps in user units. svn 940: Added option to include or exclude prints at end of simulation periods. PRINT_FREQUENCY 0 -end_of_period_default t/f If set to true, printing will occur at the end of each simulation period for all print frequency options that are not equal to zero. If set to false, printing will occur only at the interval specified for each print frequency option. svn 884: Added restart capability. Chemical data can be saved and used as initial conditions for subsequent runs. The grid should be the same for the restart run as for the run that generated the restart file. In general, it is assumed that the boundary condition types and media properties will be the same for the restart run. However, it should be possible to change boundary condition types and media properties in subsequent simulations, provided the grid remains the same. To save data to a restart file: PRINT_FREQUENCY -restart 100 yr In this example, the chemical state of the system will be written to file (prefix.restart) every 100 years. At each time of writing, the old prefix.restart file will be copied to prefix.restart.backup and the new time plane will be written to prefix.restart. Only one time plane is saved in prefix.restart and one in prefix.restart.backup. You must be careful to save (rename) your restart file following a run so that it does not get overwritten in subsequent runs. To use data from a restart file, use the identifier "restart" in CHEMISTRY_IC in the same way that the identifier "file" can be used. CHEMISTRY_IC -zone 0 0 0 1000 1000 100 -solution restart prefix.restart.save -exchange restart prefix.restart.save -surface restart prefix.restart.save -kinetics restart prefix.restart.save -equilibrium_phases restart prefix.restart.save -gas_phase restart prefix.restart.save This example defines all the chemical data for the cells in the zone to be taken from the file prefix.restart.save (assuming a file prefix.restart was generated and renamed to prefix.restart.save). The data for cells in this zone may be overwritten by subsequent zone definitions in CHEMISTRY_IC. As is always the case, the last zone definition that includes a property for a cell is the definition that is used for that property. If the last definition for a solution is specified to be from a restart file and a solution for that cell is not found in the restart file, it is a fatal error. If any other entity (exchange, surface, etc) is not found in the restart file for a cell, it a warning is printed. Prefix, date, current model time, and the number of nodes in each coordinate direction (nx, ny, nz) are written as comments at the top of the restart file. svn 602: Added print of database, input, and output files to .log and .O.chem files. Removed check for .chem.dat and database files from phastinput. --------------------------------------- PHAST, Version 1.2 (September 28, 2005) --------------------------------------- Added new identifier in SOLUTION_METHOD, -rebalance_fraction f where f is a number in the range of 0 to 1. This option applies only to the parallel version of phast. After each time step, phast evaluates how to optimally rebalance the cells among the processors for the chemical calculation. It estimates a number of cells to transfer from one processor to the next. The factor f is multiplied times the estimated number of cells to obtain the actual number of cells transferred. Default is 0.5. Modified PHREEQC to avoid a convergence problem that occurred in trying to find the stable phase assemblage in a simulation with many, many time steps. Occasionally an exponentiation would underflow stopping the simulation. Limited log activities of master species to be greater than the smallest machine precision exponential number. Avoids a matherr exception and allows trial of additional parameter sets to attempt to solve the system of equations. Updated to PHREEQC 2.12, which includes Pitzer aqueous model. Pitzer funtionality is now available in serial and parallel versions, simply use a chemistry database file that includes the PITZER keyword datablock. However, lack of density-dependent flow makes use for brines problematic. Major revision of parallel calculation. Now has one routine for master process that calculates flow and transport (and chemistry) and one routine for processes that calculate only chemistry. New version has major savings in memory requirements. However, the master process may still have large memory requirements. Added scaling for flow and transport equations using L-infinity norm. A diffusion-only problem failed unless "SOUTION_METHOD; -tolerance x" was extremely small. -tolerance 1e-14 should now be minumum tolerance and same tolerance should apply equally well to all flow and transport. Only rows are scaled; column scaling is not used at this time. Fixed file opening logic for flow-only calculation. Error messages now printed to screen. Fixed convergence test for steady-state with no flow. Avoids error with NAN in calculation of relative flow-rate imbalance. Fixed bug with free surface and steady flow. Solution volume was not scaled correctly and gave anomalous results for cells with small water volumes. Volume of water to amount rock was not consistent. --------------------------------------- PHAST, Version 1.1 (February 14, 2005) --------------------------------------- Converted to Subversion version control system. Now includes latest PHREEQC files automatically. PHAST 1.1 includes files from PHREEQC 2.11. Fixed file deletion; some temporary files were not deleted at end of run. Fixed version number and printing format. --------------------------------------- PHAST, Version 1.0 (December 20, 2004) --------------------------------------- (1) Flow and transport data files from version RC3 will not run with PHASTINPUT Version 1.0. The way that time-series data are defined has changed for boundary conditions, wells, rivers, time step, and print frequencies. A sequence of data blocks separated by END keywords is no longer used to define simulation periods. For boundary conditions, all time-varying properties are defined immediately following the -zone definition. Time series for wells are defined immediately following the -pumping/-injection identifier and following the -solution identifier. Time series for a river point are defined by -head and -solution following the definition of the location of the river point (-point). Time series for time step are defined in a single TIME_CONTROL data block. Print frequencies are defined for a sequence of times. At each time, print frequencies for various files may be redefined. (2) The handling of the unsaturated zone has changed in free-surface simulations. The unsaturated flow is not modeled, so free-surface calculations still contain major approximations. However, an attempt has been made to avoid some mass-balance errors related to rising and falling water tables. The program now separates the solids in a cell containing the water table into two reservoirs, the saturated and unsaturated reservoirs. As the water table rises, solids are transferred from the unsaturated reservoir to the saturated reservoir. As the water table falls, solids are transferred from the saturated reservoir to the unsaturated reservoir. The main deficiency of the current implementation is that solids in the unsaturated reservoirs are removed from the calculation and do not react with recharge that is, in fact, percolating through these solids. There is also no way to view or print the masses of solids that are in the unsaturated reservoirs. (3) Mass-balance accounting for reactions has been added and the method for calculating mass-fluxes at boundaries has been changed to be consistent with the selected time-weighting scheme for the finite-difference equations. (4) The FLOW_ONLY keyword has been replaced with the SOLUTE_TRANSPORT keyword. (5) Input for rivers has been revised. Each river point location must now be defined with the -point identifier. Default properties have been eliminated. All properties (width, depth, bed thickness, bed hydraulic conductivity, head, and solution composition) are now interpolated. All properties must be defined at the end points of the river. Additional data may be defined at other river points. At the beginning of each simulation period, head and solution properties for river points are updated with any new values and interpolation for head and solution composition is performed. ------------------------------------------------------ RC-3 (phast rcsfreeze C_52; phastinput rcsfreeze C_27) ------------------------------------------------------ Added warnings for incompatibilities in boundary conditions. Separated print_locations into input for .xyz.chem and .O.chem Added vertical dispersivity. Added mask to each zone. Fixed bug in head tolerance in steady flow; Did not convert head to pascals for Phast.tmp. Changed defaults for print_initial and print_frequency. Set water compressibility to zero for all cases, confined and unconfined. Eliminates the error if storage is less than water compressibility alone. set fluid viscosity to 0.001. Made FLUID_PROPERTIES data block obsolete. Changed allocate_pressure to allocate_head added save_head and echo_input in print_frequency. added logic to determine number of meters below node and above node for well allocation. Minor bug fixes. Fixed error in identifying rivers with IBC array, sometimes had too many river segments. Steady flow calculation always uses upstream weighting. Fixed bugs in cross dispersion. Fixed all uninitialized variables in Fortran and checked all INTENT statements. Error if cell width is less than well bore diameter. Made it an error if print frequency is less than time step. Added horizontal and vertical transverse dispersivity. Fixed velocity calculation for edges of excluded zones. Fixed logic related to an inactive cell above a free surface. Finished implementing single log file. Made print controls more uniform. Changed algorithm for multiple river segments with different bottom locations, hydrostatic location of water table. Fixed bugs with merging files with MPI. MPI algorithm for printing sends one message per processor instead of one message per cell. Fixed memory leak with exchange under some conditions. Added alkalinity to .xyz.wel file. Minimized reallocation of space when rebalancing. PRINT_LOCATIONS can be applied to .O.xyz and .O.chem separately. Changed allocation of space for cells so that memory would not be as fragmented. Allows compilation with long double type for all of PHREEQC. Updated to latest PHREEQC: cvode integration, SYS Basic function, string functions for Basic, COPY keyword. Added digits to current time in printouts, g3 not enough. Added digits to timchg. Needs to be same as number of digits for print frequencies. ------------------------------------------------------ RC-2 (phast rcsfreeze C_42; phastinput rcsfreeze C_14) ------------------------------------------------------ Allow longer file names, check for overflow of field. Consistent with PHREEQC version 2.8 Initialized rate variables Unlimited Basic string lengths Numbering SOLUTION_SPREAD solutions "," error in input file Initialized mass-balance variables once instead of twice. Slight modification to keep better mass balance by ensuring that 1 kgw is transported. Modified phastinput to make more consistency checks on data. Check that print frequency >= time step. Use 20 place for heads and other properties in Phast.tmp to avoid slight variations in linear boundary conditions. Removed flow_only and steady_flow options from steady_flow keyword datablock. Fixed cross dispersion to handle nonuniform grid spacing. Added warning if crosd == FALSE and alphal != alphat. Added PHAST as a separate state in the PHREEQC calculations, corrected error when transport was run as part of the PHREEQC calculations in phast. Revised and added error message for case where water table is below fixed head cell. Fixed bug in distribution of well flow. Flow was distributed incorrectly for nonhomogeneous aquifer. (1/8/03) Added alkalinity to .xyz.wel file. ------------------------------------------------------ RC-1-2 (C_37) ------------------------------------------------------ Added some missing files ------------------------------------------------------ RC-1 ------------------------------------------------------ Revised rivers, did not handle multiple river segments within a cell adequately. Revision of print control. Default is no cross_dispersion terms. Added PRINT_LOCATIONS. Working on Cape Cod problem: ***Item for documentation Steady-flow calculation, takes effect even for flow only (1) Needs separate time step from transport or automatic time stepper to find steady flow. ***Two items for documentation: (1) Wells are snapped to nodes, which can make a problem asymetric Ideally, Ken will allocate flow to more than one cell if location is on a cell boundary. (2) Flux and leaky zone definitions are snapped to cells? nodes? Thus total flux varies with grid definition Ideally, flux, leaky, and river bc are accumulated by polygonal area.