updated for version 7.0001
diff --git a/runtime/syntax/tsscl.vim b/runtime/syntax/tsscl.vim
new file mode 100644
index 0000000..3fc18c6
--- /dev/null
+++ b/runtime/syntax/tsscl.vim
@@ -0,0 +1,217 @@
+" Vim syntax file
+" Language:     TSS (Thermal Synthesizer System) Command Line
+" Maintainer:   Adrian Nagle, anagle@ball.com
+" Last Change:  2003 May 11
+" Filenames:    *.tsscl
+" URL:		http://www.naglenet.org/vim/syntax/tsscl.vim
+" MAIN URL:     http://www.naglenet.org/vim/
+
+
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+
+
+" Ignore case
+syn case ignore
+
+
+
+"
+"
+" Begin syntax definitions for tss geomtery file.
+"
+
+" Load TSS geometry syntax file
+"source $VIM/myvim/tssgm.vim
+"source $VIMRUNTIME/syntax/c.vim
+
+" Define keywords for TSS
+syn keyword tssclCommand  begin radk list heatrates attr draw
+
+syn keyword tssclKeyword   cells rays error nodes levels objects cpu
+syn keyword tssclKeyword   units length positions energy time unit solar
+syn keyword tssclKeyword   solar_constant albedo planet_power
+
+syn keyword tssclEnd    exit
+
+syn keyword tssclUnits  cm feet meters inches
+syn keyword tssclUnits  Celsius Kelvin Fahrenheit Rankine
+
+
+
+" Define matches for TSS
+syn match  tssclString    /"[^"]\+"/ contains=ALLBUT,tssInteger,tssclKeyword,tssclCommand,tssclEnd,tssclUnits
+
+syn match  tssclComment     "#.*$"
+
+"  rational and logical operators
+"  <       Less than
+"  >       Greater than
+"  <=      Less than or equal
+"  >=      Greater than or equal
+"  == or = Equal to
+"  !=      Not equal to
+"  && or & Logical AND
+"  || or | Logical OR
+"  !       Logical NOT
+"
+" algebraic operators:
+"  ^ or ** Exponentation
+"  *       Multiplication
+"  /       Division
+"  %       Remainder
+"  +       Addition
+"  -       Subtraction
+"
+syn match  tssclOper      "||\||\|&&\|&\|!=\|!\|>=\|<=\|>\|<\|+\|-\|^\|\*\*\|\*\|/\|%\|==\|=\|\." skipwhite
+
+" CLI Directive Commands, with arguments
+"
+" BASIC COMMAND LIST
+" *ADD input_source
+" *ARITHMETIC { [ON] | OFF }
+" *CLOSE unit_number
+" *CPU
+" *DEFINE
+" *ECHO[/qualifiers] { [ON] | OFF }
+" *ELSE [IF { 0 | 1 } ]
+" *END { IF | WHILE }
+" *EXIT
+" *IF { 0 | 1 }
+" *LIST/n list variable
+" *OPEN[/r | /r+ | /w | /w+ ] unit_number file_name
+" *PROMPT prompt_string sybol_name
+" *READ/unit=unit_number[/LOCAL | /GLOBAL ] sym1 [sym2, [sym3 ...]]
+" *REWIND
+" *STOP
+" *STRCMP string_1 string_2 difference
+" *SYSTEM command
+" *UNDEFINE[/LOCAL][/GLOBAL] symbol_name
+" *WHILE { 0 | 1 }
+" *WRITE[/unit=unit_number] output text
+"
+syn match  tssclDirective "\*ADD"
+syn match  tssclDirective "\*ARITHMETIC \+\(ON\|OFF\)"
+syn match  tssclDirective "\*CLOSE"
+syn match  tssclDirective "\*CPU"
+syn match  tssclDirective "\*DEFINE"
+syn match  tssclDirective "\*ECHO"
+syn match  tssclConditional "\*ELSE"
+syn match  tssclConditional "\*END \+\(IF\|WHILE\)"
+syn match  tssclDirective "\*EXIT"
+syn match  tssclConditional "\*IF"
+syn match  tssclDirective "\*LIST"
+syn match  tssclDirective "\*OPEN"
+syn match  tssclDirective "\*PROMPT"
+syn match  tssclDirective "\*READ"
+syn match  tssclDirective "\*REWIND"
+syn match  tssclDirective "\*STOP"
+syn match  tssclDirective "\*STRCMP"
+syn match  tssclDirective "\*SYSTEM"
+syn match  tssclDirective "\*UNDEFINE"
+syn match  tssclConditional "\*WHILE"
+syn match  tssclDirective "\*WRITE"
+
+syn match  tssclContChar  "-$"
+
+" C library functoins
+" Bessel functions (jn, yn)
+" Error and complementary error fuctions (erf, erfc)
+" Exponential functions (exp)
+" Logrithm (log, log10)
+" Power (pow)
+" Square root (sqrt)
+" Floor (floor)
+" Ceiling (ceil)
+" Floating point remainder (fmod)
+" Floating point absolute value (fabs)
+" Gamma (gamma)
+" Euclidean distance function (hypot)
+" Hperbolic functions (sinh, cosh, tanh)
+" Trigometric functions in radians (sin, cos, tan, asin, acos, atan, atan2)
+" Trigometric functions in degrees (sind, cosd, tand, asind, acosd, atand,
+"    atan2d)
+"
+" local varialbles: cl_arg1, cl_arg2, etc. (cl_arg is an array of arguments)
+" cl_args is the number of arguments
+"
+"
+" I/O: *PROMPT, *WRITE, *READ
+"
+" Conditional branching:
+" IF, ELSE IF, END
+" *IF value       *IF I==10
+" *ELSE IF value  *ELSE IF I<10
+" *ELSE		  *ELSE
+" *ENDIF	  *ENDIF
+"
+"
+" Iterative looping:
+" WHILE
+" *WHILE test
+" .....
+" *END WHILE
+"
+"
+" EXAMPLE:
+" *DEFINE I = 1
+" *WHILE (I <= 10)
+"    *WRITE I = 'I'
+"    *DEFINE I = (I + 1)
+" *END WHILE
+"
+
+syn match  tssclQualifier "/[^/ ]\+"hs=s+1
+syn match  tssclSymbol    "'\S\+'"
+"syn match  tssclSymbol2   " \S\+ " contained
+
+syn match  tssclInteger     "-\=\<[0-9]*\>"
+syn match  tssclFloat       "-\=\<[0-9]*\.[0-9]*"
+syn match  tssclScientific  "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>"
+
+
+
+" Define the default highlighting
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_tsscl_syntax_inits")
+  if version < 508
+    let did_tsscl_syntax_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+  HiLink tssclCommand		Statement
+  HiLink tssclKeyword		Special
+  HiLink tssclEnd		Macro
+  HiLink tssclUnits		Special
+
+  HiLink tssclComment		Comment
+  HiLink tssclDirective		Statement
+  HiLink tssclConditional	Conditional
+  HiLink tssclContChar		Macro
+  HiLink tssclQualifier		Typedef
+  HiLink tssclSymbol		Identifier
+  HiLink tssclSymbol2		Symbol
+  HiLink tssclString		String
+  HiLink tssclOper		Operator
+
+  HiLink tssclInteger		Number
+  HiLink tssclFloat		Number
+  HiLink tssclScientific	Number
+
+  delcommand HiLink
+endif
+
+
+let b:current_syntax = "tsscl"
+
+" vim: ts=8 sw=2