updates to cross-sections, saving shaoefiles and map files

master
Ian P King 3 years ago
parent e592958928
commit eeaa111ff1

9
.gitignore vendored

@ -277,3 +277,12 @@ __pycache__/
/SRC84/DELAN2 - Copy.F90 /SRC84/DELAN2 - Copy.F90
/RMAGENV84/INSTALL/install-Rmagen84-JUN-5-20.zip /RMAGENV84/INSTALL/install-Rmagen84-JUN-5-20.zip
/SRC84 /SRC84
/RMAGENV84/INSTALL/install-Rmagen84A-DEC-14-20.zip
/RMAGENV84/INSTALL/srcrmagen84A.zip
/RMAGENV84/TEST
/RMAGENV84/VIDEOS
/RMAGENV84/INSTALL/rmagenv84a.exe
/RMAGENV84/INSTALL/install-Rmagen84C-JUL-11-21.zip
/RMAGENV84/INSTALL/README-RMAGEN84a.txt
/RMAGENV84/INSTALL/RMAGEN84a.pdf
/RMAGENV84/INSTALL/RMAGEN84a.docx

@ -0,0 +1,712 @@
RELEASE NOTES FOR RMAGEN
NOTE The user may now drag and drop RM1/ or GEO/BIN files onto a shortcut to
RMAGEN to initiate the program. The correct directory will be selected
and the user prompted as to whether a map file is to be used. Remember that a
map file is not required and will only be needed when nodal elevation data
is to be interpolated.
Version 8.4c July 2021 This update revises the treatment of output shapefiles so that both polygon and point shapefiles can be output. Version 8.4b May 2021 This update corrects a bug when reading cross-section files. Version 8.4a Dec 2020 This update expands the map options for reading map files so that polygon shapefiles that form a system outline can be processed when initially forming a network. In addition, more shapefile options are available for network output Version 8.4 June 2020 This update addresses two features of RMAGEN. 1. The treatment of GRD format map files has been modified so that when bed levels are automatically interpolated from the grid defined grid location. In addition, the size capability has been updated so that almost unlimited numbers grid cells can be input. Finally, the display capability of this input data has been refined to build and then display an image. For very large systems this make display faster and not subject to a situation where a timeout occurs when drawing. 2 The mesh option which allows expansion of a 1-D line of elements to 2-D rectangular elements has been expanded to allow the user to select how many elements there will be across the section. There are in addition a minor bug fix associated with map triangulation and the addition of an option to read outline lists from a file prior to triangulation. Version 8.3h Nov 2019 This minor update adds the 2dm (mesh) format file as potential input to or output by RMAGEN. It also corrects a minor display bug for 1-D elements.
Version 8.3G Sept 2018
As a later addition a minor bug fix has corrected display of 2 node junction elements
and modified the refine process to help ensure that when control structures are refined
the initial 3 nodes that defined the upstream line are preserved. Finally refinement of
type 999 elements has been corrected so that clean operation correctly refines the adjacent
1-D element.
Input of 6 and 8 node 2dm formats is now supported.
Version 8.3f November 2017.
This release includes a number of updates designed to refine operation of RMAGEN.
1 Bed elevations are now added to 1-D nodes when cross-sections are input
2 RMAGEN has been modified to allow addition of a slot in 1-D cross-sections
so that 1-D nodes will not go dry during RMA-2 simulations.
3 A 3-D view option of the mesh layout has been added. This allows a visual
display of the mesh from any angle so that errors/inconsistencies can be detected.
4 Element colours have been adjusted for clearer display when a background
image is displayed.
Version 8.3e January 2017.
This release improves performance of RMAGEN in a number of areas
1 Treatment of very large systems has been modified so that display does not go
into a repeated loop when these systems are redrawn. This is achieved by
painting the output to a background file and then projecting it onto the screen.
In addition an option has been added to the RDRAW menu that switches this process
on and off. Finally the model has been modified so that a key stroke will stop
the full network painting (if it accidentally occurs) and replace it with an outline
view.
2 The process of merging networks has been reviewed and made faster and more reliable
when 1-D elements are included. Space is now left to the full width of the 1-D
elements.
3 To reflect the more frequent use of large networks the standard limits have been
increased to 200,000 nodes and 120,000 elements.
4 Formats for the GFGEN format network output option have been expanded to allow
for larger systems.
Version 8.3d December 2016
This release modifies the testing to allow some tolerance for matches between coordinate
locations and map locations when assigning bed elevations using a triangulated data set.
This change helps to minimize assignment failures in this process.
A second change modifies the output of file images in jpg format to add a jpgw auxiliary
file that provides world registration of the image. In addition the manual registration
process has been modified to permit output of jpgw files.
Finally, reading of restart files written by the internal backup process has been adjusted
to add more chance of recovery after serious failures
Version 8.3c September 2016
This release expands the capabilities of the module to automatically generate triangular
grids. Each of these options requires the availability of TRIANG (developed by Sawchuck).
This package is not supplied with RMAGEN and must be separately downloaded.
Two features have been added:
(a) The ability to add mesh by defining a succession of outline points and assigning a
nominal element scale. This option is accessed from the “MESH/INPUT OUTLINE TO ADD MESH”
menu.
(b) The ability to generate a complex mesh with internal break lines from a map data.
This option requires a map file that first defines a system outline and then a series of
lines that will form the break lines.
In addition the module has been modified to add a test for zero width in cross-section data
and to correct a bug in array allocation that appeared when the number of elements exceeded
the number of nodes (a very rare occurrence). In addition RMAGEN now allows GFG and TRIANG
format files to be properly recorded in the list of mesh filenames
Version 8.3b June 2016
This release adds a new option designed to permit input of element inflow files,
display the appropriate location and if desired reassign the locations to a different
element layout and save them to a new file. Additionally, by displaying the element
inflows either as maxima or a sum over a period, these functions are also designed
to ensure element inflows are correctly defined. Currently these options are
implemented RMA-2 and RMA-10 format files. These options are currently available
through the experimental menu and should be used with caution.
In additions two bugs have been resolved. One limited the effectiveness of interval
reordering for very large systems with high initial front widths. The other resolved
an issue arising for very large networks output as shapefiles.
Version 8.3a Feb 2016
This release adds a new option designed to permit generation of so-called
“shear stress” files that may be used in RMA-11 as an input file of bed stresses
associated with wave activity. It is designed to interpolate onto the finite
element network a wave related stress data available on any x-y basis or as a
ESRI grid file (that is in one of the available map file formats). This option
is entered through the experimental menu option. For further information
see section 5.19.
A second update allows background files in PNG or JPG format with associated world
files (PNGW or JPGW) to be directly imported in RMAGEN.
Version 8.3 Jan 2016
This is a new release that has several new capabilities
(a) A file menu option that allows multiple map files of varying types to be loaded
into the system and combined.
(b) A file menu option that allows networks to be saved in shapefile format for input
directly into GIS systems. Networks can be saved in complex polygon form (containing bed
elevations at nodes and element type numbers for each polygon), point form (containing bed
elevations) and conventional polygon form (containing the element and type numbers).
(c) An option on map input that allows map data to be loaded directly from point
shapefiles.
Version 8.2L Nov 2015
Corrects some issues with the automatic generation of type 999 elements that connect 1-D elements
laterally with 2-D elements.
Version 8.2K Sep 2015
Modifies RMAGEN to allow surfer format map files. Adds more information on status bar.
Installs logic to test for whether reordering has been done and add indication as RMAGEN
is exited.
Version 8.2J May 2015
Corrects an issue where the origin and scaling of the background image is
incorrectly applied when it is copied to a file or the clipboard.
Version 8.2I May 2015
Revises the structure of the menu line to allow an experimental option where
new and only partly tested options are placed. These are options that have
limitations and are not fully documented. They should be used only after
consultation. Four options are currently in this state. See section 5.19
for more details.
Version 8.2H April 2015
Corrects errors that can arise when GBLOCK is used.
Version 8.2G March 2015
Updates the ability to find node and element numbers to allow Ctrl F and Ctrl E.
Some limits tests are refined.
Version 8.2F Jan 2015
Expands the format of saves continuity lines and adds a capability to read 2DM files.
Version 8.2C,D and E Nov 2014
These releases update a number of features of RMAGEN and add a fairly specialized
option for creation of weir/levee data
(a) Removes bugs associated with deletion and addition of cclines and display
of these lines when the screen is panned or zoomed.
(b) Correctly initiates the DeLaunay option.
(c) Checks and creates error message when the fill and other operations
exceed the array limits
(d) Corrects some of the labels during various operations
(e) Adds an option under the mesh menu to create weir data from a line of elements
that border a ccline. For more detail see the description in Section 5.18
(f) Fixes a bug that allowed junctions to be refined which is not a feasible
operation
(g) Modifies the split operation so that continuity lines can be used as a
source
Version 8.2B Sept 2014
This release adds a number of updates to RMAGEN.
(a) Improves the screen information during the GBLOCK operation of RMAGEN
(b) Adds an option to create a block of 2-D elements from a line of 1-D elements
(c) Adds an option to create a block of 2-D elements from 2 roughly parallel map lines
(d) Adds an option to select and then move a group of nodes
(e) Adds extra decimal precision to the make ap from nodes menu option
Version 8.2A July 2014
This update adds to the mesh menu an option allows all overlapping nodes (within
an input tolerance) to be joined. This option may be used to correct situations
where nodes accidentally overlap or for cases where meshes with common nodes are merged.
Version 8.2 June 2014
This update adds the ability to process jpg files as background images. In addition
further tests have been added to RMAGEN to make merging of meshes more reliable. A
check of correct nodal connections have also been added. An option has been added
to allow more operations when element types are selected.
Version 8.1N August 2013
This update clears some of the difficulty of operation when using add and merge options
on two meshes. In addition RMAGEN has been modified to cause the network to be
displayed in outline mode when there are more than 100,000 nodes in a network. This is
designed to speed initial operations.
Version 8.1M July 2013
This update adds an additional option to the mesh menu to allow deleting of all
elements with a particular type number.
Version 8.1L February 2013
An additional option for mesh transformation has been added
Option 3 transforms the coordinate system by a arc rotation (an input number in radians)
about input defined coordinates.
Version 8.1K January 2013
This minor update refines the precision output and display of bed elevations so that
when numerically small numbers are used extra decimal places are shown/saved.
Version 8.1 I and J December 2012
This update adds an additional option the mesh menu that will provide a framework for
future operations on the entire mesh. They are mostly aimed at test use of the models.
Currently two options are implemented.
Option 1 moves the geometry to a new coordinate system both as a shift and as a scale,
bed elevations may be similarly scaled.
Option 2 transforms the coordinate system into a circular curve.
Full details of the required inputs and methods used are provided in the section describing
mesh options.
Version 8.1G and H July 2012
This update allows loading of map files that are in the form of an ESRI ASCII
format DEM.
Version 8.1F February 2012
This minor update refines the process for treatment of very large systems that
are two large for the initial dimensions. A display is added that allows the user
to expand the limits to provide working space when loading very large systems.
Version 8.1E December 2011
This minor update adds a series of options that allow reading, creation,
display and saving of group numbers for input to RMA-2 and/or RMA-11.
Version 8.1C AND D July 2011
These minor updates correct some inconsistencies and adds two options
1 In the menu "Mesh" an option has been added that permits
movement/rescaling of the coordinate system.
2 In the "Select/Element" menu an option has been added to
allow the user to select elements by element type.
Version 8.1B March 2011
This minor update designed allows the user to directly select a file name
when creating map points from the menu option.
Version 8.1A January 2011
This minor update
(1) expands the input formats so that free field (comma delimited)
element connections can be processed.
(2) revises the 3-D view so that as the view is zoomed in or out the
vertical scale is adjusted to maintain the aspect ratio .
Version 8.1 Sept 2010
This is an update designed to generate improved network quality.
(1) RMAGEN now offers expanded network checking capability.
The purpose is to allow two-dimensional mesh builders to assess the
variability of bed levels across elements and for one-dimensional
elements to assess variability of bed levels and cross-sections.
The Check toolbar function has been expanded to allow two types of
network testing. One computes absolute values of bed level/cross-section
change and the other computes a normalized value of depth
change/cross-section. Once computed these values are displayed as
equivalent contours on an element by element basis. An option on the
SELECT menu item now allows the user to select the elements with higher
values of the differences (the user inputs the fraction at the time
of access) and then refine these elements.
(2) A second addition to the SELECT menu item now allows the user
to find pairs of adjacent triangular elements that form a quadrilateral
that has interior angles greater than 90 deg so that the original diagonal
can be reversed and lead to an improved layout (that is, smaller interior
angles). The user can select how many pairs are to be reversed in any
single step. This option is particularly useful when element refinement
operations have been undertaken.
Version 8.0D June 2010
This version:
(1) Adds an error message when background images are too large
to display.
(2) Increase limits for formation of 1-D and type 999 elements from
the "MESH" menu.
Add a registration capability when background images are slightly in
error.
Version 8.0A, B and C April-May 2010
These are minor releases correcting a few bugs that arose from the switch to
Intel Visual FORTRAN.
Initialization of dialogs is improved.
A bug in allocation of cross-section weighting when there are missing sections
has been fixed.
Some error messages have been improved.
Version 8.0 January 2010
This is a new release that adds a number of features to RMAGEN. The principal
technical update has been a switch to the Intel Visual FORTRAN compiler and the
associated Winteracter library and allocatable arrays have been introduced.
RMAGEN has now been revised to permit 3-D views of the network with or without
contours once it has been created. The contour option has been modified so that
the element layout may be superimposed on top of the contours. This can clarify
the perspectives of a 3-D view. Specifically the following additional menu items
and buttons have been added.
1 In the VIEW menu, the “View in 3-D” item initiates the 3-D view capability
and presents a dialog box that allows the user to set view angles and scale and
origin values.
2 In the VIEW menu, the “Set View Angle” allows the user to reset or adjust
the viewing angles.
3 A new button has been added that when clicked allows the user to rotate
the viewing point in the horizontal plane (by clicking and dragging the mouse
horizontally on the lower section of the screen) and rotate the viewing point in
the vertical plane (by clicking and dragging the mouse vertically on the right
section of the screen).
The user now has control over the size limits. In the FILE menu an option has
been added that slows the user to “reset” the limits on the maximum nodes, maximum
elements and max map points before files are input. Note that once the maximum
number of nodes and elements have been set, they may not be adjusted. However,
if an oversized map file is being loaded, the user is invited to reset this limit.
If a GEO file is loaded that is too large (without the reset option having been
used) the “reset” dialog is automatically displayed so that the user can set
acceptable limits.
Version 7.4a JUNE 2009
This update corrects a bug introduced in an earlier update that made merging and
adding of networks unreliable.
Version 7.4 JULY 2008
This is an update designed to add additional input/output capabilities.
The model is now capable of inputting files generated by TRIANG and outputting
files for use by TRIANG. For information on TRIANG which is a free triangular
mesh generated program developed by Jonathan R Shewchuk
(see web site http://www.cs.cmu.edu/~quake/triangle.html.
A second addition has been the option to outline the user to generate a file of points
that can be used as a mesh outline. This list can be generated in *.poly form that can
be used as input to TRIANGLE or in *.dat for adaptation as an outline in a "map" file.
This option is accessed through the MESH menu.
Finally, a few changes have been made to make RMAGEN more user friendly.
• When interpolating bed elevations the user does not have to return to the “single”
box.
• When the user selects a group of nodes and then desires to set elevation a number
of options are now offered.
Version 7.3H JULY 2007
This version expands the CCLINE menu to permit continuity lines to be updated
(via a menu choice) when elements have beebn refined in the area of the CCLINES.
A second enhancement insures that 2-d control structures are preserved (in a
directional sense) when split into two elements during a refinement process.
Version 7.3G OCTOBER 2006
A series of new options have been added,
(a) the ability to split a line of nodes (or a single node) so that a gap
is created. This gap can optionally be filled with elements.
This offers an easy method for adding weir elements or adding extra
resolution along a line such as a river or navigation channel.
The “split a line” option found in the MESH menu allows the user split
a line of nodes. It is must be used with mid-side nodes deleted.
On entry the user is presented with the screen normally used for
defining CClines. Clicking a series of nodes creates a line which is
finalized with the CONNECT button. A dialog box then offers the user
the choice of how far apart to split the nodes and whether or not to
add elements into the gap.
Note that if a single node is selected the user must define the
directions of the split. For the case of points on a line the
direction is computed automatically.
(b) the ability to generate a line of one-dimensional elements and/or type 999
elements that allow lateral transition from two-dimensional elements.
The "form a line of 1-D elements" option may be found in the MESH menu.
It offers the user the option of either creating nodes and then forming
elements or clicking on a line of existing nodes to form the elements.
The user can optionally assign the same properties to each node or enter
properties through a dialog box. The "form type 999 elements" also in
the MESH menu goes one step further It allows the user either to create
1-D elements as above or input a line of 1-D nodes. Then RMAGEN
automatically creates type 999 elements that abut the 1-D line on either
side.
There has been a review of treatment of layer data in RMAGEN, as a result it
is now possible to save ASCII files of layer data for direct addition to
RMA-10 input files.
Version 7.3f
updates the DEMo option to make it consistent with the latest
options for reordering and simplifies initial operation.
Version 7.3e
restores the ability of RMAGEN to display and generate layer data.
An option in the dialog displayed when the DISP toolbar is clicked allows the
user to select display of the number of layers on a node by node basis. Only
nodes that do not have the default number of layers (9999) are shown. The layer
option is selected in the "ELEV" box menu the user may choose the number of layers
and the data values needed for the LD2 or LD3 option. A similar set of options
now appear when nodes are selected from the “SELECT” menu.
This version also permits the user to select a REORDER/ALL option from the
dropdown menus. This executes the reordering processor using as starting seeds
each network element. PLEASE NOTE THAT FOR LARGE SYSTEMS THIS CAN BE VERY TIME
CONSUMING AND IS ONLY RECOMMENDED WHEN OTHER REORDERING OPTIONS HAVE BEEN FULLY
EXPLORED
Version 7.3d
adds the ability to input and save SMS format “bin” files and fixes a
bug when saving GFGEN files.
Version 7.3c
adds the ability to extract parts of a mesh and save them to a file.
This option is designed to be used when manipulating large meshes, so that the
user is better able to debug a network by first simplifying then adding
detail on a block by block basis.See section 1.10 of the documentation.
A separate addition to the "CSECT" menu permits display of cross-sections loaded
from the cross-section data file, see section 1.7 of the documentation.
Version 7.3b
adds an initial capability designed to permit automatic construction
of networks based on the bathymetry. Two new options have been added to the MESH
dropdown menus. One enables construction of contour lines in "MAP" file format
from existing nodal point values. The second allows mesh generation based on these
contour lines. See section x.x of the documentation for further information on these
options. A second addition is addional options for display of cross-section data
on 1-D network views.
Version 7.3a
adds additional capabilities to RMAGEN that allow the user to
input, display, manipulate and save cross-section files that are to be used
in RMA-2. The FILE, CSECT and RDRAW menu items have been updated. The
FILE menu now allows input and saving of cross-section data files. The
CSECT option now has a sub-menu item (COMPUTE WEIGHTING) that permits
computation of weighting factors from data in the cross-section file, see
section 1.7 of the documentation.
The RDRAW/DRAW OPTIONS sub-menu now allows the user to select display of
cross-section locations and the weighting functions for nodes.
A function update changes the display to a dialog when input of floating point and
integer numbers is required.
A change has been made to the UNDO menu item so that users can now undo refine
operations and element selections using separate sub-menus.
Version 7.3
introduces a series of updates associated with manipulation of meshes.
1 The file menu now permits the user to load additional mesh files, so that more
than one mesh may be worked on when using RMAGEN.
2 A new menu item "Mesh" has been introduced. The user may select which mesh
to activate using a sub menu from the item.
3 The "Add mesh to existing" sub-menu may be used to add to meshes together without
any regard to overlap.
4 The "merge mesh to existing" sub menu allows a mesh to be added to the existing with
the condition that where elements overlap, elements are deleted from the mesh that is added.
5 The "Generate triangular block" sub-menu allows the creation of a triangular block of
elements with different numbers of elements along each side.
6 The "Generate quadrilateral block" sub-menu allows the creation of a quadrilateral block
of elements with different numbers of elements along each side.
7 The "Nodes" sub-menu under the "Select" has been expanded to allow the user to select
nodes either from a polygon, as all nodes or as all unused nodes.
8 A new form triangles option has been added when a group of nodes has been selected using
the "Select" option.
9 A new simplify option has been added when a group of elements has been selected under
the "Select" menu. The user may use this option to reduce element density.
10 The create data option has been moved from its own main menu item to a sub-menu of
the "Map" menu.
Version 7.2
is an update designed to add three further map related options and
a number of other menu options have been added ot changed.
The "triangulate map data" option allows automatic triangulation of map data
using Delaunay triangularization. A set of element connections are developed
in this process so that they may be used as part of the new nodal interpolation
option discussed below. NOTE that this option can take considerable computing
resources if there are many map data points and that about twice as many
elements as map data points are created. To reduce resouce demand an additional
dialog has been created that allows the user to skip some data points or only
process points that are an input spacing from other points.
The "Switch to show Map Data" option allows the user to display a triangulated
map file as if it were an RM1 file. At that point the triangulated map file
can be operated on in the same way as any network file. In particular elements
and nodes can be deleted so that the triangulated map file can be cleaned up
to better represent the system.
The "Switch to show RM1 Data" option allows the user to revert back to the RM1
file.
The user may now save the triangulate map data when saving map information
in binary format.
Users may now load map files in RM1 format, so that externally triangulated
networks may be read in. At present, the loading process deletes all mid-side
nodes and assumes only a triangular representation of the system.
Within the NODES/ELEV menu for interpolation of bed alevations the user is now
prompted to use either a triangulated data set or use the original RMAGEN
interpolation.
An addiitonal option has been added to the file menu that permits the user to
save binary geometry files with headers (so that they can be used on UNIX or
LINUX systems). The file format may be slected as either "big-endian" or
"little-endian" as required by the alternate system.
Version 7.1
is an update designed to add two new menu options, (editing
of nodes or elements and an additional map file making capability) and
to correct two bugs that have been detected. A further addition allows
nodal connections to user 6 column formats (this is needed when element
numbers exceed 99999).
The Edit menu allows ASCII editing of nodal coordinates and element
connections. See section (1.16)
The new map-making facility allows the user to read in a network (in
the usual finite element RM1, GFG or GEO format) and output an interpolated
file over a uniformly spaced grid (with the spacing set by the user).
Thus the user who has a triangulated set of data from another source
can automatically created a high-resolution file. *See section ( 1.17)
Dimension limits on a large capacity RMAGEN have now been set to allow
up to 200,000 elements and 400,000 nodes and a 3000 by 3000 output grid.
The standard limits have now been set to 50,000 elements 100,000 nodes
and a 1000 by 1000 grid. For smaller computers, the medium limits are
set to 20,000 elements, 50,000 nodes and a 300 by 300 grid.
NOTE that the parameter NTEMPIN on line B of the data has an expanded
set of values. See input format instructions.
The corrected errors are as follows:
(a) Double precision coordinates were not always correctly written
to RM1 files.
(b) Some steps when setting element types occasionally caused the
elements to be deleted.
Version 7.0
represents a major revision that has been designed to update the
file handling to accommodate revisions to RMA-2, RMA-10 and RMA-11
that allow for double precision storage of coordinates and larger
integers for node numbers. RMAGEN has been modified to allow input
of geometry files either from old format GEO or RM1 files or from a
newly developed formats output by version 7.0 of RMAGEN..
The “new” format RM1 file allows 20 columns for the x and y coordinates
and is referred to in RMAGEN as the “long format”. The “new” format GEO
file begins with a 1000 character header that starts with the characters “RMAGEN”
In addition, RMAGEN is now able to read a basic GFGEN format input file
The fonts and general readability of RMAGEN text display has also been improved.
On entry to the “Open” menu the model now first prompts for the network
file and then the map file.
In addition to RM1 files the user can now open and save ascii network files generated
by SMS. In RMAGEN they are given and use the suffix "GFG" thus they should be renamed
as "GEO" to or from use in SMS. Similarly, the user may save "BIN" format binary geometry
files for use with SMS
Bed elevations are now displayed with decimal points.
A number of toolbar options have been implemented for easier zooming, and panning,
and filling deleting of mid-side nodes.
Version 6.4
adds
(a) additional data input for sloping beds in one-dimensional elements,
(b) permits the user to display data values as colored points as an
alternative to numbers and
(c) add the x and y location to a new status bar at the bottom of the active window.
Version 6.3
adds
a new feature to RMAGEN, namely, the ability to lock/unlock nodal
elevation values. The lock/unlock options can be accessed from the
node/elev menu or after “selecting/nodes” from the dropdown menu.
This feature allows the user to manually set nodal elevations and
then allow the interpolation routine to pick up values for other nodes.
This option is accessed node/elev box menu. This version also allows
the user to load a replacement map file during processing and save the
lock/unlock information on the rm1 and geo files.
Finally the geo file has now been modified to store reordering data so
that this information is available to the user when loading the geo
file for processing.
Version 6.2
adds
the capability to register corners of a loaded image using known locations
of points within the image. This option is accessed from the
Rdraw/Background/Register drop down menu. This version also adds
additional information when reordering stops because of a poorly
constructed network.
An additional change in revision (a) allows the user to delete all
continuity lines by selecting a zero continuity line number when deleting.
Rev 3 of Version 6.1
is a modification designed to clarify the limitations of
RMAGEN when copying and printing files that contain background images.
The limitations are those imposed by the graphics library and will be
removed as soon as possible.
Copy file limitations.
1 Networks only can be copied in any of the available formats.
2 Networks with background images can only be saved in “emf” format
and the background image must have been input in a vector format,
i.e. a non bitmap format.
3 At present copied image files may revert to the full size of the
image even if there has been a zoom operation. This limitation
does not apply to clipboard or printed images. The extent of
the image displayed depends on Windows application. In general
this means that size of this saved image may be very large.
If the user wishes to copy and save images of a small section of
the network, it is recommended that an external graphics or GIS
program be used to construct a wmf file that covers the area of interest.
Version 6.1
adds a series of new capabilities designed to enhance usage:
1 The capability of displaying background files. These files may
be in a variety of formats, either bitmap format (bmp, pcx or png)
or vector format (wmf, cgm, or pic). For further details see a
new section that describes necessary formats for the background file.
2 The addition of an “undo” menu option that may be used following
generation of a block of elements to delete the entire new block
or following refinement to remove the last refinement step, even
after the “clean” operation
3 During display some of the plotted numbers have been reduced in
size to reduce congestion on the screen.
4 The screen display may now be written to the clipboard.
5 The “makemap” option has now been modified to output the map file
in a type 2 format.
6 This manual has been expanded by the addition of two appendices.
Appendix A lists the formats for the RM1 file and Appendix B gives
a series steps to guide users through the use of RMAGEN
Version 6.0
reflects a significant change to the treatment of continuity lines.
In this version they may be:
1. Displayed using the redraw menu. Note that this option replaces
the “grid” option that is now only available from the dropdown redraw menu.
2. Assigned a number and re-entered or deleted.
3. Saved on the binary geometry file.
A further change allows the user to construct the reordering list and
then “save” it instead of predefining the list number.
Version 5.4 reflects the continuing expansion of module operation.
1 The select/node option of the main menu has been enhanced to permit
the user to define a given number of 3-D layers for those nodes.
If not previously defined the user will be prompted for a file name
where this 3-D data will stored.
2 The “threed” option of the node/elev menu has been rewritten to
store values to a file.
3 Additions have been made to the ordering menu options to permit the
user to compact node and element numbers to eliminate missing numbers.
Version 5 has been compiled with version 4.5 of the Lahey compiler and has been
adapted to run under WINTERACTER. This offers the user a more Windows
like feel to operation of the module. Several important changes apply:
1. File opening and saving is now prompted through Windows boxes.
2. The main menu is always available at the top of the window and switching between menus may be accomplished by pointing at the appropriate identifier.
3. A number of new features are now available from drop down menus
Version 4.2 revises the algorithm for computation of bottom elevations from MAP
data and shifts a number of the I/O functions to the graphics window.
An option has also been added for "Move Node" and "Refine" operations
that allows the user to reset bottom elevations to 9999 for nodes that
are moved or created during refinement. Version 4.1 allows the user to
generate continuity lines for direct input into data files of other RMA models.
Version 3.3(a) permits the user to optionally save a record of all mouse and
keystroke operations and to later play these back. These feature can
be used for debugging and producing demonstrations of model use. For
instructions on the use of this option see the file handling section
below. For information on the status see the "READ.ME" file accompanying
this documentation

@ -42,7 +42,7 @@ DiagStart System
Message deselect them below : Message deselect them below :
FileStart FileStart
Program RMAMODELS | \PROGRAM FILES\RMA\RMAGEN\RMAGENV84.exe | RMAGENV84 | Program RMAMODELS | \PROGRAM FILES\RMA\RMAGEN\RMAGENV84c.exe | RMAGENV84c |
# #
# Winteracter Example Installation Script # Winteracter Example Installation Script
# ------------------------------------------------------------ # ------------------------------------------------------------
@ -53,11 +53,11 @@ FileStart
# Change bitmap # Change bitmap
Copy "PALMIS.MAP" "PALMIS.MAP" Copy "PALMIS.MAP" "PALMIS.MAP"
Copy "RECORD.REC" "RECORD.REC" Copy "RECORD.REC" "RECORD.REC"
Copy "RMAGENv84.EXE" "RMAGENV84.EXE" Copy "RMAGENv84c.EXE" "RMAGENV84c.EXE"
Mkdir "\doc" Mkdir "\doc"
Copy "Rmagen84.DOCx" "doc\rmagen84.DOCx" Copy "Rmagen84c.DOCx" "doc\rmagen84c.DOCx"
Copy "Rmagen84.pdf" "doc\rmagen84.pdf" Copy "Rmagen84c.pdf" "doc\rmagen84c.pdf"
Copy "README-Rmagen84.txt" "doc\README-rmagen84.txt" Copy "README-Rmagen84c.txt" "doc\README-rmagen84c.txt"
Banner "second.bmp" Banner "second.bmp"
# #
# Change bitmap # Change bitmap

Binary file not shown.

@ -13,7 +13,7 @@
<Tool Name="VFPreBuildEventTool"/> <Tool Name="VFPreBuildEventTool"/>
<Tool Name="VFPostBuildEventTool"/> <Tool Name="VFPostBuildEventTool"/>
<Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration> <Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration>
<Configuration Name="Release|Win32" TargetName="rmagenv84-JUN15"> <Configuration Name="Release|Win32" TargetName="rmagenv84C">
<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" BufferedIO="true" UseWindowsLibs="true"/> <Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" BufferedIO="true" UseWindowsLibs="true"/>
<Tool Name="VFLinkerTool" SuppressStartupBanner="true" AdditionalLibraryDirectories="C:\WINT\LIB.IF8" SubSystem="subSystemWindows" StackReserveSize="10000000" StackCommitSize="6000000" AdditionalDependencies="WINTER.LIB COMDLG32.LIB WINSPOOL.LIB WINMM.LIB SHELL32.LIB ADVAPI32.LIB VERSION.LIB HTMLHELP.LIB opengl32.lib glu32.lib"/> <Tool Name="VFLinkerTool" SuppressStartupBanner="true" AdditionalLibraryDirectories="C:\WINT\LIB.IF8" SubSystem="subSystemWindows" StackReserveSize="10000000" StackCommitSize="6000000" AdditionalDependencies="WINTER.LIB COMDLG32.LIB WINSPOOL.LIB WINMM.LIB SHELL32.LIB ADVAPI32.LIB VERSION.LIB HTMLHELP.LIB opengl32.lib glu32.lib"/>
<Tool Name="VFResourceCompilerTool"/> <Tool Name="VFResourceCompilerTool"/>
@ -135,9 +135,10 @@
<File RelativePath="..\SRC84\RMAGEN.F90"/> <File RelativePath="..\SRC84\RMAGEN.F90"/>
<File RelativePath="..\SRC84\RVSDIAG.F90"/> <File RelativePath="..\SRC84\RVSDIAG.F90"/>
<File RelativePath="..\SRC84\SAVELTLD.F90"/> <File RelativePath="..\SRC84\SAVELTLD.F90"/>
<File RelativePath="..\SRC84\SAVESHP.F90"/> <File RelativePath="..\SRC84\SAVESHP1.F90"/>
<File RelativePath="..\SRC84\SELT.F90"/> <File RelativePath="..\SRC84\SELT.F90"/>
<File RelativePath="..\SRC84\setangle.f90"/> <File RelativePath="..\SRC84\setangle.f90"/>
<File RelativePath="..\SRC84\SETBACK.F90"/>
<File RelativePath="..\SRC84\SHOWEQ.F90"/> <File RelativePath="..\SRC84\SHOWEQ.F90"/>
<File RelativePath="..\SRC84\SMFY.F90"/> <File RelativePath="..\SRC84\SMFY.F90"/>
<File RelativePath="..\SRC84\SPLIT.F90"/> <File RelativePath="..\SRC84\SPLIT.F90"/>

@ -23,7 +23,7 @@
ALLOCATABLE CORD(:,:),XUSR(:),YUSR(:),XC(:),YC(:),IRTYP(:)& ALLOCATABLE CORD(:,:),XUSR(:),YUSR(:),XC(:),YC(:),IRTYP(:)&
,NOP(:,:),IMAT(:),THTA(:),IMATL(:),CORDSN(:,:)& ,NOP(:,:),IMAT(:),THTA(:),IMATL(:),CORDSN(:,:)&
,WD(:) ,WD1(:),INSKP(:), IESKP(:),NCORN(:)& ,WD(:) ,WD1(:),INSKP(:), IESKP(:),NCORN(:),WDBAK(:)&
,WIDTH(:), SS1(:), SS2(:), WIDS(:)& ,WIDTH(:), SS1(:), SS2(:), WIDS(:)&
,IJUN(:),INEW(:),IEM(:),LINTYP(:),NEFLAG(:),NEF(:,:),LAY(:),WTLAY(:,:)& ,IJUN(:),INEW(:),IEM(:),LINTYP(:),NEFLAG(:),NEF(:,:),LAY(:),WTLAY(:,:)&
,WIDBS(:),SSO(:),NODDEL(:),IELDEL(:)& ,WIDBS(:),SSO(:),NODDEL(:),IELDEL(:)&
@ -42,7 +42,7 @@
,IIN, IBAK, LUNIT,IGIN,IS11,IMP,IGFG,ISWAP,ITRIAN& ,IIN, IBAK, LUNIT,IGIN,IS11,IMP,IGFG,ISWAP,ITRIAN&
,klint,jlint,lmpnam,IDELV,nmapf,NSIGF,NPUNDO,NEUNDO,nefsav,nesav& ,klint,jlint,lmpnam,IDELV,nmapf,NSIGF,NPUNDO,NEUNDO,nefsav,nesav&
,xadded,yadded,icolsw,rad,colint,ielvsw,ISWTAGN,iswtintp,eref,igrp,igrpout,MAXIGRP& ,xadded,yadded,icolsw,rad,colint,ielvsw,ISWTAGN,iswtintp,eref,igrp,igrpout,MAXIGRP&
,JPTSB,ILINEL ,JPTSB,ILINEL,NPBAKUP
!IPK MAR02 ADD BS1 !IPK MAR02 ADD BS1
!IPK FEB02 ADD LOCK !IPK FEB02 ADD LOCK
!IPK MAY01 ADD NODDEL AND IELDEL !IPK MAY01 ADD NODDEL AND IELDEL
@ -119,11 +119,11 @@
ALLOCATABLE IOUTLST(:,:),NOUTLST(:),XOUT(:,:),YOUT(:,:) ALLOCATABLE IOUTLST(:,:),NOUTLST(:),XOUT(:,:),YOUT(:,:)
COMMON /VIEWS/ HANG,VANG,VRTSCAL,HANGOLD,VANGOLD,VRTORIG,IASPCT COMMON /VIEWS/ HANG,VANG,VRTSCAL,HANGOLD,VANGOLD,VRTORIG,IASPCT,IGUNIT
INTEGER KID(900,5) INTEGER KID(900,5)
INTEGER IGUNIT,NROWS1,NCOLS1 INTEGER NROWS1,NCOLS1,NGRTYP
REAL XXORG,YYORG,CELLSIZX,CELLSIZY REAL XXORG,YYORG,CELLSIZX,CELLSIZY
REAL VALLIN,XCOL,YCOL REAL VALLIN,XCOL,YCOL
ALLOCATABLE VALLIN(:),XCOL(:),YCOL(:) ALLOCATABLE VALLIN(:),XCOL(:),YCOL(:)

@ -1,4 +1,4 @@
SUBROUTINE COMPWGT SUBROUTINE COMPWGT(ISWT)
USE BLK1MOD USE BLK1MOD
! INCLUDE 'BLK1.COM' ! INCLUDE 'BLK1.COM'
@ -43,6 +43,7 @@
DO N=1,NP DO N=1,NP
IF(ICN(N) .GT. 0) THEN IF(ICN(N) .GT. 0) THEN
IF(ISWT .EQ. 0 .OR. (WTRIVCR1(N) .EQ. 0. .AND. WTRIVCR2(N) .EQ. 0)) THEN
ADIST=1.E20 ADIST=1.E20
DO J=1,NCRSEC DO J=1,NCRSEC
IF(IVMIL(J) .EQ. 0) CYCLE IF(IVMIL(J) .EQ. 0) CYCLE
@ -87,6 +88,7 @@
WTRIVCR1(N)=BDIST/(ADIST+BDIST) WTRIVCR1(N)=BDIST/(ADIST+BDIST)
WTRIVCR2(N)=ADIST/(ADIST+BDIST) WTRIVCR2(N)=ADIST/(ADIST+BDIST)
ENDIF ENDIF
ENDIF
ENDIF ENDIF
ENDDO ENDDO
RETURN RETURN

@ -1,4 +1,4 @@
! Winteracter resource identifiers. Created : 14/Sep/2018 14:52:39 ! Winteracter resource identifiers. Created : 10/Jul/2021 17:03:10
! !
! This file is generated by the Winteracter resource editor. ! This file is generated by the Winteracter resource editor.
! It should not be edited manually. It is also not advisable to load this ! It should not be edited manually. It is also not advisable to load this
@ -407,3 +407,7 @@
INTEGER, PARAMETER :: IDF_CANCEL = 1088 INTEGER, PARAMETER :: IDF_CANCEL = 1088
INTEGER, PARAMETER :: IDD_ADDSLOT = 171 INTEGER, PARAMETER :: IDD_ADDSLOT = 171
INTEGER, PARAMETER :: ID_ADDBEDLEV = 40151 INTEGER, PARAMETER :: ID_ADDBEDLEV = 40151
INTEGER, PARAMETER :: ID_ORDR2 = 40152
INTEGER, PARAMETER :: ID_RESTORELEV = 40153
INTEGER, PARAMETER :: ID_UPDTWGHT = 40154
INTEGER, PARAMETER :: IDD_PLTSHP = 172

@ -10,7 +10,7 @@
! THIS BLOCK IS IN BLK1.F90 ! THIS BLOCK IS IN BLK1.F90
COMMON /VIEWS/ HANG,VANG,VRTSCAL,HANGOLD,VANGOLD,VRTORIG,IASPCT COMMON /VIEWS/ HANG,VANG,VRTSCAL,HANGOLD,VANGOLD,VRTORIG,IASPCT,IGUNIT
INTEGER :: NP,NE,NHTP,NMESS,NBRR,IPSW,IRMAIN,ISCRN,icolon,nhtpsv,nmessv,nbrrsv,ntempin,IPW2 INTEGER :: NP,NE,NHTP,NMESS,NBRR,IPSW,IRMAIN,ISCRN,icolon,nhtpsv,nmessv,nbrrsv,ntempin,IPW2
@ -189,6 +189,10 @@
OPEN(IMP ,FILE=FNAME,STATUS='OLD',form='binary',action='read') OPEN(IMP ,FILE=FNAME,STATUS='OLD',form='binary',action='read')
ENDIF ENDIF
ENDIF ENDIF
IF(IGUNIT .EQ. 203) THEN
CLOSE (IGUNIT)
IGUNIT=0
ENDIF
CALL RDMAP(2,IMP,0,0) CALL RDMAP(2,IMP,0,0)
CALL PLOTOT(0) CALL PLOTOT(0)
nhtp=nhtpsv nhtp=nhtpsv
@ -994,7 +998,7 @@
! GO TO 100 ! GO TO 100
CASE (ID_SAVSHP) ! Copy to shape file selected is selected CASE (ID_SAVSHP) ! Copy to shape file selected is selected
call saveshp call saveshp1
go to 100 go to 100
CASE (ID_ITEM24) ! Print option is selected CASE (ID_ITEM24) ! Print option is selected
@ -1330,7 +1334,10 @@
CALL CRSECT CALL CRSECT
GO TO 101 GO TO 101
CASE (ID_CRSCAL) CASE (ID_CRSCAL)
CALL COMPWGT CALL COMPWGT(0)
GO TO 101
CASE (ID_UPDTWGHT)
CALL COMPWGT(1)
GO TO 101 GO TO 101
CASE (ID_CSLOC) CASE (ID_CSLOC)
CALL GETCSLOC CALL GETCSLOC
@ -1340,6 +1347,9 @@
CASE (ID_ORDR1) CASE (ID_ORDR1)
CALL ORDALL CALL ORDALL
GO TO 101 GO TO 101
CASE (ID_ORDR2)
CALL ORDDIR
GO TO 101
CASE (ID_DCONTR) CASE (ID_DCONTR)
MENUS=12 MENUS=12
CALL CONOUT(MENUS) CALL CONOUT(MENUS)
@ -1756,6 +1766,9 @@
CALL UNDOGEN CALL UNDOGEN
! ENDIF ! ENDIF
GO TO 100 GO TO 100
CASE (ID_RESTORELEV)
CALL RESTORELV
GO TO 100
CASE (ID_GOUTLIN) CASE (ID_GOUTLIN)
CALL GOUTLIN CALL GOUTLIN
GO TO 100 GO TO 100

@ -62,13 +62,11 @@
! read(headr(9:16),'(i8)') istyp ! read(headr(9:16),'(i8)') istyp
! endif ! endif
do i=1,250000 do i=1,250000
if(istyp .eq. 25) then ! if(istyp .eq. 25) then
if(istyp .eq. 15) then
read(113,end=100) iclt,ityp(i),npts,(bx(j),by(j),bm(j),j=1,npts) read(113,end=100) iclt,ityp(i),npts,(bx(j),by(j),bm(j),j=1,npts)
do j=1,npts
write(155,*) bx(j),by(j),bm(j)
enddo
icl(i)=iclt icl(i)=iclt
write(155,*) icl(i),ityp(i),npts ! write(155,*) icl(i),ityp(i),npts
do j=1,npts do j=1,npts
axmn=min(axmn,bx(j)) axmn=min(axmn,bx(j))
aymn=min(aymn,by(j)) aymn=min(aymn,by(j))
@ -157,20 +155,30 @@
i8=1 i8=1
i9=istyp i9=istyp
fz=0. fz=0.
write(99) i1,i2,i3,i4,i5,i6,i7,i8,i9,axmn,aymn,axmx,aymx,fz,fz,ammn,ammx if(istyp .ne. 15) then
write(99) i1,i2,i3,i4,i5,i6,i7,i8,i9,axmn,aymn,axmx,aymx,fz,fz,ammn,ammx
else
write(99) i1,i2,i3,i4,i5,i6,i7,i8,i9,axmn,aymn,axmx,aymx,ammn,ammx,fz,fz
endif
ia7=50+4*numdat ia7=50+4*numdat
call BTOL(ai7,i7) call BTOL(ai7,i7)
write(98) i1,i2,i3,i4,i5,i6,i7,i8,i9,axmn,aymn,axmx,aymx,fz,fz,ammn,ammx !ipk nov20
if(istyp .ne. 15) then
write(98) i1,i2,i3,i4,i5,i6,i7,i8,i9,axmn,aymn,axmx,aymx,fz,fz,ammn,ammx
else
write(98) i1,i2,i3,i4,i5,i6,i7,i8,i9,axmn,aymn,axmx,aymx,ammn,ammx,fz,fz
endif
ioff=50 ioff=50
! header now complete for shp and shx options ! header now complete for shp and shx options
do i=1,numdat do i=1,numdat
if(istyp .eq. 25) then !ipk nov20
if(istyp .eq. 15) then
read(113,end=100) iclt,ityp(i),npts,(bx(j),by(j),bm(j),j=1,npts) read(113,end=100) iclt,ityp(i),npts,(bx(j),by(j),bm(j),j=1,npts)
icl(i)=iclt icl(i)=iclt
nrs=32+12*npts nrs=32+12*npts
nrsc=nrs+4 nrsc=nrs+4
! write(155,*) 'nrs',nrs write(155,*) 'nrs',nrs,npts
call btol(anrs,nars) call btol(anrs,nars)
elseif(istyp .eq. 5) then elseif(istyp .eq. 5) then
IF(IVECACT .EQ. 5) THEN IF(IVECACT .EQ. 5) THEN
@ -208,7 +216,8 @@
ii=i ii=i
call btol(aii,nrec) call btol(aii,nrec)
write(99) nrec,nars write(99) nrec,nars
if(istyp .eq. 25) then !ipk nov20
if(istyp .eq. 15) then
j1=istyp j1=istyp
j2=1 j2=1
bxmn=bx(1) bxmn=bx(1)
@ -226,7 +235,8 @@
bmmx=max(bmmx,bm(k)) bmmx=max(bmmx,bm(k))
enddo enddo
j3=npts j3=npts
j4=0 j4=I
! write(99) j1,bxmn,bymn,bxmx,bymx,j2,j3,j4
write(99) j1,bxmn,bymn,bxmx,bymx,j2,j3,j4 write(99) j1,bxmn,bymn,bxmx,bymx,j2,j3,j4
do k=1,npts do k=1,npts
write(99) bx(k),by(k) write(99) bx(k),by(k)
@ -236,7 +246,13 @@
write(99) bm(k) write(99) bm(k)
enddo enddo
elseif(istyp .gt. 2) then ! write(99) bmmn,bmmx
! do k=1,npts
! write(99) bm(k)
! enddo
elseif(istyp .gt. 2 .and. istyp .lt. 15) then
j1=istyp j1=istyp
j2=1 j2=1
bxmn=bx(1) bxmn=bx(1)
@ -257,6 +273,9 @@
write(99) bx(k),by(k) write(99) bx(k),by(k)
! write(155,*) k,bx(k),by(k) ! write(155,*) k,bx(k),by(k)
enddo enddo
if(istyp .eq. 15) then
write(99) bmmn,bmmx,(bm(k),k=1,npts)
endif
elseif(istyp .eq. 1) then elseif(istyp .eq. 1) then
j4=1 j4=1
write(99) j4,bx(1),by(1) write(99) j4,bx(1),by(1)
@ -291,11 +310,11 @@
ai1b='W' ai1b='W'
write(97) i5,i5,i5,ai1a,ai1a,ai1b,ai1a write(97) i5,i5,i5,ai1a,ai1a,ai1b,ai1a
i2a=0 i2a=0
IF(ISTYP .EQ. 25) THEN IF(ISTYP .EQ. 15) THEN
name='ID ' name='ID '
label='N' label='N'
i2=0 i2=0
ai1a=char(8) ai1a=char(9)
ai1b=char(0) ai1b=char(0)
ai1c=char(0) ai1c=char(0)
ai1f=char(13) ai1f=char(13)
@ -313,7 +332,7 @@
name='ID ' name='ID '
label='N' label='N'
i2=0 i2=0
ai1a=char(8) ai1a=char(9)
ai1b=char(0) ai1b=char(0)
ai1c=char(0) ai1c=char(0)
ai1f=char(13) ai1f=char(13)
@ -402,9 +421,9 @@
ai1f=char(32) ai1f=char(32)
do i=1,numdat do i=1,numdat
write(97) ai1a write(97) ai1a
if(istyp .eq. 25) then if(istyp .eq. 15) then
write(as(1:8),'(i8)') icl(i) write(as(1:9),'(i9)') icl(i)
write(97) as(1:8) write(97) as(1:9)
write(as(1:9),'(i9)') ityp(i) write(as(1:9),'(i9)') ityp(i)
write(97) as(1:9) write(97) as(1:9)
elseif(istyp .eq. 5) then elseif(istyp .eq. 5) then

@ -42,6 +42,8 @@
NOREACH=0 NOREACH=0
NRIVL=0 NRIVL=0
IVMIL=0 IVMIL=0
WTRIVCR1=0.
WTRIVCR2=0.
call ginpt(icrin,id1,dlin1) call ginpt(icrin,id1,dlin1)
@ -56,7 +58,7 @@
N=0 N=0
200 N=N+1 200 N=N+1
IF(N .GT. MCRS) THEN IF(N .GT. MCRS+1) THEN
CALL WMessageBox(0,3,1,'Allowable number of sections (1000) exceeded'//char(13)//& CALL WMessageBox(0,3,1,'Allowable number of sections (1000) exceeded'//char(13)//&
'Cross-section file input terminated','ERROR') 'Cross-section file input terminated','ERROR')
return return
@ -160,7 +162,7 @@
! !
ENDDO ENDDO
WD1(NOP(N,2))=(WD1(NOP(N,1))+WD1(NOP(N,3)))/2. IF(NOP(N,2) .GT. 0) WD1(NOP(N,2))=(WD1(NOP(N,1))+WD1(NOP(N,3)))/2.
! !
ELSE ELSE
DO J=1,NCORN(N) DO J=1,NCORN(N)

