GHS Version 09.50 Update

New features, changes, and bug fixes since version 9.0

=========== MAJOR NEW FEATURES =========

New Report Styles

REPORT filename /BOX:COLOR | BW | [CLASSIC] parameters were added for formatting a fancy report. /BOX:CLASSIC or /BOX uses the old method of drawing boxes around report tables. /BOX:COLOR[n] formats reports according to the style file RGSTYLE.DAT located in the GHS program directory. /BOX:BW works the same as /BOX:COLOR, except colors become black foreground on white background.

Tank-Smart Critical Points

CRTPT /TAnk:name parameter was added to ignore the critical point for flooding whenever the named tank is flooded.

Condition Graphics Enhancements

The Condition Graphics window is now automatically updated whenever a load is changed so that the new condition is accurately depicted. This is enabled by means of the /SYNC parameter as detailed below.

DISPLAY STATUS /SYNC parameter was added to spawn a Condition Graphics window positioned adjoining the top right or left side of the GHS32 window, if space permits, and automatically synchronized with any changes that take place in Load Editor. If started from within Load Editor using a CGPARAM variable that includes "/SYNC", the spawned CG window will be closed when Load Editor exits, and otherwise it will persist. When Load Editor is not active, changes are batched until synchronized by the DISPLAY STATUS /UPdate command. DISPLAY STATUS /QUIT closes the synchronized Condition Graphics windows.

If CGPARAM string variable has been defined, its value is used as the DISPLAY STATUS parameter when the "CG" button is pressed in LEw (or Ctrl-K is keyed in regular Load Editor).

LOAD EDIT /CG parameter was added to automatically launch a synchronized Condition Graphics window upon Load Editor start up. This CG window will close automatically upon Load Editor exit, and if closed will be restarted synchronized by keying Ctrl-K or pressing the LEw "CG button. LOAD EDIT /CG and DISPLAY STATUS /SYNC adjust the height of the new CG32 window so that its bottom is flush with the parent GHS32 window, unless CG32 is forced to overlap GHS32 due to lack of screen space.

DISPLAY STATUS with a report active now writes by default to the standard output file associated with the primary printer. However, if /SECONDary parameter is included on the DISPLAY STATUS command line, then the Condition Graphics page is written to a .QF file for use with the secondary printer as in earlier versions (requires updated CG32.EXE, PP32.EXE, and GHSVIEW.EXE).

New CHANGE Command

CHANGE [(tanklist)] "description"|*|RESTORE [/Color:color] sets the description of the given tank(s), and optionally the color of the description text. The colors from 1 to 15 are the same as described for the MESSAGE COLOR command, while 0 is the default color. If an asterisk is supplied rather than a quoted description string, the current description is not changed. RESTORE restores the original description as received from the geometry file. If the tank's reference point is not 0,0,0, a circular dot marks the reference point in the plan and profile views, this dot being in the given color.

New PULL Command

PULL "name" force|OFF [l, t, v, azimuth, elevation] [/MAX: maxforce] command was added to apply a force originating outside the vessel, whose direction remains fixed with respect to the waterplane at the given azimuth and elevation angles relative to a level starboard-directed pull. Optional maxforce is used in Load Editor. PULL OFF deletes all pull forces. PULL [REPort] reports all pull forces (to the screen only if REP is absent). The moment effects of pulls are itemized in HMMT REPORT and TMMT REPORT, and their displacement effect is itemized in STATUS PULL and STATUS DIsplacement. PULL f1 @ h1 [, fn @ hn]... parameter may be used in place of a single force parameter in order to define an arbitrary pull force function of heel. The force is as specified for each given heel angle, linearly interpolated between adjoining angles, and holding last value beyond the given range. If all heels are non-negative, their forces values reflect to port as well. The force values must not switch sign. PULL REPORT shows the current heel in the header if any pulls are heel-dependant. Load Editor supports force changes at any heel by scaling the force function, respecting any overall /MAX:maxforce parameter.

New THRUST Command

THRust "name" force|OFF [l, t, v] [/MAX: maxforce] [/UNCONDitional] command was added to apply starboard force at a point on the ship, directed at zero elevation angle with respect to the ship's vertical axis and offset from the ship's transverse axis by an angle equal to the AXIS setting. The force is only active when the thrust point is submerged, unless /UNCOND is present. Optional maxforce is used in Load Editor. THRUST OFF deletes all thrusts. THRUST [REPort] reports all thrusts (to the screen only if REP is absent). The heel moment effect of thrusts is itemized in the HMMT REPORT, and their displacement effect is itemized in STATUS THrust and STATUS DIsplacement.

