GHS Version Update History from Version 17.50 to 18.00

GHS Version Update History since Version 18.00

Version 18.00A

TC /CM parameter was added to format soundings and reference heights in
centimeters instead of millimeters when in metric unit mode.

DISPLAY STATUS PLAN@WP and similar cut views with non-zero heel were sometimes
distorting components built with non-zero translation vectors (requires updated

PP command TEXT sometimes unnecessarily reduced the font size of right-justified
text when very close to the edge of the page (requires updated PP.EXE).

Version 18.00B

SEA was sometimes trapping a run-time error using WAVE (SPECTRA) J2 waves.

Version 18.00C

SEA was still sometimes trapping a run-time error using WAVE (SPECTRA) J2
waves (since 18.00B only).

Version 18.02

STATUS, HS, GHS, TC, etc. waterplane header with LBP or LWL defined were
sometimes incorrectly showing 0.000 trim length for tiny but non-zero trim.

Menu File -> Read geometry no longer traps "Please CLEAR first" if a geometry
is already present, instead clearing the current geometry before reading the
new one.

Load Editor sometimes showed slight pre-Solve trim differences after changing
a load value using the Enter key compared to moving to another field using a
cursor key.

EQUNOW system variable was not always correctly set to 1 after pressing Ctrl-A
or the Solve button in Load Editor if already nearly in solving equilibrium.

SEA was trapping a run-time error in rare cases.

Version 18.04

TANKS /IN, /OUT, /BOTTOM, and /TOP parameters accept arbitrary location-based
functions instead of just a constant value (e.g. /BOT:15@50a,5@20A,5@20f,15@50f
to select tanks intersecting above a varying floor).

TANKS /IN:offset,pclist and /OUT:offset,complist were added to exclude tanks
based on the offsetted port or starboard side of listed components at their
intersection with the current waterplane (not including any wave), given
a transverse inward offset including "p" or "s" suffix indicating port or
starboard side, and a complist consisting of one or more part[\component]
specifications respecting * wildcard (e.g. /IN: 2.5s, HULL\HULL.C to exclude
tanks entirely 2.5 inboard of HULL\HULL.C's starboard waterline).

SET operator NEXT n was added to return the position (0 if none) of any
character from the next string found in the second string if n=0, or the
first case-sensitive match of the next string found starting at position n
in the second string if n>0, or the first case-insensitive match of the next
string starting at position -n in the second string if n<0.

REPORT /BOX[:CLASSIC] was misformatting the box corner for column header
lines containing styled text markers like {+b} for boldface.

SOLVE PRIMARY:channel no longer stops any current MB interaction unless the
channel name changed.

Version 18.04A

NOTE {%printcommand(...)%} output of PP print commands was made more reliable
(requires updated PP.EXE).

READ /APPEND risked memory errors when appending shape containing property
tables or surface model data structures.

Version 18.04B

DAMSTAB /DIVLENGTH parameter replaced /EXPERIMENTAL (though the former
parameter name still works for backward compatibility), still causing inner
compartments to be examined only with the division length when deciding whether
the bottom is low enough to be flooded, but no longer putting "EXPERIMENTAL"
into the report title.

Version 18.06

MESSAGE REPFONT Wrap parameter was added to left-justify NOTE output, wrapping
any overflow past the page width margin to the next line instead of compressing
it to fit.  If a fancy REPORT /BOX:COLOR|BW report is active then the current
PRINT CONFIGURE /FONT is wrapped, otherwise the default fixed font is wrapped
(unlike other REPFONT modes that only work with fancy reports).

MESSAGE output of overlong text to the screen now wraps to the next line at
space boundaries when possible, instead of the extreme edge of the window.

ENTER PM statement ROTATE was incorrectly rotating counter-clockwise instead
of clockwise for portside components (requires updated PM.EXE).

Version 18.06A

NOTE {%IMAGE("file",hpos,-1[,width,height])%} places a BMP or JPG file image
on the report page starting at the current line, then moves that current line
down by the image height, which can be specified in inches or (if missing)
taken from any vertical height encoded in the image file.

PATHHERE system variable now respects the current SPECIAL SHORTNAME setting.

Version 18.08

NOTE {%IMAGE("file",hpos,vpos,-1|width[,-1|height])%} preserves file image
aspect ratio when -1 is given in place of width and/or height, even when these
are automatically reduced to avoid truncation past the edge of the page
(requires updated PP.EXE).

SE was sometimes unresponsive after clicking the mouse in an empty shape
(requires updated SE.EXE).

SE command FILL in an empty shape was sometimes trapping a run-time error;
also, an empty first shape was preventing FILL entry for subsequent shapes.

Version 18.08A

TS /CAP:f1[,f2[,f3]] shows the capacity for up to three load fractions in each
table header.  A negative fraction f can be specified to show -f capacity only
for tanks having specific gravity less than 1 (i.e. those with contents lighter
than Fresh Water).  Using /CAP:0 omits capacity information from table headers.
The default TS behavior is /CAP:100%,-95% when /CAP is not present.

RUN without /QUIET now shows "End of Run File" completion message in the
Display area instead of any split Command area.

SEA /ROLLTANK was sometimes yielding zero responses for certain tank geometries
which were far above the baseline.

ENTER PM command RENDER added ;SPAWN parameter to continue while the rendered
geometry appears in a persistent separate window (requires updated PM.EXE).

SE and DISPLAY command Visualize added SPAWN parameter to continue while
rendering geometry in a persistent separate window (requires updated SE.EXE).

Version 18.10

CC /DRAFT table was reporting drafts at origin instead of LCF whenever
the DRAFT @ location was not specified (since 16.30 only).

ERROR output of overlong error messages now wraps to the next line instead
of being truncated.

Main program was sometime trapping "Missing working directory" on startup
(since 18.08A only).

Load Editor risked trapping a run-time error when entering the Contents column
if substances had previously been removed using the CONTENTS OFF 0 command.

Version 18.12

Command-line editing from the main program added the Alt-E key combination.
Whereas Ctrl-E picks the previous command and the Up-Arrow key picks up the
previous word whether it's a command or not, Alt-E keeps going up until it
reaches a non-command word (so it can be used to get to the Display area in
split-screen mode).  After the first press of Alt-E or Up-Arrow, the other
arrow keys can be used to select a word from various places on the screen.

DAMSTAB /SDI421PSP method was added by appending "SP" after /SDI421P
to indicate a special purpose ship (similar to /SDI194CSP, etc.).

LS was sometimes failing to combine point weights at the same location due
to tiny rounding differences.

SEA now imposes limits on inertial forcing amplitudes when computing responses
for small encounter frequencies. While not strictly necessary, this limit is
consistent with those already imposed on the forward speed corrections for the
added mass and damping coefficients.

Version 18.12A

NOTE commands no longer restrict {expression} evaluation except for literal
color number codes (e.g. {4}) and style markers ({+b}, {+d}, {+i}, and {+u})
appearing at the top level (not resulting from nested {expression} evaluation).

DISPLAY (*) STATUS vessel views were not excluding tanks set to PERM -0
(since 17.86 only; requires updated CG.EXE).

ADD /PED:loc,len /ACcess was added to access LS pedestal location and length.

Version 18.12B

File access commands were sometimes failing for paths containing non-ASCII
characters under Windows 11 only, but this operating system bug has now been
worked around.

Version 18.12C

DISPLAY and DISPLAY STATUS risked trapping a run-time error in rare cases
of complex shapes with multipe lobes (requires updated SE.EXE and CG.EXE).

Version 18.12D

FSMFloor OFF was not always setting the separate minimum free surface moment
for each different contents name to zero, instead incorrectly behaving the same
as FSMF 0 | FSMF "*" = FSM.  Note that the correct FSMF OFF behavior can be
replicated in earlier versions using FSMF 0 | FSMF "*" = 0.

FSMFloor "contents" = OFF was behaving the same as FSMF "contents" = FSM,
instead of correctly behaving the same as FSMF "contents" = 0.

Version 18.14

DRAFT output now uses the PRINT /FONT (or Arial by default) in fancy reports.

DAMSTAB was sometimes incorrectly considering "+" prefixed tanks as flooded
despite their preceding tanks not being flooded due to interference during
intermediate stages of the flooding analysis.

DAMSTAB updated the method used to create lesser extent damage cases to account
for progressive flooding in the division definition, correcting a tendency to
remove crossflooding tanks from the final damage case (since 17.88A only).

ENTER PM statement ROTATE was incorrectly rotating the starboard reflection
of portside components (since 17.92B only; requires updated PM.EXE).

Version 18.14A

MAXVCG and SOLVE MAXVCG now ROLLs back opposite from the ANGLES direction
when /FIXDIR is present or the current HEEL is zero.

ENTER PM was rounding REAL variables passed as MACRO parameters to 2 decimal
places, but now preserves up to 5 decimals precision.

ENTER PM statement ROTATE was not consistently rotating in the order heel
first, then trim, then azimuth when creating shapes from plane boxes, edges,
cylinders, elbows, and spheres, but now matches rotation order for other shapes.

ENTER PM statement ROTATE was not consistently turning around any part
reference point using optional pivot point height in all rotation scenarios.

Version 18.16

RENDER [(partlist)] command was added to render an interactive visualization
of the listed parts (or entire vessel geometry if omitted), respecting any sail
transformations specified by the TYPE command and showing the current vessel
waterplane unless the /NOWPL parameter is present (requires updated PM.EXE

Version 18.16A

DISPLAY STATUS /PAGE%:percent output that Condition Graphics detected was
too large to fit on the current page was sometimes garbling subsequent text
output in fancy REPORT /BOX:COLOR|BW mode.

Version 18.16B

SET-free variable assignments trapped a run-time error (since 18.16A only).

Version 18.18

LOAD (tanklist) EDIT risked trapping a run-time error when executing a macro
that reads a new Geometry File not having any tanks in tanklist.

PRINT CONFIGURE dialog only selects the primary printer for PRINT output
without affecting any printer settings, so now makes sure to disable all other
dialog controls (such as Properties and Number of copies) to avoid confusion.

RENDER was incorrectly including TYPE UNSET sails (requires updated PM.EXE).

ENTER PM, SE, MC, and other auxiliary programs were sometimes failing to READ
geometry files having a part listing a component name with side suffix omitted
followed by the same component name with side suffix specified (requires updated

Version 18.20

PRINT /PAPER:LETter|LEGal|LEDger|A4|A3|A2|h,w|* parameter was added to
print or preview using the given paper size name or height and width in inches;
note /PAPER:* restores the old behavior using paper size from system printing
preferences (requires updated PP.EXE).

PRINT /PREVIEW right-click menu Print dialog Preferences Paper size is now
active so it can be changed to print using the selected paper size (note all
other Printing Preferences dialog info is read-only so any changes are ignored).

PRINT filename uses paper size implied by any previous PRINT CONFIGURE /L:lines
configuration setting unless overridden by the /PAPER parameter; note this also
applies when previewing any .PF file opened directly from the operating system.

REPORT CLOSE and PRINT (without filename) print the current report file using
paper size implied by any REPORT /L:lines parameter when the report was opened,
otherwise using any previous PRINT CONFIGURE /L:lines configuration.

PRINT CONFIGURE /FONT:font was not being remembered when the program restarts
unless a footer was present.

MESSAGE TRACE ON|OFF commands are no longer sent to MESSAGE (REPORT) files.

ENTER /ENVironment parameter was added to pass the vessel waterplane, loading,
any sail transformations, etc. to the external program.

ENTER PM error messages no longer truncate the command causing the error after
77 characters, instead showing up to 1024 command characters on multiple lines
(requires updated PM.EXE).

Version 18.20A

TS /VDEC:places parameter was added to specify the number of decimal places
to use when displaying volume values.

Version 18.20B

TEMPLATE field EXPAND now works with SET-free assignments variable := expression
in the same way that SET, VARIABLE, and IF commands are executed.

Running .RF files directly from the operating system was sometimes trapping
"Path not found" (since 18.20 only).

Version 18.22

RENDER command visualization now includes any ground points (requires updated

ENTER PM command MODIFY statement JOIN was occasionally failing to cleanly
join bulbous bow components to the hull.

LOAD EDIT /BUTTON was sometimes resizing incorrectly when revealing a wide
button row that was initially invisible below the bottom of the window.

Version 18.22A

RAANGDIR system variable was added to return 1 if the RA command angle list
is starboard-directed or -1 if port-directed.  This is primarily useful within
a macro specified by the /RAMACRO parameter, but can also be used outside the
RA, MAXVCG, and SOLVE MAXVCG commands to get the ANGLES list direction.

LIST /PRINT parameter was added to list macro commands to the current output
file instead of to the screen.

LIST output of overlong command lines now wraps to the next line instead of
being truncated.

Version 18.22B

MAXRRAH system variable was sometimes incorrectly trapping an error that
it failed to find the next residual maximum arm angle.

Version 18.24

TYPE INTACT /HBL was incorrectly setting load to -1 for BUBBLE type tanks
(since 10.06B only).

LOAD STATUS was occasionally trapping "bad slope" for TYPE PRESSURIZED tanks.

Version 18.24A

Part Maker run from a command line or file association risked trapping an error
when passed a very long run file path or one containing pairs of parentheses or
square brackets (requires updated PM.EXE).

Version 18.24B

ENTER PM command CREATE statement OPPOSITE was trapping an error if its optional
tank parameter was missing (since 12.00 only; requires updated PM.EXE).

Version 18.24C

TEMPLATE dialog first field would sometimes blink and in rare cases be truncated
when an IDLE macro was executing (since 17.12 only).

Version 18.26

SEA was sometimes trapping a run-time error when combining /RELATIVE and /DATA

Version 18.28

FIXUP [(part\component)] was failing if the component (first in vessel if none)
did not have a side designator and was not centerline (requires updated MC.EXE).

RA /LIM for LIMIT ANGLE FROM EQU TO FLD > 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, neglecting to insert a
line for the tight point immersion heel (since 16.78B only).

Version 18.28A

REPORT /P:pagenumber was setting the page to pagenumber+1 (since 18.20B only).

Version 18.30

SET-free variable assignment variable := number now preserves full precision
in the same way as variable := "number" or SET variable = number instead of
rounding to 5 decimal places (or as specified by the SPECIAL SYSDEC command).

MC file [(part\component)] FIXUP shows a warning message that fill was skipped
instead of trapping an error if component (HULL\HULL.C if none) does not exist
(requires updated MC.EXE).

Version 18.32

DISPLAY (list) PRINT /ONLYINtro shows only the initial graphics and the part
summary list, omitting part plots and offsets (requires updated PM.EXE).

VARIABLE {name:-d} replaces a numeric variable with a compact representation
of its value rounded to d decimal places trimmed of trailing zero decimals.

EXTEND HOPPER improved its heel solving (requires updated GHSX.EXE).

Version 18.32A

WRITE (LINEs), WRITE (Variables) /Append, and other file append commands
were sometimes deleting the old file contents in rare cases where a network job
queue had not yet completed an earlier write operation.

Version 18.34

ENTER PM statement JOIN was excluding instead of preserving identical stations
in current and target components and other unusual cases (since 12.00 only;
requires updated PM.EXE).

EXTEND HOPPER was not calculating Flooding Volume correctly for empty tanks
and stations not holding cargo (requires updated GHSX.EXE).

DYNSTAB PL /LEVEL:2 was incorrectly computing the C2 indices when the
equilibrium angle was a large port side angle.

Version 18.34A

ENTER PM command MODIFY statement FIT was occasionally giving non-standard
results (since 18.22 only; requires updated PM.EXE).

Version 18.34B

SET-free variable assignments like variable:=0+number were failing to evaluate
the expression (since 18.30 only).

Version 18.36

MAXVCG exit tolerance was modified to reduce chance of results having slightly
negative limit margins.

LOAD2 system variable now works for multiple selected tanks by returning the
total actual volume divided by total maximum volume instead of undefined.

WRITE /NAME:pattern parameter now supports a comma-separated pattern list.

Version 18.38

RA /LIM for LIMIT RESIDUAL RATIO now shows FAIL margin if the residual
righting arm at the limit's first angle is positive, indicating a zero-crossing
before equilibrium that would deduct from the ratio's denominator area.

Version 18.40

HMMT hm1 @ ang1,... and HMMT TANK added /LINEAR parameter to force
linear interpolation between and beyond specified heel angles instead of
default 2nd degree polynomial interpolation.

COMP /PERM:value was not immediately updating system variables like TVOLUME.

Version 18.42

MACRO was trapping a spurious error message if any variable names contained
a period (since 18.40 only).

Version 18.42A

TS /Format:7 was added to include columns for Volume, Cu.Ft/M., Weight, Center,
and Transverse Moment vs Sounding per Norwegian Maritime Authority preference.

PERM permeability was inadvertently turning off any override FLOOD permeability
if the specified permeability precisely matched the part's original component
permeabilities carried in the geometry file (since 9.54F only).

Copyright (C) 2022 Creative Systems, Inc.