Error Messages

TTBOX routines cast a number of error messages when they feel uncomfortable. Most of them should be self-explanatory, but here are some additional comments. Some of the errors should never occur. But if they do, please tell me (and please tell me how to reproduce)

The large number of errors listed here does not mean that TTBOX is full of errors but that I tried to catch every possible exception or at least give meaningful information to the user.

TTBOX error messages always start with the name of the complaining routine. Messages are listed alphabetically here, which means they are at first ordered alphabetically by routine name.

Some messages quote the character string or number which is responsible for the error. These quotations are given in angle brackets < > here.

MKANALYTICTIMES: cannot handle <phase>
MKANALYTICTIMES handles only a few phases at predefined epicentral distances. Allowed phases and assigned distances are specified in the help lines.
MKANALYZEMODEL: 3 input arguments required!
MKANALYZEMODEL requires at least 3 input arguments, a 4th one is optional.
MKANGLE2RAYP: phase names cannot start with <starttype>
All phase names begin with 'P', 'S', 'p', 's'. Names beginning with other characters are illegal. (Check for typos!)
MKCLR2MODEL: unknown sampling mode <mode>
The sampling modes recognized by MKCLR2MODEL are listed in the help lines. (Check for typos!)
MKCOLOR2BW: tag keyword <keyword> not recognized
MKCOLOR2BW changes color and line style of graphics objects identified by certain keywords and modifiers, which are stored in the object's tag-property. If this property contains values other than those used by TTBOX, this error occurs.
MKCOLOR2BW: tag modifier <modifier> not recognized
MKCOLOR2BW changes color and line style of graphics objects identified by certain keywords and modifiers, which are stored in the object's tag-property. If this property contains values other than those used by TTBOX, this error occurs.
MKFINDJUMP: lengths of X and Y have to be equal!
You should never see this message. MKFINDJUMP is used by MKFINDP to analyze epicentral distance as function of take off angle and should always use equally long X and Y. If not, you are in serious trouble (sorry, no idea what may have happened).
MKFALSEPOSITION: root slipped out of bracket!
I hope that you will never see this message. The routine MKFALSEPOSITION searches the minimum of a function using the false position method as described by Press et al. (1992). This method searches a mimimum by narrowing the brackets, but runs havoc if the brackets do not contain a minimum. The routine tries hard to make sure that this never occurs, but if it does, there is nothing you can do...
MKFINDEXTREMEDISTS: insufficient information!
Another error that should never occur - and again, there is nothing you can do if it does. This is in a part of the program wheere it tires to determine if the shooting function Δ(&alpha) has a local extremum between two function samples, and sometimes, two samples (and the gradients there) do not give sufficient information. Usually, the program then makes some assumption and continue to run.
MKFINDEXTREMEDISTS: unexpected gradient sign (#1)!
I'm very confident that this cannot occur - the gradiens sign is -1, 0, or +1, and this error occurs in the unlikely case that sign() returns someting else (the sign of NaN is NaN, but I have never seen this happening in all my tests). But if this happens, you're lost.
MKFINDEXTREMEDISTS: unexpected gradient sign (#2)!
I'm very confident that this cannot occur - the gradiens sign is -1, 0, or +1, and this error occurs in the unlikely case that sign() returns someting else (the sign of NaN is NaN, but I have never seen this happening in all my tests). But if this happens, you're lost.
MKFINDEXTREMEDISTS: unexpected SEARCHWHAT: <searchwhat>
The searchwhat parameter is set internally, you have no influence on its value. If it has an unexpected value, something's wrong with MatLab.
MKFINDEXTREMEDISTS: unexpected SEARCHWHAT value.
The searchwhat parameter is set internally, you have no influence on its value. If it has an unexpected value, something's wrong with MatLab.
MKFINDZEROS: illegal number of input parameters!
MKFINDZEROS can accept different numbers of input parameters. See help lines for details.
MKFUMBLEP: unexpected number of NaN solutions.
There's a list of two values, and one or the both of them might be NaN. The "unexpected number" error means that there are more than two elements in the list and that more than two of them are zero. I have never seen this so occur and have no idea how it could happen - this error message is to have a well-defined crash just in case...
MKFUMBLEP: unknown search direction <direction>
The search direction may be "up", "down" or "both" - if this error occurs, something else has been entered in the calling routine.
MKINTERPMODEL: unknown option <option>
MKINTERPMODEL knows several different types of interpolation, which are described in the routine's help lines. You probably entered a non-existing type. (Check for typos!)
MKMAKECLR: unknown result type <result type>
MKMAKECLR can produce different types of output, which are described in the routine's help lines. You probably asked for a non-existing type. (Check for typos!)
MKND2CLR: unknown mode <mode>
This routine currently has only one mode: "constant". If this error occurs, you shoul check your input for typos.
MKPARM2CLR: unknown keyword <keyword>
You have used an illegal keyword in a CLR file. (Check for typos!)
MKPARM2CLR: unknown modifier <modifier>
You have used an illegal modifier in a CLR file. (Check for typos!)
MKPARMCONSOLID: keyword <keyword> requires two parameters
A lower and an upper boundary value are expected.
MKPARMCONSOLID: modifier <modifier> illegal for keyword
Each Keyword has a number of allowed modifiers, which are given in the CLR format description. Check your Modifier for typos!
MKPARMCONSOLID: modifier required for keyword <keyword>
The keyword needs a modifier which defines how to interpret the parameters.
MKPARMCONSOLID: no modifier allowed for keyword <keyword>
Modifiers are not allowed here.
MKPARMCONSOLID: no parameter allowed for modifier <modifier>
This was the "end" modifier of the "layer" keyword, wasn't it? The end is simply the end and has no modifications. If it was not the "end", it probably was the "usertag". The "usertag" keyword allows arbitrary strings, but these should not begin with exclamation marks.
MKPARMCONSOLID: unknown keyword <keyword>
The CLR file contains an unrecognized keyword. Check for typos!
MKPHASECATALOG: unrecognized phase list type <phasetype>
MKPHASECATALOG can return several standard lists of phase names, which are described in the routine's help lines. When you get this message, you have demanded a list type which does not exist. (Check for typos!)
MKPLOTCLR: illegal number of input args!
MKPLOTCLR accepts either 2 or 3 input arguments.
MKPLOTCLR: unknwon quantity <quantity name>
MKPLOTCLR plots one physical property at once, depending on a keyword given upon call. The keywords are described in the routine's help lines. You have probably chosen one that does not exist. (Check for typos!)
MKPOLARFRAME: illegal number of input parameters!
MKPOLARFRAME knows three different calling sequences with 0, 2, or 6 input parameters. Everything else is an error.
MKRADIUS2DEPTH: No planetary radius defined!
A CLR file defines layer or discontinuity locations by radius coordinates, but the planet's radius is undefined, making it impossible to convert these radii into depths.
MKRAYDEPTHINV: unexpected value of IDENT
A given depth value may occur in contain 0, 1, or 2 adjacent samples with the same depth (2 is for discontinuities). Larger numbers of identical depths are not allowed and cause this error. Check your model's depth sample list for identical depth entries, there are probably three or more samples with the same depths. Reduce that number to at most 2.
MKRAYDIAGRAM: type <type> unknown.
MKRAYDIAGRAM plots P and S wave segments of rays in different ways. The type string defines the wave type of each ray element and may therefore not contain characters other than 'P' and 'S'. You should never see this message, because ray type strings are produced by MKX4P automatically.
MKRAYDIAGRAM: use 3, 4, 5, 6, or 7 input parameters!
MKRAYDIAGRAM knows several different calling sequences which are described in it's help lines. You have used an illegal number of input parameters.
MKRAYFAN: illegal number of input arguments!
MKRAYFAN knows several different calling sequences which are described in it's help lines and in the tutorial. You have used an illegal number of input parameters.
MKRAYP2ANGLE: phase names cannot start with <starttype>
All phase names begin with 'P', 'S', 'p', 's'. Names beginning with other characters are illegal. (Check for typos!)
MKREADCLR: <msg>
MKREADCLEAR couldn't open the desired CLR file. The message <msg> is what fopen returned. There is probably a typo in your path or file name, or you don't have the permission to read/write. Consult the MatLab Documentation for further help.
MKREADND: File <path> does not exist!
The desired .nd file doesn't exist. Check your path and file name for typos.
MKREADND: Please specify path to .nd file!
You tried to run MKREADND without specifying the file you want to read.
MKSAMPLECLR: illegal number of input arguments
MKSAMPLECLR knows several different calling sequences which are described in it's help lines. You have used an illegal number of input parameters.
MKSAMPLECLR: unknown mode <mode>
MKSAMPLECLR knows several different modes of operation which are described in the help lines. You have chose one that does not exist. Check for typos.
MKSHOOTRAY: unknown function minimizer <minimizer>:
In MKSHOOTRAY (the replacement for MKFINDP) I tested several differnt function minimizing methods. All of them are still implemented, but the choice is hard-wired in MKSHOOTRAY. Therefore you will never see this error, except if MatLab's variable management is damaged.
MKSMARTTAKEOFF: complex take off generated for CMB touch
This means that it is not possible to send rays down to the core mantle boundary at an angle as needed for Pdiff. Usually, the model contains extreme low velocity zones that do not allow to send rays down there at all.
MKSMARTTAKEOFF: complex take off generated for ICB touch
This means that it is not possible to send rays down to the inner core boundary at an angle that makes PKP touch the ICB. Usually, the model contains extreme low velocity zones that do not allow to send rays down there at all.
MKSPLITTOKENLIST: Exclamation mark missing at begin of line <linenumber> of file
All lines in CLR files are either comments or keyword lines (or empty), and keywords have to be preceded by an exclamation mark. You may have forgotten to set the "!", or you may have forgotten to set a comment mark (see the description of CLR files!)
MKSYNOPSIS: illegal number of input arguments!
MKSYNOPSIS knows several different calling sequences which are described in it's help lines. You have used an illegal number of input parameters.
MKTIM4P: cannot handle phase <phase>. Abort.
Currently, MKTIM4P contains extra code for any phase that it can handle, so the set of phases that can be evaluated is limited. You have chosen one for which no code exists. (ask MKPHASECATALOG to see which phases are possible)
MKTIM4P: Depth phases do not exist for surface foci!
Depth phases are computed only if the source depth is larger than zero. (May be the first letter in your phase name should be uppercase?)
MKTIM4P: illegal number of input arguments!
MKTIM4P knows several different calling sequences which are described in the help lines, but the one you have tried is not allowed. (Check for Typos!)
MKTIM4P: unknown anglemode <anglemode>
MKTIM4P knowns several different modes of operation which are described in the help lines. You have chose one that does not exist. Check for typos.
MKTOUCHDIS: illegal number of input arguments!
MKTOUCHDIS:knows several different calling sequences which are described in it's help lines. You have used an illegal number of input parameters.
MKTOUCHDIS: unknown format type <formattype>
MKTOUCHDIS can return text output in several different formats. See help lines to learn which. Check for typos.
MKTOUCHDIS: cannot handle <sphase>
You should never see this, because MKTOUCHDIS generates phase names internally. This error message is just a formal part of a switch-statement. If you get this error, you are in trouble.
MKTP: time computation resulting in NaN!
The only reason for this that I know is: you tried to send rays to a depth where the velocity model is not defined, e.g. you model has no core and you try to compute PKP times, or your source is above the topmost layer of the model. If this is not the case, you have a very serious problem, and I can't help you any further - at least not from remote.
MKTTBOXVALID: unknown plot mode <plotmode>
MKTTBOXVALID knows several different calling sequences which are described in the help lines, but the one you have tried is not allowed. (Check for Typos!)
MKTTBOXVALID: unknown file extension <extension>
MKTTBOXVALID can handle .clr and .nd files, which are recognized by file extension '.clr' and '.nd', respectively. Files with other extensions produce this error. (Check for typos!)
MKTTCURVES: unknown phase name <phasename>
All phase names begin with 'P', 'S', 'p', 's'. Names beginning with other characters are illegal. (Check for typos!)
MKTTDIAGRAM: wrong number of input arguments!
MKTTDIAGRAM knows several different calling sequences which are described in the help lines.
MKTTQUICK: unknown phase name <phasename>
All phase names begin with 'P', 'S', 'p', 's'. Names beginning with other characters are illegal. (Check for typos!)
MKWRITECLR: <message>
The quoted message was returned by fopen. Usually, you do not have permission to write to the specified directory, or the directory does not exist. See the MatLab documentation for further help.
MKWRITECLR: wrong number of input arguments!
MKWRITECLR knows several different calling sequences which are described in the help lines, but the one you have tried is not allowed.
MKWRITEND: illegal number of input parameters
MKWRITEND knows several different calling sequences which are described in the help lines, but the one you have tried is not allowed.
MKX4P: cannot handle phase <phase>. Returning NaN.
Currently, MKX4P contains extra code for any phase that it can handle, so the set of phases that can be evaluated is limited. You have chosen one for which no code exists. (ask MKPHASECATALOG to see which phases are possible)
MKX4P: Depth phases do not exist for surface foci!
Depth phases are computed only if the source depth is larger than zero. (May be the first letter in your phase name should be uppercase?)
MKX4P: illegal number of input arguments!
MKX4P knows several different calling sequences which are described in the help lines, but the one you have tried is not allowed.
MKX4P: unknown anglemode <anglemode>
MKX4P knows several different modes of operation which are described in the help lines. You have chose one that does not exist. Check for typos.
MKXP: distance computation resulting in NaN!
This is a very serious problem which should never occur. But if it occurs, I can't tell you what's wrong (at least not remotely and without further analysis). Sorry.

eof.