@ -30,7 +30,7 @@
! Establish fraction within cell ! Establish fraction within cell
XFRAC=(XXX-XORGT-(NCOL-1)*CELLSIZX)/CELLSIZX XFRAC=(XXX-XORGT-(NCOL-1)*CELLSIZX)/CELLSIZX
YFRAC=((YYY-YORGT-(NROWU-1)*CELLSIZY))/CELLSIZY YFRAC=(YYY-YORGT-(NROWU-1)*CELLSIZY)/CELLSIZY
! Let fraction overlap outer edge ! Let fraction overlap outer edge
@ -39,7 +39,11 @@
! Set up file position across columns, up rows and combine ! Set up file position across columns, up rows and combine
NCOLFIL=(NCOL-1)*4 NCOLFIL=(NCOL-1)*4
NROWFIL=(NROWS1-NROWU+1)*LENROW IF(NGRTYP .EQ. 1) THEN
NROWFIL=(NROWU-1)*LENROW
ELSE
NROWFIL=(NROWS1-NROWU+1)*LENROW
ENDIF
NFILPOS=NCOLFIL+NROWFIL NFILPOS=NCOLFIL+NROWFIL
! Read lower left the lower right allow fo upper limit ! Read lower left the lower right allow fo upper limit
@ -57,7 +61,12 @@
! Now mode to next row up and column ! Now mode to next row up and column
NROWFIL=(NROWS1-NROWU)*LENROW IF(NGRTYP .EQ. 1) THEN
NROWFIL= NROWU*LENROW
ELSE
NROWFIL=(NROWS1-NROWU)*LENROW
ENDIF
! NROWFIL=(NROWS1-NROWU)*LENROW
NFILPOS=NCOLFIL+NROWFIL NFILPOS=NCOLFIL+NROWFIL
READ(203,POS=NFILPOS+1) ELEVUL READ(203,POS=NFILPOS+1) ELEVUL
IF(NCOL .LT. NCOLS1) NFILPOS=NFILPOS+4 IF(NCOL .LT. NCOLS1) NFILPOS=NFILPOS+4

