Index: src/sdk/resources/lexers/lexer_fortran.sample
===================================================================
--- src/sdk/resources/lexers/lexer_fortran.sample	(revision 0)
+++ src/sdk/resources/lexers/lexer_fortran.sample	(revision 0)
@@ -0,0 +1,44 @@
+MODULE NUMERICAL
+USE DECLARATIONS
+CONTAINS
+
+SUBROUTINE ELGS (A,N,INDX)
+! Subroutine to perform the partial-pivoting Gaussian elimination.
+! A(N,N) is the original matrix in the input and transformed matrix
+! plus the pivoting element ratios below the diagonal in the output.
+! INDX(N) records the pivoting order.  Copyright (c) Tao Pang 2001.
+  IMPLICIT NONE
+  INTEGER, INTENT (IN) :: N
+  INTEGER :: I,J,K,ITMP
+  INTEGER, INTENT (OUT), DIMENSION (N) :: INDX
+  REAL :: C1,PI,PI1,PJ
+  REAL, INTENT (INOUT), DIMENSION (N,N) :: A
+  REAL, DIMENSION (N) :: C
+! Initialize the index
+  DO I = 1, N
+    INDX(I) = I
+  END DO
+! Find the rescaling factors, one from each row
+  DO I = 1, N
+    C1= 0.0
+    DO J = 1, N
+      C1 = AMAX1(C1,ABS(A(I,J)))
+    END DO
+    C(I) = C1
+  END DO
+! Search the pivoting (largest) element from each column
+  DO J = 1, N-1
+    PI1 = 0.0
+    DO I = J, N
+      PI = ABS(A(INDX(I),J))/C(INDX(I))
+      IF (PI.GT.PI1) THEN
+        PI1 = PI
+        K   = I
+      ENDIF
+    END DO
+! Search the pivoting (largest) element from each column
+! Interchange the rows via INDX(N) to record pivoting order
+! etc ....
+  END DO
+END SUBROUTINE ELGS
+END MODULE NUMERICAL
Index: src/sdk/resources/lexers/lexer_fortran.xml
===================================================================
--- src/sdk/resources/lexers/lexer_fortran.xml	(revision 0)
+++ src/sdk/resources/lexers/lexer_fortran.xml	(revision 0)
@@ -0,0 +1,139 @@
+<?xml version="1.0"?>
+<!DOCTYPE CodeBlocks_lexer_properties>
+<CodeBlocks_lexer_properties>
+		<Lexer name="Fortran"
+				index="36"
+				filemasks="*.f90,*.f95,*.f2k">
+				<Style name="Default"
+						index="0"
+						fg="0,0,0"
+						bg="255,255,255"
+						bold="0"
+						italics="0"
+						underlined="0"/>
+				<Style name="Comment"
+						index="1"
+						fg="160,160,160"/>
+				<Style name="Number"
+						index="2"
+						fg="240,0,240"/>
+				<Style name="Identifier"
+						index="7"
+						fg="240,0,240"/>
+				<Style name="Keyword"
+						index="8"
+						fg="0,0,160"
+						bold="1"/>
+				<Style name="User keyword"
+						index="9,10"
+						fg="0,160,0"
+						bold="1"/>
+				<Style name="String"
+						index="3,4,5"
+						fg="0,0,255"/>
+				<Style name="Label"
+						index="13"
+						fg="0,0,255"/>
+				<Style name="Continuation"
+						index="14"
+						fg="0,0,255"/>
+				<Style name="Preprocessor"
+						index="11"
+						fg="0,160,0"/>
+				<Style name="Operator"
+						index="6,12"
+						fg="255,0,0"/>
+				<Style name="Selection"
+						index="-99"
+						bg="192,192,192"/>
+				<Style name="Active line"
+						index="-98"
+						bg="255,255,160"/>
+				<Style name="Breakpoint line"
+						index="-2"
+						bg="255,160,160"/>
+				<Style name="Debugger active line"
+						index="-3"
+						bg="160,160,255"/>
+				<Style name="Compiler error line"
+						index="-4"
+						bg="255,128,0"/>
+				<Style name="Matching brace highlight"
+						index="34"
+						fg="255,0,0"
+						bold="1"
+						underlined="1"/>
+				<Style name="No matching brace highlight"
+						index="35"
+						bg="255,0,0"/>
+				<Keywords>
+                        <!-- Primary keywords and input/output-->
+                        <Set index="0"
+                            value="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"/>
+				</Keywords>
+				<Keywords>
+                        <!-- Intrinsic and Extended Functions-->
+                        <Set index="1"
+                            value="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"/>
+				</Keywords>
+				<Keywords>
+                        <!-- Non Standard, Extended and User-Defined -->
+                        <Set index="2"
+                            value="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"/>
+				</Keywords>
+				<SampleCode value="lexer_fortran.sample"
+						breakpoint_line="20"
+						debug_line="22"
+						error_line="23"/>
+		</Lexer>
+</CodeBlocks_lexer_properties>
