GHS Version 17.00 Update
New features, changes, and bug fixes since version 16.50
=========== MAJOR NEW FEATURES =========
New DB Data Base Feature
The DB command set makes use of a Data Base for storing and retrieving
various kinds of information. Enter DB Info (or simply DB) to get user
information on the DB commands currently available.
New Reserve Ratio Limit Feature
LIMIT RESErve RATIO [FROM EQU0] [TO angle2 [OR angle3]] > minimum
was added to limit the ratio of positive residual area to positive absolute
area for any specified angle range, as used by the US Navy's DDS079 regulation.
The only valid first angle is absolute equilibrium EQU0, which may be omitted.
Areas are terminated at the smaller of any specified second and third angles
and the angle RA00 of vanishing absolute righting arm, which is an automatic
terminating angle since only positive area is considered.
New Digital Security Against Malware and Spurious Warnings
Main and auxiliary programs are secured with digital code-signing certificates
against malware tampering and unknown publisher warnings.
New Faster Scrolled Report Performance
SCREEN SCROLL ALL speed was increased up to 50% for long report runs
showing SCREEN GRAPH vessel watermark or small SCREEN LOGO image.
Note scrolled reports run fastest surrounded by SC MIN and SC MIN RESTORE.
New Faster SeaKeeping (SK) Performance
SEAkeeping makes use of parallel threads to run much faster on machines with
multiple processors. Typical speedups are roughly proportional to the number
of cores used, so around twice as fast for dual-core machines, 4 times for
quad-core machines, etc., with additional boosts for hyperthreaded machines.
New SeaKeeping Major Features
SEAkeep /SPREAD[:angle[,div]] parameter was added to allow command-driven
short-crested seakeeping analysis by applying a COS^2 spreading function about
the dominant wave heading defined by /HEADING. Optional angle specifies the
spread half-angle (+/- about the dominant heading) of the seaway in degrees;
the default is 90 degrees, corresponding to a standard COS^2 spread. Optional
div specifies the number of divisions to be used when computing the spread
(i.e. the number of subheadings within the total spread angle) and must be an
odd integer; the default is 9 (for one subheading every 22.5 degrees of the
default spread). Note that wave ranges with greater than one wave period are
not supported.
SEAkeep /SPREAD:datafile parameter was added to allows for a user-defined
spreading function specified in a data file; following a header line and a unit
line ("F" or "M") comes the data lines, each containing a single comma-separated
subheading and spreading fraction pair.
SEAkeep /BOX parameter was added to provide much improved surge responses
when analyzing box-shaped geometry; this parameter should not be used when
significant transverse geometric variation is present and may not be used
with heel angles greater than 3 degrees.
SEAkeep /UNCOUPLE[:m,...] subparameters were added to uncouple
only specific modes (1=surge, 2=sway, 3=heave, 4=roll, 5=pitch, 6=yaw),
effectively removing them from the coupled system but still returning
their uncoupled values in report and data file output. SEAkeep /UNCOUPLE
without subparameters now uncouples derived responses.
SEAKeep /COUPLE [:l,t,v] now uses LCF and TCF on the waterplane as the
default "center of motion" instead of the center of mass (CG). Optional
subparameters accept a user-defined origin.
New SeaKeeping Miscellaneous Enhancements
SEAkeep /BILGEKEEL improved handling of centerline bilge keel components.
SEAkeep /DATA:HY now includes the physical mass matrix terms.
SEAkeep /DATA files includes the case number in the file header even for
a single case.
SEAkeep improved derived response support for single waves.
SEAKeep now uses the calm water LCB,TCB,VCB instead of the static
wave-corrected LCB,TCB,VCB when using WAVE (SIN) waves to match
behavior of WAVE (SPEctra) waves.
WAVE (SPEctra) BR form parameter now defaults to "Narrow-band" instead of
the misleading "General" form.
WAVE (SPEctra) J2 now supports peak periods up to 20s.
New PRINT and PLOT Features
MESSAGE PLOTSTART /PAGE%[:percent] parameter was added to restrict
plot output to the given percent of the available print page, appending to the
current page if the total does not exceed 100%. The /PAGE% subparameter
can be omitted or given as "*" to fill out the remainder of the current page.
Note that the /PAGE% parameter is not compatible with plot /ROTation.
MESSAGE PLOTSTART /PROFILE and /PLAN parameters were added to include
the vessel profile or plan on a custom plot. For /POLAR plots, only /PLAN
is permitted, with the plan sized to fit the circle and aft end towards 0.
DISK filename /HOLD now works for any extension (not just ".DAT"), holding
any current report file so it will be reopened at its original state when
output to the specified filename is stopped using DISK OFF.
PAGE is suppressed (including all automatic report paging) when 1000 or more
lines remain on the current page, allowing output to a single long page for
parsing or conversion purposes using very large REPORT /L:pagelines.
PRINT plot point shapes are now larger and more legible.
New GROUP Features
GROUP command no longer requires that all tanks within a group have the same
contents, except for groups that spill or receive contents between their tanks.
GROUP /VOLume[:unit] optional subparameter was added to specify the units
of volume, using the same 2-letter volume unit codes as the TC command.
New HMMT Features
HMMT TANK /NORighting parameter was added to prevent TANK heeling moments
from becoming righting moments by flooring to zero any heeling moment having
a different sign than its heel angle.
HMMT TANK extends the ANGLES list as necessary to derive the tank heeling
moment curve for the full 360 degree range (unless the ANGLES list is so dense
or its end increments are so small that the full range would require more than
100 total angles).
HMMT REPORT now shows HMMT TANK moments using double columns to accommodate
its full 360 degree angle list, sorting them down the double columns instead
of alternating between them for better readability.
New LIMIT and Righting Arm (RA) Features
LIMIT AREA minimum limit value was reduced from 0.01 to 0.005 foot-radians.
RA plots no longer place the vertical axis at zero when the first heel angle
is 45 degrees or greater to reduce excess whitespace.
New Maximum VCG (MAXVCG) Features
MAXVCG tables now place an asterisk next to any Max VCG value that could not
go higher without capsizing despite positive limit margin values, explained
in the report footer as marking rows that "Capsized at Max".
MAXVCG /BOTHDIR was sometimes giving inconsistent results from a direction
that was capsizing with higher VCG.
New Condition Graphics (CG) Features
DISPLAY STATUS /LEGEND: NOLOAD and LOAD subparameter options were
addeds to existing CONTents for precise control whether to include no load or
contents info, just load percentages, or both load and contents in the legend.
DISPLAY STATUS /SCALE parameter was added to show the scale of the
print page (in inches or centimeters) to the vessel (in feet or meters) in the
lower-right corner of view windows for report output. This scale information
is useful when exporting the PDF version of the report to a vector graphic
file format such as DXF.
New Floodable Lengths (FL) Features
FL improved recovery from locations where the floodable length is unlimited
so it could find valid lengths for subsequent centers.
New Load Editor (LE) Automatic VCG Range Changes
ADD /VRANge:range parameter was added to establish a range for automatic
VCG changes in Load Editor, correlated linearly with weight changes ranging
from VCG at /MAX:weight (or given weight if omitted) reduced by range at
zero weight, so LE edit changes in weight and "Load%" columns (as well as VCG
column if /FREE:Vcg was included) make parallel changes to the other columns.
New Model Converter (MC) Features
MC /PROFILE now preserves precise detail when rotating shapes 90 degrees
to create sails.
New Part Maker (PM) and Geometry File Features
COMMents GFID date [,time] /ACcess was added to assign the Geometry File
date and time to the named variables. If more than one Geometry File was read,
variables can be repeated to access the date and time for each subsequent GFs.
ENTER PM statement COMPONENT now supports referencing an existing component
outside of the current part, copying the whole component (not just the shape)
into the current part using a duplicate component name.
New Section Editor (SE) Features
SE isonometric and body views now distinguish the currently selected-component
from any others in the current part by displaying their lines in a dimmer gray
color (or dimmer red if deducting).
SE now shows longitudinal lines (toggled by Ctrl-K) at startup if any displacer
part contains marks such as deck edge codes; this setting is no longer affected
by the Name command.
New System Variables and Other VARIABLE Features
MVCGMARG system variable now returns margin between Effective VCG and
Maximum VCG even when not in Load Editor.
RANDOM system variable was added to return a cryptographically-strong
pseudo-random non-negative real number less than 1. To obtain a random
integer less than some maximum integer value, multiply {RANDOM} by the
maximum then use the TRUNC operator in SET commands.
TDAMPING system variable was added to return the slosh damping factor for
the selected tank, or undefined for default damping. This factor can be set
in Part Maker using new DAMping statement for CREATE and MODIFY commands.
It can be seen in Section Editor and changed using its Edit Damping command.
TEMPLOK system variable may now be preset by the SET command.
TLENGTH, TBREADTH, TENDF, TENDA, TINDB, TOUTB, TBOT, and TTOP
system variables now work for parts as well as tanks when the part list is
specified using the PARTS and SET PNAME commands, but still refer only
to tanks when specified using the TANKS command.
TWPA system variable was added to return waterplane area of the current tank.
WRITE output to a read-only file now sets ERROR system variable to 75,
the same as happens for REPORT or MESSAGE (REPORT) to an inaccessible file.
======= Miscellaneous New Features =======
COMP /FORM /DEPTH:d1,...,dn shows depths in ft'inch format when the depth
list is given in feet and inches in English units.
DRAFT "name" increased maximum name length from 12 to 25 characters.
EDIT supports the /SPAWN parameter to continue the main program while editing.
ENTER PM increased its maximum string length from 256 to 10,000 characters.
KEY PRess "label" was added to visually depress the labeled footer button
until any other KEY command (including KEY PR or KEY PR OFF) is given.
KEY n added support for functions keys F11 and F12.
ROLL IMO /T:period was added to override the normal IMO roll period T and
roll period constant C calculations using an observed roll period in seconds.
RUN, READ (DATA), etc. now assume UTF-8 character encoding by default
for files not starting with a Unicode byte order mark, but still recognize
OEM encoding for backward compatibility in case of invalid UTF-8 characters.
This generally only affects non-ASCII characters in quoted strings used by
TEMPLATE dialogs. Note the unlikely case of OEM characters being mistaken
for valid UTF-8 can be repaired using the COPY /TOUnicode command.
STATUS FIXED:ALL and GROUND:ALL now show the centers of zero-force items.
TC PErcent:loadlist now reports "Load%" percentages instead of "Load" fractions.
Note PERCENT: can precede either a series of values without percent signs or
another loading keyword (such as SOUNDING).
TITLE text /BAR shows text in the window title bar, independent of the title
on top of the screen and output pages. TITLE /BAR restores the default window
title bar. Any surrounding quotes are removed, preventing uppercase conversion.
TYPE CALIBRATED interpolations for tank property table inertia values
were improved so resulting FSM values would be interpolated linearly.
WRITE (Tanks) and (Fixed) now support the /Append parameter.
WRITE (Tanks), (Fixed), and (LOads) now support the /BRief parameter to omit
unnecessary headings along with the CASE macro call for (LOads).
======= Bug Fixes =======
BPRESS system variable was returning excessive pressure for bubble tanks
with nominal load below the reference point and both below the waterline.
COMP /SKIN:Deck|Nodeck was sometimes computing negligible deck skin areas
for perfectly flat decks.
COPY /APPEND was trapping "File inaccessible" in rare system-specific cases.
CRTPT OFF had a very slow memory leak, so that a huge number of repeated
critical point creations and deletions could trap "Not enough memory".
CRTPT REPORT transverse coordinates could overflow for very wide rigs.
DIR /MACRO was not always handling quoted parameters correctly.
DISPLAY STATUS /PRINT without a subparameter no longer shows superfluous
text at top and bottom when sending to the printer.
DISPLAY STATUS /SYNC risked a run-time error when deleting critical points.
DISPLAY STATUS /SYNC was not always smoothly updating Condition Graphics
in the midst of busy loops with negligible WAIT periods.
DISPLAY STATUS after setting WATER 1.000 command was not always reflecting
blue fresh water instead of green sea water.
DISPLAY STATUS fixed a memory leak.
DISPLAY STATUS shown for bubble tanks was fixed to match main program.
DISPLAY STATUS was not always displaying frozen tank surfaces correctly
for contents descriptions ending in "!".
DISPLAY STATUS was recreating the deck edge line by default instead of
honoring any existing DK edge markings (since 16.46 only).
DISPLAY STATUS was showing inconsistent results if only one tank in a pair
of coincident intact or frozen tanks was included in the tank list, but now
the combined results for both are shown if either appears in the tank list
(since 15.20B only).
DISPLAY STATUS without /LEGEND:CONT was omitting load percentages
(and contents if few tanks involved) in the legend except following plot pages.
The intent was to show load percentages in report output by default except
when redundant due to STATUS information appearing on top of the same page,
so now load percentages appear in the legend whenever DISPLAY STATUS
starts near the top of the page (since 12.36 only).
ENTER PM command DISPLAY (list) STATUS trapped "missing parameter" when
a tank list was present (since 11.26 only).
ENTER PM command DISPLAY PRINT /FORMat:LINEs was not formatted correctly
using fine print (since 12.32 only).
ENTER PM command DISPLAY was sometimes discarding recent changes by
CHOP, FILL, FIT, JOIN, REVERSE, and SCALE commands (since 16.46 only).
ENTER PM command DISPLAY was sometimes trapping a run-time error drawing
incomplete components.
ENTER PM command MODIFY now correctly respects effectiveness when JOINing
deducting components.
ENTER PM dialog TEMPLATE variable input /DEC:n[FA|PS] was not supporting
suffix input.
ENTER PM statement CYLINDER was producing incorrect volume when the axis
aligned with the transverse plane (since 16.30C only).
ENTER PM statement FIT HULL was sometimes failing to restore existing
deck edge markings (since 16.40C only).
ENTER PM statement FIT was trapping a run-time error in rare cases.
ENTER PM statement OPPOSITE now traps "Invalid part name" when a component
is included instead of misleading "Name too long".
ENTER PM statement SHELL was sometimes failing to include a shell offset
on stations that appeared "catamaran-like".
ENTER PM statement SHELL was trapping a run-time error in rare cases
(since 16.42 only).
ENTER PM, MC, and SE no longer write inconsistent variations of "Centerplane"
for tranverse OL: description and "Baseline" for vertical OV: description into
geometry files (since 12.00 only).
ENTER PMX calculations involving expressions with multiple left parentheses
or brackets were sometimes failing.
ENTER PMX macros were not correctly handling doubled quotes ("") standing
in for a single quote (") within a quoted string, but now behave similarly to
the main program.
EXTEND HOPPER was not correctly calculating equilibrium when heeling
is present.
Fancy report tabulation in MESSAGE REPFONT modes improved spacing for
right-justified table columns.
Fancy report tabulation in MESSAGE REPFONT modes removed special logic that
caused trouble when ":" or "=" happened to be aligned on consecutive lines
(since 10.50J only).
Fancy report tabulation in MESSAGE REPFONT modes was sometimes misaligning
tags ending in ":" or "=" (since 10.50J only).
FL was sometimes trapping "WEIGHT ERROR #1" in success cases with large
floodable length exceeding vessel length, but now shows an abbreviated table
line with floodable length "> LOA".
FL was trapping "TRIM ITERATION ERROR" in rare cases.
GHSCOM module was ignoring the body of the first MACRO definition, treating
it as a no-op when executed (since 16.00A only).
GROUND /FLOOR /LPOS was sometimes trapping an "Invalid position" error
for valid latitude/longitude inputs.
GROUND /FLOOR no longer traps an "Invalid floor data" error on blank data lines.
GROUND /FLOOR was trapping an "Invalid floor data on line..." error when
data was separated by a tab following a comma.
HEIGHT /ACcess was scaling metric units incorrectly (since 16.38B only).
HMMT TANK and heeling moment function angles were not being honored by RA
calculations for their 360 degree distant equivalents.
HMMT WIND /BAND /COMBINE /NOSHIELD:partlist was neglecting to exclude
the specified parts from underwater shielding (since 14.12A only).
HMMT WIND /BAND lateral plane calculation with trim in effect corrected
a small imprecision where the wrong one of a pair of consecutive points was
sometimes used for maximum and minimum longitude at a particular band height.
HMMT improves reliability and precision of heeling moment function results
by only caching close results for wind heeling calculations.
INPUT command was sometimes trapping spurious "No such variable" error
when DISPLAY STATUS /SYNC was active.
KEY key removal (with omitted action and label) was not correctly refreshing
footer buttons until KEY NOSHOW and KEY SHOW are done (since 10.16C only).
LOAD FLOWC was not always immediately responding to HEEL command changes.
Load Editor eliminated a run-time error risk after executing a macro that
defined a new CONTENTS description.
Load Editor was sometimes temporarily locking up load input after passing
over bubble, deck, or pressurized tanks (since 13.68C only).
MC TPF importing with the /BOTHSIDES parameter was writing spurious
negative waterplane inertia values into the geometry file when the optional
"I" column was missing in the TPF file, which the main program now tolerates
(since 10.68 only).
MESSAGE PLOTSTART /POLAR quadrant plots were not working correctly
with /ROTation (since 16.48 only).
MESSAGE PLOTSTART /POLAR was omitting the legend for a single curve line.
MESSAGE PLOTSTART was sometimes failing to use the full horizontal plot area
for small ranges of first column values.
MESSAGE \ ... \ no longer restricts drawing centered boxes around only up to 10
message commands, and no longer fails when a quotation mark precedes the
first slash (since 15.28B only).
Machine ID security was sometimes failing after inserting temporary storage
on recent operating systems.
MAXVCG was sometimes failing due to a spurious internal capsize situation
(as seen in SOLVE MAXVCG /REPORT).
MAXVCG was sometimes failing to trap "Limit not verifiable" for undefined
limit values.
PAGE was triggering a spurious system error in rare cases of closing an
output file ending in a plot then reopening a new output file.
PRINT plots were sometimes hanging when SUBTITLEs contained doubled quotes
(since 14.76 only).
PRINT was sometimes trapping a run-time error for undefined plot curves.
RA /LIM for LIMIT ANGLE AT FLD was sometimes inconsistently showing UNDEF
instead of a margin value when downflooded before equilibrium.
RA /LIM for LIMIT ANGLE FROM EQU TO TFLD > 0 was sometimes passing
with incorrect 0 deg margin when a tight point was submerged at equilibrium
but showed positive height at the previous heel angle.
RA /LIM no longer treats the flood angle as undefined for LIMIT ANGLE due
to downflooding at equilibrium when the first limit angle is not EQU or the
precise flood angle was found earlier in the table.
RA /LIM was hanging until Esc pressed in rare cases past 180 degrees and
sometimes starting 360 degrees distant from the requested initial heel angle.
RA /LIM was showing limit values based on a spurious vanishing RA0 angle
in rare cases where no equilibrium was found except for a false initial one
with insubstantial righting arm.
RA /LIM was showing limit values based on spurious vanishing RA0 angle in
certain cases where righting arm decreased immmediately following apparent
equilibrium.
RA /LIM was sometimes incorrectly showing margins based on the flood angle
for tight points instead of a lower angle for normal downflooding points when
both were submerged at equilibrium.
RA /LIM was sometimes unhelpfully showing the Flood angle as UNDEF when
found between EQU0 and EQU (since 15.10B only).
RA was sometimes skipping necessary table rows after finding discontinuities
solving for zero flood point height.
READ was sometimes taking a very long time to complete if the synchronized
Condition Graphics window was closed with DISPLAY STATUS /SYNC active.
READ was sometimes trapping a run-time error when reading a bad geometry.
REPORT /L:lines and /NOFOOT parameters were not restoring the previous
settings after closing the current report.
SE Ctrl-D and Part Maker DECKEdge command were not ignoring irrelevent
lower bulbous bow during deck edge construction; likewise DISPLAY was not
ignoring irrelevant upper bulbous bow when drawing the keel line.
SE and DISPLAY failed for paths containing commas, semicolons, and equal signs.
SE command Visualize was sometimes trapping "System Fault 3" after returning
from rendering a shape (since 16.46 only).
SEAKeep was accidentally including the spectral ordinate column in the wave
components table for WAVE (SIN) waves.
SEAkeep /BILGEKEEL was not properly resetting the component list at the
conclusion of a run, affecting later SEAkeep calls without the /BILGEKEEL
parameter.
SEAkeep /BILGEKEEL was retaining incorrect damping values from previous cases
for non-zero forward speed (since 16.46 only).
SEAkeep /BILGEKEEL was sometimes returning undefined values when the appendage
sections corresponding to the hull section did not pierce the waterplane.
SEAkeep /DATA:HY data file was omitting the unit header for the B44Visc data
column and including an unnecessary column of zeros in pitch and yaw damping
coefficients (since 16.46 only)
SEAkeep /DATA:HY no longer includes redundant stiffness coefficient terms
for each wave frequency.
SEAkeep /DATA:WA was not omitting wave component ordinate values in the
data file when using a sinusoidal wave type.
SEAkeep /ROLLCOEF was incorrectly converting damping coefficients when
using metric units (since 16.46 only).
SEAkeep /SUM was omitting the summary table even for multiple cases
(since 16.40B only).
SEAkeep corrected a VCG-related physical mass matrix coupling term that was
affecting horizontal modes.
SEAkeep report Critical Point table no longer displays redundant points when
derived responses are computed.
SEAkeep was retaining extremely small hull panels near the free surface
resulting in divergent coefficients in rare instances.
SEAkeep was returning UNDEF values for wave samples with an amplitude of zero
when using a wave spectra data file.
SOLVE improved snapping to zero for near-zero heel and trim, preventing
spurious capsizing in rare cases.
SOLVE was sometimes trapping spurious errors following load changes to
individual spilling GROUP tanks.
STATUS GROUND was trapping a spurious "REACTION DISCREPANCY" with
a neglible discrepancy value in rare cases.
STATUS was occasionally reporting tiny loads for empty spilling tanks.
TANK selection using /ENDS, /IN, /OUT, /BOTTOM, and /TOP parameters sometimes gave inconsistent results for the portside edges of centerline tanks.
TC /NOREF was showing unneeded "Ref point heights" units in the table footer.
TEMPLATE /REFRESH no longer stretches an updated image to match the
height/width ratio of the old image that it was replacing.
TEMPLATE appearance was improved for systems with increased DPI text scaling.
TEMPLATE check box and radio button fields failed to support the /CENter
parameter to center tag text.
TEMPLATE dialogs no longer add a "Cancel" button at the bottom when their
only variable fields have the /READonly or /Gray parameters.
TEMPLATE edit input fields using /CENter or /Right parameters were not
externally centering or right-justifying fields smaller than others in their
same column, instead just centering or right-justifying input text inside
edit fields.
TEMPLATE field /Apply parameter now warns about invalid input when
the /NOVerify parameter is not present.
TEMPLATE field EXIT buttons were not fitting to the column width in the
same way as MACRO buttons.
TEMPLATE field EXPAND macro lines starting with an empty string field were
not working properly.
TEMPLATE nested persistent dialogs were sometimes hanging after executing
an external program like DISPLAY left running after closing the dialogs.
TEMPLATE static field "text" /Width:n now pads text with extra spaces if
necessary for its width to be at least n average-size characters.
TEMPLATE variable edit field text was not consistently being selected when
receiving focus after changing input in a field using the /Apply parameter.
TEMPLATE variable edit fields with the /READonly parameter can no longer
receive input focus after pressing Tab and other field movement keys.
TEMPLATE variable field /DEC:n parameter no longer rounds off the stored
variable value when the template is exited without changing its shown value.
WAIT BREAK was not recovering correctly from any errors after breaking.
WAVE (SPEctra) J2 was trapping the error "Spectra sampling error" for peak
periods between 9 and 10 seconds.
WRITE (Variables) was inappropriately sending UNITS information for
unit-smart variables to the screen.
WRITE /Append was losing data in very rare cases on particular network systems
(since 15.28A only).
Previous Version Update Features
Copyright (C) 2019
Creative Systems, Inc.