@ -83,7 +83,7 @@
ALLOCATE (MSN(MAXP),ICN(MAXP)) ALLOCATE (MSN(MAXP),ICN(MAXP))
ALLOCATE (ILIST(MAXLN,MAELN),LLIST(MAXLN)) ALLOCATE (ILIST(MAXLN,MAXE),LLIST(MAXLN))
RETURN RETURN
END END

@ -1221,7 +1221,7 @@
! !
5 continue 5 continue
IGUNIT=0 ! IGUNIT=0
ielvsw=0 ielvsw=0
! IF (IFIRST .EQ. 0) THEN ! IF (IFIRST .EQ. 0) THEN
IF(IFIRST .EQ. 2) IMP=IMPP IF(IFIRST .EQ. 2) IMP=IMPP
@ -1506,40 +1506,87 @@
ELSEIF(IMP .EQ. 94) THEN ELSEIF(IMP .EQ. 94) THEN
READ(IMP,'(A4)') HEDR READ(IMP,'(A4)') HEDR
IF(HEDR .EQ. 'DSAA') THEN IF(HEDR .EQ. 'DSAA') THEN
NGRTYP=1
READ(IMP,*) NCOLS1,NROWS1 READ(IMP,*) NCOLS1,NROWS1
maxpts=ncols1*nrows1 NSQ=MAX(NCOLS1,NROWS1)
if(maxpts .gt. maxpl) then IF(NSQ .GT. MAXLIN) THEN
maxpl=maxpts+1 MAXLIN=NSQ+10
deallocate (CMAP,XMAP,YMAP,VAL,imap,NCRS) DEALLOCATE (VALLIN,XCOL,YCOL)
ALLOCATE (VALLIN(MAXLIN),XCOL(MAXLIN),YCOL(MAXLIN))
allocate (CMAP(MAXPL,2),XMAP(MAXPL),YMAP(MAXPL),VAL(MAXPL)) ENDIF
ALLOCATE (imap(maxpl),NCRS(MAXPL))
endif
READ(IMP,*) XXORG,XXTOP,YYORG,YYTOP READ(IMP,*) XXORG,XXTOP,YYORG,YYTOP
READ(IMP,*) DD1,DD2 READ(IMP,*) DD1,DD2
DXINT=(XXTOP-XXORG)/(NCOLS1-1) CELLSIZX=(XXTOP-XXORG)/(NCOLS1-1)
DYINT=(YYTOP-YYORG)/(NROWS1-1) CELLSIZY=(YYTOP-YYORG)/(NROWS1-1)
JJ=0
II=0
ANODAT=1.E36 ANODAT=1.E36
READ(IMP,*) (VAL(I),I=1,MAXPTS) II=0
DO J=NROWS1,1,-1 jj=0
IGUNIT=203
XXORG=XXORG+CELLSIZX/2.
YYORG=YYORG+CELLSIZY/2.
DO J=1,NROWS1
YCOL(J)=CELLSIZY*(J-1)+YYORG
ENDDO
DO I=1,NCOLS1
XCOL(J)=CELLSIZX*(I-1)+XXORG
ENDDO
OPEN(IGUNIT,STATUS='UNKNOWN',FORM='BINARY',ACCESS='STREAM')
DO J=1,NROWS1
READ(IMP,*) (VALLIN(I),I=1,NCOLS1)
do i=1,ncols1
if(vallin(i) .gt. anodat) vallin(i)=-9999.
enddo
WRITE(203) (VALLIN(I),I=1,NCOLS1)
if(j .gt. 1 .AND. J .LT. NROWS1) cycle
!jun06 IF(MOD(J,INTV) .NE. 0) CYCLE
DO I=1,NCOLS1 DO I=1,NCOLS1
II=II+1 !jun06 DO I=1,NCOLS1,INTV
IF(VAL(II) .GT. ANODAT) CYCLE ! II=II+1
! IF(VALLIN(I) .EQ. ANODAT) CYCLE
JJ=JJ+1 JJ=JJ+1
XMAP(JJ)=DXINT*(I-1)+XXORG XMAP(JJ)=CELLSIZX*(I-1)+XXORG
YMAP(JJ)=DYINT*(NROWS1+1-J)+YYORG YMAP(JJ)=CELLSIZY*(J-1)+YYORG
CMAP(JJ,1)=XMAP(JJ) CMAP(JJ,1)=XMAP(JJ)
CMAP(JJ,2)=YMAP(JJ) CMAP(JJ,2)=YMAP(JJ)
VAL(JJ)=VAL(II) val(jj)=0.
if(vallin(i) .lt. anodat/10.) VAL(JJ)=VALLIN(I)
ENDDO
ENDDO ENDDO
ENDDO ! READ(IMP,*) NCOLS1,NROWS1
! maxpts=ncols1*nrows1
! if(maxpts .gt. maxpl) then
! maxpl=maxpts+1
! deallocate (CMAP,XMAP,YMAP,VAL,imap,NCRS)
!
!allocate (CMAP(MAXPL,2),XMAP(MAXPL),YMAP(MAXPL),VAL(MAXPL))
!
!ALLOCATE (imap(maxpl),NCRS(MAXPL))
!
! endif
! READ(IMP,*) XXORG,XXTOP,YYORG,YYTOP
! READ(IMP,*) DD1,DD2
! DXINT=(XXTOP-XXORG)/(NCOLS1-1)
! DYINT=(YYTOP-YYORG)/(NROWS1-1)
! JJ=0
! II=0
! ANODAT=1.E36
! READ(IMP,*) (VAL(I),I=1,MAXPTS)
! DO J=NROWS1,1,-1
! DO I=1,NCOLS1
! II=II+1
! IF(VAL(II) .GT. ANODAT) CYCLE
! JJ=JJ+1
! XMAP(JJ)=DXINT*(I-1)+XXORG
! YMAP(JJ)=DYINT*(NROWS1+1-J)+YYORG
! CMAP(JJ,1)=XMAP(JJ)
! CMAP(JJ,2)=YMAP(JJ)
! VAL(JJ)=VAL(II)
! ENDDO
! ENDDO
!
ELSE ELSE
REWIND IMP REWIND IMP
NGRTYP=2
READ(IMP,*) LAB1,NCOLS1 READ(IMP,*) LAB1,NCOLS1
READ(IMP,*) LAB1,NROWS1 READ(IMP,*) LAB1,NROWS1
! INTV=1 ! INTV=1
@ -1572,7 +1619,7 @@
READ(IMP,*) LAB2,YYORG READ(IMP,*) LAB2,YYORG
READ(IMP,*) LAB3,CELLSIZX READ(IMP,*) LAB3,CELLSIZX
READ(IMP,*) LAB3,CELLSIZY READ(IMP,*) LAB3,CELLSIZY
IF(LAB3(1:6) .NE. 'NODATA') THEN IF(LAB3(1:6) .NE. 'NODATA' .and. LAB3(1:6) .NE. 'nodata') THEN
READ(IMP,*) LAB4,ANODAT READ(IMP,*) LAB4,ANODAT
ELSE ELSE
ANODAT=CELLSIZY ANODAT=CELLSIZY
@ -1592,8 +1639,15 @@
OPEN(IGUNIT,STATUS='UNKNOWN',FORM='BINARY',ACCESS='STREAM') OPEN(IGUNIT,STATUS='UNKNOWN',FORM='BINARY',ACCESS='STREAM')
DO J=1,NROWS1 DO J=1,NROWS1
READ(IMP,*) (VALLIN(I),I=1,NCOLS1) READ(IMP,*) (VALLIN(I),I=1,NCOLS1)
do i=1,ncols1
if(anodat .gt. 0) then
if(vallin(i) .gt. anodat/10.) vallin(i)=-9999.
else
if(vallin(i) .le. anodat+100.) vallin(i)=-9999.
endif
enddo
WRITE(203) (VALLIN(I),I=1,NCOLS1) WRITE(203) (VALLIN(I),I=1,NCOLS1)
if(j .gt. 1) cycle if(j .gt. 1 .AND. J .LT. NROWS1) cycle
!jun06 IF(MOD(J,INTV) .NE. 0) CYCLE !jun06 IF(MOD(J,INTV) .NE. 0) CYCLE
DO I=1,NCOLS1 DO I=1,NCOLS1
!jun06 DO I=1,NCOLS1,INTV !jun06 DO I=1,NCOLS1,INTV
@ -1604,14 +1658,15 @@
YMAP(JJ)=CELLSIZY*(NROWS1+1-J)+YYORG YMAP(JJ)=CELLSIZY*(NROWS1+1-J)+YYORG
CMAP(JJ,1)=XMAP(JJ) CMAP(JJ,1)=XMAP(JJ)
CMAP(JJ,2)=YMAP(JJ) CMAP(JJ,2)=YMAP(JJ)
VAL(JJ)=VALLIN(I) val(jj)=0.
if(vallin(i) .lt. anodat/10.) VAL(JJ)=VALLIN(I)
ENDDO ENDDO
ENDDO ENDDO
ENDIF ENDIF
REWIND(IGUNIT) REWIND(IGUNIT)
MAXPTS=JJ MAXPTS=JJ+1
XMAP(MAXPTS+1)= VOID XMAP(MAXPTS+1)= VOID
jlint=jj+1
KLINT=1 KLINT=1
LINTYP(1)=2 LINTYP(1)=2
else else
@ -2345,6 +2400,11 @@
jlint=maxpts jlint=maxpts
write(impf) klint,jlint,(xmap(j),ymap(j),val(j),j=1,jlint) & write(impf) klint,jlint,(xmap(j),ymap(j),val(j),j=1,jlint) &
& ,(lintyp(k),k=1,klint) & ,(lintyp(k),k=1,klint)
! write(156,8888) klint,jlint,(j,xmap(j),ymap(j),val(j),j=1,jlint)
! write(156,8887)&
! & ,(k,lintyp(k),k=1,klint)
!8888 format('start',2i5/(i6,3e15.6))
!8887 format('lin'/(2i8))
if(nelts .gt. 0) then if(nelts .gt. 0) then
write(impf) nelts,((nopel(j,k),k=1,3),j=1,nelts) write(impf) nelts,((nopel(j,k),k=1,3),j=1,nelts)

