<?xml version="1.0" encoding="UTF-8"?>
<Scheme>
	<keyword-classes><keyword-class name="fortran">access action advance allocatable 
	allocate apostrophe assign assignment associate asynchronous backspace bind blank 
	blockdata call case character class close common complex contains continue cycle 
	data deallocate decimal delim default dimension direct do dowhile double 
	doubleprecision else elseif elsewhere encoding end endassociate endblockdata enddo 
	endfile endforall endfunction endif endinterface endmodule endprogram endselect 
	endsubroutine endtype endwhere entry eor equivalence err errmsg exist exit external 
	file flush fmt forall form format formatted function go goto id if implicit in 
	include inout integer inquire intent interface intrinsic iomsg iolength iostat kind 
	len logical module name named namelist nextrec nml none nullify number only open 
	opened operator optional out pad parameter pass pause pending pointer pos position 
	precision print private program protected public quote read readwrite real rec recl 
	recursive result return rewind save select selectcase selecttype sequential sign 
	size stat status stop stream subroutine target then to type unformatted unit use 
	value volatile wait where while write</keyword-class>
	<!-- keywords2 is for highlighting intrinsic and extended functions -->
	<keyword-class name="fortran2">abs achar acos acosd adjustl adjustr 
aimag aimax0 aimin0 aint ajmax0 ajmin0 akmax0 akmin0 all allocated alog 
alog10 amax0 amax1 amin0 amin1 amod anint any asin asind associated 
atan atan2 atan2d atand bitest bitl bitlr bitrl bjtest bit_size bktest break 
btest cabs ccos cdabs cdcos cdexp cdlog cdsin cdsqrt ceiling cexp char 
clog cmplx conjg cos cosd cosh count cpu_time cshift csin csqrt dabs 
dacos dacosd dasin dasind datan datan2 datan2d datand date 
date_and_time dble dcmplx dconjg dcos dcosd dcosh dcotan ddim dexp 
dfloat dflotk dfloti dflotj digits dim dimag dint dlog dlog10 dmax1 dmin1 
dmod dnint dot_product dprod dreal dsign dsin dsind dsinh dsqrt dtan dtand 
dtanh eoshift epsilon errsns exp exponent float floati floatj floatk floor fraction 
free huge iabs iachar iand ibclr ibits ibset ichar idate idim idint idnint ieor ifix 
iiabs iiand iibclr iibits iibset iidim iidint iidnnt iieor iifix iint iior iiqint iiqnnt iishft 
iishftc iisign ilen imax0 imax1 imin0 imin1 imod index inint inot int int1 int2 int4 
int8 iqint iqnint ior ishft ishftc isign isnan izext jiand jibclr jibits jibset jidim jidint 
jidnnt jieor jifix jint jior jiqint jiqnnt jishft jishftc jisign jmax0 jmax1 jmin0 jmin1 
jmod jnint jnot jzext kiabs kiand kibclr kibits kibset kidim kidint kidnnt kieor kifix 
kind kint kior kishft kishftc kisign kmax0 kmax1 kmin0 kmin1 kmod knint knot kzext 
lbound leadz len len_trim lenlge lge lgt lle llt log log10 logical lshift malloc matmul 
max max0 max1 maxexponent maxloc maxval merge min min0 min1 minexponent minloc 
minval mod modulo mvbits nearest nint not nworkers number_of_processors pack popcnt 
poppar precision present product radix random random_number random_seed range real 
repeat reshape rrspacing rshift scale scan secnds selected_int_kind 
selected_real_kind set_exponent shape sign sin sind sinh size sizeof sngl snglq spacing 
spread sqrt sum system_clock tan tand tanh tiny transfer transpose trim ubound unpack verify</keyword-class>
<!-- keywords3 are nonstardard, extended and user defined functions -->
<keyword-class name="fortran3">cdabs cdcos cdexp cdlog cdsin cdsqrt cotan cotand 
dcmplx dconjg dcotan dcotand decode dimag dll_export dll_import doublecomplex dreal 
dvchk encode find flen flush getarg getcharqq getcl getdat getenv gettim hfix ibchng 
identifier imag int1 int2 int4 intc intrup invalop iostat_msg isha ishc ishl jfix 
lacfar locking locnear map nargs nbreak ndperr ndpexc offset ovefl peekcharqq precfill 
prompt qabs qacos qacosd qasin qasind qatan qatand qatan2 qcmplx qconjg qcos qcosd 
qcosh qdim qexp qext qextd qfloat qimag qlog qlog10 qmax1 qmin1 qmod qreal qsign qsin 
qsind qsinh qsqrt qtan qtand qtanh ran rand randu rewrite segment setdat settim system 
timer undfl unlock union val virtual volatile zabs zcos zexp zlog zsin zsqrt</keyword-class>
</keyword-classes>
	<base-language name="fortranbase">
		<use-styles>
			<style name="Default" key="32" />
			<style name="Whitespace" key="0" />
			<style name="Comment" key="1" class="comment" />
			<style name="Number" key="2" class="number"/>
			<style name="Single Quote String" key="3" class="string"/>
			<style name="Double Quote String" key="4" class="string"/>
			<style name="End of line string" key="5" class="unclosedstring"/>
			
			<style name="Operator" key="6" class="operator"/>
			<style name="Identifier" key="7" class="identifier"/>
			<style name="Keywords" key="8" class="keyword"/>
			<style name="Keywords 2" key="9" class="keyword" fore="B00040"/>
			<style name="Keywords 3" key="10" class="keyword" fore="B04080"/>
			<style name="Preprocessor" key="11" class="preprocessor"/>
			<style name=".NAME. format operators" key="12" class="operator" bold="true"/>
			<style name="Labels" key="13" fore="E0C0E0"/>
			<style name="Continuation" key="14" fore="000000" back="F0E080" />
			<style name="User defined" key="15" fore="E0F0FF"/>
		</use-styles>
	</base-language>
	<language name="fortran77" base="fortranbase" title="Fortran 77" folding="true">
		<lexer name="f77"/>
		<comments line="!~" />
		<use-keywords>
			<keyword key="0" name="Keywords" class="fortran" />
			<keyword key="1" name="Keywords 2" class="fortran2" />
			<keyword key="2" name="Keywords 3" class="fortran3" />
		</use-keywords>
	</language>
	<language name="fortran" base="fortranbase" title="Fortran 95" folding="true">
		<lexer name="fortran" />
		<comments line="!~" />
		<use-keywords>
			<keyword key="0" name="Keywords" class="fortran" />
			<keyword key="1" name="Keywords 2" class="fortran2" />
			<keyword key="2" name="Keywords 3" class="fortran3" />
		</use-keywords>
	</language>
</Scheme>