GHS Version Update History from Version 19.00 to 19.50


GHS Version Update History since Version 19.50

Version 19.50A

RA limit evaluation for AREA and other non-ANGLE limits involving FLD angle
with tight points present was sometimes failing with zero value when the angle
range does not include EQU and its direction is toward port (since 17.60 only).

CONTENTS command no longer traps "Cannot change contents of tank in group"
for tanks in groups that do not spill nor receive contents.  Tanks in such
groups are likewise no longer prevented from content changes in Load Editor.


Version 19.52

REPORT /BOX:COLOR|BW fancy CRTPT REPORT was sometimes misformatting 3-digit
critical point numbers across the table border on continued pages.

ENTER PM command CHDIR was fixed to work with variables in braces (requires
updated PM.EXE and PMX.EXE).


Version 19.54

PRINT or PRINT /PREVIEW entered alone from the keyboard now brings up the
Report->Print or Report->Print preview menu dialog instead of trapping an error.

PRINT no longer splits long lines after 256 characters.

RAH with no ROLL defined was passing ROLL angle limits with LARGE attained
value instead of trapping "Roll angle must be first".

RAH moments formula notes sometimes reported incorrect signs when HMMT was
defined using mixed positive and negative hm0, hm90, and hm180 values.

LS /CURVE:WEIGHT,BUOYANCY was incorrectly plotting similarly to PART /VOL
(since 19.46 only).


Version 19.54A

RAH /AREA: intervals added EQu and EQU0 to the list of angles that may be
substituted for angle list item numbers, so /AREA: EQU0-EQU, EQU-RA, EQU0-RA
can be used to report the LIMIT RATIO area derivation.


Version 19.56

MAXVCG was sometimes showing incorrect output when limits fail at current VCG
and LIMIT GM UPRIGHT is present.

FL risked spurious WEIGHT ERROR 3 in rare cases (since 16.88A only).

DI STATUS 3D @azimuth [@elevation] risked reporting garbled view titles, but
now shows the azimuth and any elevation angle instead (requires updated CG.EXE).


Version 19.58

MAXVCG /NOWARN suppresses trapping "Trim Limit (-45 to 45) exceeded" due to
internal righting arm tables encountering trim magnitudes exceeding 45 degrees
at VCGs that otherwise meet the stability criterion.  Note this could only be
suppressed previously by setting the ERROR system variable to -3 or -4 before
doing MAXVCG, afterwards resetting ERROR if its value changed to -902 or -903.


Version 19.60

MAXVCG risked trapping spurious "Trim Limit (-45 to 45) exceeded" errors
especially when /BOTHDIR parameter was present.

FL suggests adding more stations after "*** WEIGHT DISCREPANCY ***" errors.

ENTER PM command DELETE part\component was trapping "No such item" when
the component's side suffix is missing, even though CREATE part\component
allows omitting the side suffix and appends a default one (since 18.72 only;
requires updated PM.EXE).


Version 19.60A

EXTEND HOPPER and ENTER TSX were trapping spurious errors (since 19.24 only;
requires updated GHSX.EXE and TSX.EXE).


Version 19.60B

ENTER GS was trapping spurious errors (since 19.24 only; requires updated
GS.EXE).


Version 19.62

Load Editor changes to Tanks Sounding column were not immediately updating
the current row's footer to include "(Fixed while in this column)" information
and were sometimes incorrectly maintaining constant sounding mode during macro
execution if done prior to moving the cursor out of the Sounding column.

Load Editor changes to Tanks Sounding column were not being shown correctly
in Condition Graphics when in metric units (since 16.30 only; requires updated
CG.EXE).

ENTER GS menu system was trapping "Bad side designation" when entering lowercase
part or component names (since 16.32 only; requires updated GS.EXE).


Version 19.62A

Load Editor changes to Tanks Sounding column were still sometimes incorrectly
maintaining constant sounding mode during macro execution if initiated from
the LEw macro button (over the Tank Description column) and no IDLE macro had
been defined.

Load Editor tanks with constant sounding during Tank Sounding column changes
are now all shown in bright cyan color, matching the new "Constant" headlight
shown in Load Editor with Windows while constant Sounding changes are active.