@ -784,7 +784,7 @@
END END
!**************************************************************** !****************************************************************
! !
SUBROUTINE ADDPTH2(nodlist,ndlist) SUBROUTINE ADDPTH2(nodlist,ndlist,ISWBAK)
! !
! Add nodal bottom elevations ! Add nodal bottom elevations
! !
@ -838,8 +838,12 @@
IF(NTYPP .EQ. 1) THEN IF(NTYPP .EQ. 1) THEN
WD(INODE) = BELEV WD(INODE) = BELEV
ELSE ELSE
WD(INODE) = WD(INODE)+BELEV IF(ISWBAK .EQ. 1) THEN
WD(INODE) = WDBAK(INODE)+BELEV
ELSE
WD(INODE) = WD(INODE)+BELEV
ENDIF
ENDIF ENDIF
IF(NLOCC .EQ. 1) THEN IF(NLOCC .EQ. 1) THEN
LOCK(INODE)=1 LOCK(INODE)=1

@ -213,11 +213,15 @@
ENDDO ENDDO
INTV=TXSCAL*0.12/CELLSIZY+1 INTV=TXSCAL*0.12/CELLSIZY+1
DO I=1,NROWS1,INTV DO I=1,NROWS1,INTV
YCOL(I)=(CELLSIZY*(NROWS1+1-I)+YYORG+YS)/TXSCAL IF(NGRTYP .EQ. 2) THEN
YCOL(I)=(CELLSIZY*(NROWS1+1-I)+YYORG+YS)/TXSCAL
ELSE
YCOL(I)=(CELLSIZY*(I-1)+YYORG+YS)/TXSCAL
ENDIF
IF(YCOL(I) .GT. 0. .AND. YCOL(I) .LT. 7.5) THEN IF(YCOL(I) .GT. 0. .AND. YCOL(I) .LT. 7.5) THEN
READ(203,POS=LENROW*(I-1)+1) (VALLIN(J),J=1,NCOLS1) READ(203,POS=LENROW*(I-1)+1) (VALLIN(J),J=1,NCOLS1)
DO J=1,NCOLS1,INTH DO J=1,NCOLS1,INTH
IF(VALLIN(J) .GT. -9000.) THEN IF(VALLIN(J) .GT. -9000. .AND. VALLIN(J) .LT. 1.E20 ) THEN
IF(XCOL(J) .LT. 0. .AND. XCOL(J) .GT. HSIZE) CYCLE IF(XCOL(J) .LT. 0. .AND. XCOL(J) .GT. HSIZE) CYCLE
CALL PLOTT(XCOL(J),YCOL(I),3) CALL PLOTT(XCOL(J),YCOL(I),3)
CALL PLOTT(XCOL(J),YCOL(I),2) CALL PLOTT(XCOL(J),YCOL(I),2)
@ -240,11 +244,15 @@
ENDDO ENDDO
INTV=TXSCAL*7.5/(FLOAT(IH)*CELLSIZY)+1 INTV=TXSCAL*7.5/(FLOAT(IH)*CELLSIZY)+1
DO I=1,NROWS1,INTV DO I=1,NROWS1,INTV
YCOL(I)=(CELLSIZY*(NROWS1+1-I)+YYORG+YS)/TXSCAL IF(NGRTYP .EQ. 2) THEN
YCOL(I)=(CELLSIZY*(NROWS1+1-I)+YYORG+YS)/TXSCAL
ELSE
YCOL(I)=(CELLSIZY*(I-1)+YYORG+YS)/TXSCAL
ENDIF
IF(YCOL(I) .GT. 0. .AND. YCOL(I) .LT. 7.5) THEN IF(YCOL(I) .GT. 0. .AND. YCOL(I) .LT. 7.5) THEN
READ(203,POS=LENROW*(I-1)+1) (VALLIN(J),J=1,NCOLS1) READ(203,POS=LENROW*(I-1)+1) (VALLIN(J),J=1,NCOLS1)
DO J=1,NCOLS1,INTV DO J=1,NCOLS1,INTV
IF(VALLIN(J) .GT. -9000.) THEN IF(VALLIN(J) .GT. -9000. .AND. VALLIN(J) .LT. 1.E20 ) THEN
IF(XCOL(J) .LT. 0. .AND. XCOL(J) .GT. HSIZE) CYCLE IF(XCOL(J) .LT. 0. .AND. XCOL(J) .GT. HSIZE) CYCLE
IF(VALLIN(J) .GE. 0.) THEN IF(VALLIN(J) .GE. 0.) THEN
NCOLN=VALLIN(J)/COLINT+0.5 NCOLN=VALLIN(J)/COLINT+0.5
@ -260,7 +268,11 @@
ENDIF ENDIF
ENDDO ENDDO
ENDIF ENDIF
ELSE ENDIF
IF(MAXPTS .GT. 0) THEN
raddisp=rad/txscal
if(raddisp .lt. 0.01) raddisp=0.01
if(colint .eq. 0.) colint=1.
DO 40 J=1,MAXPTS,nmapf DO 40 J=1,MAXPTS,nmapf
IF(MOD(J,100000) .EQ. 0) WRITE(155,*) J,' points processed' IF(MOD(J,100000) .EQ. 0) WRITE(155,*) J,' points processed'
IF(VAL(J) .GT. -9000.) THEN IF(VAL(J) .GT. -9000.) THEN