New READ (DATA) Command

READ (DATA) file opens an input text file and establishes READ DATA mode; READ (DATA) OFF closes any input data file and terminates READ DATA mode. READ var1 [,var2 ...] [/SKIP] reads sequential data items (comma, space, or tab delimited) from the current line into variables in READ DATA mode. If the end of line or file is reached or /SKIP is present, any non-filled variables are set to the empty string before advancing to the next line. Numeric variable types trap an error if non-numeric data is read. READ var /LINE reads the remainder of the current data line unmodified into a variable, advancing to the next line. IF [NOT] EOF THEN ... executes the following statement only if at the end of the data file or READ DATA mode is not active.

New Shape Factors

A new attribute has been added to non-tank components: the Shape Factor which multiplies the wind plane area. GHS supports this Shape Factor in geometry files at the component level. It may range from 0.0 to 2.0 (default is 1.0) and multiplies displacer and sail part lateral plane area calculations for HMMT purposes.

COMPONENT [part\comp] /SF[:value] [/QUiet] sets shape factor to a new value for matching non-tank components, reporting changed components if missing /QUIET. If no new value is specified, then existing non-tank components are reported.

Effectiveness Factors

While all components have always had an Effectiveness factor (i.e. permeability for components of tank parts), it was not possible to change Effectiveness values directly in the main program. Now the COMPONENT command can be used to set the Effectiveness/Permeability factor of any component:

COMPONENT [part\comp] /EFf[:value] [/QUiet] sets effectiveness to a new value for matching non-tank components, reporting changes (unless /QUIET is present). If no new value is specified, then existing non-tank components are reported.

COMPONENT [part\comp] /PErm[:value] [/QUiet] sets permeability to a new value for matching tank components, reporting changed components if missing /QUIET. If no new value is specified, then existing tank components are reported.

Note that COMPONENT /SF, /EFF, and /PERM changes (as well as PERM command changes) are not preserved by the WRITE command, are not saved in the geometry file, and are not generally transmitted to external programs.

Component Reports

COMPONENT reports are shown in an improved format. COMPONENT /SECTIONS omits the plot if there is no section area.

Lateral Plane Projection at any Axis Angle

ENTER GHSX supports lateral plane projection HMMT report at any axis angle (requires updated GHSX32.EXE). Detailed wind heeling moment derivation for complex structures such as drilling units is also available in GHSX.

New LIMIT Types

"LIMIT FLOODHT [AT angle [TO angle2]] > height" defines a limit for the height of the lowest flood point above the waterplane.

"LIMIT INCL [AT angle [TO angle2]] > inclination" defines a limit for the greatest inclination in degrees.

LIMIT ANGLE AT ROLL < value limits the absolute angle after roll.

New LIMITS Angle

LIMITS angle keyword DI0 was added, which refers to the same deck immersion angle as DI except that the margin is ignored when calculating the freeboard.

LOAD STATUS Report Enhancements

LOAD STATUS for tanks containing OIL or alternate petroleum substances report contents name and temperature on the first line with each tank's gross volume, then specific gravity at standard temperature on a second line with tank's net volume. If the /WEIGHT parameter is present, then the specific gravity (for OIL) or contents name (for alternate petroleum substances) is reported with the tank weight, and no second line is reported.

LOAD STATUS /SORTUP:column and /SORTDOWN:column parameters were added to sort the report up or down along the specified column (either DEscription, NAme, COntents, LOad, PErcentage, WEight, LCg, TCg, or VCg).

LOAD STATUS /NOHEAD parameter was added to omit the Load Status report header.

LOAD STATUS /FORMat:2 parameter was added for an alternate format using one line per tank regardless of contents and adding a column for tank capacity. Although the tank description field does not appear in this format, the tank name field includes as many whole words from the tank description as will fit. LOAD STATUS /FORMAT:2 /SAFEULL:ullage reports tank capacity at given ullage. LOAD STATUS /FORMAT:2 /SAFEFILL:fraction reports petroleum tank capacity at the given fraction of a full tank.

LOAD STATUS|EDIT /VDEC:places parameter was added to specify the number of decimal places to use when displaying volume values.

Rhino Interface

GHSCOM module interfaces to Rhinoceros 3.0 NURBS Modelling program using the Conditions dialog available from the Rhino AttachGHSData command (requires GHSPLUG.DLL plus installation of latest Rhino Bonus Tools plug-ins).

