Probabilistic Specification of Metocean Criteria:
Generating and Searching N-Year Contours for Extreme Response Estimation
The HTCNTR, IFORM, and SURFIT Routines (Report RMS-32)
The source code file contains, in zipped format, files associated with the release of the SURFIT routine. This is part of a suite of programs (HTCNTR, IFORM, SURFIT) that constructs and searches N-year contours of (Hs, Tp) seastate characteristics at different locations.
SURFIT is the most specialized of these programs. It does the following:
(1) Based on input response moments over an (Hs, Tp) grid, it fits spline functions (response surfaces) to each moment
(2) It uses a moment-based Hermite model of non-Gaussian random vibration to estimate the extreme response limit state (i.e. the g-function, or grenz.f, to be used in the inverse FORM analysis).
(3) It performs Inverse FORM analysis, by constructing and searching an N-year contour of Hs, Tp, and extreme response Xmax.
Relations between routines HTCNTR, IFORM, and SURFIT:
* The IFORM routine performs the same inverse FORM search in (3); the user must supply grenz.f
* The routine HTCNTR simply generates (Hs,Tp) contours; the user must then search this for the critical response
* The same library of (Hs,Tp) distributions -- stored in hstp.f -- is used by all 3 programs
Method: Inverse FORM.
Documentation: RMS Report 32
Subdirectories:
src contains all FORTRAN source code *.f
example contains output files from extreme crest example (see Documentation).
This extreme crest example parallels that used in the IFORM example.
To Compile: Compile and link all *.f (FORTRAN) files in subdirectory src, create executable file surfit.x
Usage: surfit.x < crest.in > crest.out
This will run the example extreme crest problem.
The input files crest.in and crest.grd should be taken from the examples directory.
Output will be stored in crest.out, crest.log, and the summary file surfit.sum.
These files should compare (within numerical noise) to the results in the example directory.
Status: Surfit has been recompiled on a Mac using the public domain compiler GNU FORTRAN (see surfit.cmp and surfit.x in src). This has required several minor changes in the source code:
* In surfit.f, the calls to hypot( ) had to be altered. (This same fix was required in tn3.f of IFORM)
* In surf.f, there were minor changes to the format statements 1010, 1020, and 1040
The gross results, as shown in surfit.sum, appear consistent with those from the original distributed version. It should be noted, though, that some of the "sub-optimal" search results (i.e., searches beginning at non-critical initial starting points) were deemed non-convergent in the new implementation. This is not expected to be a critical problem. It is, however, the only example among the RMS routines where there is any evidence that the new version may sometimes produce different results. Hence, SURFIT may be the most compiler-dependent routine among the RMS collection.
Steve Winterstein
2011