@ -9,38 +9,120 @@
USE WINTERACTER USE WINTERACTER
USE BLKOUT USE BLKOUT
USE BLK1MOD
USE BLKMAP
INCLUDE 'BFILES.I90'
include 'TXFRM.COM'
CHARACTER(LEN=255) :: FNAME CHARACTER(LEN=255) :: FNAME
! CHARACTER(LEN=3) :: SUB,SUB1 ! CHARACTER(LEN=3) :: SUB,SUB1
CHARACTER(LEN=256) :: FILTER CHARACTER(LEN=256) :: FILTER
CHARACTER*3 SUB CHARACTER*3 SUB
FILTER ="Outline files -- *.txt,*.map|*.txt;*.map|txt files -- |*.txt|map files -- |*.map|All files -- |*.*|" FILTER ="Outline files -- *.txt,*.map,*.shp|*.txt;*.map;*.shp|txt files -- |*.txt|map files -- |*.map|Polygon shapefiles - *.shp|*.shp|All files -- |*.*|"
CALL WSelectFile(FILTER,PromptOn,FNAME,'Load Outline File') CALL WSelectFile(FILTER,PromptOn,FNAME,'Load Outline File')
IF (WInfoDialog(ExitButtonCommon).EQ.CommonOpen) THEN IF (WInfoDialog(ExitButtonCommon).EQ.CommonOpen) THEN
OPEN(99,FILE=FNAME,STATUS='OLD')
CALL IlowerCase(FNAME) CALL IlowerCase(FNAME)
CALL GETSUB(FNAME,SUB) CALL GETSUB(FNAME,SUB)
IF(SUB .EQ. 'map') then IF(SUB .EQ. 'map') then
KTYP=2 KTYP=2
ELSE OPEN(99,FILE=FNAME,STATUS='OLD')
ELSEIF(SUB .EQ. 'txt') then
KTYP=1 KTYP=1
OPEN(99,FILE=FNAME,STATUS='OLD')
ELSE
KTYP=3
OPEN(99,FILE=FNAME,STATUS='OLD',form='binary')
ENDIF ENDIF
ELSE ELSE
RETURN RETURN
ENDIF ENDIF
ALLOCATE (XOUTL(5000),YOUTL(5000)) IF(KTYP .EQ. 3) THEN
IF(KTYP .EQ. 2) READ(99,*) INDM CALL RDSHP5(99)
DO N=1,5000 ELSE
READ(99,*,END=500,ERR=500) XOUTL(N),YOUTL(N) ALLOCATE (XOUTL(5000),YOUTL(5000))
ENDDO IF(KTYP .EQ. 2) READ(99,*) INDM
DO N=1,5000
READ(99,*,END=500,ERR=500) XOUTL(N),YOUTL(N)
ENDDO
ENDIF
! Find max and min
!XMIN = 1.E+20
!XMAX = -XMIN
!YMIN = 1.E+20
!YMAX = -YMIN
!
!DO J=1,MAXPTS
! IF (CMAP(J,1) .LT. VDX) CYCLE
! IF (CMAP(J,1) .LT. XMIN) XMIN = CMAP(J,1)
! IF (CMAP(J,1) .GT. XMAX) XMAX = CMAP(J,1)
! IF (CMAP(J,2) .LT. YMIN) YMIN = CMAP(J,2)
! IF (CMAP(J,2) .GT. YMAX) YMAX = CMAP(J,2)
!ENDDO
!AMAP=(XMAX-XMIN)*(YMAX-YMIN)
!XSCALE = (XMAX-XMIN)/(hsize-0.5)
!YSCALE = (YMAX-YMIN)/6.5
!PSCALE = MAX(XSCALE,YSCALE)
!
!XAVE = (XMIN + XMAX) /2.0
!YAVE = (YMIN + YMAX) /2.0
!XMIN = XAVE - hsize/2.*PSCALE
!YMIN = YAVE - 3.5*PSCALE
!XMAX = XAVE + (hsize-0.5)/2.*PSCALE
!YMAX = YAVE + 3.25*PSCALE
IMP=99
close(99) close(99)
500 CONTINUE 500 CONTINUE
NOUTLIN=N-1 NOUTLIN=N-1
RETURN RETURN
END END
SUBROUTINE RDSHP5(IMP1)
use blkmap
USE BLK1MOD
include 'TXFRM.COM'
INTEGER STATUS,I1,I2,I3,I4,I5,I6,I7,I8,I9,NREC,NARS,ISTYP,J2,J3,J4,IADB(1000)
REAL*8 AXMN,AYMN,AXMX,AYMX,FZ,BXMN,BYMN,BXMX,BYMX
READ(IMP1) I1,I2,I3,I4,I5,I6,I7,I8,I9,AXMN,AYMN,AXMX,AYMX,FZ,FZ,FZ,FZ
READ(IMP1) NREC,NARS
READ(IMP1) ISTYP,BXMN,BYMN,BXMX,BYMX,J2,J3
READ(IMP1) (IADB(I),I=1,J2)
IF( .NOT. ALLOCATED(CMAP)) THEN
MAXPL=J3
ALLOCATE (CMAP(MAXPL,2),XMAP(MAXPL),YMAP(MAXPL),VAL(MAXPL))
ENDIF
IS=0
IP=2
LINTYP(IP-1)=0
DO I=1,J3
IF(I .GT. IADB(IP)) THEN
IS=IS+1
XMAP(IS)=VOID
YMAP(IS)=VOID
CMAP(IS,1)=VOID
CMAP(IS,2)=VOID
VAL(IS)=VOID
IP=IP+1
LINTYP(IP-1)=0
ENDIF
IS=IS+1
READ(IMP1) CMAP(IS,1),CMAP(IS,2)
XMAP(IS)=CMAP(IS,1)
YMAP(IS)=CMAP(IS,2)
CMAP(IS,1) = (CMAP(IS,1) + XS) /TXSCAL
CMAP(IS,2) = (CMAP(IS,2) + YS) /TXSCAL
VAL(IS)=-9999.
ENDDO
MAXPTS=IS+1
XMAP(MAXPTS)= VOID
JLINT=MAXPTS
KLINT=IP
RETURN
END

