Description of compile-time switches to defgb (25 Apr 96) (for versions 2.4 and later 6 Jun 96) defgb accepts a number of compile-time switches. Most of them control what functions defgb will perform. One of them, METHOD_NAME, specifies a string that will appear in diagnostic messages. See defgb documentation (currently in the code) for more information. Several variants of defgb are "well-known". Instead of specifying the switches that go with each variant, you can specify a switch, METHOD, that selects all the switches that go with a particular variant, including its METHOD_NAME. Note that specifying METHOD is just shorthand; you can still set any switch to any value. Don't specify METHOD if the variant being generated is not "known"-defgb will not compile. The known variants are DEFGB, DEFGB_URL, DEFMET, and DEFGB_NOHEADER. The switches with their default values are. For descriptions, see the code. METHOD_NAME "defgb (by default)" (METHOD unspecified) "defgb" (METHOD=DEFGB) "defmet" (METHOD=DEFMET) "defgb_url" (METHOD=DEFGB_URL) "defgb_noheader" (METHOD=DEFGB_NOHEADER) MAXLEVELS 10 TOKEN 40 (METHOD=DEFGB_URL 120) NVAR 250 MAXCOMMENTLINE 80 COMMENTSIZE 2430 MAXREC 1257 DISPLAY_WIDTH 80 SEPARATOR blank, tab, comma, newline, carriage return (METHOD=DEFGB_URL tab, newline) (If using EXEC capability, and if commands have parameters, SEPARATOR must NOT include blank) SIGNIFICANT_CONSECUTIVE_SEPARATORS FALSE (Relevant to free field) SIGNIFICANT_EMBEDDED_SEPARATORS TRUE (Relevant to fixed field) DATA_FIELD_TRIM TRUE (Relevant to fixed field) PROCESS_NONLEVEL0_VARLIST TRUE (METHOD=DEFGB_NOHEADER FALSE) EXEC TRUE (Will not compile if EXEC=FALSE and METHOD=DEFGB_URL) DATAFIELDOPTS_OPT 0 GMT_OPT 0 LATLON_OPT 0 REMOVAL_OPT 0 TRANS_OPT 0 WIDTH_OPT 0 ERR_PREFIX "*** Error" (Note: Former switch NEGATE_LON has been superseded in functionality by the latlonparams optional file. See optional file documentation for more info) Example: Suppose you get a set of data that you want to use with method defgb_noheader, but there are 50 lines of comments instead of 30. You might use the following compilation switches: -DMETHOD=DEFGB_NOHEADER -DCOMMENTSIZE=4050 -DMETHOD_NAME="defgb_noheader_50_comments" You could do the same thing without referring to defgb_noheader at all -DPROCESS_NONLEVEL0_VARLIST=FALSE -DCOMMENTSIZE=4050 -DMETHOD_NAME="my_method" There are also several debugging switches to trace defgb execution. All can be set at runtime by use of the diagnostics optional file (see optional file documentation for more information). Some may be set at compile time for 2 purposes. One is to define default diagnostic switches so they need not be specified at runtime. The other is to define the switches in effect before the diagnostics optional file is read. DEFAULT_TRACE_LEVEL 0 (See "trace level" in opt file documentation) DEFAULT_ERROR_LEVEL 60 ( "error level" ) DEFAULT_DEBUG_SINK "/dev/stderr" ( "debug sink" ) DEFAULT_ERROR_SINK "/dev/stdout" ( "error sink" ) DEFAULT_MAXSCRIPTDIAGS 5 ( "maxscriptdiags" ) DEFAULT_INSERTED_MSGS TRUE ( "inserted msgs" ) DEFAULT_INSERTED_MSG_TAG TRUE ( "inserted msg tag" ) DEFAULT_COMMENT_SOURCE_TAG TRUE ( "comment source tag" ) For compatibility with def, the DEBUG and DEBUG0 switches may be defined. If DEBUG is defined, it is the equivalent of specifying a DEFAULT_TRACE_LEVEL of 40. If DEBUG0 is defined, it is the equivalent of setting the iovalstr and iovalreal frequency specifiers to 1 at runtime.