Version 19.64

RAH plots were sometimes incorrectly showing negative GM at RA0 when EQU
could not be found.

MAXVCG no longer aborts processing whenever "Deck immersed at initial heel"
is detected, instead just carrying on trying lower VCG values or reporting
"Deck immersed at upright" in Margin columns if that determined maximum VCG.

SEAkeep wave spectrum report no longer shows Significant Wave Height,
only showing Spectrum Variance as this does not make assumptions about
narrow-bandedness and is more informative for sampling convergence
(announced in 18.98 but not done until this version).


Version 19.64A

LOAD system variable again returns the nominal tank load fraction instead of
undefined for TYPE BUBBLE tanks (since 10.08 only).

LOAD * /PRESSURE:atm was setting pressure for load 0 instead of current load.

SEAkeep /RESPonse: None subparameter was added to suppress reporting any
Position, Velocity, or Acceleration response data.

WAVE (SPEctra) J3 period, hsig, gamma was added to define a JONSWAP wave
spectrum using the formula from IACS Recommendation No. 34 Rev. 2 (2022),
which includes a factor to constrain spectrum variance, so is more suitable
for varied gamma input.


Version 19.66

LOAD RAH|RAT|DELTA was not trapping "Must be intact tank(s)" for certain
non-INTACT, non-FROZEN tank types such as BUBBLE.

COMP /VOL was not showing output using the BHS main program (since 6.70 only).

LOAD EDIT /EVAL:FRA now allows "-" in frame codes instead of eliminating it
along with other non-alphanumeric characters, so (for example) "FRAME-10" and
"FRAME10" frame descriptions can be distinguished instead of both being "FR10".
Note frame codes containing "-" can still be followed by + or - offset values.

SET FRLoc description operator was incorrectly returning the location of the
first frame having the same frame code as the specified frame description,
instead of just returning the frame description's location.


Version 19.68

RA plots no longer omit the GM line when starting with positive righting arm.

RA without /LIM now plots GM line for the equilibrum found nearest to upright.

PM command MODIFY part\component was modifying part2\component instead
of trapping if the component exists in part2 but not in the specified part
(since 16.32A only; requires updated PM.EXE).

PM statement FIT component was fitting to any existing HULL\component instead
of trapping "Ambiguous component" if the component also exists in another part.


Version 19.68A

GYRAD* system variables trapped run-time errors with property tables present.


Version 19.70

GYRAD* system variables were still sometimes trapping run-time errors with
property tables present.

RAH backed out trapping "Roll angle must be first" when no ROLL defined
(since 19.54 only).


Version 19.72

TS /FSM parameter was added to replace moments of inertia with free surface
moments in /Format:3 and 4, and to replace volumes in Cu.Ft or Cu.M. with
longitudinal FSM in /Format:6.


Version 19.72A

MESSAGE PLOTSTART was only ploting curves for the first 16 data columns instead
of the documented 55 maximum number of plot table columns.


Version 19.74

COPY command was sometimes unnecessarily trapping "File inaccessible".


Version 19.74A

MAXVCG process was enhanced to eliminate rare cases where relative angles in
limits were evaluated relative to upright instead of equilibrium.


Version 19.76

WRITE "filespec" with quotes but no extension was appending default ".RF" after
the quotes, causing problems with initial DB command usage among other things
(since 18.90 only).


Version 19.78

ENTER PM statement FIT risked trapping "System Fault 3" in rare cases with
stations ending with arc points (requires updated PM.EXE).

ENTER PM command SHELL was not always assigning deck edge points correctly
and risked trapping run-time errors in rare cases (since 16.08B only).


Version 19.80

SEAKEEPING improved its normal vector logic in the bow region, and also
improved symmetry in meshing for cases that have strong fore/aft symmetry.
The surge convergence in long wavelengths is now better but remains very
sensitive to the /LF:lengthfactor parameter; to obtain good convergence,
a length factor greater than 100 is generally needed.


Version 19.82

ENTER PM and other auxiliary programs now maintain a command history like
the main program, allowing picking back and forth through the 50 most recently
entered commands by pressing the Ctrl-E, Up-Arrow, and Down-Arrow keys, as
described in HELP KEYBOARD (requires updated PM.EXE, PMX.EXE, and GHSX.EXE).