@ -1,7 +1,9 @@
SUBROUTINE READSHP SUBROUTINE READSHP
USE WINTERACTER
USE BLKMAP USE BLKMAP
USE BLK1MOD USE BLK1MOD
include 'd.inc'
character*4 temp character*4 temp
character*100 header character*100 header
character*256 field character*256 field
@ -18,6 +20,11 @@
c read header c read header
read(113) i1,i2,i3,i4,i5,i6,ai7,i8,i9 read(113) i1,i2,i3,i4,i5,i6,ai7,i8,i9
IF(I9 .EQ. 5) THEN
REWIND 113
CALL RDSHP5(113)
GO TO 600
ENDIF
read(113) fp1,fp2,fp3,fp4,fp5,fp6,fp7,fp8 read(113) fp1,fp2,fp3,fp4,fp5,fp6,fp7,fp8
CALL BTOL(AI7,IA7) CALL BTOL(AI7,IA7)
write(90,*) 'file length',ia7 write(90,*) 'file length',ia7
@ -25,7 +32,7 @@ c read header
write(90,*) 'shapetype',i9 write(90,*) 'shapetype',i9
c read data c read data
IASK=0
read(114) i1,i2,i1s,i2s,i3,i4,i5,i6,i7 read(114) i1,i2,i1s,i2s,i3,i4,i5,i6,i7
nrecs=i2 nrecs=i2
nbytesh=i1s nbytesh=i1s
@ -79,10 +86,14 @@ c now process labels
XMAP(JJ)=FP1 XMAP(JJ)=FP1
YMAP(JJ)=FP2 YMAP(JJ)=FP2
MAXPTS=JJ MAXPTS=JJ
JLINT=JJ
KLINT=1
c VAL(JJ)=-2. c VAL(JJ)=-2.
ENDDO ENDDO
300 CONTINUE 300 CONTINUE
XMAP(MAXPTS+1)= VOID MAXPTS=MAXPTS+1
XMAP(MAXPTS)= VOID
JLINT=MAXPTS
LINTYP(1)=2 LINTYP(1)=2
! !
@ -129,20 +140,57 @@ c VAL(JJ)=-2.
read(114) a3 read(114) a3
enddo enddo
else else
do JJ=1,200000 do JJ=1,200000
read(113,end=500) ai7,ai8 read(113,end=500) ai7,ai8
CALL BTOL(AI7,IA7) CALL BTOL(AI7,IA7)
CALL BTOL(AI8,IA8) CALL BTOL(AI8,IA8)
read(113) istp,FP1,FP2,FP3,FP4,npart,npts,nd1 read(113) istp,FP1,FP2,FP3,FP4,npart,npts,nd1
! do j=1,nrecs ! do j=1,nrecs
ierrrd=0
do k=1,nrecsh do k=1,nrecsh
read(114) field(1:i1vs(k)) read(114) field(1:i1vs(k))
read(field,fomat(k)) vtemp(k) read(field,fomat(k),err=450) vtemp(k)
cycle
450 write(90,*)'error reading bed level value set = 0., data = '
+ ,field(1:i1vs(k))
ierrrd=1
enddo enddo
if(ierrrd .eq. 1)
+ CALL WMessageBox(OKOnly,ExclamationIcon,CommonOK
+ ,'Errors reading bed level','BED LEVEL SET = 0.0')
read(114) a3 read(114) a3
! enddo ! enddo
JL=JL+1 JL=JL+1
LINTYP(JL)=1 IF(IASK .EQ. 1) THEN
LINTYP(JL)=LINTYP(JL-1)
GO TO 440
ENDIF
CALL WMessageBox(YesNo, QuestionIcon, 1,
+ 'Is this an outline map?','MAP-OUTLINE')
! If answer 'Yes' set igtwel to 0
!
IF (WInfoDialog(4) .EQ. 2) then
!NO
LINTYP(JL)=1
ELSE
!YES
LINTYP(JL)=0
ENDIF
CALL WMessageBox(YesNo, QuestionIcon, 1,
+ 'Ask this question again?','GET LINE TYPE AGAIN')
! If answer 'Yes' set igtwel to 0
!
IF (WInfoDialog(4) .EQ. 2) then
!NO
IASK=1
ELSE
!YES
IASK=0
ENDIF
440 CONTINUE
do k=1,npts do k=1,npts
read(113) fp1,fp2 read(113) fp1,fp2
WRITE(155,*) JK,JL,FP1,FP2,VTEMP(NCHS) WRITE(155,*) JK,JL,FP1,FP2,VTEMP(NCHS)
@ -164,10 +212,17 @@ c VAL(JJ)=-2.
val(jK)=0. val(jK)=0.
enddo enddo
500 continue 500 continue
MAXPTS=JK-1 MAXPTS=JK
KLINT=JL KLINT=JL
JLINT=MAXPTS JLINT=MAXPTS
endif endif
c write(157,8888) klint,jlint,(j,xmap(j),ymap(j),val(j),j=1,jlint)
c write(157,8887)
c 1 ,(k,lintyp(k),k=1,klint)
c8888 format('start',2i5/(i6,3e15.6))
c8887 format('lin'/(2i8))
600 CONTINUE
CLOSE (113) CLOSE (113)
RETURN RETURN
END END

