GHS Version 16.00 Update

New features, changes, and bug fixes since version 15.50

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

New PFExport Wizard to MS Word and HTML Format

Print File Exporter wizard converts report files into .DOC and .HTM format.

New SeaKeeping (SK) Hydrodynamics Analysis Optional Module

SEAkeeping [/HULL:part[\component]] [/HEADing:degrees] [/SPEED:knots] [/DATA:[FOrcing] [HYdros] [WAves]] [/SAMPles:n] [/RELative] [/CRTpt:num1,...,numn] [/BF:beamfactor] [/LF:lenfactor] command was added to invoke a linear, 6-degree-of-freedom, rigid-body, frequency-domain, strip-theory method to compute vessel motions (requires the SK module). Output includes absolute and relative position, velocity, and acceleration amplitude and phase, as well as RAOs and response statistics for the vessel center-of-gravity and any specified critical points.

Seakeeping requires that a loading condition, seaway, and critical points (if desired) be defined prior to issuing the SEAKEEPING command. Other factors affecting seakeeping include WATER spgr and viscosity, SMOD moduli of elasticity and rigidity, and SMOD at each axis.

Loading conditions may be specified using WEIGHT and ADD commands as needed. However, the resulting mass moments of inertia are important, as these quantities have a significant effect on the motion response. For this reason, if using WEIGHT to specify a lightship weight and centers, include the /GYRADIUS parameter to specify the gyradii about each axis. If the roll gyradius is not known, it may be entered as zero, and SeaKeeping will default to a roll gyradius of one-fourth the beam. Alternatively, if WEIGHT is used to specify a longitudinal weight distribution, the program will automatically compute the pitch, yaw, and roll gyradii (using default B/4 if roll gyradius is internally computed as zero).

Additional weights may be added using the ADD command; tank weights may be included by loading the desired tanks and these loads will be included in the loading condition passed to SeaKeeping. Even if tanks are slack, Seakeeping models these tanks as frozen in their equilibrium condition. This means that if true CG shifts are used when modeling tanks, Seakeeping will accommodate these shifts in the static sense, but Seakeeping ignores both free-surface corrections and dynamic sloshing effects.

It is advisable to include STATUS INERTIA in your seakeeping analysis run file to provide a convenient reference of the total inertia condition. Note that its summary includes the gyradii and mass moments of inertia about the center-of-gravity axes parallel to the ship coordinate system. When heel and trim are zero, this is equivalent to the Seakeeping axis orientation.

A seaway may be specified using the WAVE command, which offers three methods for wave input: a single sinusoidal wave, a range of waves at constant amplitude, or a wave energy spectrum. If an energy spectrum is used, Seakeaping will sample the spectrum using a constant variance method.

If motion results are desired at points other than the vessel center-of-gravity, their locations must first be defined as Critical Points using the CRTPT command so they can be listed in the SEAKEEPING /CRTPT parameter (irrespective of flooding status).

Seakeeping begins by showing basic information to the screen and any open report file, including the part\component name, speed, heading, and Froude number.

Second, the Critical Points table summarizes Center-of-Gravity along with any Critical Points specifed for the analysis, including number, description and position of points and position of points in the ship coordinate system.

Third, the Wave Components table lists the wave type, spectra type, number of wave components, and component variance. As the motions problem is solved for each wave component, its period, frequency, waterline-to-wavelength ratio, encounter frequency, spectral ordinant, and component wave amplitude are reported.

Fourth, the motion results for each mode are reported in the following order: Surge, Sway, Heave, Relative Heave (if specified), Roll, Pitch, and Yaw. Tables for each mode show CG and listed Critical Points with: (1) position amplitude and phase; (2) velocity amplitude and phase; (3) acceleration amplitude and phase; (4) RAO; and (5) acceleration response statistics.

Plots for these responses are also included in the report. Note that if a single wave or wave range was specified for the analysis, response statistics are not included in the report and any data files. Response statistics are also omitted if less than three wave samples are used. Plots are omitted if less than two wave components are used.

SEA /HULL:part[\component] parameter specifies the hull component to be used in the seakeeping analysis. If only a part name is included, its first component is used. If omitted, the first HULL component or (if absent) the first displacer component is used.

SEA /HEADing:degrees parameter specifies the wave heading (in degrees) with respect to the forward longitudinal ship axis; the default is 180 degrees for head seas.

SEA /SPEED:knots parameter specifies the forward speed of the ship in knots; the default is zero for a stationary vessel.

