Diagnostics reference
James prints its messages on standard error, one per line, in the form file:line:column: severity: text, or james: severity: text when a message has no place in a script, and ends a run with a summary line that counts its errors and warnings. A message the front end raises carries a code, E and four digits, after its severity, and this chapter has one entry per code: its severity, the message as James prints it, what causes it, and the commands it concerns. The lines the engine raises while meshing, merging and writing carry no code, except E0903, which the engine prints with its code; the last section describes them. A script with an error exits with code 1 and writes no mesh; a run the engine refuses exits with code 2, after any file an earlier write of the same run produced; a wrong command line exits with code 3.
Commands and regions
The codes E0100 to E0107.
E0100
Error. James prints error [E0100]: command '<name>' is not supported in this version of James (<phase>; <manual reference>).
You wrote a command that James knows of but has not built. The message gives the phase James was in and the page of the original manual that documents the command. Remove the command, or wait for the milestone that brings it; the compatibility chapter’s table lists the milestone of each one. James then skips to the next command it recognizes.
Concerns every refused command, listed in the compatibility chapter.
E0101
Warning. James prints warning [E0101]: a lone positive number in a progression list selects nothing.
A lone positive number in a progression’s list selects nothing. Write it negative to pin that one reduced index, or add a second number to make an interval.
Concerns every command that takes an index progression: dei, ilini, lini, sfi, tfi and the other i-suffix commands.
E0102
Error. James prints error [E0102]: reduced index <n> is outside the part's <i|j|k> range 1-<max>.
A reduced index in a region or progression is larger than the part has partitions in that direction. A reduced index counts entries of the block or cylinder lists, not node numbers, so check it against the length of that list.
Concerns every command that takes a region or an index progression.
E0103
Error. James prints error [E0103]: progression interval '<first> <last>' is written high to low.
An interval in a progression runs from a larger number to a smaller one, for example 3 1. Write the smaller number first.
Concerns every command that takes an index progression.
E0104
Error. James prints error [E0104]: '<command>' expects <what>, got <what was found>.
A command or control statement has the wrong shape: a word, value or punctuation mark is missing or of the wrong kind. The message names what James wanted and what it found. Supply the missing piece the message names.
Concerns any command or control statement; sd, include, def and array are the usual sources.
E0105
Error. James prints error [E0105]: '<word>' is not a command James recognizes.
The first word of a command is in no list James has: it is not a supported command, a refused one, or one James ignores. Check the spelling. A command James refuses by name raises E0100 instead.
Concerns any command position.
E0106
Error. James prints error [E0106]: region <i|j|k> range '<lo> <hi>' is written high to low.
A region’s lower index in one direction is larger than its upper index, after the zero rule is applied. James refuses it and does not swap the two ends. Write the lower index first.
Concerns every command that takes a region.
E0107
Warning. James prints warning [E0107]: 'sfi' selects no region and is ignored.
A progression expands to no region, so the command has nothing to act on. James accepts the command, stores nothing for it and names it in the warning. This happens when a direction’s list holds only a lone positive number, or when its unions pin nothing, so that no region results. Check the three lists against the part’s partitions.
Concerns every command that takes an index progression, such as sfi.
Scripts, parameters and expressions
The codes E0200 to E0221.
E0200
Error. James prints error [E0200]: include file 'filename' not found or not readable.
The file an include names is missing or cannot be read. James looks in the working directory unless the path is absolute.
Concerns: include.
E0201
Error. James prints error [E0201]: include nesting exceeds the maximum depth of 32.
include files nest more than 32 deep. Flatten the chain.
Concerns: include.
E0202
Error. James prints error [E0202]: include cycle detected: 'filename' is already being included.
A file includes itself, directly or through other files. The message names the file that is already open. Break the cycle.
Concerns: include.
E0203
Error. James prints error [E0203]: parameter '%name' is referenced before it is defined.
A %name has no value when the script uses it. Assign it with para or array first. A typo in a name is the usual cause.
E0204
Error. James prints error [E0204]: '%name' is not a defined parameter or a recognized automatic parameter.
A %name is neither a parameter you defined nor an automatic parameter James supplies. James has no picking or graphics window, so it never supplies %node or the six bounding-box values %xboxmin, %xboxmax, %yboxmin, %yboxmax, %zboxmin and %zboxmax.
Concerns: para.
E0205
Error. James prints error [E0205]: '%name' is an automatic parameter and cannot be assigned.
A script assigns to a parameter that James sets itself, such as %pi, or to one of the automatic arrays. Choose another name.
E0206
Error. James prints error [E0206]: subscript out of range for array '%name': dimension <k> is <i_k>, must be between 1 and <d_k>.
A subscript is below 1 or above the dimension the array declared. Subscripts count from 1. The subscript may itself be a computed value, so check that too.
Concerns: array.
E0207
Error. James prints error [E0207]: array '%name' has rank <r>, but <n> subscripts were given.
A reference gives a different number of subscripts than the array declared dimensions. Give exactly as many as the declaration has.
Concerns: array.
E0208
Error. James prints error [E0208]: function 'name' <takes-clause>, but <n> were given.
A function is called with the wrong number of arguments. The message says how many it takes. Match the call to the def or to the built-in’s form.
Concerns: def.
E0209
Error. James prints error [E0209]: unterminated bracketed expression, opened here.
A [ has no closing ] before the file ends. Add the ].
E0210
Error. James prints error [E0210]: unterminated comment block, opened here (nesting depth <n>).
A { comment is never closed. Braces nest, so add one } for every { left open. The message gives the depth still open at the end of the file.
Concerns any script.
E0211
Warning. James prints warning [E0211]: <what> is not defined for these arguments; result is NaN.
An expression asks for an operation with no defined result, such as SQRT of a negative number or a division by zero. James continues with NaN. Check the arguments, which may come from a parameter.
E0212
Error. James prints error [E0212]: integer value <value> exceeds the supported range (+/-2147483647).
An integer is larger than 2147483647 in magnitude. James stores integers in 32 bits. Use a smaller value.
Concerns any command that takes an integer.
E0213
Error. James prints error [E0213]: value is not finite.
A number overflows double precision or an operation produced infinity. Look for a mistyped exponent.
Concerns any command that takes a number.
E0214
Error. James prints error [E0214]: array dimension <k> of '%name' must be a positive integer, got <d_k>.
An array dimension is zero, negative or not an integer. Every dimension counts subscripts from 1, so each must be a whole number of at least 1.
Concerns: array.
E0215
Error. James prints error [E0215]: array '%name' has <n> elements but <m> data values were given.
An array has an initializer list that is neither one value nor one value per element. Give one value to fill the array, or one for every element in Fortran order.
Concerns: array.
E0216
Error. James prints error [E0216]: parameter name '<name>' contains the reserved character '<c>'.
A name uses one of the characters James reserves for expressions: + , % * / ^ ( ) [ ] = & $. Remove it. The characters -, ., < and > are allowed.
E0217
Error. James prints error [E0217]: 'caption' expects 'cap', 'on', or 'off', got '<token>'.
The word after caption is not cap, on or off.
Concerns: caption.
E0218
Error. James prints error [E0218]: 'errmod' mode must be 0, 1, 2, or 3, got <mode>.
The mode after errmod is not 0, 1, 2 or 3.
Concerns: errmod.
E0219
Error. James prints error [E0219]: 'mxp' pass count must be a positive integer (minimum 1), got <value>.
The pass count after mxp is not a positive integer. Use 1 or more.
Concerns: mxp.
E0220
Error. James prints error [E0220]: 'intyp' option must be 1 (linear) or 2 (transfinite), got <value>.
The option after intyp is not 1 (linear) or 2 (transfinite).
Concerns: intyp.
E0221
Error. James prints error [E0221]: expression syntax error: <detail>.
An expression does not parse. The detail names the failure: an operand or ) missing at the end, an unexpected character, a function or name James cannot resolve, more than 32 arguments, too many items in a list, or nesting past 200 levels. Only the first error of an expression is reported.
Concerns: para, def, if, when, while.
Control statements
The codes E0300 to E0321.
E0300
Error. James prints error [E0300]: endif with no matching if.
An endif has no open if. Add the if or remove the endif.
E0301
Error. James prints error [E0301]: endfor with no matching for.
An endfor has no open for. Add the for or remove the endfor.
E0302
Error. James prints error [E0302]: endwhen with no matching when.
An endwhen has no open when. Add the when or remove the endwhen.
E0303
Error. James prints error [E0303]: endwhile with no matching while.
An endwhile has no open while. Add the while or remove the endwhile.
E0304
Error. James prints error [E0304]: elseif after else in the same if statement.
An elseif follows the else of its if. Put every elseif before the else.
E0305
Error. James prints error [E0305]: elsewhen after else in the same when statement.
An elsewhen follows the else of its when. Put every elsewhen before the else.
E0306
Error. James prints error [E0306]: an if scope must be disjoint from every when, for, and while scope.
An if sits inside a when, for or while, or holds one. The if family must stay apart from the other three. Use when inside loops, or move the if outside them. James also prints a note that names the opener still open.
Concerns: if, when, for, while.
E0307
Error. James prints error [E0307]: control statement scopes must nest fully or not at all.
Two constructs overlap without one holding the other, for example a when closed while a for inside it is still open. Close the innermost construct first. James also prints a note that names the construct still open.
E0308
Error. James prints error [E0308]: break outside a for or while loop.
A break is outside every for and while. Move it into a loop or remove it.
Concerns: break.
E0309
Error. James prints error [E0309]: '<keyword>' must be alone on its line.
A control statement shares its line with other text. Give each control statement a line of its own.
Concerns: if, for, while, when.
E0310
Error. James prints error [E0310]: when/for/while nesting exceeds the limit of 64.
when, for and while constructs nest deeper than 64. Move the inner body into an include file or combine conditions.
E0311
Error. James prints error [E0311]: for loop increment must not be zero.
A for has an increment of zero, which has no trip count. Use a nonzero increment, or a while.
Concerns: for.
E0312
Error. James prints error [E0312]: loop exceeded the maximum of 1000000 iterations.
A loop ran one million times. Check its stopping condition.
E0313
Error. James prints error [E0313]: elseif with no matching if.
An elseif has no open if. Add the if or remove the elseif.
E0314
Error. James prints error [E0314]: elsewhen with no matching when.
An elsewhen has no open when. Add the when or remove the elsewhen.
E0315
Error. James prints error [E0315]: else with no matching if or when.
An else has no open if or when. Add the opener or remove the else.
Concerns: else.
E0316
Error. James prints error [E0316]: '<closer>' does not match the open '<opener>'.
A closer names a different family than the construct that is open, for example endfor closing a when. Use the closer of the open construct.
Concerns: endif, endwhen, endfor, endwhile.
E0317
Error. James prints error [E0317]: '<keyword>' requires a trailing then.
An if, elseif, when or elsewhen has no then after its closing parenthesis. Add it.
Concerns: if, elseif, when, elsewhen.
E0318
Error. James prints error [E0318]: while must not be followed by then.
A while is followed by then. Remove it.
Concerns: while.
E0319
Error. James prints error [E0319]: '<opener>' is not closed with '<closer>'.
A construct is still open at the end of the file or of its enclosing body. Add the closer the message names. An inner construct left open can swallow the closer meant for an outer one.
Concerns: if, when, for, while.
E0320
Error. James prints error [E0320]: if nesting exceeds the limit of 64.
if constructs nest deeper than 64. Move the inner branch into an include file or combine conditions with .and. and .or..
Concerns: if.
E0321
Error. James prints error [E0321]: while cannot be embedded in another command.
A while sits inside another command’s arguments. A while must stand alone and repeat whole commands. Use for or when to repeat part of a command.
Concerns: while.
Parts and phases
The codes E0400 to E0416.
E0400
Error. James prints error [E0400]: shell partition not supported in this version of James.
An index list holds a negative entry, which marks a shell partition. James builds hex solids only. Use a positive index. A shell partition is scheduled for a later milestone.
Concerns: block, cylinder, insprt.
E0401
Error. James prints error [E0401]: <i|j|k>-index list must start with 1 or -1.
The first entry of an index list is not 1 or -1. Start every list with 1.
E0402
Error. James prints error [E0402]: <i|j|k>-index list entry <n> does not exceed the magnitude of an earlier entry.
After the first entry, an index list entry is neither 0 nor larger in magnitude than every entry before it. Put the entries in increasing order.
E0403
Error. James prints error [E0403]: <x|y|z>-coordinate list has <m> values, expected <n> to match the <i|j|k>-index list.
A coordinate list does not have one value for every entry of its index list, counting the zero entries. Add or remove values until the counts match.
E0404
Error. James prints error [E0404]: <de|dei> region reduced index <n> is outside the part (1 to <max>).
A de or dei region names a reduced index outside the part. Correct the index, or add the partition with insprt.
E0405
Error. James prints error [E0405]: insprt <argument> is invalid: <detail>.
An argument of insprt is out of range: the sign must be 1 or -1, the type 1 to 6, the index inside the list and the element count positive. The message names the argument.
Concerns: insprt.
E0406
Error. James prints error [E0406]: mseq <detail>.
The mseq command is malformed. The direction must be i, j or k, there must be one count for each existing region in that direction, and every resulting count must be positive. The message gives the detail.
Concerns: mseq.
E0407
Error. James prints error [E0407]: lmseq <detail>.
The lmseq command is malformed. The direction must be i, j or k, the partition must have a region to its right, and the resulting count must be positive. The message gives the detail.
Concerns: lmseq.
E0408
Error. James prints error [E0408]: <mseq|lmseq> not allowed after update or an equation for this part.
An mseq or lmseq follows an update or a coordinate equation in its part. Put it before them, or edit the index lists. Today James refuses update with E0100 and reports the equations as not recognized (E0105), so this message cannot yet appear.
E0409
Error. James prints error [E0409]: meshscal must precede every part.
A meshscal comes after a part has begun. Move it to the top of the script.
Concerns: meshscal.
E0410
Error. James prints error [E0410]: merge has no effect in the Merge phase.
A merge is read while James is already in the Merge phase. Remove it.
Concerns: merge.
E0411
Error. James prints error [E0411]: <endpart|control|abort> is only legal in the Part phase.
An endpart, control or abort is read with no part open. Remove it, or move it after the block or cylinder it closes.
Concerns: endpart, control, abort.
E0412
Error. James prints error [E0412]: command '<name>' is not legal in the <Control|Part|Merge> phase.
A command is read in a phase where it is not allowed. Move it to the phase that allows it, or open or close a part first.
Concerns every command; each page’s “When James applies it” names its phase.
E0413
Error. James prints error [E0413]: gap in the index list not supported in this version of James.
An index list holds a 0, which marks a gap that disconnects the part. James refuses it. Write two parts at the gap and merge them if they should share nodes.
E0414
Error. James prints error [E0414]: meshscal scale must be a positive integer.
The scale after meshscal is not a positive integer.
Concerns: meshscal.
E0415
Error. James prints error [E0415]: partmode mode must be s or i.
The mode after partmode is not s or i.
Concerns: partmode.
E0416
Warning. James prints warning [E0416]: part <n> was still open at end; closed as if by endpart, or warning [E0416]: part <n> was still open at end of input; closed as if by endpart.
A part is still open when end or the end of the input is read. James closes it as if by endpart and goes on. Add the endpart, control, merge or abort you meant. The message says whether the part was open at end or at the end of input.
Vertices
The codes E0500 to E0506.
E0500
Error. James prints error [E0500]: reduced index <n> is outside the part's <i|j|k> range 1-<max>.
A reduced index in a vertex region or in q is larger than the part has partitions in that direction. A reduced index counts list entries, not node numbers.
Concerns: pb, mb, mbi, tr, q, ilin.
E0501
Error. James prints error [E0501]: '<token>' is not a coordinate component (expected x, y, z, xy, xz, yz, or xyz).
The coordinate keyword is not one of x, y, z, xy, xz, yz or xyz. The letters keep that order.
E0502
Error. James prints error [E0502]: '<keyword>' takes <n> value(s), got <m>.
A coordinate keyword is followed by the wrong number of values: one per letter in the keyword.
E0503
Error. James prints error [E0503]: malformed transformation operator '<token>', or error [E0503]: coordinate type 'pt' is not supported in this version of James, or error [E0503]: transformation operator '<op>' is not supported in this version of James.
A transformation list holds an operator James does not read. The message says which of three cases it is: a malformed operator, the coordinate type pt, or one of the five operators tf, ftf, rxy, ryz and rzx, which James refuses.
E0504
Error. James prints error [E0504]: raxis direction vector has zero length.
A raxis operator has a direction vector of length zero. Give a nonzero direction.
E0505
Error. James prints error [E0505]: q requires two vertices (i j k i j k), not a region.
The q command was given six numbers that read as a region. Give two vertices, three reduced indices each, target first.
Concerns: q.
E0506
Error. James prints error [E0506]: pbs label '<point_id>' does not name a defined point.
A pbs label names no point James holds. James refuses pbs, so this message belongs to a later milestone.
Concerns no command James runs, because pbs is refused with E0100.
Edges and curves
The codes E0600 to E0608.
E0600
Error. James prints error [E0600]: <command> region must be an edge, got <kind>.
The region of a curve or edge command is not a single mesh edge. Give a region in which exactly two of the three index pairs coincide. The message names what the region is: a vertex, a face or a block.
Concerns: cur, curf, cure, curs, edge.
E0601
Error. James prints error [E0601]: 3D curve <n> is not defined.
A command refers to a 3D curve number that no curd defined. Define the curve first, or correct the number.
Concerns: cur, curf, cure, curs, curd.
E0602
Error. James prints error [E0602]: <type> needs at least 2 points, got <n>.
An lp3 or csp3 curve has fewer than two points. Give at least two (x, y, z) triplets.
Concerns: curd.
E0603
Error. James prints error [E0603]: curd type '<type>' is not supported in this version of James.
A curd names a 3D curve type James does not build. James builds lp3 and csp3.
Concerns: curd.
E0604
Error. James prints error [E0604]: edge <s>.<e> is not a valid surface edge.
An edge command names a surface that is not defined, or an edge number outside 1 to 4. Define the surface with sd first.
E0605
Error. James prints error [E0605]: <type> coordinate count <n> is not a multiple of 3.
The numbers of an lp3 or csp3 list are not a multiple of 3. Give whole (x, y, z) triplets.
Concerns: curd.
E0606
Error. James prints error [E0606]: csp3 option '<option>' is not recognized, or error [E0606]: csp3 option '<option>' expects <expected> argument(s), got <n>.
A csp3 option is neither loop nor one of the sixteen two-digit derivative codes, or it has the wrong number of arguments for its code. The message says which of the two.
Concerns: curd.
E0607
Error. James prints error [E0607]: splint derivative_flag '<flag>' is not recognized, or error [E0607]: splint derivative_flag '<flag>' expects <expected> derivative vector(s), got <n>.
A splint flag is not one of 00, 10, 01 and 11, or the number of derivative vectors does not match the flag. The message says which of the two.
Concerns: splint.
E0608
Error. James prints error [E0608]: curd carries more than one type group; this version of James accepts one.
A curd holds a second type group. James reads one group per curd. Use a second curd for the second curve.
Concerns: curd.
Interpolation
The codes E0700 and E0701.
E0700
Error. James prints error [E0700]: region names a single vertex, which has no meaning for lin/lini.
A lin or lini region is a single vertex, which linear interpolation cannot act on. Use a region with an extent, or set the vertex with pb.
E0701
Error. James prints error [E0701]: region is an edge or a vertex, but tf/tfi requires a face or a solid block.
A tf or tfi region is an edge or a vertex. Transfinite interpolation needs a face or a block. Use lin for an edge.
Projection
The codes E0800 to E0808.
E0800
Error. James prints error [E0800]: surface <ref> is not defined.
A command refers to a surface number or name no sd defined. Define the surface first.
E0801
Error. James prints error [E0801]: <command> surface type '<type>' is not supported in this version of James.
An inline surface in sf, sfi or ms has a type James does not build. Use a type James builds, or define the surface with sd.
E0802
Error. James prints error [E0802]: patch region must be a face, got <kind>.
The region of patch is not a single face. Give a region in which exactly one of the three index pairs coincides. James also refuses patch on every surface kind it builds today, because none of them has an edge; the compatibility chapter says so.
Concerns: patch.
E0803
Error. James prints error [E0803]: node at <i,j,k> has <n> surface constraints, more than the 3 James supports.
A node is constrained by more than three surfaces. Combine the extra surfaces in one sds surface, or remove the redundant constraint. The message gives the node’s three full indices.
E0804
Error. James prints error [E0804]: spp template <id> is not defined.
An spp names a template no tmplt made. James refuses tmplt, so every spp ends here.
Concerns: spp.
E0805
Error. James prints error [E0805]: spp template <id> has <m> nodes where the target region has <n>.
The template of an spp has a different node count than the target region. Rebuild one of them. James cannot reach this message today, because spp always stops at E0804.
Concerns: spp.
E0806
Error. James prints error [E0806]: ms lists <m> surfaces for <n> faces in the i|j|k direction.
The number of surfaces an ms lists does not equal the number of faces its region holds along the index direction. Add or remove surfaces, or change the region.
Concerns: ms.
E0807
Error. James prints error [E0807]: sf/sfi region is a block; projection applies to a vertex, an edge or a face.
An sf or sfi region is a block. Projection acts on a vertex, an edge or a face. Narrow the region, or issue one command per face.
E0808
Error. James prints error [E0808]: 'ms' region has no extent in the j direction, so it holds no face across i.
An ms region has no extent in one of the two directions across its index direction, so it holds no face. The message names the direction without extent and the index direction. Give the region an extent in both.
Concerns: ms.
Spacing
The codes E0900 to E0905.
E0900
Error. James prints error [E0900]: region has no length in the <i|j|k> direction.
A spacing region has no length in the direction named: its two reduced indices there are equal. Choose the direction that varies across the edge.
Concerns: res, drs, as, das, nds.
E0901
Error. James prints error [E0901]: spacing ratio must be a positive number.
A res or drs ratio is zero or negative. Use a ratio above zero; 1.0 spaces the nodes equally.
E0902
Error. James prints error [E0902]: spacing element size must be a positive number.
An as size or a das gap is zero or negative. Use a value above zero.
E0903
Error. James prints error [E0903]: das gap1 + gap2 exceeds the edge's total arc length.
The two gaps of a das add up to more than the edge is long. James raises this error while it meshes, so it carries its code and a file position, and the run exits with code 1 and writes no mesh. Shorten the gaps or use a longer edge.
Concerns: das.
E0904
Error. James prints error [E0904]: nds density function <density> is not defined.
An nds names a density function no ndd defined. Every nds that names an undefined density raises this message. James refuses ndd in this version, so no density is ever defined, and every well-formed nds ends here.
Concerns: nds.
E0905
Error. James prints error [E0905]: nds density function data does not match the edge.
The data of an nds density function does not fit the edge. James cannot reach this message today, because it refuses ndd.
Concerns: nds.
Surfaces and 2D curves
The codes E1000 to E1009.
E1000
Error. James prints error [E1000]: sds argument <si> is not a defined surface.
An sds composite lists a surface number no sd defined. Define the surface first, or correct the number.
Concerns: sd.
E1001
Error. James prints error [E1001]: <type> argument <ln> is not a defined 2D curve.
A crx, cry or crz surface names a 2D curve that no ld or lcc defined. Define the curve first.
E1002
Error. James prints error [E1002]: lp2 needs at least 2 points, got <n>, or error [E1002]: lp2 argument count <m> is not a multiple of 2.
An lp2 curve has fewer than two points, or an odd count of numbers. Give at least two (x, z) pairs. The message says which of the two.
Concerns: ld.
E1003
Error. James prints error [E1003]: lar has no point to start from, or error [E1003]: lar radius <radius> is too small for chord length <d>.
An lar arc cannot be built. Either the curve has no point yet to start from, so begin with lp2, or the radius is smaller than half the distance to the end point, so enlarge it. The message says which.
Concerns: ld.
E1004
Error. James prints error [E1004]: sd type '<type>' is not supported in this version of James.
An sd names a surface type James does not build. James builds plan, cy (and cyli), sp (and sphe), cone, crx, cry, crz and sds.
Concerns: sd.
E1005
Error. James prints error [E1005]: sd type '<type>' radius <radius> must be positive.
A cylinder or sphere radius is zero or negative. Use a positive radius.
Concerns: sd.
E1006
Error. James prints error [E1006]: cone angle <θ> must be strictly between -90 and 90 and not 0.
A cone angle is 0 or outside -90 to 90 degrees. Use an angle strictly between -90 and 90 that is not 0.
Concerns: sd.
E1007
Error. James prints error [E1007]: cone radius <r> must not be negative.
A cone radius is negative. Zero is allowed and puts the apex at the axis point.
Concerns: sd.
E1008
Error. James prints error [E1008]: sd name '<name>' must contain an alphabetic character and no spaces.
An sd name must hold at least one letter and no space, so 3 and my surface are refused. Rename the surface, or leave the name out.
Concerns: sd.
E1009
Error. James prints error [E1009]: ld segment type '<type>' is not supported in this version of James.
An ld names a 2D curve segment type James does not build. James builds lp2 (and lp) and lar.
Concerns: ld.
Merge and output
The codes E1100 to E1104.
E1100
Error. James prints error [E1100]: 'write' is only legal in the Merge phase.
A write is read before the first merge. Move it after the merge.
Concerns: write.
E1101
Error. James prints error [E1101]: 'write' has no output format chosen.
A write is read and no output format was chosen by a script command or by --format. Add exodusii or neutral before it, or pass --format neutral or --format exodus.
Concerns: write, exodusii, neutral.
E1102
Error. James prints error [E1102]: 'verbatim' block is not closed with 'endverbatim'.
A verbatim block has no endverbatim before the input ends. Add the closing line.
Concerns: verbatim.
E1103
Error. James prints error [E1103]: '<cmd>' requires a numeric tolerance argument.
The tolerance after st, stp, t or tp is missing or is not a number. Give a number, a %name that holds one, or a [expression].
E1104
Warning. James prints warning [E1104]: 'exodusii' replaces the output format 'neutral' chosen earlier; the later command governs.
A script names neutral and then exodusii, or the reverse, before any write has used the first choice. The later command governs and the earlier choice is dropped. Naming the same format twice is silent, and so is switching format after a write. Delete the command that names the format you do not want.
Messages from the engine
The engine meshes the parts, merges their nodes and writes the files. Its lines carry no code, with one exception: E0903, a das whose gaps exceed the edge, is found while the engine meshes, so James prints it with its code, file:line:column: error [E0903]: ..., and exits with code 1. The entry for E0903 is in the spacing family above.
Every other engine line has the form file:line:column: warning: text or file:line:column: note: text. The position is the command that caused the line: the part’s opening command, the de that selects nothing, or the write or tolerance command that governs a merge. A line about the run as a whole, such as the count of lines not recorded or the summary, has no position and reads james: severity: text.
Warnings.
James prints these and goes on. Each counts in the summary line.
part #<n> has <k> elements with a negative Jacobian, orhas 1 elementfor one. The number after#is the part’s position in the script, counted from zero. A coordinate list that decreases, or an interpolation that folds, inverts elements. James reports the count once per part and writes the elements as they are; it does not reorder them.part #<n> has <k> elements with zero volume after merging, orhas 1 element. A merge collapsed these elements onto shared nodes so that all eight corner triple products vanish. James writes them as they are.part #<n> has no active element, so its <k> nodes are not written; --write-unref-nodes writes them. Every element of the part was deleted, or the part never had one. James writes no node of the part unless you pass--write-unref-nodes.de region <imin> <jmin> <kmin> <imax> <jmax> <kmax> selects no element. The region holds a face, an edge or a vertex but no element, so the deletion changes nothing. Adeiwhose progression produces such a region raises the same warning.the title is longer than 80 characters and was cut in <file>. The Exodus II writer stores 80 characters of the title and drops the rest.
Notes: the merge report.
A tp or stp governing a write makes James report the merge. The first line gives the total and the lines after it give one count per pair of parts that merged nodes:
input.tg:9:1: note: 9 nodes were deleted by tolerancing
input.tg:9:1: note: 9 nodes merged between parts 1 and 2
The part numbers in these lines are the part numbers of the script, counted from one, with the survivor’s part first. A pair of equal numbers is a merge inside one part. A count of one reads 1 node was deleted and 1 node merged. A merge that finds nothing to merge prints 0 nodes were deleted by tolerancing. The commands t and st print no report. James prints the report after the file is written and closed, so a write that fails prints no report.
Errors.
An error from the engine reads file:line:column: error: text, or james: error: text when it has no place in the script, and stops the run with exit code 2. A file an earlier write of the same run produced stays on disk.
A geometry refusal names the curve or the surface by its zero-based number: its place in the order the script defines them, counted from zero, not the number you gave it. So surface #0 is the first surface the script defines and 3D curve #1 the second 3D curve. A part is numbered the same way, from zero. A node’s indices count from one.
part #<n> has a negative radius <r> in its r-list. Acylinderpart cannot have a negative radius. Zero is allowed.node (<i>, <j>, <k>) of part #<n> has a negative radius <r>. A node of acylinderpart reached a negative radius after the r-list, for example through anmbthat moved it past the axis.edge <s>.<e> names surface #<n>, a <kind>, which has no boundary edge in this version of James. None of the surfaces James builds today has an edge, soedgefails here.patch names surface #<n>, a <kind>, which has no four sides in this version of James. For the same reasonpatchfails on a face region.3D curve #<n>: a csp3 loop needs at least three points. Acsp3curve with the optionloopand fewer than three points.2D curve #<n>: the curve has zero length. Anldcurve whose segments have no length.projecting node (<i>, <j>, <k>) of part #<n>: the point is at the center of sphere #<m>, so its projection is not unique. A node to be projected onto a sphere sits at its centre, where every point of the sphere is equally near.part #<n> has <ni> x <nj> x <nk> nodes; this version of James supports at most 100000000. A part holds up to 100000000 nodes. A write holds up to 250000000, and a write that exceeds it raisesthe <n> parts of this write hold <count> nodes; this version of James supports at most 250000000 in one write.file:line:column: error: cannot open <file> for writing,cannot write <file>andcannot close <file>, at thewritethat failed. The file could not be created, filled or closed.built without Exodus support. This build of James has no Exodus II writer, so a script that writes Exodus II fails at itswrite. Change the script’sexodusiitoneutral, or build with the netCDF library.--format neutralhelps only a script that names no format, because a format command in the script overrides the flag.james: error: out of memory. The engine could not allocate an array. This line has no position.
The lines that were not recorded.
James keeps up to 4096 warning and note lines from the engine and prints them after the engine finishes. When a run raises more, James prints a separate line before the summary, <n> more warning(s) from the engine were not recorded (--engine-lines raises the limit of 4096), or the same line for notes with note(s). Pass --engine-lines <n> to keep more. If the buffer for the larger count cannot be allocated, the line says so and names the number you asked for.