@ -284,7 +284,7 @@
SS1(N2)=(SS1(N1)+SS1(N3))/2. SS1(N2)=(SS1(N1)+SS1(N3))/2.
SS2(N2)=(SS2(N1)+SS2(N3))/2. SS2(N2)=(SS2(N1)+SS2(N3))/2.
WIDS(N2)=(WIDS(N1)+WIDS(N3))/2. WIDS(N2)=(WIDS(N1)+WIDS(N3))/2.
IF(ICRIN .EQ. 23) CALL COMPWGT IF(ICRIN .EQ. 23) CALL COMPWGT(0)
ENDIF ENDIF
GO TO 250 GO TO 250
ENDIF ENDIF

@ -1,3 +1,63 @@
!IPK LAST UPDATE SEP 23 2015 ADD TESTING FOR REORDERING
SUBROUTINE ORDDIR
USE BLK1MOD
USE BLK2MOD
INCLUDE 'BFILES.I90'
! COMMON /HEDS/ NP,NE,NHTP,NMESS,NBRR,IPSW(15),IRMAIN,ISCRN,icolon(12),IQSW(2),IRDISP,ntempin,igfgsw,igfgswb,ICRIN,IPW1,WIDEL,WIDSCL,itrianout
REAL*8 XPROJ(100000)
NCM=MAXECON
NCMI=MAXECON
NAD=0
MP=0
IPASS=1
!
! GET TABLE OF ELEMENT CONNECTIONS
!
CALL KCON(0)
ISWALL=0
nmess=47
IF(.NOT. ALLOCATED(NKEY1)) THEN
ALLOCATE (NKEY1(MAXE))
ENDIF
DIRD=0.
CALL GETFPN(DIRD)
! IF(ISWALL .EQ. 0) ISWALL=1
ISW=0
DIR=DIRD*3.14159/180.
DO N=1,NE
IF(IMAT(N) .NE. 0) THEN
XPROJ(N)=XC(N)*COS(DIR)+YC(N)*SIN(DIR)
ELSE
XPROJ(N)=1.E15
ENDIF
ENDDO
CALL SORTDB(XPROJ,NKEY1,NE)
IRDONE=1
DO N=1,NE
ILIST(1,N)=NKEY1(N)
ENDDO
! PROCESS INITIAL ORDER
!
CALL REORD(ISW,ISWALL)
! CALL WMessageBox(0,4,1,'REORDERING COMPLETE',' ')
! CALL WCursorShape(CurArrow )
!
! Restore screen
!
!pk jan98 WRITE(*,*) 'Press "Return" to restore grapical screen'
CALL SHOWORD
RETURN
END
!IPK LAST UPDATE SEP 23 2015 ADD TESTING FOR REORDERING !IPK LAST UPDATE SEP 23 2015 ADD TESTING FOR REORDERING
SUBROUTINE ORDALL SUBROUTINE ORDALL
@ -438,12 +498,12 @@
! UPDATE FRONT AND CONNECTION TABLES ! UPDATE FRONT AND CONNECTION TABLES
! !
CALL UPFNT(KREC) CALL UPFNT(KREC)
! WRITE(91,9000) KREC,MTSUM,MSUM,MP,NAD
! 9000 FORMAT(' KREC MTSUM MSUM MP NAD'/I6,2I15,2I5)
! !
! TEST FOR FULL SET OF ELEMENTS ! TEST FOR FULL SET OF ELEMENTS
! !
IF (KNT.LT.NAE) GO TO 300 IF (KNT.LT.NAE) GO TO 300
WRITE(90,9000) KREC,MTSUM,MSUM,MP,NAD
9000 FORMAT(' KREC MTSUM MSUM MP NAD'/I6,2I15,2I5)
! !
! FOR COMPLETE ORDER CHECK IF IT IS IMPROVEMENT ! FOR COMPLETE ORDER CHECK IF IT IS IMPROVEMENT
! !

