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