ENTER PM command READ filename (without a path) automatically copies from the
program directory if found there and missing in the current directory.

SEAKEEPING corrected a problem computing inertial forces (since 19.80 only).


Version 19.82A

SEAKEEPING further corrected inertial force computation resulting in negated
phase angles for surge with head seas (since 19.82 only).


Version 19.82B

TEMPLATE dialogs with very many fields risked rare run-time errors when closed.


Version 19.84

SEAKEEPING /MSI default exposure time when /TIME parameter is not present
was corrected from 24 hours back to 2 hours (since 16.38 only).


Version 19.84A

HEIGHT system variable was sometimes returning spurious bad results for
tanks with tiny but non-zero load.

REPORT /BOX:COLOR|BW fancy reports using MESSAGE REPFONT were not always
correctly sizing NOTE boxes containing styled text marked by {+b} for bold.

REPORT /BOX:COLOR|BW fancy reports risked trapping errors for MESSAGE REPSTART
custom reports lacking table column header lines.


Version 19.86

TYPE BUBBLE tanks taller than 100 feet were not always solving precisely.

MESSAGE REPSTART fancy custom report rules no longer require the final header
line to contain "---" if the next line is all dashes (i.e. 3 or more "-" dashes
surrounded by optional spaces).  Note this dash separator line is omitted from
fancy report output, replaced by changing color or boldface.  Summary lines are
now marked by "-->" (instead of requiring longer "--->") and omit any preceding
all-dashes separator line to match the output format of commands like COMP /VOL.


Version 19.88

TYPE BUBBLE tanks risked inconsistent solving at high vessel depths, which
led to unstable submerged equilibrium results under rare conditions.


Version 19.88A

SOLVE now holds constant the flooded or spilling modes of TYPE BUBBLE tanks
until an equilibrium waterline is found, then adjusts modes based on whether
their tank damage Reference Points are below or above the external waterline,
resolving to find a new equilibrium if any damaged tank mode changed.

SOLVE was not always correctly holding constant the flooded or spilling modes
of TYPE DAMAGED tanks until equilibrium found when preceded by a command like
STATUS that computes righting arms for the current condition.

ROUTINE prefix "^" was trapping an error when returning a value from a routine
or macro function declared in the calling routine.

FL no longer risks stopping for "DRAFT TOO BIG" errors (since 19.56 only).

ENTER PM statement OPPOSITE was not mirroring sounding TUBEs and translation
VECTORs from the source tank.  Note this fix can be overridden using explicit
TUBE and VECTOR statements for the OPPOSITE tank (requires updated PM.EXE).


Version 19.88B

VARIABLE braced expression evaluation was sometimes hanging when the unary
Minus ("-") operator was involved with other operations (since 19.88A only).


Version 19.88C

SOLVE risked trapping "Model part bad slope" in rare cases of long narrow
horizontal pipes containing tiny non-zero load volume.

ROUTINE ESC risked hanging with "Routines are not macros so cannot be executed"
cascading error messages, so defining global routines with the same names as
critical system macros like ESC and IDLE are now prevented by trapping errors.


Version 19.88D

LS and TORQUE were not saving their user variable results as globals when
run from ROUTINEs.

WRITE (Variables) for /NAME:".*" now retains "." before each written variable
name when run from ROUTINEs to allow them to save and restore global variables.


Version 19.90

LOAD (tanklist) load /PRessure: atm was setting bad loads for any non-BUBBLE
type tanks in the tanklist, so now traps the first inappropriate tank name with
the error "Non-BUBBLE tank name cannot be used with /PRESSURE".

SOLVE was incorrectly missing a valid solution and trapping "SHE SANK" in rare
cases of low-displacement vessels supported by BUBBLE-type tanks.

CHDIR entered alone from the keyboard now brings up the File->Change directory
dialog instead of trapping an error.

ROUTINE statement ELSIF {variable}=value THEN was trapping undeclared variables
even if protected by a previous IF NOT VEXIST variable THEN statement in the
same block; note this was no problem for ELSIF variable=value without braces.

Copyright (C) 2025 Creative Systems, Inc.