@ -145,6 +145,7 @@
IF(N3 .EQ. 1) GO TO 101 IF(N3 .EQ. 1) GO TO 101
IGUNIT=0
ISWTAGN=0 ISWTAGN=0
ISWTINTP=0 ISWTINTP=0
WIDSCL=1.0 WIDSCL=1.0

@ -8,7 +8,7 @@
// //
// Winteracter resource script. // Winteracter resource script.
// //
// Modified : 19/Oct/2017 10:30:12 // Modified : 10/Jul/2021 17:03:10
// //
/////////////////////////////////////////////////// ///////////////////////////////////////////////////
// //
@ -417,6 +417,10 @@
#define IDF_CANCEL 1088 #define IDF_CANCEL 1088
#define IDD_ADDSLOT 171 #define IDD_ADDSLOT 171
#define ID_ADDBEDLEV 40151 #define ID_ADDBEDLEV 40151
#define ID_ORDR2 40152
#define ID_RESTORELEV 40153
#define ID_UPDTWGHT 40154
#define IDD_PLTSHP 172
/////////////////////////////////////////////////// ///////////////////////////////////////////////////
// //
@ -2236,6 +2240,30 @@ BEGIN
,0 ,0
END END
IDD_PLTSHP DIALOG 0, 0, 199, 149
STYLE WS_POPUP | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_3DLOOK | DS_MODALFRAME
FONT 10, "MS Sans Serif"
CAPTION "SHAPEFILE OPTIONS"
BEGIN
CONTROL " Element Connection Shapefile",IDF_CHECK1,"BUTTON",WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP | BS_AUTOCHECKBOX | BS_LEFTTEXT | BS_TEXT, 30, 36, 140, 14
CONTROL " Point Shapefile of Bed Elevations",IDF_CHECK2,"BUTTON",WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_AUTOCHECKBOX | BS_LEFTTEXT | BS_TEXT, 30, 64, 140, 14
CONTROL "OK",IDOK,"BUTTON",WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON | BS_TEXT, 40, 104, 40, 14
CONTROL "Cancel",IDCANCEL,"BUTTON",WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON | BS_TEXT, 120, 104, 40, 14
END
IDD_PLTSHP RCDATA
BEGIN
"[Checks] \n"
" 1036 0 \n"
" 1037 0 \n"
"[Fonts] \n"
" 1036 10 MS Sans Serif, 700 0 \n"
" 1037 10 MS Sans Serif, 700 0 \n"
" 1 10 MS Sans Serif, 700 0 \n"
" 2 10 MS Sans Serif, 700 0 \n"
,0
END
/////////////////////////////////////////////////// ///////////////////////////////////////////////////
// //
// Menus // Menus
@ -2284,6 +2312,7 @@ BEGIN
BEGIN BEGIN
MENUITEM "Reorder menu\aCtrl+R", ID_ORDR MENUITEM "Reorder menu\aCtrl+R", ID_ORDR
MENUITEM "Reorder All", ID_ORDR1 MENUITEM "Reorder All", ID_ORDR1
MENUITEM "Reorder by Direction", ID_ORDR2
END END
POPUP "Mesh" POPUP "Mesh"
BEGIN BEGIN
@ -2333,6 +2362,7 @@ BEGIN
MENUITEM "Trapezoids", ID_CSEC MENUITEM "Trapezoids", ID_CSEC
MENUITEM "Assign Cross-section locations", ID_CSLOC MENUITEM "Assign Cross-section locations", ID_CSLOC
MENUITEM "Compute Weighting", ID_CRSCAL MENUITEM "Compute Weighting", ID_CRSCAL
MENUITEM "Update Weighting Factors", ID_UPDTWGHT
MENUITEM "View Cross-sections", ID_crsect MENUITEM "View Cross-sections", ID_crsect
END END
MENUITEM "&Distance", ID_ITEM20 MENUITEM "&Distance", ID_ITEM20
@ -2360,6 +2390,7 @@ BEGIN
MENUITEM "Undo Refine or Gblock", ID_UNDO MENUITEM "Undo Refine or Gblock", ID_UNDO
MENUITEM "Undo Last Selected Element", ID_UNDOS MENUITEM "Undo Last Selected Element", ID_UNDOS
MENUITEM "Undo Last Auto Mesh Gneration", ID_UNDOGEN MENUITEM "Undo Last Auto Mesh Gneration", ID_UNDOGEN
MENUITEM "Restore Bed Elevations", ID_RESTORELEV
END END
POPUP "&View" POPUP "&View"
BEGIN BEGIN
@ -2562,7 +2593,7 @@ IDCANCEL ICON DISCARDABLE "cancel.ico"
// //
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE
BEGIN BEGIN
ID_STRING1 "Map file -- *.map |*.map|Bin Map file -- *.mpb|*.mpb|Bin Map file (no head) -- *.mbb|*.mbb|RM1 file (as map) -- *.rm1|*.rm1|ESRI ASC file -- *.asc|*.asc|SURFER GRD file -- *.grd|*.grd|SHAPE FILE -- *.shp|*.shp|" ID_STRING1 "Map files -- *.map, *.grd |*.map;*.grd|Bin Map file -- *.mpb|*.mpb|Bin Map file (no head) -- *.mbb|*.mbb|RM1 file (as map) -- *.rm1|*.rm1|ESRI ASC file -- *.asc|*.asc|SURFER GRD file -- *.grd|*.grd|ESRI SHP file -- *.shp|*.shp|"
ID_STRING2 "Network files |*.rm1,*.geo,*.gfg,*.rst,*.bin|Rm1 file -- *.rm1|*.rm1|Geo file -- *.geo|*.geo|Gfg file -- *.gfg|*.gfg|Rst file -- *.rst|*.rst|Bin file -- *.bin|*.bin|" ID_STRING2 "Network files |*.rm1,*.geo,*.gfg,*.rst,*.bin|Rm1 file -- *.rm1|*.rm1|Geo file -- *.geo|*.geo|Gfg file -- *.gfg|*.gfg|Rst file -- *.rst|*.rst|Bin file -- *.bin|*.bin|"
ID_STRING3 "Rm1 file -- *.rm1|*.rm1|" ID_STRING3 "Rm1 file -- *.rm1|*.rm1|"
ID_STRING4 "Geo file -- * .geo|*.geo|" ID_STRING4 "Geo file -- * .geo|*.geo|"
@ -2643,5 +2674,5 @@ END
//*WI* FORTSAVE 1 //*WI* FORTSAVE 1
//*WI* FILENAME D.INC //*WI* FILENAME D.INC
//*WI* FMODNAME //*WI* FMODNAME
//*WI* LASTTYPE 1 //*WI* LASTTYPE 2
//*WI* LASTRES 1 //*WI* LASTRES 72

Binary file not shown.

@ -144,7 +144,8 @@
! CALL FORMSHP TO WRITE OUT SHAPEFILE ! CALL FORMSHP TO WRITE OUT SHAPEFILE
IF(IOPTSV .EQ. 1) THEN IF(IOPTSV .EQ. 1) THEN
ISTYP=25 !nov20 ISTYP=25
ISTYP=15
! ISTYP=25 is saving element list ! ISTYP=25 is saving element list
IVECACT=4 IVECACT=4
ELSE ELSE

@ -20,6 +20,7 @@
CHARACTER*63 STRELS CHARACTER*63 STRELS
DATA ANSW/'m','a','f','s','k','u','t','w','h','q'/ DATA ANSW/'m','a','f','s','k','u','t','w','h','q'/
DATA STRELS/' You have tried set to set elevation with no mapfile"'/ DATA STRELS/' You have tried set to set elevation with no mapfile"'/
DATA ISWBAK,ISWBAKAG/0,0/
! !
@ -185,7 +186,8 @@
! !
! This option allows changes to bottom elevations ! This option allows changes to bottom elevations
! !
CALL ADDPTH2(NODLIST,NDLIST) IF(ISWBAKAG .EQ. 0) CALL SETBACK(ISWBAK,ISWBAKAG)
CALL ADDPTH2(NODLIST,NDLIST,ISWBAK)
GO TO 220 GO TO 220
ELSEIF (ANS .EQ. 'a') THEN ELSEIF (ANS .EQ. 'a') THEN

@ -1324,7 +1324,7 @@
COMMON /RECOD/ IRECD,TSPC COMMON /RECOD/ IRECD,TSPC
COMMON /HEDS/ NP,NE,NHTP,NMESS,NBRR,IPSW(15),IRMAIN,ISCRN,icolon(12),IQSW(2),IRDISP,ntempin,igfgsw,igfgswb,ICRIN,IPW1,WIDEL,WIDSCL,itrianout COMMON /HEDS/ NP,NE,NHTP,NMESS,NBRR,IPSW(15),IRMAIN,ISCRN,icolon(12),IQSW(2),IRDISP,ntempin,igfgsw,igfgswb,ICRIN,IPW1,WIDEL,WIDSCL,itrianout
CHARACTER*47 MESOUT,MESS(46) CHARACTER*47 MESOUT,MESS(47)
DATA MESS /'Enter node to search for',' Enter material type',& DATA MESS /'Enter node to search for',' Enter material type',&
'Enter element to search for ',& 'Enter element to search for ',&
@ -1356,7 +1356,7 @@
'Click at two locations to determine distance'& 'Click at two locations to determine distance'&
,'Enter continuity line number. Use 0 to end','Click at location to define register point'& ,'Enter continuity line number. Use 0 to end','Click at location to define register point'&
,'Enter 1-D cross-section bed slope','Enter time interval for display of steps'& ,'Enter 1-D cross-section bed slope','Enter time interval for display of steps'&
,'Enter tolerance for overlapping points'/ ,'Enter tolerance for overlapping points','Enter direction of axis for reordering'/
if(irecd .eq. 2) then if(irecd .eq. 2) then
read(91,'(f7.2)') fpn read(91,'(f7.2)') fpn
CALL INTRVL(TA,0) CALL INTRVL(TA,0)

@ -48,6 +48,12 @@
ELSEIF(SUB .EQ. 'mbb') then ELSEIF(SUB .EQ. 'mbb') then
imp=92 imp=92
OPEN(IMP ,FILE=FNAME,STATUS='OLD',form='binary',action='read') OPEN(IMP ,FILE=FNAME,STATUS='OLD',form='binary',action='read')
ELSEIF(SUB .EQ. 'shp') then
IMP=113
OPEN(113,FILE=FNAME,STATUS='OLD',FORM ='BINARY',action='read')
SUB='DBF'
CALL ADDSUB(FNAME,SUB)
OPEN(114,FILE=FNAME,STATUS='OLD',FORM ='BINARY',action='read')
ENDIF ENDIF
ENDIF ENDIF
CALL RDMAP(2,IMP,0,0) CALL RDMAP(2,IMP,0,0)

@ -95,13 +95,11 @@
endif endif
DO J=1,NELTS DO J=1,NELTS
CALL INSIDCIRC(XUSR,YUSR,J,N,ISWT) CALL INSIDCIRC(XUSR,YUSR,J,N,ISWT)
WRITE(156,*) J,N,ISWT
! If inside process edges ! If inside process edges
IF(ISWT .EQ. 1) THEN IF(ISWT .EQ. 1) THEN
CALL PROCESS(J,NEDGE,NGAP) CALL PROCESS(J,NEDGE,NGAP)
WRITE(156,*) J,NEDGE,NGAP
ENDIF ENDIF
END DO END DO

Loading…
Cancel
Save