New System Variables

DEFLECT real system variable was added to return the amount of parabolic deflection at midship.

TSOUND real system variable was added to return the sounding length for the selected tank, or undefined if no sounding tube was defined for the tank.

SHRMAX, BMMTMAX, and TORQMAX real system variables were added to return the maximum shear, bending moment, and torque from the last LS or TORQUE command.

SHRLOC, BMMTLOC, and TORQLOC variables now return the longitudinal location of SHRMAX, BMMTMAX, and TORQMAX maximums if no corresponding LSLIMIT limits have been defined. Otherwise, SHRLOC, BMMTLOC, and TORQLOC still return the locations of SHRMARG, BMMTMARG, and TORQMARG maximum margin values.

VARIABLE /List:name lists variables matching name, which may include wildcards.

VARIABLE [name] /Color:n parameter assigns a color number from 0 to 15 to a variable name. The colors from 1 to 15 are the same as described for the MESSAGE COLOR command, while 0 is the default color. If the name contains wildcard characters "*" or "?", then the color is changed for all matching variables. If the variable already exists, its value is not made undefined when a color is assigned. If the name is omitted, all variables are listed that match the specified color. Variable colors are shown in the VARIABLE list, in NOTE command output for {name}, and in TEMPLATE variable fields.

PAGENUM real system variable was added to return the current report page number.

FSMMT system variable was often unnecessarily returning Undefined.

FSMMT1 real system variable was added to return the formal value of the free surface moment as derived from the method set by the FSMMT command.

TCONDESC string system variable was added to return the contents description for the current tank.

SUBSDESC string system variable was added to SET a current description from the substance table, used by the new SUBSVOL and SUBSSPGR real variables.

SUBSVOL returns the total volume in all tanks having substance description equal to SUBSDESC. SUBSSPGR returns the specific gravity of the substance whose description is SUBSDESC. These variable are undefined if SUBSDESC is not in the substance table (thus excluding special names such as "OIL", "cargo", and "unknown").

TVOLUME, SUBSVOL, and unit-smart VOLUME type variables now use cubic feet or cubic meters (depending upon the current UNIT setting) rather than any residual volume unit specified by the LOAD /VOLUME:unit parameter.

TWEIGHT real system variable was added to return the total weight for all selected tanks.

TNVOLUME real system variable was added to return the total net volume for all selected tanks.

The vertical bar character ("|") can now be stored in a quoted string and then assigned to variable without acting as a multiple command separator.

REQSDI real system variable was added to return the latest required subdivision index from the DAMSTAB command.

======= Minor New Features =======

ADD /MAX:0 causes LCG, TCG, and VCG to be fixed in Load Editor without showing a load percentage.

BOOM command now allows negative pin offsets.

CONTENTS [(tanks)] "substance@temperature" [, spgr] command was added for alternate petroleum substances (6 characters maximum) in place of "OIL" with specified spgr at the given temperature. Subsequent use of this command without specifying a new spgr will maintain the old spgr for the substance but vary it in accordance with the new temperature. Once defined, these new petroleum substances may then be entered in the Load Editor Contents field as "substance@temperature" (or as "substance" to mean "substance@60F"). CONTENTS (tanks) *, gravity API60 command now keeps the temperature the same while setting a new API gravity at 60°F if all matching tanks have identical oil substance - and likewise for CONTENTS (tanks) *, density DEN15. (This feature has long been documented but never before had been implemented.)

COPY, SAVE, and WRITE commands added /CODE parameter to write the output file in a coded format that is supported by the RUN and READ commands (external integration requires updated SE32.EXE, CG32.EXE, etc.). LS frame files ending in .FRA and WRITE /APPEND support coded files. COPY filename /CODE encodes the given file.

COPY file1 file2 /Append appends file1 to the end of file2.

DELETE WEIGHT prefix* deletes all weights and ground points whose names begin with prefix.

DISPLAY PRINT /PAGE:start[..end] parameter was added to print only the start page of the vessel display; if /PREVIEW is also present, previewing is initially focused on the start page. If an end page number is given, then all pages from start to end are printed. Note that /PAGE is independent of the /P:page parameter, which specifies the starting page number but doesn't affect which pages are printed.

ENTER /FORCEDOS parameter added to apply FORCEDOS when used in Windows NT based operating systems. (This parameter is generally never necessary, but may be helpful in special diagnostic or troubleshooting situations.) (Same for SHELL command.)

