beginCommand endCommand beginInstruction endInstruction beginVariable endVariable firstString " secondString ' firstSingleLineComment ! secondSingleLineComment beginFirstMultiLineComment endFirstMultiLineComment beginSecondMultiLineComment endSecondMultiLineComment functionDefinition ^\s*(function|subroutine)\s+\w\(.*\) removeFromFunction function keywordsCaseSensitive recolourKeywordIfAlreadyColoured keywords common continue block data date function include parameter implicit none equivalence if then else elseif endif go to goto program subroutine end call while cycle do enddo for break pause return stop access backspace close inquire open print read rewind write format abs acos aimag aint alog alog10 amax0 amax1 amin0 amin1 amod anint aprime asin atan atan2 acos cabs cexp clog conjg cos cosh ccos csin csqrt dabs dacos dasin datan datan2 dconjg dcos dcosh dfloat ddmim dexp dim dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh exp iabs idim index isign len log log10 max max0 max1 min min0 min1 mod rand sign sin sinh sqrt tan tanh character complex double precision real real*8 integer logical dimension external intrinsic save char cmplx dble dcmplx float ichar idint ifix int sngl