# ---------------------------------------------------
# f90.syntax
# FORTRAN 90/95 language freeform syntax highlighting template.
# Provides syntax highlighting rules for the
# FORTRAN programming language.
#
# Based on FORTRAN77 version fortran.syntax
# Author: John Theal
# Email: jtheal@renegadelinuxbox.dhs.org
# December 7, 1999
# ---------------------------------------------------
# Heavily modified by Paul Sheer <psheer@obsidian.co.za>.
# Adjusted to Fortran 90 by Norbert Nemec <Norbert@Nemec-online.de>.
caseinsensitive
context default
# keywords at the beginning of line
keyword linestart \{0123456789\}\{0123456789\}\{0123456789\}\{0123456789\}\{0123456789\} color196
keyword linestart \{0123456789\}\{0123456789\}\{0123456789\}\{0123456789\} color196
keyword linestart \{0123456789\}\{0123456789\}\{0123456789\} color196
keyword linestart \{0123456789\}\{0123456789\} color196
keyword linestart \{0123456789\} color196
# structure
keyword whole ASSIGNMENT color243 color232
keyword whole CONTAINS color243 color232
keyword whole END color243 color232
keyword whole FUNCTION color243 color232
keyword whole INTERFACE color243 color232
keyword whole INCLUDE color243 color232
keyword whole MODULE color243 color232
keyword whole OPERATOR color243 color232
keyword whole PROGRAM color243 color232
keyword whole SUBROUTINE color243 color232
# boolean and logical expressions / operators
keyword .and. color196/orange
keyword .eq. color196/orange
keyword .eqv. color196/orange
keyword .false. color196/orange
keyword .ge. color196/orange
keyword .gt. color196/orange
keyword .le. color196/orange
keyword .lt. color196/orange
keyword .ne. color196/orange
keyword .neqv. color196/orange
keyword .not. color196/orange
keyword .or. color196/orange
keyword .true. color196/orange
keyword whole lge color196/orange
keyword whole lgt color196/orange
keyword whole lle color196/orange
keyword whole llt color196/orange
# declarations
keyword whole ALLOCATABLE color17
keyword whole BLOCK color17
keyword whole CHARACTER color17
keyword whole COMMON color17
keyword whole COMPLEX color17
keyword whole DATA color17
keyword whole DIMENSION color17
keyword whole DOUBLE color17
keyword whole ELEMENTAL color17
keyword whole EQUIVALENCE color17
keyword whole EXTERNAL color17
keyword whole FORMAT color17
keyword whole IMPLICIT color17
keyword whole INTEGER color17
keyword whole INTENT color17
keyword whole INTRINSIC color17
keyword whole LOGICAL color17
keyword whole NAMELIST color17
keyword whole NONE color17
keyword whole ONLY color17
keyword whole OPTIONAL color17
keyword whole PARAMETER color17
keyword whole POINTER color17
keyword whole PRECISION color17
keyword whole PRIVATE color17
keyword whole PUBLIC color17
keyword whole PURE color17
keyword whole REAL color17
keyword whole SAVE color17
keyword whole TYPE color17
keyword whole USE color17
# general programming syntax
keyword whole allocate color88
keyword whole assign color88
keyword whole call color88
keyword whole case color88
keyword whole deallocate color88
keyword whole default color88
keyword whole continue color88
keyword whole cycle color88
keyword whole do color88
keyword whole else color88
keyword whole elseif color88
keyword whole elsewhere color88
keyword whole end color88
keyword whole enddo color88
keyword whole endif color88
keyword whole exit color88
keyword whole for color88
keyword whole forall color88
keyword whole goto color88
keyword whole if color88
keyword whole nullify color88
keyword whole pause color88
keyword whole return color88
keyword whole select color88
keyword whole stop color88
keyword whole target color88
keyword whole then color88
keyword whole to color88
keyword whole where color88
keyword whole while color88
# headers
keyword whole entry color88
# I/O functions
# may have optional equal signs after them: 'keyword ='
keyword whole access color90
keyword whole backspace color90
keyword whole blank color90
keyword whole close color90
keyword whole direct color90
keyword whole endfile color90
keyword whole err color90
keyword whole exist color90
keyword whole file color90
keyword whole fmt color90
keyword whole form color90
keyword whole formatted color90
keyword whole inquire color90
keyword whole iostat color90
keyword whole name color90
keyword whole named color90
keyword whole nextrec color90
keyword whole number color90
keyword whole open color90
keyword whole opened color90
keyword whole print color90
keyword whole read color90
keyword whole rec color90
keyword whole recl color90
keyword whole rewind color90
keyword whole sequential color90
keyword whole status color90
keyword whole unformatted color90
keyword whole unit color90
keyword whole write color90
# mathematical functions
keyword whole abs color19
keyword whole achar color19
keyword whole acos color19
keyword whole aimag color19
keyword whole aint color19
keyword whole alog color19
keyword whole alog10 color19
keyword whole amax0 color19
keyword whole amax1 color19
keyword whole amin0 color19
keyword whole amin1 color19
keyword whole amod color19
keyword whole anint color19
keyword whole aprime color19
keyword whole asin color19
keyword whole atan color19
keyword whole atan2 color19
keyword whole acos color19
keyword whole cabs color19
keyword whole ceiling color19
keyword whole cexp color19
keyword whole char color19
keyword whole clog color19
keyword whole cmplx color19
keyword whole conjg color19
keyword whole cos color19
keyword whole cosh color19
keyword whole ccos color19
keyword whole csin color19
keyword whole csqrt color19
keyword whole dabs color19
keyword whole dacos color19
keyword whole dasin color19
keyword whole datan color19
keyword whole datan2 color19
keyword whole dble color19
keyword whole dcos color19
keyword whole dcosh color19
keyword whole dfloat color19
keyword whole ddmim color19
keyword whole dexp color19
keyword whole dim color19
keyword whole dint color19
keyword whole dlog color19
keyword whole dlog10 color19
keyword whole dmax1 color19
keyword whole dmin1 color19
keyword whole dmod color19
keyword whole dnint color19
keyword whole dsign color19
keyword whole dsin color19
keyword whole dsinh color19
keyword whole dsqrt color19
keyword whole dtan color19
keyword whole dtanh color19
keyword whole exp color19
keyword whole float color19
keyword whole floor color19
keyword whole iabs color19
keyword whole iachar color19
keyword whole ichar color19
keyword whole idim color19
keyword whole idint color19
keyword whole ifix color19
keyword whole index color19
keyword whole int color19
keyword whole isign color19
keyword whole len color19
keyword whole log color19
keyword whole log10 color19
keyword whole matmul color19
keyword whole max color19
keyword whole max0 color19
keyword whole max1 color19
keyword whole maxval color19
keyword whole min color19
keyword whole min0 color19
keyword whole min1 color19
keyword whole minval color19
keyword whole mod color19
keyword whole nint color19
keyword whole product color19
keyword whole rand color19
keyword whole random_number color19
keyword whole random_seed color19
keyword whole sign color19
keyword whole sin color19
keyword whole sinh color19
keyword whole sngl color19
keyword whole sqrt color19
keyword whole sum color19
keyword whole tan color19
keyword whole tanh color19
keyword whole transpose color19
# operators and syntax elements
keyword ( color17
keyword ) color17
keyword : color17
keyword , color17
keyword ; color17
keyword \+ color19
keyword - color19
keyword \* color19
keyword / color19
keyword = color19
keyword < color19
keyword > color19
# comments and quotes
keyword '*' color28
keyword "*" color28
#context &\n \n color232 color26
keyword &\n color232 color26
context format( ) color28
context ! \n color30
spellcheck