EXECUTE templatename /SAMEPOS parameter was added to display the template dialog box at the position where it last appeared. EXECUTE no longer traps "A macro cannot call itself" in case of recursion.

EXIT [name] /CLEAR parameter was added to clear any active macros and run files before optionally executing the named macro. If Load Editor is active, then only macros and run files started after Load Editor are cleared.

HMMT moment arms now extend to the centroid of any ground reactions, otherwise extending as usual to the center of the underwater lateral plane.

If a reference point for a part has been defined as other than 0,0,0, then it is displayed as a dot on watermarks and Load Editor vessel graphics.

LOAD EDIT /LSMACRO Ctrl-S writes Longitudinal Strength report to any open report file, while default LOAD EDIT Ctrl-S just writes to the screen.

Load Editor Contents field for OIL can change tank temperature with fixed spgr by first entering "@?", then entering the desired "@temperature".

Load Editor has added new Thrust Force and Pull Force modes, available using the Tab key (or individual push buttons in the LEw module) only when thrust or pull forces have been defined.

LOAD EDIT /MAXSPGR:max parameter was added to prevent numerical specific gravity values greater than max from being entered into the Contents field.

LEw module Tanks mode supports right-clickable "Contents" header button to toggle Bulk mode and metric API mode, as well as to select density format (the same choices as listed for regular Load Editor function keys).

LOAD EDIT brings up a "Set Light Ship" dialog box instead of automatically trapping "Not enough weight" if no weight had been defined for the geometry. LOAD EDIT calls macro or template LE_SETLS upon start-up to correct the situation if no weight had been defined. If LE_SETLS has not been defined, then a default "Set Light Ship" dialog box instead. If either mechanism fails to correct the problem but "OK" was clicked inside a template, then the mechanism is repeated, otherwise "Not enough weight" is trapped.

LOAD EDIT /SAFEFILL:loadfraction parameter was added to cause petroleum-type tank loads that exceed loadfraction to be flagged with magenta color. In LEw, an "OVERFILL" light also appears when any petroleum tank exceeds loadfraction.

LOAD EDIT /SAFEULL:safeullage was added to cause tank loads whose ullage is less than safeullage to be flagged with magenta color. In LEw, and "OVERFILL" light also appears when any tank ullage is less than safeullage.

LEw appended/inserted items now show each field as blank until filled in. Pressing the Enter key after filling in each new item field prompts for data entry into the next required field. If any required field has not been initialized before moving the cursor into a new row or display mode, then the incomplete item is automatically deleted.

LEw Tanks footer line displays total net volume for named petroleum substances (other than "OIL") regardless of specific gravity. LEw Tanks footer and right-click contents descriptions have been reformatted (for example, "Total oil (0.725 SpGr): 888.8 Long Tons" now appears as "Total OIL (0.725 spgr): 888.8 LT").

LOAD EDIT command may now be used in macros invoked within LEw to break out of macro execution and reconfigure LEw with the specified command line parameters. For example, this technique can be used to modify the tank list.

LEw displays overlong tank names and descriptions in reduced font, instead of mixed upper and lower case.

LOAD EDIT /BUTTON (may be in TEMPLATE) LOAD EDIT /BUTton:template parameter was added to construct a column of buttons on the left side of the LEw window. The specified button template contains a series of [@]["label"][.macro][/Color:c][/Backcolor:b] fields, with a line for each row and "|" separating multiple buttons on the same row, using blank lines for vertical gaps and doubled "||" for horizontal gaps. Each button has an optional text label (or by default the macro description is used); if "@" appears, then the label is a filespec to a bitmap file (default extension ".BMP"). Each button label has a macro or template action (or by default an inactive grey label appears as a placeholder button). Label text color and background button face color can be specified using /C and /B with color numbers from 0 to 15 as defined for the MESSAGE command. Note /B:0 creates a black background, and black text is used by default instead of the Windows system button text color if any /B parameter appears. Multiple labels can be listed to share the same button, with only one visible at a time and the others accessible by choosing from a right-click list. Any buttons which do not fit on the LEw window have their labels listed when the regular macro button (configured by the /MACRO parameter) is right-clicked.

PAGE LINEs:n parameter was added to output a new page if less than n lines are available on the current page. PAGE n% parameter was added to output a new page if less than n% of the printable area of the current page is empty.

The GHS footer no longer shows a page number in the PAGE 0 mode.