SEA /DATA:[FOrcing] [HYdros] [WAves] parameter outputs the specified data files containing raw forcing, hydrodynamic, and wave seakeeping data. If omitted, no data files will be created; if just /DATA is present, all data files will be created. Data is output in the current directory to files named FORCING.DAT, HYDROS.DAT, and WAVES.DAT.

SEA /SAMPles:n parameter specifies the number of wave component samples from a wave spectrum in the range 1 to 100; the default is 15. This parameter is ignored if WAVE (SPECTRA) is not defined or if it specified a wave period range. Note that spectra sampling is performed according to a constant variance method, so more sampling will occur around the spectrum peak.

SEA /RELative parameter specifies that relative vertical motions should be computed for the vessel CG and all critical points. This will add an additional section to the report file and any data files.

SEA /CRTPT:num1,...,numn parameter specifies a list of Critical Point numbers used for seakeeping (up to 25 points are supported).

SEA /BF:beamfactor parameter specifies the "beam factor" used to develop the 2D panels; the default is 8.0, meaning the maximum panel length is bs/8 where bs is the section waterline beam. The beam factor also implicitly sets minimum panel length as half the maximum panel length (or bs/16 by default).

SEA /LF:lenfactor parameter specifies the "length factor" used to refine the number and spacing of 2D sections; the default is 50.0, meaning the minimal longitudinal section spacing is 2% of the overall length.

New SeaKeeping Configuration Features

WAVE (SPEctra) amplitude, t1,...,tn defines a wave spectrum for seakeeping from an amplitude in current units for all wave periods in the specified range.

WAVE (SPEctra) DAta ["datafile"] defines a wave spectrum from an external data file (default=SPECTRA.CSV). This form is particularly useful if a unique spectrum is required, or statistical analysis has been performed on a specific locale to create a spectrum. Following a header line and a unit line ("F" or "M") comes the data lines, each containing a single comma-separated wave frequency and spectral ordinate pair.

WAVE (SPEctra) PM wspeed defines a Pierson-Moskowitz wave spectrum formulation from wind speed in knots.

WAVE (SPEctra) BR period, hsig [,brform] defines a Bretschneider wave spectrum formulation from characteristic period in seconds, significant wave height in current units, and optional form General (default), Narrowband, or Ittc1978.

WAVE (SPEctra) J1 wspeed, fetch defines a general JONSWAP wave spectrum formulation from wind speed in knots and fetch distance in current units.

WAVE (SPEctra) J2 period, hsig defines an ITIC 1984 JONSWAP wave spectrum from characteristic period in seconds and significant wave height.

The various SPECTRA forms define wave range or spectrum parameters necessary to perform a spectra-based seakeeping analysis. WAVE (SPECTRA) is essentially equivalent to WAVE OFF for all purposes besides seakeeping, so unlike other wave forms does not show active "WAVE" in the screen header.

WATER /V:viscosity optional parameter was added to specify the dynamic viscosity of the water environment in millipascal-seconds. If not specified, default viscosity is interpolated on specific gravity using 1.0 mPa-s for fresh water and 1.1 mPa-s for sea water.

