1 <?xml version="1.0"?>
\r
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
\r
4 <!-- FORTRAN90 edit mode
\r
7 suitable for jEdit 4.2final and jEdit 4.3pre16
\r
9 <!-- This is a mode for FORTRAN 90/95 and newer, free-form source files.
\r
10 In general, this supports common features of the F90 specification.
\r
12 <!-- Suggested catalog file entry:
\r
14 <MODE NAME="fortran90" FILE="fortran90.xml"
\r
15 FILE_NAME_GLOB="*.{f90,f95,f03}" />
\r
19 <PROPERTY NAME="wordBreakChars" VALUE=",+-=<>/?^&*" />
\r
20 <PROPERTY NAME="indentNextLines" VALUE="\s*((if\s*\(.*\)\s*then|else\s*|do\s*)*)" />
\r
23 <RULES IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="FALSE">
\r
25 <!-- comments started by ! in free-form fortran-->
\r
26 <EOL_SPAN TYPE="COMMENT1">!</EOL_SPAN>
\r
28 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="FALSE">
\r
32 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="FALSE">
\r
37 <!-- Highlighted Operators -->
\r
38 <SEQ TYPE="OPERATOR"><=</SEQ>
\r
39 <SEQ TYPE="OPERATOR">>=</SEQ>
\r
40 <SEQ TYPE="OPERATOR">></SEQ>
\r
41 <SEQ TYPE="OPERATOR"><</SEQ>
\r
42 <SEQ TYPE="OPERATOR">&</SEQ>
\r
43 <SEQ TYPE="OPERATOR">/=</SEQ>
\r
44 <SEQ TYPE="OPERATOR">==</SEQ>
\r
45 <SEQ TYPE="OPERATOR">.lt.</SEQ>
\r
46 <SEQ TYPE="OPERATOR">.gt.</SEQ>
\r
47 <SEQ TYPE="OPERATOR">.eq.</SEQ>
\r
48 <SEQ TYPE="OPERATOR">.ne.</SEQ>
\r
49 <SEQ TYPE="OPERATOR">.le.</SEQ>
\r
50 <SEQ TYPE="OPERATOR">.ge.</SEQ>
\r
51 <SEQ TYPE="OPERATOR">.AND.</SEQ>
\r
52 <SEQ TYPE="OPERATOR">.OR.</SEQ>
\r
55 <!-- unclassified keywords -->
\r
56 <KEYWORD1>INCLUDE</KEYWORD1>
\r
57 <!-- Program units and calling them -->
\r
58 <KEYWORD1>PROGRAM</KEYWORD1>
\r
59 <KEYWORD1>MODULE</KEYWORD1>
\r
60 <KEYWORD1>SUBROUTINE</KEYWORD1>
\r
61 <KEYWORD1>FUNCTION</KEYWORD1>
\r
62 <KEYWORD1>CONTAINS</KEYWORD1>
\r
63 <KEYWORD1>USE</KEYWORD1>
\r
64 <KEYWORD1>CALL</KEYWORD1>
\r
65 <KEYWORD1>RETURN</KEYWORD1>
\r
66 <!-- data types, declaration, and allocation keywords -->
\r
67 <KEYWORD1>IMPLICIT</KEYWORD1>
\r
68 <KEYWORD1>EXPLICIT</KEYWORD1>
\r
69 <KEYWORD1>NONE</KEYWORD1>
\r
70 <KEYWORD1>DATA</KEYWORD1>
\r
71 <KEYWORD1>PARAMETER</KEYWORD1>
\r
72 <KEYWORD1>ALLOCATE</KEYWORD1>
\r
73 <KEYWORD1>ALLOCATABLE</KEYWORD1>
\r
74 <KEYWORD1>ALLOCATED</KEYWORD1>
\r
75 <KEYWORD1>DEALLOCATE</KEYWORD1>
\r
76 <KEYWORD1>INTEGER</KEYWORD1>
\r
77 <KEYWORD1>REAL</KEYWORD1>
\r
78 <KEYWORD1>DOUBLE</KEYWORD1>
\r
79 <KEYWORD1>PRECISION</KEYWORD1>
\r
80 <KEYWORD1>COMPLEX</KEYWORD1>
\r
81 <KEYWORD1>LOGICAL</KEYWORD1>
\r
82 <KEYWORD1>CHARACTER</KEYWORD1>
\r
83 <KEYWORD1>DIMENSION</KEYWORD1>
\r
84 <KEYWORD1>KIND</KEYWORD1>
\r
85 <!-- FORTRAN Statements -->
\r
86 <KEYWORD1>CASE</KEYWORD1>
\r
87 <KEYWORD1>SELECT</KEYWORD1>
\r
88 <KEYWORD1>DEFAULT</KEYWORD1>
\r
89 <KEYWORD1>CONTINUE</KEYWORD1>
\r
90 <KEYWORD1>CYCLE</KEYWORD1>
\r
91 <KEYWORD1>DO</KEYWORD1>
\r
92 <KEYWORD1>WHILE</KEYWORD1>
\r
93 <KEYWORD1>ELSE</KEYWORD1>
\r
94 <KEYWORD1>IF</KEYWORD1>
\r
95 <KEYWORD1>ELSEIF</KEYWORD1>
\r
96 <KEYWORD1>THEN</KEYWORD1>
\r
97 <KEYWORD1>ELSEWHERE</KEYWORD1>
\r
98 <KEYWORD1>END</KEYWORD1>
\r
99 <KEYWORD1>ENDIF</KEYWORD1>
\r
100 <KEYWORD1>ENDDO</KEYWORD1>
\r
101 <KEYWORD1>FORALL</KEYWORD1>
\r
102 <KEYWORD1>WHERE</KEYWORD1>
\r
103 <KEYWORD1>EXIT</KEYWORD1>
\r
104 <KEYWORD1>GOTO</KEYWORD1>
\r
105 <KEYWORD1>PAUSE</KEYWORD1>
\r
106 <KEYWORD1>STOP</KEYWORD1>
\r
107 <!-- i/o keywords -->
\r
108 <KEYWORD1>BACKSPACE</KEYWORD1>
\r
109 <KEYWORD1>CLOSE</KEYWORD1>
\r
110 <KEYWORD1>ENDFILE</KEYWORD1>
\r
111 <KEYWORD1>INQUIRE</KEYWORD1>
\r
112 <KEYWORD1>OPEN</KEYWORD1>
\r
113 <KEYWORD1>PRINT</KEYWORD1>
\r
114 <KEYWORD1>READ</KEYWORD1>
\r
115 <KEYWORD1>REWIND</KEYWORD1>
\r
116 <KEYWORD1>WRITE</KEYWORD1>
\r
117 <KEYWORD1>FORMAT</KEYWORD1>
\r
118 <!-- Type conversion and utility functions -->
\r
119 <KEYWORD1>AIMAG</KEYWORD1>
\r
120 <KEYWORD1>AINT</KEYWORD1>
\r
121 <KEYWORD1>AMAX0</KEYWORD1>
\r
122 <KEYWORD1>AMIN0</KEYWORD1>
\r
123 <KEYWORD1>ANINT</KEYWORD1>
\r
124 <KEYWORD1>CEILING</KEYWORD1>
\r
125 <KEYWORD1>CMPLX</KEYWORD1>
\r
126 <KEYWORD1>CONJG</KEYWORD1>
\r
127 <KEYWORD1>DBLE</KEYWORD1>
\r
128 <KEYWORD1>DCMPLX</KEYWORD1>
\r
129 <KEYWORD1>DFLOAT</KEYWORD1>
\r
130 <KEYWORD1>DIM</KEYWORD1>
\r
131 <KEYWORD1>DPROD</KEYWORD1>
\r
132 <KEYWORD1>FLOAT</KEYWORD1>
\r
133 <KEYWORD1>FLOOR</KEYWORD1>
\r
134 <KEYWORD1>IFIX</KEYWORD1>
\r
135 <KEYWORD1>IMAG</KEYWORD1>
\r
136 <KEYWORD1>INT</KEYWORD1>
\r
137 <KEYWORD1>LOGICAL</KEYWORD1>
\r
138 <KEYWORD1>MODULO</KEYWORD1>
\r
139 <KEYWORD1>NINT</KEYWORD1>
\r
140 <KEYWORD1>REAL</KEYWORD1>
\r
141 <KEYWORD1>SIGN</KEYWORD1>
\r
142 <KEYWORD1>SNGL</KEYWORD1>
\r
143 <KEYWORD1>TRANSFER</KEYWORD1>
\r
144 <KEYWORD1>ZEXT</KEYWORD1>
\r
145 <!-- More Functions -->
\r
146 <KEYWORD1>ABS</KEYWORD1>
\r
147 <KEYWORD1>ACOS</KEYWORD1>
\r
148 <KEYWORD1>AIMAG</KEYWORD1>
\r
149 <KEYWORD1>AINT</KEYWORD1>
\r
150 <KEYWORD1>ALOG</KEYWORD1>
\r
151 <KEYWORD1>ALOG10</KEYWORD1>
\r
152 <KEYWORD1>AMAX0</KEYWORD1>
\r
153 <KEYWORD1>AMAX1</KEYWORD1>
\r
154 <KEYWORD1>AMIN0</KEYWORD1>
\r
155 <KEYWORD1>AMIN1</KEYWORD1>
\r
156 <KEYWORD1>AMOD</KEYWORD1>
\r
157 <KEYWORD1>ANINT</KEYWORD1>
\r
158 <KEYWORD1>ASIN</KEYWORD1>
\r
159 <KEYWORD1>ATAN</KEYWORD1>
\r
160 <KEYWORD1>ATAN2</KEYWORD1>
\r
161 <KEYWORD1>CABS</KEYWORD1>
\r
162 <KEYWORD1>CCOS</KEYWORD1>
\r
163 <KEYWORD1>CHAR</KEYWORD1>
\r
164 <KEYWORD1>CLOG</KEYWORD1>
\r
165 <KEYWORD1>CMPLX</KEYWORD1>
\r
166 <KEYWORD1>CONJG</KEYWORD1>
\r
167 <KEYWORD1>COS</KEYWORD1>
\r
168 <KEYWORD1>COSH</KEYWORD1>
\r
169 <KEYWORD1>CSIN</KEYWORD1>
\r
170 <KEYWORD1>CSQRT</KEYWORD1>
\r
171 <KEYWORD1>DABS</KEYWORD1>
\r
172 <KEYWORD1>DACOS</KEYWORD1>
\r
173 <KEYWORD1>DASIN</KEYWORD1>
\r
174 <KEYWORD1>DATAN</KEYWORD1>
\r
175 <KEYWORD1>DATAN2</KEYWORD1>
\r
176 <KEYWORD1>DBLE</KEYWORD1>
\r
177 <KEYWORD1>DCOS</KEYWORD1>
\r
178 <KEYWORD1>DCOSH</KEYWORD1>
\r
179 <KEYWORD1>DDIM</KEYWORD1>
\r
180 <KEYWORD1>DEXP</KEYWORD1>
\r
181 <KEYWORD1>DIM</KEYWORD1>
\r
182 <KEYWORD1>DINT</KEYWORD1>
\r
183 <KEYWORD1>DLOG</KEYWORD1>
\r
184 <KEYWORD1>DLOG10</KEYWORD1>
\r
185 <KEYWORD1>DMAX1</KEYWORD1>
\r
186 <KEYWORD1>DMIN1</KEYWORD1>
\r
187 <KEYWORD1>DMOD</KEYWORD1>
\r
188 <KEYWORD1>DNINT</KEYWORD1>
\r
189 <KEYWORD1>DPROD</KEYWORD1>
\r
190 <KEYWORD1>DREAL</KEYWORD1>
\r
191 <KEYWORD1>DSIGN</KEYWORD1>
\r
192 <KEYWORD1>DSIN</KEYWORD1>
\r
193 <KEYWORD1>DSINH</KEYWORD1>
\r
194 <KEYWORD1>DSQRT</KEYWORD1>
\r
195 <KEYWORD1>DTAN</KEYWORD1>
\r
196 <KEYWORD1>DTANH</KEYWORD1>
\r
197 <KEYWORD1>EXP</KEYWORD1>
\r
198 <KEYWORD1>FLOAT</KEYWORD1>
\r
199 <KEYWORD1>IABS</KEYWORD1>
\r
200 <KEYWORD1>ICHAR</KEYWORD1>
\r
201 <KEYWORD1>IDIM</KEYWORD1>
\r
202 <KEYWORD1>IDINT</KEYWORD1>
\r
203 <KEYWORD1>IDNINT</KEYWORD1>
\r
204 <KEYWORD1>IFIX</KEYWORD1>
\r
205 <KEYWORD1>INDEX</KEYWORD1>
\r
206 <KEYWORD1>INT</KEYWORD1>
\r
207 <KEYWORD1>ISIGN</KEYWORD1>
\r
208 <KEYWORD1>LEN</KEYWORD1>
\r
209 <KEYWORD1>LGE</KEYWORD1>
\r
210 <KEYWORD1>LGT</KEYWORD1>
\r
211 <KEYWORD1>LLE</KEYWORD1>
\r
212 <KEYWORD1>LLT</KEYWORD1>
\r
213 <KEYWORD1>LOG</KEYWORD1>
\r
214 <KEYWORD1>LOG10</KEYWORD1>
\r
215 <KEYWORD1>MAX</KEYWORD1>
\r
216 <KEYWORD1>MAX0</KEYWORD1>
\r
217 <KEYWORD1>MAX1</KEYWORD1>
\r
218 <KEYWORD1>MIN</KEYWORD1>
\r
219 <KEYWORD1>MIN0</KEYWORD1>
\r
220 <KEYWORD1>MIN1</KEYWORD1>
\r
221 <KEYWORD1>MOD</KEYWORD1>
\r
222 <KEYWORD1>NINT</KEYWORD1>
\r
223 <KEYWORD1>REAL</KEYWORD1>
\r
224 <KEYWORD1>SIGN</KEYWORD1>
\r
225 <KEYWORD1>SIN</KEYWORD1>
\r
226 <KEYWORD1>SINH</KEYWORD1>
\r
227 <KEYWORD1>SNGL</KEYWORD1>
\r
228 <KEYWORD1>SQRT</KEYWORD1>
\r
229 <KEYWORD1>TAN</KEYWORD1>
\r
230 <KEYWORD1>TANH</KEYWORD1>
\r
231 <!-- logical values -->
\r
232 <KEYWORD1>.false.</KEYWORD1>
\r
233 <KEYWORD1>.true.</KEYWORD1>
\r