PRINT supports PDF file output on systems using the "Adobe PDF" print driver, which is the new name for the "Acrobat Distiller" print driver available in Adobe Acrobat version 7. Another product which works well for generating PDF files from GHS (or any other application) is pdfMachine by Broadgun Software (go to for a free download).

PRINT and REPORT now uses 0.25 inch default margin for the footer regardless of printer, unless the /FOOTMARGIN:inches parameter is included (which now specifies the target margin instead of an upwards adjustment). Note that the footer may still be mispositioned if the printer manufacturer does not calibrate the printable page length properly, but this can be corrected by adjusting the /FOOTMARGIN parameter (requires updated PP32.EXE).

PRINT /FONT:"name" parameter was added to print a fancy report using the specified Windows font name; by default, fancy reports use "Arial" font.

PRINT /SHADE:factor parameter was added to shade fancy reports darker through multiplying the difference between white and all background colors by the specified shade factor.

Print footers use proportional "Arial" font by default. The PRINT /FONT:face parameter is now effective for print footers on all report pages, not just fancy reports (requires updated PP32.EXE).

PRINT CONFIGURE /FONT:face parameter was added to set the default font for print footers and fancy reports, which is saved between GHS sessions. This font can also be selected from the GHS32 Report -> Setup printer -> Font menu.

Plot lines in report files are no longer restrained to 255 characters.

Footer file names are no longer stored as absolute path specifications so report files are more portable. Footer files are looked for sequentially in the current directory, program directory, and system path. The GHS32 menu Report -> Setup printer -> Footer dialogs list files in the program directory.

READ /APPEND no longer advances the report page.

ROLL and ROLL /PRINT reports were enhanced with additional IMO parameters and improved formatting. ROLL REPORT combines ROLL with ROLL /PRINT. ROLL REPORT was enhanced to report corrected GM and use Draft at LCF.

SHELL OPEN document.ext [/WAIT] opens a document using the program associated with its extension. If /WAIT is present, GHS32 waits until the document is closed, otherwise GHS32 resumes immediately.

SOLVE METHOD=n sets the solving method without actually solving.

SOLVE [/]METHOD:3 added for a strategy that employs a second round of solving with priority on trim if standard solving did not yield a particularly good result. This method is now the default GHS solving method (which may also be set by using /METHOD without a value). The old default solving method can be accessed by specifying /METHOD:0. Repeated SOLVEs gives much more consistent results due to reduced fluctuations in the new default solving method. Load Editor no longer does unnecessary solving when nothing has changed.

STATUS command is no longer inoperative in /PIPE mode or when using GHSCOM.

TC /STOP:FULL now interpolates to find the sounding at which the tank just becomes full (assuming the given sounding range exceeds full load).

TC /NOGraph parameter was added to inhibit the generation of the graph for the present TC command.

TEMPLATE variable and box labels support keyboard shortcuts to position the dialog focus to the following field. Text fields now also provide keyboard shortcuts if an underline character ("_") is explicitly present.

TEMPLATE static "text", variable, parts, box, and check box fields support /Color:n parameter, using colors 1 to 15 as described for the MESSAGE COLOR command. If a color is specified for a variable field, it overrides any color specified with the VARIABLE /COLOR command (thus, /C:0 for a template variable field forces default dialog color regardless of any VARIABLE /COLOR setting). To color a variable label, specify /Color:n after the quoted label and before the variable name.

TEMPLATE .macro /Persist[:Refresh] field now updates dialog variable fields with any values changed by the macro. If the ":Refresh" parameter is present, then the dialog box is fully reloaded, resized, and refreshed upon macro exit.

TEMPLATE /Color:n parameter now works for all push button field types to set the color of the button face text. TEMPLATE /ITALic and /BOLD parameters were added for push button fields to toggle the button face text to italic or bold. Note that if the base font for the template dialog box is already very bold (such as default Windows System font), then the /BOLD parameter may have no additional effect; if the base font is already italic, /ITALic toggles it off.

TEMPLATE FILE /SHORT field uses a different dialog format than the standard Windows file selection dialog, in order to prevent any movement out of the current directory that is disabled by the /SHORT parameter.

TEMPLATE FILE /SHORT /EXT:"ext" for a single extension now allows entering a file into the dialog without this default extension present.

TEMPLATE "ok" "cancel" EXIT field causes a single "cancel" button to appear if the "ok" label is empty.

