1" Vim syntax file
2" Language:     TAK2, TAK3, TAK2000 thermal modeling input file
3" Maintainer:   Adrian Nagle, anagle@ball.com
4" Last Change:  2003 May 11
5" Filenames:    *.tak
6" URL:		http://www.naglenet.org/vim/syntax/tak.vim
7" MAIN URL:     http://www.naglenet.org/vim/
8
9
10
11" For version 5.x: Clear all syntax items
12" For version 6.x: Quit when a syntax file was already loaded
13if version < 600
14  syntax clear
15elseif exists("b:current_syntax")
16  finish
17endif
18
19
20
21" Ignore case
22syn case ignore
23
24
25
26"
27"
28" Begin syntax definitions for tak input file.
29"
30
31" Force free-form fortran format
32let fortran_free_source=1
33
34" Load FORTRAN syntax file
35if version < 600
36  source <sfile>:p:h/fortran.vim
37else
38  runtime! syntax/fortran.vim
39endif
40unlet b:current_syntax
41
42
43
44" Define keywords for TAK and TAKOUT
45syn keyword takOptions  AUTODAMP CPRINT CSGDUMP GPRINT HPRINT LODTMP
46syn keyword takOptions  LOGIC LPRINT NCVPRINT PLOTQ QPRINT QDUMP
47syn keyword takOptions  SUMMARY SOLRTN UID DICTIONARIES
48
49syn keyword takRoutine  SSITER FWDWRD FWDBCK BCKWRD
50
51syn keyword takControl  ABSZRO BACKUP DAMP DTIMEI DTIMEL DTIMEH IFC
52syn keyword takControl  MAXTEMP NLOOPS NLOOPT NODELIST OUTPUT PLOT
53syn keyword takControl  SCALE SIGMA SSCRIT TIMEND TIMEN TIMEO TRCRIT
54syn keyword takControl  PLOT
55
56syn keyword takSolids   PLATE CYL
57syn keyword takSolidsArg   ID MATNAM NTYPE TEMP XL YL ZL ISTRN ISTRG NNX
58syn keyword takSolidsArg   NNY NNZ INCX INCY INCZ IAK IAC DIFF ARITH BOUN
59syn keyword takSolidsArg   RMIN RMAX AXMAX NNR NNTHETA INCR INCTHETA END
60
61syn case ignore
62
63syn keyword takMacro    fac pstart pstop
64syn keyword takMacro    takcommon fstart fstop
65
66syn keyword takIdentifier  flq flx gen ncv per sim siv stf stv tvd tvs
67syn keyword takIdentifier  tvt pro thm
68
69
70
71" Define matches for TAK
72syn match  takFortran     "^F[0-9 ]"me=e-1
73syn match  takMotran      "^M[0-9 ]"me=e-1
74
75syn match  takComment     "^C.*$"
76syn match  takComment     "^R.*$"
77syn match  takComment     "\$.*$"
78
79syn match  takHeader      "^header[^,]*"
80
81syn match  takIncludeFile "include \+[^ ]\+"hs=s+8 contains=fortranInclude
82
83syn match  takInteger     "-\=\<[0-9]*\>"
84syn match  takFloat       "-\=\<[0-9]*\.[0-9]*"
85syn match  takScientific  "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>"
86
87syn match  takEndData     "END OF DATA"
88
89if exists("thermal_todo")
90  execute 'syn match  takTodo ' . '"^'.thermal_todo.'.*$"'
91else
92  syn match  takTodo	    "^?.*$"
93endif
94
95
96
97" Define the default highlighting
98" For version 5.7 and earlier: only when not done already
99" For version 5.8 and later: only when an item doesn't have highlighting yet
100if version >= 508 || !exists("did_tak_syntax_inits")
101  if version < 508
102    let did_tak_syntax_inits = 1
103    command -nargs=+ HiLink hi link <args>
104  else
105    command -nargs=+ HiLink hi def link <args>
106  endif
107
108  HiLink takMacro		Macro
109  HiLink takOptions		Special
110  HiLink takRoutine		Type
111  HiLink takControl		Special
112  HiLink takSolids		Special
113  HiLink takSolidsArg		Statement
114  HiLink takIdentifier		Identifier
115
116  HiLink takFortran		PreProc
117  HiLink takMotran		PreProc
118
119  HiLink takComment		Comment
120  HiLink takHeader		Typedef
121  HiLink takIncludeFile		Type
122  HiLink takInteger		Number
123  HiLink takFloat		Float
124  HiLink takScientific		Float
125
126  HiLink takEndData		Macro
127
128  HiLink takTodo		Todo
129
130  delcommand HiLink
131endif
132
133
134let b:current_syntax = "tak"
135
136" vim: ts=8 sw=2
137