GHS Beta-Version Update History from Version 15.00 to 15.50


GHS Beta-Version Update History since Version 15.50

Version 15.50A

TANK selection using /ENDS, /IN, /OUT, /BOTTOM, and /TOP parameters
was sometimes failing to include portside tanks whose points all straddle the
selected volume without any being inside of it.

DISPLAY STATUS /SYNC was delaying up to 5 seconds when immediately followed
by DISPLAY STATUS to a report file (requires updated CG.EXE).

DISPLAY STATUS body view with /YESEMPTY parameter was sometimes failing
to show loaded tanks that were obscured by empty tanks occupying the same space.

GHSCOM function GetVariableString increased its maximum string length from
256 to 10,000 characters (requires updated GHSCOM.DLL).


Version 15.52

SUBSLIST system variable was added to return a space-separated list of all
available substance descriptions defined by the CONTENTS command (excluding
special names like "OIL", "cargo", and "unknown").  Each description is safely
surrounded by quotes, so {SUBSLIST} can be used directly for a TEMPLATE
drop-down variable list field or sent through the SET command ITEM operator
to pick out each substance description by item index.

TEMPLATE variable edit input field /Height:rows parameter was added to show
a multiline edit control with space for the specified rows of wordwrapped
variable text.

TEMPLATE variable edit input fields now supports editing text files by
specifying @"filespec" in place of a variable name.  The VARIable keyword is
required to distinguish this from static image fields.  When used with the
/Height:rows parameter, text is horizontally and vertically scrolled within
the edit field window, allowing new line insertion by pressing the Enter key;
otherwise only the first line of the file is read and written.

COPY /FROMAnsi, /FROMUnicode, /TOAnsi, and /TOUnicode parameters improved
conversions when original source was Unicode, now supporting combinations
(for example, /FROMA /TOU assumes ANSI source and converts to UTF-8).

HEEL -{variable} and similar commands no longer trap an error if the variable
has a negative value.

DISPLAY STATUS BODY @ loc :=ANGLES no longer traps an "invalid location"
run-time error if the number of angles exceeded 30 total view boxes, instead
truncating the angle list (requires updated CG.EXE).

DISPLAY STATUS profile views were sometimes incorrectly coloring above
discontinous internal waterlines.


Version 15.52A

Load Editor in Weights mode was trapping an "integer overflow" run-time error
in rare cases with distributed weight items composed of multiple pieces having
the same VCG but differing TCG (since 15.46B only).

Load Editor was not allowing repeated F11 hotkey presses to toggle back and
forth between intact and flooded without moving the cursor field.

ERASE command is no longer restricted to 80-character file specifications.


Version 15.52B

DISPLAY STATUS profile views were sometimes incorrectly coloring above
extremely short internal waterlines (requires updated CG.EXE).


Version 15.52C

ADD command can now make incremental adjustments to the weight or CG of
a distributed weight item (using an asterisk for the old value of the weight
or any of the lcg, tcg, or vcg coordinates along with optional + or - values)
without converting the distribution to a point weight.


Version 15.52D

ADD REPORT was failing when ADD PREFIX had turned on automatic weight
description prefixing (requires updated ADDEXTENSION.LIB).

COPY /CODE was truncating lines longer than 10,000 chars (since 15.52 only).


Version 15.54


RA /LIM was incorrectly including EQU0 with the angles prior to EQU0
that get ignored for downflooding (since 15.42 only).

READ variable /CHAR[:n] parameter was added in READ DATA mode to read
the next n characters (default n=1) into the specified variable.

READ [/SKIP | /LINE | /CHAR[:n]] without any variable name is now supported
in READ DATA mode to move the file pointer as if a variable were present
without saving any data.