TEMPLATE [[@]"label"] RADIO varname field was added to appear as a radio button at the left of any label. Radio buttons operate on the same variable in groups, with the first buttons matching a variable value of blank or zero, the second matching value 1, the third matching 2, and so on, with the final radio button matching any other variable value. On template entry, a radio button is checked only if it matches its variable's value. On uncancelled template exit, the variable is set to 0 if its first radio button is checked, 1 if its second radio button is checked, 2 if its third is checked, and so on.

TEMPLATE blank or commented-out lines are now completely ignored. To create a narrow gap between two rows, insert a line between them containing only the empty string "". The REMove field is supported for button templates.

TEMPLATE returns focus to the same variable field after pressing the Enter key to activate a non-exiting default macro. (Note this worked anyway if the macro button field had the /PERSIST parameter, but now it always works.)

TEMPLATE EXIT button fields may now optionally execute a macro when the "OK" button is pressed to exit the template dialog box; the expanded syntax is: [[@]"ok" [[@]"cancel"]] EXIT [.name [(rep[,inc])] [param]...] [/NOVERIFY]

UNIT command allows "KG" and "LB" units for vessels up to 20,000 cubic feet, instead of forcing use of "MT" and "KP" above only 2,000 cubic foot volume.

VARIABLE name:min:max command will not contract the range for existing variables if the ERROR system variable is -4.

DECK tanks now regard the reference point as representing both sides of the ship. Both the reference point and its mirror image across the centerplane are considered for spilling from the deck tank.

Ctrl-Break pops up a message box asking "Break to GHS command prompt?", and on "OK" button pressed, all macros and run files and Load Editor sessions are cleared and control passes cleanly to the command line. Ctrl-Break no longer triggers any ESC macro or error reporting.

Multi-Body Improvements

MB module now supports FIX DRAFT | DEPTH depth | SOLVE WEIGHT to solve for Light Ship weight to attain the given depth at interaction equilibrium.

MB module added /WMAX:dw and /HMAX:dh parameters for SOLVE PRIMARY|SECONDARY commands to ensure weight differences between interacting vessels do not exceed dw and height differences do not exceed dh.

MB /WMAX and /HMAX parameters were renamed /WTOLerance and /HTOLerance.

MB processing is no longer suspended while a TEMPLATE dialog box is active.

MB module added /SYNCQUIT parameter for SOLVE PRIMARY|SECONDARY commands to force the program to quit if the interaction becomes disconnected.

MB solving was improved to prevent thrashing between heel and trim changes when both need to be restrained. Also, the Weight information in the Load Editor status box is now being properly updated during MB solving.

MB module solving for unstable or sinking vessels was improved.

MB SOLVE RECEIVE CLEAR added to clear any backlog of postponed commands since receiving commands from connected sessions was disabled by SOLVE RECEIVE OFF.

SOLVE SECONDARY channel,p,s[,reactpen] [;...] optional parameter was added to specify a ground reaction maximum penetration for each connection point pair, overriding any interaction-wide value given by the /REACT parameter. Note that if reactpen is negative, then the ground force acts in a downward direction, just like negative maximum /PENETRATION for the GROUND command.

SOLVE SECONDARY c,p,s[,r][;...] /ADD parameter adds new interaction points to an existing interaction.

MB module traps "Duplicate critical point" if the same critical point interacts with multiple critical points on other vessels.

GHS32 Report -> Setup printer -> Page size menu shows current page setting using a check mark.

Machine ID security

Machine ID security is now available under Windows 2000 and Windows XP.

Size Increases

The maximum number of added weights was 200, but is now unlimited.

Maximum number of angle, draft, displacement, etc. values for CC, COMP, GHS, HS, RA, and STAB commands was raised from 200 to 1000 in GHS32.

Maximum sections per shape was increased from 255 to 1023 (requires updated MC32.EXE, SE32.EXE, CG32.EXE, etc.).

Maximum number of angle values in ANGLE and MAXVCG commands was raised from 100 to 1000 in GHS32.

======= Bug Fixes =======

ADD w l t v /MAX:m was not behaving correctly in Load Editor "Load%" column for negative weights. Note that weight and maximum weight are both considered negative if either is negative with /MAX present.

ADD command was losing total fixed weight CG information whenever the total fixed weight becomes zero but subsequent weights are later added.

CLEAR and READ combination was not releasing an increasing chunk of unused memory, so that GHS might terminate with a "Heap overflow" message after many repeated READs during the same GHS session (since 8.64 only). CLEAR was not fully turning off any active wind heeling moments. CLEAR (name) VARIABLE command was sometimes causing inconsistent behavior for variables defined later than the deleted name (since 8.44A only).

