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.