MESSAGE PLOTSTART data rows beginning with a quote mark (") were causing
the report to trap "Unknown keyword" when printed (since 15.28B only).


Version 15.54A

RA /LIM was not consistently reporting negative angle limit margins when
weathertight downflooding occurs initially at equilibrium followed by later
immersion of normal downflooding points.

MESSAGE PLOTSTART custom plots were sometimes clipping off the top or bottom
of curves that reach their maximum or minimum between plot data points.

READ variable /LINE safely excludes any portably-encoded image put into a
report file using the NOTE {%IMAGE("file:")%} command, instead saving the
encoded BMP or JPG file to the current directory.


Version 15.54B

Load Editor current row and field were unnecessarily disrupted by macro
execution containing READ /APPEND or DELETE commands.


Version 15.54C

COMP /EFF and /PERM parameters were not always correctly updating the maximum
capacity of the containing part.


Version 15.56

TFSMMTL system variable was differing from true longitudinal free surface
moment shown by the TC command at high trims.


Version 15.56A

LS /COLumn: [Weight] [Buoyancy] [Shear] [Moment] [Section] parameter was added
to show only the selected middle table columns (not with /PER or /LIM present).
Note options for left location columns can be selected by the /FRAME parameter
and right columns by the /NODEFLECT and /NOSTRESS parameters.

WRITE command in Part Maker and Section Editor no longer permits overwriting
read-only Geometry Files.  Note the main program likewise prevents overwriting
read-only files without first deleting them using the ERASE command (requires
updated PM.EXE and SE.EXE).


Version 15.58

RA /LIM was sometimes failing with undefined Deck Immersion limit angle
when the first two listed heel angles straddle upright and the deck immerses
between upright and the second heel angle.

LS /COL:SECTION /NODEFLECT /NOSTRESS was showing incorrect Section Modulus
values (since 15.56A only).

Load Editor was incorrectly setting LB/GAL density units when pressing F6
(or right-clicking LB/CF) with the cursor in the Contents column for a
general cargo tank when not in /BULK mode (since 7.42E only).


Version 15.58A

RA /LIM was including superfluous final angles when EQU0 occurred before the
start of the angle list with flood points defined (since 15.38 only).

MAXVCG /SIZE:max[,min] parameter was added to scale the maximum VCG
plot so the top is at least max and optionally the bottom is at most min.
Assuming this range is large enough to include any expected max VCG value,
this provides uniform scaling for easy comparison of a series of MAXVCG plots.
If /SIZE:* is given, then sizes from the last MAXVCG plot are reused.

MESSAGE PLOTSTART /SIZE:max[,min] parameter was added to scale the plot
so the top is at least max and optionally the bottom is at most min,
providing uniform scaling for easy comparison of a series of custom plots.
If /SIZE:* is given, then sizes from the last custom plot are reused.

MESSAGE PLOTSTART skips points for non-numeric data values like * or ""
instead of inserting curve gaps, thereby allowing points to be added for
selected curves at given X values without affecting the remaining curves.

MESSAGE PLOTSTYLE P doubles the area of isolated plot points for better
visibility (requires updated PP.EXE).

COPY dir1 dir2 no longer risks getting into a recursive loop if the second
directory is a subdirectory of the first directory, instead trapping an error.


Version 15.60

MAXVCG and SOLVE MAXVCG commands added /MXMACRO:name parameter to execute
the named macro after every intermediate RA computation.  This hook can be used
for diagnostics, harvesting attained limit values, changing limits, etc.

LS summary now includes Largest Deflection location.

HMMT WIND and HMMT TURN added /ARMdraft:fraction parameter to calculate
vertical lever arms around a draft-based height instead of the centroid of the
underwater lateral plane.  The specified fraction between 0 and 1 multiplies
the draft line height used for the lever arm (so /ARM:1 uses the full draft
height down to the keel for hydrofoil criteria).  The draft is located at
any mid perpendicular MP defined by the LBP command, else at any midpoint
MS defined by the LBP or LWL commands, otherwise at the LCF.  Note that
/ARM:0.5 can be used for regulations that specify Draft/2 be used for heeling
arms (which is more conservative but less realistic than the program's default
lateral plane centroid method).

DISPLAY STATUS PROFILE:WITHSAILS was sometimes reducing the vessel size
to make space for unset sails (requires updated CG.EXE).


Version 15.60A

Solving was trapping spurious negative waterplane errors for long skinny tanks
such as pipes in rare cases.


Version 15.60B

Solving was trapping spurious bad slope errors for long skinny tanks such as
pipes in rare cases.


Version 15.60C

LOAD EDIT /LS no longer risks aborting to the command line after a rapid
series of function key load changes (since 15.54B only).

LS tolerance was increased for avoiding weight-center discrepancy errors
while MB module interactions are active.


Version 15.60D

RA with flood points defined no longer traps "EQU0 is out of range" in cases
of undefined equilibrium disregarding external heeling, ignoring angles for
downflooding prior to upright instead of undefined EQU0 (since 15.38 only).

Solving was still trapping spurious bad slope errors for long skinny tanks
such as pipes with tiny load in rare cases (since 15.60B only).


Version 15.60E

TEMPLATE fields FILE and DIR using the /SHORT parameter now provide
horizontal scrolling for filenames exceeding the dialog box width.

COPY /CODE avoids trapping errors for WEIGHT lines longer than 65,535 chars
by inserting line breaks as needed after commas and semicolons.


Version 15.60G

MB module suppresses waterplane information from the STATUS GHS report
and traps an error for STATUS WPL, in order to avoid showing misleading GMT
and related values that assume constant displacement, which does not hold under
multi-body conditions.


Version 15.62

READ variable /CHAR :Keep [:n] subparameter was added in READ DATA mode
to keep the next n characters (default n=1) available for future reading.

COMP /SKIN plot printing was sometimes trapping an error for components
containing stations split across the centerline into separate lobes.

SE command Name no longer traps "Illegal name" for existing part names if
given without a trailing backslash; note however that the final backslash
would be needed to avoid selecting any shape having the same name as the part.
DISPLAY command Name was not warning when given non-existent names, but now
traps "Illegal name" (requires updated SE.EXE).


Version 15.62A

RA /LIM was sometimes stopping before RA0 and reporting spurious UNDEF limit
results in cases with negative heeling arm at high angles.


Version 15.64

RA /LIM detection of initial equilibrium was improved, preventing unnecessary
errors and allowing higher SOLVE MAXVCG results in certain unusual cases.

RA /LIM /FREEBD was sometimes unnecessarily trapping "ANGLES given do not
include equilibrium" (since 15.58 only).

GROUND command can now make incremental CG adjustments using an asterisk
for any of the lcg, tcg, or vcg coordinates along with optional + or - values,
preserving the old ground point depth and reaction formula.

GROUP name=tanklist /CONT:"contents" no longer creates an empty group
if no tanks in the list have the indicated contents name; this empty group
was invisible except when written to a SAVE file.

GROUP reports for multiple groups were clearing all but the last group off the
Display area of SCREEN COMMAND split-screens in default SCROLL ON mode.

LINENUM system variable was sometimes exceeding the maximum lines per page
after returning from an external program like Condition Graphics.  The sum
of LINENUM plus LINELEFT can now be used reliably to calculate page length.


Version 15.64A

OUTFLOW was incorrectly dividing Breadth by an extra metric conversion factor
when calculating Reg 12A.6 minimum bottom shell plating distance.


Version 15.66

Print File Exporter wizard exports PF and PPF files to Word and HTML format
(requires PFEXPORT.WIZ from Wizards support downloads).

READ variable /LINE safely excludes any portably-encoded footer files put
into a PPF file using COPY name.PF name.PPF /CONVERT, instead saving the
encoded footer text or logo file to the current directory (first renaming the
saved file if necessary to avoid overwriting existing files).  Note READ /LINE
ends embedded filenames with ":" to distinguish them from external files.

READ variable /CHAR:Keep:n supports n<0 to read the rightmost -n characters
from the end of the current line, keeping data available for future reading.

SHELL OPEN document.ext was not working for document names containing spaces.


Version 15.66A

PERM /VOlume:unit parameter was added to report capacities in GA (gallons),
IM (imperial gallons), CY (cubic yards), LI (liters), and BB (barrels) units,
along with default CF (cubic feet) and CM (cubic meters).

TS /CAPacity:f1[,f2] parameter was added to report Capacity in the table header
using the specified load fractions (default 100%,95% to show full capacity
followed by secondary 95% capacity for contents lighter than Fresh Water).


Version 15.66B

LOAD FLOWC was sometimes ineffective following RA /NOPRINT or RA /NOTAB.

FIXUP and MC FIXUP were not preserving any GF variables set by Part Maker
(requires updated MC.EXE).


Version 15.68

RA /LIM using LIM ANG FROM EQU TO FLD OR TFLD was sometimes missing
lowest Tight Point submersion if its location coincided with an existing heel
angle in the table, so did not need to be interpolated and inserted.

LS no longer omits any plot curve lines when more than 6 total.


Version 15.68A

LIMIT ABSolute AREA was added to limit absolute area below the righting arm
curve regardless of any heeling moment.  Otherwise this limit behaves the same
as LIMIT AREA, which pertains to residual area above any heeling arm curve.


Version 15.70

LS /PLAN parameter was added as an optional replacement for /PROfile
to show the vessel plan instead of the profile on plots.  This /PLAN option
was also added for COMP /SECTION, COMP /SKIN, FL, TORQUE,
and WEIGHT commands.

READ (DATA) file /REPLace:[old,new],... paraneter was added to replace a
series of old text with new text (specified either as a quoted string or ASCII
value character) whenever found in read data.  This can be done to change or
delete problematic characters (like braces used for variable replacement), or
to identify meaningful control characters that otherwise would be filtered out.

RA column header for "Area" now appears in the report as "Res. Area" when
moments are present.

LIMIT report description for Area limit is prefixed with "Residual" or "Res."
when moments are present.

PMX statement ROTATE trim, heel, azimuth was greatly improved to fix various
trim and azimuth problems and use the correct heel direction.  Note ROTATE
no longer allows non-zero heel or azimuth rotation of centerline components
to avoid "butterfly" effects with port and starboard sides rotated in opposite
directions (requires updated PMX.EXE).


Version 15.70A

PMX statement ROTATE was incorrectly trapping "Side conflict" for non-zero
heel or azimuth rotation of portside components (since 15.70 only; requires
updated PMX.EXE).

PRINT was improved to smooth kinks from plot curves (requires updated PP.EXE).


Version 15.70B

PMX statement ROTATE trim, heel, azimuth now rotates edges around any part
reference point assigned by the REFERENCE statement, or the origin if none
(requires updated PMX.EXE).

PM statement ROTATE is now effective for CYLINDER, ELBOW, and SPHERE
shapes as well as edges (either explicitly defined by EDGE statements or
implicitly derived from TOP, BOTTOM, etc. boxes).

TEMPLATE field VARIABLE @file or "@files" was working to edit text file
contents, but @"file" was trapping an error (since 15.52 only).


Version 15.72

RA /LIM was failing with UNDEF for limits where angle RA0 or RA00 was
not found within 180 degrees of EQU after reaching the end of the angle list;
now such cases treat RA0 as LARGE so long as any angle limits involving RA0
are sure to pass their minimum values.

LS /LIM now supports /COLumn: [Shear] [Moment] parameter to show table
columns for just Shear, just Moment, or both by default.

LS /LIM was sometimes plotting bending moment limit curves too close to upper
and lower grid lines.

LS was trapping "PSI ERROR - WEIGHT DISCREPANCY" in rare cases when a
flooded tank had been assigned forward and aft points of attachment.

MESSAGE REPFONT RIGHT was mispositioning boxes in fancy boxed reports.

COMMENT now centers text in fancy boxed reports using ME REPFONT CENTER.

DISPLAY STATUS views added optional :"title" subparameter to override the
view's default title.  For example, BODY @0:"Origin" shows "Origin" on top of
this view instead of "Body @ 0" (requires updated CG.EXE).


Version 15.72A

LS /LIM now excludes all shear information from table columns, summary, and
plot columns by default when no LSLIMIT SHEAR limits have been defined
(similar to how LS /PER behaves without shear limits).  Note that including
the /COL: Shear Moment parameter restores the old shear-showing behavior.

READ file.FRA loads frame descriptions and locations from the given frame file,
replacing any previous vessel frame information.

ENTER PM commands READ file.FRA and WRITE file.FRA import and export
frame files composed of comma-separated description and location lines
(requires updated PM.EXE).


Version 15.72B

LS plot legends abbreviate "Bending" to "Bend" when necessary to avoid
collision with adjoining columns.


Version 15.72C

LS plot legends were not always displayed correctly without /LIM present
(since 15.68 only).


Version 15.72D

LS plot curves for Stress and Deflection were misformatted if the /CURVE
parameter excluded the Moment curve (since 14.54 only).


Version 15.72E

LS /COL:Shear|Moment parameter can be used with /NOTable to show the summary
with just Shear or Moment information.


Version 15.74

HMMT TURN improved precision slightly and supports /YESNEGBELOW parameter.

SMOD /E:elasticity parameter was added to specify a default modulus of
elasticity (Young's modulus) for use in deflection computations.  Units are
current weight units per square inch (or square centimeter with metric units)
or megapascals with KN units.  If not specified, 12946 long tons/inch^2
(2039 metric tons/cm^2 or 199948 megapascals) is used.

SMOD display added a line showing current elasticity when section moments
have been specified for deflection calculations.

SPECial HMLPA [ON] was added to enable calculation of lateral plane areas
in the STATUS LPLANE report (along with system variables LPA1, LPA2,
HCP2, and LPAARM) using shape factors and treating deducting displacer
components the same as the HMMT command.  Normally HMMT WIND displacer
deductions reduce above-water area but have no effect on underwater area
unless /NONEG or /YESNEGBELOW is present, so STATUS LPLANE shares
this HMMT behavior in HMLPA mode (instead of ignoring shape factors
and including displacer deductions).  Note HMLPA mode does not try to match
HMMT WIND /BAND behavior, which differs by using shape factors above-water
only and ignoring all deductions (even for sails).

ENTER PM command RENDER was sometimes failing (since 15.60D only;
requires updated PM.EXE).


Version 15.74A

DISPLAY command VISUALIZE was not correctly rendering any arc points
(requires updated SE.EXE, PM.EXE, and PMX.EXE).


Version 15.76

SAVE and WRITE commands were not always saving the precise deflection
curve when computed by the LS command with section moments of inertia present.

DISPLAY STATUS header was not always showing correct drafts when deflection
or waves were present (requires updated CG.EXE).

FIXUP /TANKORDER:file was trapping "All tanks must be present to reorder"
needlessly (requires updated MC.EXE).


Version 15.76A

LS was sometimes reporting apparently successful deflection results despite
underlying weight-buoyancy discrepancies due to very low moments of inertia
set by the SMOD command, but now LS either finds valid deflection solutions
or traps "Deflection too great due to insufficient SMOD".

DISPLAY STATUS views for BODY @loc := angles now allow more space betwen
their header titles by using heel angle suffixes (requires updated CG.EXE).


Version 15.78

DISPLAY STATUS supports extra-width output such as A3, Ledger, and landscaped
Letter paper sizes, filling the full width of the legend box.  Note appropriate
lines per page (such as PRINT CONFIGURE /L:44 for landscaped Letter paper)
must be set for best report quality (requires updated CG.EXE and PP.EXE).

DISPLAY STATUS sometimes showed random BODY view titles (since 15.72 only).

LOAD STATUS /EVAL:FRA was misformatting output with a report file open.


Version 15.78A

DAMSTAB without the /SIDE parameter was not always determining the predominant
side of damage correctly for DIVISIONs not using the /WING parameter (since
10.68G only).


Version 15.78B

TANK (tanklist) SHEARCF: correctfwd, correctaft now supports two shear
correction factors (from 0 to 1), with the first applying to the forward half
and the second to the aft half of each listed tank (use 0 to correct only the
other half).  If only one correction is given, it applies to the entire tank.

TANK (tanklist) SHEARCF added optional /DELTA parameter to use shear
correction delta magnitudes in current weight units (not factors).

RA precision for LIMATTn limit values was increased from 5 to 6 decimal places.


Version 15.80

STATUS FREEBD added :FRame optional subparameter to display freeboards at
all frame locations.

SET operator FRName n was added to return the nth frame name; the empty
string if n is out of range or there are no frames.

SET operator FRLoc "name" was added to return location of the specified
frame name (or undefined if no such frame).

LS was sometimes plotting Corrected Shear wrongly near tank ends.

ENTER PM command SHIFT and statements VECTOR and CYLINDER support an
optional final ,LST parameter to interpret the preceding vector coordinates
as Length-Swing-Topping values.  The swing azimuth angle is zero going aft and
90 degrees going starboard.  The topping elevation is zero for horizontal and
90 degrees for vertical.  For the CYLINDER statement, the second end point is
defined by the LST vector from the first end point (requires updated PM.EXE).

ENTER PM command MODIFY was not supporting SHEARCF statement.


Version 15.82

ADD REPORT with ADD PREFIX active now shows only weights matching the
current prefix, like LOAD ST FIX does (requires updated ADDEXTENSION.LIB).

MESSAGE ... \c was incorrectly displaying a second line beginning with the
specified character (since 15.22 only).

SMOD (axis) optional parameter was added to specify a section modulus curve
around the Centerline or Polar axis instead of the default transverse axis.
Note Longitudinal Strength uses only the default SMOD curve information.

SMOD /G:rigidity parameter was added to specify a default modulus of
rigidity (shear modulus).  Units are the same as for /E.  If not specified,
4866 long tons/inch^2 (766 metric tons/cm^2 or 75153 megapascals) is used.

SMOD display shows section modulus curves at all specified axes, along with
current elasticity and rigidity when section moments have been specified.


Version 15.82A

LOAD STATUS /NOEMPTY parameter was added to omit empty tanks.

LOAD STATUS was not displaying weight totals to the screen.


Version 15.82B

LS report was slightly misformatting the list of Correction Factors when aft
correction was specified using TANK SHEARCF /DELTA (since 15.78B only).

TEMPLATE dialog boxes fixed a rare risk of hanging when multiple nested
dialogs are closed simultaneously.


Version 15.84

TEMPLATE list input fields now support the /Width:n parameter to format the
list control to fit n average-size characters instead of the widest list label.

TEMPLATE execute, exit, file, and directory push button fields support the
/Height:rows parameter to specify the number of text rows for the button height
(which may be a fractional number).

TMMT /C1 was undocumented and ineffective but caused future TMMT tm0, tm90
to fail, so now traps bad parameter.

TMMT REPORT and RA notes were not always reporting the correct trimming
moment direction.


Version 15.84A

ENTER PM command SHELL was sometimes corrupting shapes containg arc points
(requires updated PM.EXE).


Version 15.84B

DISPLAY PRINT was not including any SUBTITLE lines (requires updated PM.EXE).

ENTER PM command SHELL was sometimes creating pairs of adjoining DK code points.


Version 15.86

RA /LIM evaluation of LIMIT FLOODHT AT POINT was sometimes producing
spurious UNDEF results (since 15.38 only).

RA /LIM no longer ever treats tight points as flood points when no true
flood points exist, instead giving a LARGE result for the FLD angle when
tight points exist but are not immersed at EQU, restoring the usual behavior
prior to version 15.10.

LS plots were sometimes not showing the local shear impact of point weights.


Version 15.86A

CRTPT command maximum number of critical points was increased from 250 to 400
(requires updated CG.EXE, MC.EXE, PM.EXE, and SE.EXE).


Version 15.86B

GLM now puts any command error messages into the report file so premature
termination in such cases won't be a mystery.

LIMIT FLOODHT AT POINT n1 TO n2 was failing for undefined Critical Point
numbers (since 15.86A only).

LIMIT FLOODHT AT POINTs limits the height for all Critical Points when none are
specified.


Version 15.86C

LIMIT FLOODHT AT POINT limit report descriptions were improved to make
clear the lowest flood/tight equilibrium height is being limited.

RA /LIM evaluation of LIMIT FLOODHT was sometime passing with zero attained
value when downflooded at equilbrium.

RA /LIM evaluation of LIMIT ANGLE to FLD was sometimes passing with zero
attained value when a tight point was submerged at equilibrium with no true
flood points present and zero limit value.

RA /LIM risked hanging if any relative limit angle value extended beyond
180 degrees when added to the starting heel angle (since 14.34A only).

TCONDESC and TCONTEMP system variables were returning blank (since 15.82 only).


Version 15.86D

LOAD (*) EDIT and LOAD (*) STATUS only include tanks with permeability
greater than 0.0001 (the minimum value set by the PERM 0 command), thereby
omitting inactive superimposed tank configurations.


Version 15.88

GROUND [(part\component)] /FLOOR:"filename"|depth [/[L]POS:x,y]
[/HEADing:angle] [/CLEARance:c] [/MAXPEN:ddm] [/NPoints:n] [/LINEAR]
command was added to automatically issue ground points determined by location
and penetration of candidate points on the specified displacer component
relative to the seafloor (first deleting any existing ground points whose
description is prefixed with "part\component-" and retaining any others).

Multiple GROUND /FLOOR commands may be issued for multiple components of
interest.  Because the seafloor ground point naming convention includes the
component name in the prefix, ground points previously issued for different
components will not be deleted.

When using a seafloor file, if the position and/or heading of the ship
results in a portion of the geometry falling outside the extents of the floor
data, ground points will only be issued for the portion of the geometry that
falls within the X-Y domain of the floor data.  In the case of constant
depth, the floor is assumed to extend to infinity.

GROUND /FLOOR:"filename"|depth parameter specifies the filename containing
seafloor data, or alternatively a constant depth relative to the water surface.
The first line of the seafloor text file is an arbitrary title line.  The
second line starts with an optional "L" indicating longitude-latitude data,
followed by required "F" for feet or "M" for meter units.  Each subsequent data
line defines a single point on the seafloor based on three numbers (separated
by spaces or commas).  The first number on each line is the horizontal (West
to East) coordinate, the second is the vertical (South to North) coordinate,
and the third is the associated sounding depth.  Longitude and latitude data
may be entered in decimal degrees or degree-minute-second format (e.g.
-122d56'58.974").  To create a seafloor data file from NOAA's geology data:
(1) go to https://ngdc.noaa.gov/mgg/mggd.html; (2) click "create custom grid";
(3) choose a layer and map area; (4) choose "XYZ" output format; (5) download
the data; (6) insert a title line and "LF" line at top using a text editor.
Be sure to note the data model standard, which may have varying tolerances and
tide-based reference locations for soundings.

GROUND /HEAD:angle parameter specifies the heading in degrees of the vessel's
positive longitudinal axis counterclockwise from the positive vertical North
seafloor axis (default=0).

GROUND /[L]POS:x,y parameter specifies the location of the vessel origin in
the seafloor coordinate system (default=0,0).  If /LPOS is used, locations
are taken as degrees of longitude and latitude in either decimal degrees or
degree-minute-second format.

GROUND /CLEAR:c parameter specifies the maximum clearance within which all
issued ground points must fall.  Clearance is defined as the vertical distance
from the ground point to the nearest ground or the negative of the penetration.
If not specified, the default may take one of two forms: (1) if a seafloor
file is indicated, the default clearance will be set to the vessel's current
origin depth; or (2) if a constant floor is specified, the default clearance
will be set equal to the floor depth.

GROUND /MAXPEN:ddm parameter specifies the maximum penetration of any issued
ground point (in the same as /PEN's ddm parameter).  GROUND /LINEAR generates
linear instead of quadratic ground reactions.

GROUND /NPOINTS:n parameter specifies maximum number of ground points to issue.
If omitted, all candidate points found within the clearance are issued up to
the maximum unused ground points available.


Version 15.88A

GROUND /FLOOR now fully supports centerline components with dual skegs,
which risked issuing unwanted ground points in central recesses when upright
(since 15.88 only).

RA /LIM was giving a LARGE result for LIMIT ANG FROM EQU TO FLD > 0
despite tight point submersion when no true flood points exist (since 15.86
only).


Version 15.88B

WEIGHT REPORT /NOTab was added to omit tabular data, just including the plot.

TEMPLATE field /Vgap:n was added to specify the vertical gap below the
current field (default=5 unless set by /GAP).

TEMPLATE field /SIZE:MAX subparameter was added to set the font size so the
dialog width matches the main window or (if minimized) the screen, along with
/SIZE:n to set the dialog width to n pixels (for n>=50).

RUN command was sometimes ejecting blank pages before plots.

Version 15.88C

LOAD (*) EDIT and DISPLAY (*) STATUS vessel views only include tanks
with permeability greater than 0.0001 (the minimum value set by the PERM 0
command), thereby omitting inactive superimposed tank configurations (requires
updated CG.EXE).

MC FIXUP /NOCRIT parameter was added to omit critical points (which were
causing problems with some Rhino imports; requires updated MC.EXE).

Help menu added a "Release notes" option to read about new features and
changes in the current and previous major releases.  The "Web help" submenu
added a direct link to the "GHS support" reference center.

Wizard menu now supports listing a description of each wizard after its name
(to appear over time as wizards get updated to include descriptions).


Version 15.88D

WAIT NORMAL mode for default split-screen scrolling was failing to wait
for user confirmation before clearing the Display area when a report command
(such as RA, STATUS, etc.) is started.

PMX statement ROTATE trim, heel, azimuth now rotates any shape by heel angle;
note rotation by trim and azimuth is only effective for EDGE-created shapes
(requires updated PMX.EXE).

SE provides alternative function keys #[A|C|S]n for [Alt|Ctrl|Shift] Fn
using n from 0 to 9 (0=F10) to help with missing function keys on tablet
screen keyboards (requires updated SE.EXE).


Version 15.90

TEMPLATE field /TAB:n parameter was added for any button or input field
so pressing the Tab key moves focus to the nth button or input field following
(or preceding if n<0; n=0 doesn't move).

LOAD (*) EDIT and DISPLAY (*) STATUS vessel views exclude tanks set
by the PERM -0 command (replacing 15.86D logic that was triggered by PERM 0
for backward compatiblity).  Other than this visual tank exclusion, PERM -0
works the same as PERM 0, effectively using minimum permeability 0.0001.

MC FIXUP was omitting critical points by default (since 15.88C only; requires
updated MC.EXE).


Version 15.90A

ADD (n) dvar... /ACcess and GROUND (n) dvar... /ACcess syntax was added
to access description and other data for the nth fixed weight or ground point.
The description is loaded into the variable dvar (declared by the VARIABLE
command), and any subsequent named variables are loaded with data according
to the documented /ACCESS sequence.  If n is past the last item, all variables
are set empty.

LOAD (*) EDIT tank list was not always being updated correctly by PERM -0
when done in macros (since 15.90 only).


Version 15.90B

ADD PREFIX [(pn)] pvar [,lvar] /ACcess syntax was added to access prefix
category name and optional label for prefix number pm (default=1) by loading
them into the named variables.  If pn has not been assigned to a prefix,
then all variables are set empty.

PMX statement ROTATE added optional fourth parameter to specify the pivot point
height at centerline for rotations in heel.  An optional NODOUBLE keyword was
added to prevent shapes copied from centerline components from being made to
cover both sides.  The ROTATE statement is now effective in a CREATE command
where the shape is referenced from another component without affecting the
original shape (requires updated PMX.EXE).

ENTER PM command SHIFT added optional SHAPES keyword that causes the shift
to take place in the shape data instead of the component vectors (requires
updated PM.EXE).
    
ENTER PM was hanging on Windows 10 tablets when using the on-screen touch
keyboard.

Help menu added a "Training guide" option to read the GHS training book.


Version 15.92

WATER /V:viscosity optional parameter was added to specify the dynamic
viscosity of the water environment in millipascal-seconds.  If not specified,
default viscosity is interpolated on specific gravity using 1.0 mPa-s for
fresh water and 1.1 mPa-s for sea water.

WATER spgr1, spgr2 was ignoring the second specific gravity for WDF-type
tanks unless preceded by the undocumented /WDF slash parameter.

ADD "desc" "ref*" was not combining any /LPA assignments from referenced
weights into the replacement item.

TEMPLATE field /Tip:"text" information no longer disappears after 5 seconds,
instead staying for 32 seconds or until the mouse cursor moves off the control.

DISPLAY STATUS for WDF-type tanks was not always showing the correct load
depth (since 15.20B only; requires updated CG.EXE).

ENTER PM command RENDER no longer traps an "invalid location" run-time error
when shapes like CYLINDERs extend entirely on the negative side of centerline
components so get chopped away (requires updated PM.EXE).

ENTER PM statement SHAPE was duplicating shapes (since 15.90B only).

EXTEND HOPPER plot scale labels improved their color and spacing (required
updated GHSX.EXE).


Version 15.92A

ENTER PM prevented a rare "invalid location" run-time error risk (requres
updated PM.EXE).


Version 15.94

LOAD EDIT /BUTTON template .macro fields may now be followed by a parameter
list just like regular TEMPLATE execute button fields.

DISPLAY STATUS was sometimes misbehaving with critical points present
(since 15.86A only).


Version 15.94A

HMMT parameter /C:power increased maximum power from 2 to 3.

HMMT parameter /CS was not being described properly in HMMT report notes.

TEMPLATE execution was sometimes doubling underscore characters retrieved
from variables in braces.


Version 15.94B

PRINT path\file.PF and COPY path\file.PF /CONVERT and opening file.PF
from the operating system were omitting any non-embedded {%IMAGE(...)%} output.

RA column header "Res. Area" was sometimes misformatted in fancy boxed reports
(since 15.70 only).

GROUND /PEN:* was incorrectly behaving like /PEN:0 instead of like omitting
the /PEN parameter, which computes penetration to achieve the specified ground
reaction magnitude for new ground points.  Note however that for existing
ground points, /PEN:* refers to its optionally-offset current penetration.


Version 15.96

HMMT REPORT was including a spurious "OTHER" line whenever HMMT WIND
or HMMT TURN was in effect along with a cosine-based parameter like /C1.
This "OTHER" line now correctly only appears to report the results of pure
cosine-size or cosine-based heeling moment functions.

ENTER PM command ENRICH (part[\component]) maxgap was added to reduce distances
between station points in the specified part or component to maxgap or less by
inserting new points (requires updated PM.EXE).

ENTER PM command CREATE statement LOCUS now traps "Too many points on station"
instead of a run-time error if given more than 500 locus points.


Version 15.98

LOAD EDIT /HMMT:contents "Heeling Moment Input" tank heel angle changes were
sometimes being ignored when solving for equilibrium.

FIXUP was sometimes matching the first instead of the last component having
the same name when multiple parts share the same component (requires updated
MC.EXE and SE.EXE).

PM statement ROTATE was sometimes failing for slightly tapered shapes (requires
updated PMX.EXE).


Version 16.00

SEAkeeping [/HULL:part[\component]] [/HEADing:degrees] [/SPEED:knots]
[/DATA:[FOrcing] [HYdros] [WAves]] [/SAMPles:n] [/RELative]
[/CRTpt:num1,...,numn] [/BF:beamfactor] [/LF:lenfactor] command was added
to invoke a linear, 6-degree-of-freedom, rigid-body, frequency-domain,
strip-theory method to compute vessel motions (requires the SK module).
Output includes absolute and relative position, velocity, and acceleration
amplitude and phase, as well as RAOs and response statistics for the vessel
center-of-gravity and any specified critical points.

Seakeeping requires that a loading condition, seaway, and critical points
(if desired) be defined prior to issuing the SEAKEEPING command.  Other
factors affecting seakeeping include WATER spgr and viscosity, SMOD moduli
of elasticity and rigidity, and SMOD at each axis.

Loading conditions may be specified using WEIGHT and ADD commands as needed.
However, the resulting mass moments of inertia are important, as these
quantities have a significant effect on the motion response.  For this
reason, if using WEIGHT to specify a lightship weight and centers, include
the /GYRADIUS parameter to specify the gyradii about each axis.  If the roll
gyradius is not known, it may be entered as zero, and SeaKeeping will default
to a roll gyradius of one-fourth the beam.  Alternatively, if WEIGHT is used
to specify a longitudinal weight distribution, the program will automatically
compute the pitch, yaw, and roll gyradii (using default B/4 if roll gyradius
is internally computed as zero).

Additional weights may be added using the ADD command; tank weights may be
included by loading the desired tanks and these loads will be included in the
loading condition passed to SeaKeeping. Even if tanks are slack, Seakeeping
models these tanks as frozen in their equilibrium condition.  This means that
if true CG shifts are used when modeling tanks, Seakeeping will accommodate
these shifts in the static sense, but Seakeeping ignores both free-surface
corrections and dynamic sloshing effects.

It is advisable to include STATUS INERTIA in your seakeeping analysis run
file to provide a convenient reference of the total inertia condition.  Note
that its summary includes the gyradii and mass moments of inertia about the
center-of-gravity axes parallel to the ship coordinate system.  When heel and
trim are zero, this is equivalent to the Seakeeping axis orientation.

A seaway may be specified using the WAVE command, which offers three methods
for wave input: a single sinusoidal wave, a range of waves at constant
amplitude, or a wave energy spectrum.  If an energy spectrum is used,
Seakeaping will sample the spectrum using a constant variance method.

If motion results are desired at points other than the vessel
center-of-gravity, their locations must first be defined as Critical Points
using the CRTPT command so they can be listed in the SEAKEEPING /CRTPT
parameter (irrespective of flooding status).

Seakeeping begins by showing basic information to the screen and any open
report file, including the part\component name, speed, heading, and Froude
number.

Second, the Critical Points table summarizes Center-of-Gravity along with any
Critical Points specifed for the analysis, including number, description and
position of points and position of points in the ship coordinate system.

Third, the Wave Components table lists the wave type, spectra type, number of
wave components, and component variance.  As the motions problem is solved
for each wave component, its period, frequency, waterline-to-wavelength
ratio, encounter frequency, spectral ordinant, and component wave amplitude
are reported.

Fourth, the motion results for each mode are reported in the following order:
Surge, Sway, Heave, Relative Heave (if specified), Roll, Pitch, and Yaw.
Tables for each mode show CG and listed Critical Points with: (1) position
amplitude and phase; (2) velocity amplitude and phase; (3) acceleration
amplitude and phase; (4) RAO; and (5) acceleration response statistics.

Plots for these responses are also included in the report.  Note that if a
single wave or wave range was specified for the analysis, response statistics
are not included in the report and any data files.  Response statistics are
also omitted if less than three wave samples are used.  Plots are omitted if
less than two wave components are used.

SEA /HULL:part[\component] parameter specifies the hull component to be
used in the seakeeping analysis.  If only a part name is included, its first
component is used.  If omitted, the first HULL component or (if absent) the
first displacer component is used.

SEA /HEADing:degrees parameter specifies the wave heading (in degrees) with
respect to the forward longitudinal ship axis; the default is 180 degrees
for head seas.

SEA /SPEED:knots parameter specifies the forward speed of the ship in knots;
the default is zero for a stationary vessel.

SEA /DATA:[FOrcing] [HYdros] [WAves] parameter outputs the specified data
files containing raw forcing, hydrodynamic, and wave seakeeping data.  If
omitted, no data files will be created; if just /DATA is present, all data
files will be created.  Data is output in the current directory to files
named FORCING.DAT, HYDROS.DAT, and WAVES.DAT.

SEA /SAMPles:n parameter specifies the number of wave component samples from
a wave spectrum in the range 1 to 100; the default is 15.  This parameter is
ignored if WAVE (SPECTRA) is not defined or if it specified a wave period
range.  Note that spectra sampling is performed according to a constant
variance method, so more sampling will occur around the spectrum peak.

SEA /RELative parameter specifies that relative vertical motions should be
computed for the vessel CG and all critical points.  This will add an
additional section to the report file and any data files.

SEA /CRTPT:num1,...,numn parameter specifies a list of Critical Point numbers
used for seakeeping (up to 25 points are supported).

SEA /BF:beamfactor parameter specifies the "beam factor" used to develop the
2D panels; the default is 8.0, meaning the maximum panel length is bs/8 where
bs is the section waterline beam.  The beam factor also implicitly sets
minimum panel length as half the maximum panel length (or bs/16 by default).

SEA /LF:lenfactor parameter specifies the "length factor" used to refine the
number and spacing of 2D sections; the default is 50.0, meaning the minimal
longitudinal section spacing is 2% of the overall length.

WAVE (SPEctra) amplitude, t1,...,tn defines a wave spectrum for seakeeping
from an amplitude in current units for all wave periods in the specified range.

WAVE (SPEctra) DAta ["datafile"] defines a wave spectrum from an external
data file (default=SPECTRA.CSV).  This form is particularly useful if a
unique spectrum is required, or statistical analysis has been performed on a
specific locale to create a spectrum.  Following a header line and a unit line
("F" or "M") comes the data lines, each containing a single comma-separated
wave frequency and spectral ordinate pair.

WAVE (SPEctra) PM wspeed defines a Pierson-Moskowitz wave spectrum formulation
from wind speed in knots.

WAVE (SPEctra) BR period, hsig [,brform] defines a Bretschneider wave spectrum
formulation from characteristic period in seconds, significant wave height in
current units, and optional form General (default), Narrowband, or Ittc1978.

WAVE (SPEctra) J1 wspeed, fetch defines a general JONSWAP wave spectrum
formulation from wind speed in knots and fetch distance in current units.

WAVE (SPEctra) J2 period, hsig defines an ITIC 1984 JONSWAP wave spectrum
from characteristic period in seconds and significant wave height.

The various SPECTRA forms define wave range or spectrum parameters necessary
to perform a spectra-based seakeeping analysis.  WAVE (SPECTRA) is essentially
equivalent to WAVE OFF for all purposes besides seakeeping, so unlike other
wave forms does not show active "WAVE" in the screen header.

Copyright (C) 2017 Creative Systems, Inc.