SMOD /E:elasticity parameter was added to specify a default modulus of elasticity (Young's modulus) for use in deflection computations. Units are current weight units per square inch (or square centimeter with metric units) or megapascals with KN units. If not specified, 12946 long tons/inch^2 (2039 metric tons/cm^2 or 199948 megapascals) is used.

SMOD /G:rigidity parameter was added to specify a default modulus of rigidity (shear modulus). Units are the same as for /E. If not specified, 4866 long tons/inch^2 (766 metric tons/cm^2 or 75153 megapascals) is used.

SMOD (axis) optional parameter was added to specify a section modulus curve around the Centerline or Polar axis instead of the default transverse axis. Note Longitudinal Strength uses only the default SMOD curve information.

New GROUND Seafloor Features

GROUND [(part\component)] /FLOOR:"filename"|depth [/[L]POS:x,y] [/HEADing:angle] [/CLEARance:c] [/MAXPEN:ddm] [/NPoints:n] [/LINEAR] command was added to automatically issue ground points determined by location and penetration of candidate points on the specified displacer component relative to the seafloor (first deleting any existing ground points whose description is prefixed with "part\component-" and retaining any others).

Multiple GROUND /FLOOR commands may be issued for multiple components of interest. Because the seafloor ground point naming convention includes the component name in the prefix, ground points previously issued for different components will not be deleted.

When using a seafloor file, if the position and/or heading of the ship results in a portion of the geometry falling outside the extents of the floor data, ground points will only be issued for the portion of the geometry that falls within the X-Y domain of the floor data. In the case of constant depth, the floor is assumed to extend to infinity.

GROUND /FLOOR:"filename"|depth parameter specifies the filename containing seafloor data, or alternatively a constant depth relative to the water surface. The first line of the seafloor text file is an arbitrary title line. The second line starts with an optional "L" indicating longitude-latitude data, followed by required "F" for feet or "M" for meter units. Each subsequent data line defines a single point on the seafloor based on three numbers (separated by spaces or commas). The first number on each line is the horizontal (West to East) coordinate, the second is the vertical (South to North) coordinate, and the third is the associated sounding depth. Longitude and latitude data may be entered in decimal degrees or degree-minute-second format (e.g. -122d56'58.974"). To create a seafloor data file from NOAA's geology data: (1) go to; (2) click "create custom grid"; (3) choose a layer and map area; (4) choose "XYZ" output format; (5) download the data; (6) insert a title line and "LF" line at top using a text editor. Be sure to note the data model standard, which may have varying tolerances and tide-based reference locations for soundings.

GROUND /HEAD:angle parameter specifies the heading in degrees of the vessel's positive longitudinal axis counterclockwise from the positive vertical North seafloor axis (default=0).

GROUND /[L]POS:x,y parameter specifies the location of the vessel origin in the seafloor coordinate system (default=0,0). If /LPOS is used, locations are taken as degrees of longitude and latitude in either decimal degrees or degree-minute-second format.

GROUND /CLEAR:c parameter specifies the maximum clearance within which all issued ground points must fall. Clearance is defined as the vertical distance from the ground point to the nearest ground or the negative of the penetration. If not specified, the default may take one of two forms: (1) if a seafloor file is indicated, the default clearance will be set to the vessel's current origin depth; or (2) if a constant floor is specified, the default clearance will be set equal to the floor depth.

GROUND /MAXPEN:ddm parameter specifies the maximum penetration of any issued ground point (in the same as /PEN's ddm parameter). GROUND /LINEAR generates linear instead of quadratic ground reactions.

GROUND /NPOINTS:n parameter specifies maximum number of ground points to issue. If omitted, all candidate points found within the clearance are issued up to the maximum unused ground points available.

New HMMT Features

HMMT WIND and HMMT TURN added /ARMdraft:fraction parameter to calculate vertical lever arms around a draft-based height instead of the centroid of the underwater lateral plane. The specified fraction between 0 and 1 multiplies the draft line height used for the lever arm (so /ARM:1 uses the full draft height down to the keel for hydrofoil criteria). The draft is located at any mid perpendicular MP defined by the LBP command, else at any midpoint MS defined by the LBP or LWL commands, otherwise at the LCF. Note that /ARM:0.5 can be used for regulations that specify Draft/2 be used for heeling arms (which is more conservative but less realistic than the program's default lateral plane centroid method).

HMMT TURN improved precision slightly and supports /YESNEGBELOW parameter.

HMMT parameter /C:power increased maximum power from 2 to 3.

HMMT parameter /CS is now described properly in HMMT report notes.

SPECial HMLPA [ON] was added to enable calculation of lateral plane areas in the STATUS LPLANE report (along with system variables LPA1, LPA2, HCP2, and LPAARM) using shape factors and treating deducting displacer components the same as the HMMT command. Normally HMMT WIND displacer deductions reduce above-water area but have no effect on underwater area unless /NONEG or /YESNEGBELOW is present, so STATUS LPLANE shares this HMMT behavior in HMLPA mode (instead of ignoring shape factors and including displacer deductions). Note HMLPA mode does not try to match HMMT WIND /BAND behavior, which differs by using shape factors above-water only and ignoring all deductions (even for sails).

New LIMIT and Righting Arm (RA) Features

LIMIT ABSolute AREA was added to limit absolute area below the righting arm curve regardless of any heeling moment. Otherwise this limit behaves the same as LIMIT AREA, which pertains to residual area above any heeling arm curve.

LIMIT FLOODHT AT POINT limit report descriptions were improved to make clear the lowest flood/tight equilibrium height is being limited.

LIMIT FLOODHT AT POINTs limits the height for all Critical Points when none are specified.

LIMIT report description for Area limit is prefixed with "Residual" or "Res." when moments are present.

RA /LIM detection of initial equilibrium was improved, preventing unnecessary errors and allowing higher SOLVE MAXVCG results in certain unusual cases.

RA column header for "Area" now appears in the report as "Res. Area" when moments are present.

RA precision for LIMATTn limit values was increased from 5 to 6 decimal places.

New Maximum VCG (MAXVCG) Features

MAXVCG /SIZE:max[,min] parameter was added to scale the maximum VCG plot so the top is at least max and optionally the bottom is at most min. Assuming this range is large enough to include any expected max VCG value, this provides uniform scaling for easy comparison of a series of MAXVCG plots. If /SIZE:* is given, then sizes from the last MAXVCG plot are reused.

MAXVCG and SOLVE MAXVCG commands added /MXMACRO:name parameter to execute the named macro after every intermediate RA computation. This hook can be used for diagnostics, harvesting attained limit values, changing limits, etc.

New ADD and WEIGHT Features

ADD (n) dvar... /ACcess and GROUND (n) dvar... /ACcess syntax was added to access description and other data for the nth fixed weight or ground point. The description is loaded into the variable dvar (declared by the VARIABLE command), and any subsequent named variables are loaded with data according to the documented /ACCESS sequence. If n is past the last item, all variables are set empty.

ADD PREFIX [(pn)] pvar [,lvar] /ACcess syntax was added to access prefix category name and optional label for prefix number pm (default=1) by loading them into the named variables. If pn has not been assigned to a prefix, then all variables are set empty.

ADD REPORT with ADD PREFIX active now shows only weights matching the current prefix, like LOAD ST FIX does.

ADD command can now make incremental adjustments to the weight or CG of a distributed weight item (using an asterisk for the old value of the weight or any of the lcg, tcg, or vcg coordinates along with optional + or - values) without converting the distribution to a point weight.

WEIGHT REPORT /NOTab was added to omit tabular data, just including the plot.

WEIGHT REPORT /PLAN parameter was added as an optional replacement for /PROfile to show the vessel plan instead of the profile on plots.

New Frame Location Features

SET operator FRLoc "name" was added to return location of the specified frame name (or undefined if no such frame).

SET operator FRName n was added to return the nth frame name; the empty string if n is out of range or there are no frames.

READ file.FRA loads frame descriptions and locations from the given frame file, replacing any previous vessel frame information.

ENTER PM commands READ file.FRA and WRITE file.FRA import and export frame files composed of comma-separated description and location lines.

STATUS FREEBD added :FRame optional subparameter to display freeboards at all frame locations.

New Help Features

Help menu "PDF manual" now has hotlinked Bookmarks for each section.

Help menu added a "Training guide" option to read the GHS training book.

Help menu added a "Release notes" option to read about new features and changes in the current and previous major releases. The "Web help" submenu added a direct link to the "GHS support" reference center.

Wizard menu now supports listing a description of each wizard after its name (to appear over time as wizards get updated to include descriptions).

New Advanced Features (AF)

EXTEND HOPPER plot scale labels improved their color and spacing.

New Condition Graphics (CG) Features

DISPLAY STATUS supports extra-width output such as A3, Ledger, and landscaped Letter paper sizes, filling the full width of the legend box. Note appropriate lines per page (such as PRINT CONFIGURE /L:44 for landscaped Letter paper) must be set for best report quality.

DISPLAY STATUS views added optional :"title" subparameter to override the view's default title. For example, BODY @0:"Origin" shows "Origin" on top of this view instead of "Body @ 0".

DISPLAY STATUS views for BODY @loc := angles now allow more space between their header titles by using heel angle suffixes.

New Floodable Lengths (FL) Features

FL /PLAN parameter was added as an optional replacement for /PROfile to show the vessel plan instead of the profile on plots.

New GHS Integration Via COM (GHSCOM) Features

GHSCOM function GetVariableString increased its maximum string length from 256 to 10,000 characters.

New Load Editor with Windows (LEw) Features

LOAD (*) EDIT, LOAD (*) STATUS, and DISPLAY (*) STATUS vessel views exclude tanks set by the PERM -0 command, thereby omitting inactive superimposed tank configurations. Other than this visual tank exclusion, PERM -0 works the same as PERM 0, effectively using minimum permeability 0.0001.

LOAD EDIT /BUTTON template .macro fields may now be followed by a parameter list just like regular TEMPLATE execute button fields.

LOAD STATUS /NOEMPTY parameter was added to omit empty tanks.

New Longitudinal Strength (LS) Features

LS /COL:Shear|Moment parameter can be used with /NOTable to show the summary with just Shear or Moment information.

LS /COLumn: [Weight] [Buoyancy] [Shear] [Moment] [Section] parameter was added to show only the selected middle table columns (not with /PER or /LIM present). Note options for left location columns can be selected by the /FRAME parameter and right columns by the /NODEFLECT and /NOSTRESS parameters.

LS /LIM now excludes all shear information from table columns, summary, and plot columns by default when no LSLIMIT SHEAR limits have been defined (similar to how LS /PER behaves without shear limits). Note that including the /COL: Shear Moment parameter restores the old shear-showing behavior.

LS /LIM now supports /COLumn: [Shear] [Moment] parameter to show table columns for just Shear, just Moment, or both by default.

LS /PLAN parameter was added as an optional replacement for /PROfile to show the vessel plan instead of the profile on plots. This /PLAN option was also added for the TORQUE command.

LS summary now includes Largest Deflection location.

LS tolerance was increased for avoiding weight-center discrepancy errors while MB module interactions are active.

TANK (tanklist) SHEARCF added optional /DELTA parameter to use shear correction delta magnitudes in current weight units (not factors).

TANK (tanklist) SHEARCF: correctfwd, correctaft now supports two shear correction factors (from 0 to 1), with the first applying to the forward half and the second to the aft half of each listed tank (use 0 to correct only the other half). If only one correction is given, it applies to the entire tank.

New Model Converter (MC) Features

MC FIXUP /NOCRIT parameter was added to omit critical points (which were causing problems with some Rhino imports).

New Multi-Body (MB) Features

MB module suppresses waterplane information from the STATUS GHS report and traps an error for STATUS WPL, in order to avoid showing misleading GMT and related values that assume constant displacement, which does not hold under multi-body conditions.

New Part Maker (PM) and Geometry File Features

ENTER PM command ENRICH (part[\component]) maxgap was added to reduce distances between station points in the specified part or component to maxgap or less by inserting new points.

ENTER PM command SHIFT added optional SHAPES keyword that causes the shift to take place in the shape data instead of the component vectors.

ENTER PM command SHIFT and statements VECTOR and CYLINDER support an optional final ,LST parameter to interpret the preceding vector coordinates as Length-Swing-Topping values. The swing azimuth angle is zero going aft and 90 degrees going starboard. The topping elevation is zero for horizontal and 90 degrees for vertical. For the CYLINDER statement, the second end point is defined by the LST vector from the first end point.

PMX statement ROTATE is now effective for CYLINDER, ELBOW, and SPHERE shapes as well as edges (either explicitly defined by EDGE statements or implicitly derived from TOP, BOTTOM, etc. boxes).

PMX statement ROTATE added optional fourth parameter to specify the pivot point height at centerline for rotations in heel. An optional NODOUBLE keyword was added to prevent shapes copied from centerline components from being made to cover both sides. The ROTATE statement is now effective in a CREATE command where the shape is referenced from another component without affecting the original shape.

PMX statement ROTATE trim, heel, azimuth now rotates any shape by heel angle; note rotation by trim and azimuth is only effective for EDGE-created shapes.

PMX statement ROTATE trim, heel, azimuth now rotates edges around any part reference point assigned by the REFERENCE statement, or the origin if none. Note ROTATE does not allow non-zero heel or azimuth rotation of centerline components to avoid "butterfly" effects with port and starboard sides rotated in opposite directions.

ENTER PM command WRITE (also in Section Editor) no longer permits overwriting read-only Geometry Files. Note the main program likewise prevents overwriting read-only files without first deleting them using the ERASE command.

New Tank Soundings (TS) Features

TS /CAPacity:f1[,f2] parameter was added to report Capacity in the table header using the specified load fractions (default 100%,95% to show full capacity followed by secondary 95% capacity for contents lighter than Fresh Water).

New PRINT and REPORT Features

MESSAGE PLOTSTART /SIZE:max[,min] parameter was added to scale the plot so the top is at least max and optionally the bottom is at most min, providing uniform scaling for easy comparison of a series of custom plots. If /SIZE:* is given, then sizes from the last custom plot are reused.

MESSAGE PLOTSTART skips points for non-numeric data values like * or "" instead of inserting curve gaps, thereby allowing points to be added for selected curves at given X values without affecting the remaining curves.

MESSAGE PLOTSTYLE P doubles the area of isolated plot points for better visibility.

COMMENT now centers text in fancy boxed reports using ME REPFONT CENTER.

PRINT was improved to smooth kinks from plot curves.

New READ (DATA) Features

READ (DATA) file /REPLace:[old,new],... parameter was added to replace a series of old text with new text (specified either as a quoted string or ASCII value character) whenever found in read data. This can be done to change or delete problematic characters (like braces used for variable replacement), or to identify meaningful control characters that otherwise would be filtered out.

READ [/SKIP | /LINE | /CHAR[:n]] without any variable name is now supported in READ DATA mode to move the file pointer as if a variable were present without saving any data.

READ variable /CHAR :Keep [:n] subparameter was added in READ DATA mode to keep the next n characters (default n=1) available for future reading.

READ variable /CHAR:Keep:n supports n<0 to read the rightmost -n characters from the end of the current line, keeping data available for future reading.

READ variable /CHAR[:n] parameter was added in READ DATA mode to read the next n characters (default n=1) into the specified variable.

READ variable /LINE safely excludes any portably-encoded footer files put into a PPF file using COPY name.PF name.PPF /CONVERT, instead saving the encoded footer text or logo file to the current directory (first renaming the saved file if necessary to avoid overwriting existing files). Note READ /LINE ends embedded filenames with ":" to distinguish them from external files.

READ variable /LINE safely excludes any portably-encoded image put into a report file using the NOTE {%IMAGE("file:")%} command, instead saving the encoded BMP or JPG file to the current directory.

New Dialog Box (TEMPLATE) Features

TEMPLATE variable edit input fields now supports editing text files by specifying @"filespec" in place of a variable name. The VARIable keyword is required to distinguish this from static image fields. When used with the /Height:rows parameter, text is horizontally and vertically scrolled within the edit field window, allowing new line insertion by pressing the Enter key; otherwise only the first line of the file is read and written.

TEMPLATE variable edit input field /Height:rows parameter was added to show a multiline edit control with space for the specified rows of wordwrapped variable text.

TEMPLATE execute, exit, file, and directory push button fields support the /Height:rows parameter to specify the number of text rows for the button height (which may be a fractional number).

TEMPLATE list input fields now support the /Width:n parameter to format the list control to fit n average-size characters instead of the widest list label.

TEMPLATE field /SIZE:MAX subparameter was added to set the font size so the dialog width matches the main window or (if minimized) the screen, along with /SIZE:n to set the dialog width to n pixels (for n>=50).

TEMPLATE field /TAB:n parameter was added for any button or input field so pressing the Tab key moves focus to the nth button or input field following (or preceding if n<0; n=0 doesn't move).

TEMPLATE field /Tip:"text" information no longer disappears after 5 seconds, instead staying for 32 seconds or until the mouse cursor moves off the control.

TEMPLATE field /Vgap:n was added to specify the vertical gap below the current field (default=5 unless set by /GAP).

TEMPLATE fields FILE and DIR using the /SHORT parameter now provide horizontal scrolling for filenames exceeding the dialog box width.

New System Variables and Other VARIABLE Features

SUBSLIST system variable was added to return a space-separated list of all available substance descriptions defined by the CONTENTS command (excluding special names like "OIL", "cargo", and "unknown"). Each description is safely surrounded by quotes, so {SUBSLIST} can be used directly for a TEMPLATE drop-down variable list field or sent through the SET command ITEM operator to pick out each substance description by item index.

LINENUM system variable was sometimes exceeding the maximum lines per page after returning from an external program like Condition Graphics. The sum of LINENUM plus LINELEFT can now be used reliably to calculate page length.

======= Miscellaneous New Features =======

COMP /PLAN parameter was added as an optional replacement for /PROfile to show the vessel plan instead of the profile on /SECTION and /SKIN plots.

COPY /FROMAnsi, /FROMUnicode, /TOAnsi, and /TOUnicode parameters improved conversions when original source was Unicode, now supporting combinations (for example, /FROMA /TOU assumes ANSI source and converts to UTF-8).

CRTPT command maximum number of critical points was increased from 250 to 400.

ERASE command is no longer restricted to 80-character file specifications.

GLM now puts any command error messages into the report file so premature termination in such cases won't be a mystery.

PERM /VOlume:unit parameter was added to report capacities in GA (gallons), IM (imperial gallons), CY (cubic yards), LI (liters), and BB (barrels) units, along with default CF (cubic feet) and CM (cubic meters).

SE provides alternative function keys #[A|C|S]n for [Alt|Ctrl|Shift] Fn using n from 0 to 9 (0=F10) to help with missing function keys on tablet screen keyboards.

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

ADD "desc" "ref*" was not combining any /LPA assignments from referenced weights into the replacement item.

ADD REPORT was failing when ADD PREFIX had turned on automatic weight description prefixing.

COMP /EFF and /PERM parameters were not always correctly updating the maximum capacity of the containing part.

COMP /SKIN plot printing was sometimes trapping an error for components containing stations split across the centerline into separate lobes.

COPY /CODE avoids trapping errors for WEIGHT lines longer than 65,535 chars by inserting line breaks as needed after commas and semicolons.

COPY dir1 dir2 no longer risks getting into a recursive loop if the second directory is a subdirectory of the first directory, instead trapping an error.

DAMSTAB without the /SIDE parameter was not always determining the predominant side of damage correctly for DIVISIONs not using the /WING parameter (since 10.68G only).

DISPLAY PRINT was not including any SUBTITLE lines.

DISPLAY STATUS /SYNC was delaying up to 5 seconds when immediately followed by DISPLAY STATUS to a report file.

DISPLAY STATUS BODY @ loc :=ANGLES no longer traps an "invalid location" run-time error if the number of angles exceeded 30 total view boxes, instead truncating the angle list.

DISPLAY STATUS PROFILE:WITHSAILS was sometimes reducing the vessel size to make space for unset sails.

DISPLAY STATUS body view with /YESEMPTY parameter was sometimes failing to show loaded tanks that were obscured by empty tanks occupying the same space.

DISPLAY STATUS for WDF-type tanks was not always showing the correct load depth (since 15.20B only).

DISPLAY STATUS header was not always showing correct drafts when deflection or waves were present.

DISPLAY STATUS profile views were sometimes incorrectly coloring above discontinous internal waterlines.

DISPLAY STATUS profile views were sometimes incorrectly coloring above extremely short internal waterlines.

DISPLAY command VISUALIZE was not correctly rendering any arc points.

ENTER PM command CREATE statement LOCUS now traps "Too many points on station" instead of a run-time error if given more than 500 locus points.

ENTER PM command MODIFY was not supporting SHEARCF statement.

ENTER PM command RENDER no longer traps an "invalid location" run-time error when shapes like CYLINDERs extend entirely on the negative side of centerline components so get chopped away.

ENTER PM command SHELL was sometimes corrupting shapes containg arc points.

ENTER PM command SHELL was sometimes creating pairs of adjoining DK code points.

ENTER PM prevented a rare "invalid location" run-time error risk.

ENTER PM was hanging on Windows 10 tablets when using the on-screen touch keyboard.

FIXUP /TANKORDER:file was trapping "All tanks must be present to reorder" needlessly.

FIXUP and MC FIXUP were not preserving any GF variables set by Part Maker.

FIXUP was sometimes matching the first instead of the last component having the same name when multiple parts share the same component.

GROUP name=tanklist /CONT:"contents" no longer creates an empty group if no tanks in the list have the indicated contents name; this empty group was invisible except when written to a SAVE file.

GROUP reports for multiple groups were clearing all but the last group off the Display area of SCREEN COMMAND split-screens in default SCROLL ON mode.

HEEL -{variable} and similar commands no longer trap an error if the variable has a negative value.

HMMT REPORT was including a spurious "OTHER" line whenever HMMT WIND or HMMT TURN was in effect along with a cosine-based parameter like /C1. This "OTHER" line now correctly only appears to report the results of pure cosine-size or cosine-based heeling moment functions.

LOAD EDIT /HMMT:contents "Heeling Moment Input" tank heel angle changes were sometimes being ignored when solving for equilibrium.

LOAD FLOWC was sometimes ineffective following RA /NOPRINT or RA /NOTAB.

LOAD STATUS /EVAL:FRA was misformatting output with a report file open.

LOAD STATUS was not displaying weight totals to the screen.

LS /LIM was sometimes plotting bending moment limit curves too close to upper and lower grid lines.

LS no longer omits any plot curve lines when more than 6 total.

LS plot curves for Stress and Deflection were misformatted if the /CURVE parameter excluded the Moment curve (since 14.54 only).

LS plot legends abbreviate "Bending" to "Bend" when necessary to avoid collision with adjoining columns.

LS plots were sometimes not showing the local shear impact of point weights.

LS was sometimes plotting Corrected Shear wrongly near tank ends.

LS was sometimes reporting apparently successful deflection results despite underlying weight-buoyancy discrepancies due to very low moments of inertia set by the SMOD command, but now LS either finds valid deflection solutions or traps "Deflection too great due to insufficient SMOD".

LS was trapping "PSI ERROR - WEIGHT DISCREPANCY" in rare cases when a flooded tank had been assigned forward and aft points of attachment.

Load Editor current row and field were unnecessarily disrupted by macro execution containing READ /APPEND or DELETE commands.

Load Editor in Weights mode was trapping an "integer overflow" run-time error in rare cases with distributed weight items composed of multiple pieces having the same VCG but differing TCG (since 15.46B only).

Load Editor was incorrectly setting LB/GAL density units when pressing F6 (or right-clicking LB/CF) with the cursor in the Contents column for a general cargo tank when not in /BULK mode (since 7.42E only).

Load Editor was not allowing repeated F11 hotkey presses to toggle back and forth between intact and flooded without moving the cursor field.

MESSAGE ... \c was incorrectly displaying a second line beginning with the specified character (since 15.22 only).

MESSAGE PLOTSTART custom plots were sometimes clipping off the top or bottom of curves that reach their maximum or minimum between plot data points.

MESSAGE PLOTSTART data rows beginning with a quote mark (") were causing the report to trap "Unknown keyword" when printed (since 15.28B only).

MESSAGE REPFONT RIGHT was mispositioning boxes in fancy boxed reports.

OUTFLOW was incorrectly dividing Breadth by an extra metric conversion factor when calculating Reg 12A.6 minimum bottom shell plating distance.

PRINT path\file.PF and COPY path\file.PF /CONVERT and opening file.PF from the operating system were omitting any non-embedded {%IMAGE(...)%} output.

RA /LIM evaluation of LIMIT ANGLE to FLD was sometimes passing with zero attained value when a tight point was submerged at equilibrium with no true flood points present and zero limit value.

RA /LIM evaluation of LIMIT FLOODHT AT POINT was sometimes producing spurious UNDEF results (since 15.38 only).

RA /LIM evaluation of LIMIT FLOODHT was sometime passing with zero attained value when downflooded at equilbrium.

RA /LIM no longer ever treats tight points as flood points when no true flood points exist, instead giving a LARGE result for the FLD angle when tight points exist but are not immersed at EQU, restoring the usual behavior prior to version 15.10.

RA /LIM risked hanging if any relative limit angle value extended beyond 180 degrees when added to the starting heel angle (since 14.34A only).

RA /LIM using LIM ANG FROM EQU TO FLD OR TFLD was sometimes missing lowest Tight Point submersion if its location coincided with an existing heel angle in the table, so did not need to be interpolated and inserted.

RA /LIM was failing with UNDEF for limits where angle RA0 or RA00 was not found within 180 degrees of EQU after reaching the end of the angle list; now such cases treat RA0 as LARGE so long as any angle limits involving RA0 are sure to pass their minimum values.

RA /LIM was including superfluous final angles when EQU0 occurred before the start of the angle list with flood points defined (since 15.38 only).

RA /LIM was incorrectly including EQU0 with the angles prior to EQU0 that get ignored for downflooding (since 15.42 only).

RA /LIM was not consistently reporting negative angle limit margins when weathertight downflooding occurs initially at equilibrium followed by later immersion of normal downflooding points.

RA /LIM was sometimes failing with undefined Deck Immersion limit angle when the first two listed heel angles straddle upright and the deck immerses between upright and the second heel angle.

RA /LIM was sometimes stopping before RA0 and reporting spurious UNDEF limit results in cases with negative heeling arm at high angles.

RA with flood points defined no longer traps "EQU0 is out of range" in cases of undefined equilibrium disregarding external heeling, ignoring angles for downflooding prior to upright instead of undefined EQU0 (since 15.38 only).

RUN command was sometimes ejecting blank pages before plots.

SAVE and WRITE commands were not always saving the precise deflection curve when computed by the LS command with section moments of inertia present.

SE command Name no longer traps "Illegal name" for existing part names if given without a trailing backslash; note however that the final backslash would be needed to avoid selecting any shape having the same name as the part. DISPLAY command Name was not warning when given non-existent names, but now traps "Illegal name".

SHELL OPEN document.ext was not working for document names containing spaces.

Solving was trapping spurious bad slope errors for long skinny tanks such as pipes in rare cases.

Solving was trapping spurious negative waterplane errors for long skinny tanks such as pipes in rare cases.

TANK selection using /ENDS, /IN, /OUT, /BOTTOM, and /TOP parameters was sometimes failing to include portside tanks whose points all straddle the selected volume without any being inside of it.

TEMPLATE dialog boxes fixed a rare risk of hanging when multiple nested dialogs are closed simultaneously.

TEMPLATE execution was sometimes doubling underscore characters retrieved from variables in braces.

TFSMMTL system variable was differing from true longitudinal free surface moment shown by the TC command at high trims.

TMMT /C1 was undocumented and ineffective but caused future TMMT tm0, tm90 to fail, so now traps bad parameter.

TMMT REPORT and RA notes were not always reporting the correct trimming moment direction.

WAIT NORMAL mode for default split-screen scrolling was failing to wait for user confirmation before clearing the Display area when a report command (such as RA, STATUS, etc.) is started.

WATER spgr1, spgr2 was ignoring the second specific gravity for WDF-type tanks unless preceded by the undocumented /WDF slash parameter.

Previous Version Update Features

Copyright (C) 2017 Creative Systems, Inc.