COMP /FORM /DEPTH was not reporting the "Length is " value in the footer.

CONTENTS substance,gravity /COLOR:n command was not working properly if gravity was suffixed by API, DEN, or SG. If a tank in the geometry file was defined with fluid name "OIL", this was preventing CONTENT (tank) "OIL @ temperature", spgr commands from working. This situation may now be corrected by disabling the OIL substance by setting its specfic gravity to zero using the command CONTENTS "OIL" 0.

DAMSTAB /SDIP:n freeboard was undefined for some multi-component hull models.

DISPLAY STATUS at the end of a report no longer appends an extra empty page. DISPLAY STATUS was not displaying ground points (since 8.94 only). DISPLAY STATUS was failing if the current part list was space-separated instead of comma-separated. DISPLAY STATUS scaling was improved so that reference points on small vessels won't be oversize. Triangle and circle markers were not always being filled in if partly off the Condition Graphics screen. Sometimes run-time errors or spurious lines were appearing in case of overflow (requires updated CG32.EXE and PP32.EXE).

EDIT /PROG:program was failing for program filespec containing spaces.

EXIT macro was sometimes trapping an "invalid location" run-time error in cases of deep recursion when the specified macro was already active. However, this condition will be trapped if "Runaway macro recursion detected".

Load Editor again accepts an API or units suffix after a value entered into the Contents field for oil or cargo tanks (since 8.98C only).

LOAD EDIT /FRA Ctrl-S was not displaying a frame table (since 9.00 only).

LOAD EDIT /DENFMT:n was not working consistently when re-entering Load Editor (as from Ctrl-S after displaying Longitudinal Strength).

Load Editor Sounding (or Ullage) field was not being immediately refreshed after damaging or flooding a tank.

Load Editor Contents field entry of "substance@temperature" was failing for "substance" longer than 3 characters.

Load Editor was sometimes not permitting data entry in Fixed Weight and Ground Point modes with MB solving active.

Load Editor without LEw module was misformatting the screen after pressing Ctrl-S or Ctrl-K (since 8.98 only).

LEw Tank Contents field right-click Other cargo -> Oil was failing to set the tank contents to oil (since 8.16F only).

LOAD (tanklist1) EDIT was not restoring tanklist2 to tanklist1 when a macro executed a LOAD (tanklist2) STATUS report.

LEw Crane module was sometimes crashing with the error "Bad string format".

Load Editor was not accepting substances ending in "!" into the contents field if the substance had first been specified in the spgr table ending in "!".

LOAD EDIT /LSMACRO:macro parameter was not highlighting and keeping the focus on the LS button in LEw when pressed.

Load Editor was sometimes causing a run-time error when adding ground points.

Addressed a "PSI ERROR - WEIGHT CENTER DISCREPANCY" produced by the LS command for a vessel undergoing deflection.

In LS, the Light Ship was being assigned 0 as a vertical attachment location, which could slightly affect longitudinal strength calculations (since 8.94 only).

LS was sometimes trapping "Missing section moment of inertia at end" when the fixed WEIGHT is longitudinally distributed close to the boundaries of the SMOD distribution.

IDLE macros running in Load Editor that set a tank load without explicitly solving were triggering a "No equilibrium found" error (since 8.78 only).

Successfully addressed a spurious "SHE SANK" condition during MAXVCG.

MESSAGE (REPORT) was displaying a spurious box on the screen if any of the report lines began and ended with a backslash ("\"). A series of MESSAGE \...\ commands was failing to appear in a single box, instead appearing in separate boxes for each command (since 8.52 only).

DISK, PRINTER, and IF FEXIST commands were failing for file extensions longer than 3 characters.

PRINT file SECONDARY was failing for long path names. (Note that since 8.60A the SECONDARY parameter is not necessary for CG output, since GHS is able to determine whether to use the secondary printer from the print file format.) An extra blank line was appearing at the very top of the first page of reports configured to include a footer.

PRINT CONFIGURE /L:58 was not fully effective when changing from a larger number of lines per page until after restarting GHS.

Print footer was sometimes being mispositioned on the second and subsequent pages of reports configured for pages greater than letter size.

PRINT using an oversize footer logo bitmap was only scaling it down in the vertical direction instead of in both directions (requires updated PP32.EXE).

PRINT fixed an "expression out of bounds" run-time error condition.

PRINT and REPORT were offsetting pages as much as one-quarter inch too far to the left on printers (such as Adobe Acrobat) with very little unprintable region along the left border. The print footer was also being mispositioned on some printers.

PRINT /PREVIEW was not displaying the wave pattern for certain zoom factors and primary printers.

Trying to plot more than 55 table columns was causing a run-time error, but now traps "Table column limit exceeded".

RA /HOLD followed by HEEL *-ROLL was fixing the heel. RA was not finding the equilibrium angle as accurately as possible when very close to the angle of downflooding and with small RA values there. In some cases when downflooding and equilibrium fell at the same angle, the RA command was not properly identifying the equilibrium angle.

The downflooding point height was being reported as zero in the RA report at zero heel when the direction of heel was negative.

The deck immersion angle was being falsely reported for opposite-side heel angles; i.e. when the RA curve began at heel angles on the side opposite to the side toward which the heel was progressing.

RA report flood points were not being plotted correctly if some are undefined using metric units.

SCREEN MAX was leaving a grey masked-out region at window bottom if number of rows didn't change due to matching increase in character height.

SE and DISPLAY commands now work with quoted geometry file names containing spaces.

SOLVE was sometimes capsizing for heel solution nearly but not quite zero. This problem only applied to normal solving (/METHOD:0 not 1 or 2).

TRIM trim | SOLVE was trapping "Draft undefined" under FIX DRAFT conditions.

SOLVE /METHOD:1 and /METHOD:2 modes were sometimes incorrectly computing FREEBD variable and RA Deck Immersion angle.

STATUS FIXED:BRIEF was sometimes reporting miscellaneous weights incorrectly when the light ship weight or any added weight was zero. STATUS GROUND:BRIEF was sometimes trapping with a REACTION DISCREPANCY when very small weights are present.

TC report was misaligning the GMT and FSM columns by one character position (since 8.36 only).

TC was sometimes overshooting the top of the tank even when /STOP was present.

TEMPLATE variable field verification error reporting for templates containing any persistent fields was causing the program to halt.

TEMPLATE <BOX> fields were sometimes being incorrectly formatted if they contained multiple lines of text or were followed by blank lines.

TEMPLATE dialog boxes remaining visible underneath a nested template (executed using /PERSIST) were failing to repaint any static bitmap image fields and crashing the program if the screen mode changed (as when DOS does Alt-Enter).

TEMPLATE labels ending in a "_" were not consistently being stripped to prevent any earlier "_" from starting an underlined shortcut.

Executing a template with a repetition factor was causing a run-time error.

TEMPLATE PARTS field was not working if preceded by a "label".

TMMT tm0, tm90 /C2 was trapping "Bad parameter" (since 7.00 only).

Trimming moment was often being incorrectly noted as 0.00 in the RA report.

Variables HEIGHT and TVOLUME were not always returning values.

VARIABLE name = "string" was being truncated for long string values.

VIEW /SHIFT:n parameter was not working when displaying the file in an interactive viewing session (requires updated GHSVIEW.EXE).

SAVE and WRITE(SAVE) preserve the full context of any active REPORT command, rather than preserving as if a stripped-down DISK command were active.

MB module was having difficulty solving for interaction equilibrium of latched points under FIX DRAFT conditions.

MB module was reaching spurious solving equilibrium in certain latched cases even though one of the interacting vessel had large RAH or RAT.

MB module was sometimes trapping an "invalid location" run-time error if the primary vessel started interacting with new secondary vessels while Load Editor was active.

MB module was sometimes interminably restarting solving after finding an acceptable (though slightly sub-optimal) solution.

MB module ensures primary interaction points are inserted in sequential order.

MB module susceptibility to "FIXED WEIGHT DISCREPANCY" errors was improved.

MB traps an error if non-MB-smart commands like GHS, HS, and CC are attempted.

MB module susceptibility to "FIXED WEIGHT DISCREPANCY" errors was corrected.

MB speeds up RA by omitting GM calculation on report plot (which wouldn't show up anyway due to displacement changes forcing a Righting Moments report).

MB backup solving mode - involving automatic fixed trim or heel solving for slowed but more assured solving in difficult cases - was failing to be activated when needed (since 8.02G only). This failure was generally not noticeable due to overall improvements in MB solving, but in the case of some damaged or flooded conditions this backup mode was found to be very helpful so is now activated on an expedited basis.

SOLVE PRIMARY and SECONDARY were implicitly resuming /SUSPENDed interactions.

Wizard menu dialogs had the wrong window titles (since 8.96E only).
Previous Version Update Features

Copyright (C) 2008 Creative Systems, Inc.