<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<head>
<style>.content {
padding: 20px;
height: 100%;
width: 944px;
margin-left: auto;
margin-right: auto;
}
.fold {
width: 20px;
float: left;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.number {
width: 45px;
float: left;
margin-right: 10px;
text-align: right;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.line {
}
.content {
font-family: "Monospace";
font-size: 1em;
background: #3f3f3f;
color: White;
width: 944px;
padding: 20px;
height: 100%;
margin-left: auto;
margin-right: auto;
}
font.Alert {
color: Yellow;
font-weight: bold;
}
font.Annotation {
color: Yellow;
font-style: italic;
}
font.Attribute {
color: LightPink;
}
font.BaseN {
color: Gold;
}
font.BuiltIn {
color: Coral;
}
font.Char {
color: Cyan;
}
font.Comment {
color: Beige;
font-style: italic;
}
font.CommentVar {
color: LightBlue;
font-style: italic;
}
font.Constant {
color: White;
font-weight: bold;
}
font.ControlFlow {
color: DeepPink;
}
font.DataType {
color: CadetBlue;
}
font.DecVal {
color: MediumPurple;
font-weight: bold;
}
font.Documentation {
color: Gold;
font-style: italic;
}
font.Error {
color: Red;
font-weight: bold;
}
font.Extension {
color: DarkGray;
font-weight: bold;
}
font.Float {
color: DarkViolet;
font-weight: bold;
}
font.Function {
color: RosyBrown;
}
font.Import {
color: PaleVioletRed;
}
font.Information {
color: LightGreen;
font-style: italic;
}
font.Keyword {
color: LightGreen;
font-weight: bold;
}
font.Normal {
color: White;
}
font.Operator {
color: Magenta;
}
font.Others {
color: GreenYellow;
}
font.Preprocessor {
color: DarkSeaGreen ;
font-weight: bold;
}
font.RegionMarker {
color: Plum;
}
font.SpecialChar {
color: Plum;
font-weight: bold;
}
font.SpecialString {
color: LightBlue;
}
font.String {
color: MediumAquaMarine;
}
font.Variable {
color: Turquoise;
font-weight: bold;
}
font.VerbatimString {
color: LightSkyBlue;
}
font.Warning {
color: Brown;
font-weight: bold;
}
</style>
<title>Kamelon output</title>
</head>
<body>
<div class="content">
<div id="1" class="line"><font class="Comment">! This file is an example to test the syntax highlighting file F.xml</font></br></div>
<div id="2" class="line"><font class="Comment">! (for fortran 90 and F)</font></br></div>
<div id="3" class="line"></br></div>
<div id="4" class="line"><font class="Comment">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</font></br></div>
<div id="5" class="line"><font class="Comment">! THIS IS AN EXAMPLE OF A MODULE !</font></br></div>
<div id="6" class="line"><font class="Comment">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</font></br></div>
<div id="7" class="line"><font class="Keyword">module</font><font class="Normal"> module_example</font></br></div>
<div id="8" class="line"></br></div>
<div id="9" class="line"><font class="Normal"> </font><font class="Comment">! use 'implicit none' when you want all variables to be declared </font></br></div>
<div id="10" class="line"><font class="Normal"> </font><font class="Keyword">implicit</font><font class="Normal"> </font><font class="Keyword">none</font></br></div>
<div id="11" class="line"></br></div>
<div id="12" class="line"><font class="Comment">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</font></br></div>
<div id="13" class="line"><font class="Comment">! PUBLICS AND PRIVATES</font></br></div>
<div id="14" class="line"></br></div>
<div id="15" class="line"><font class="Normal"> </font><font class="Comment">! In fortran 90 you can define your own operator</font></br></div>
<div id="16" class="line"><font class="Normal"> </font><font class="DataType">public</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> </font><font class="Keyword">operator</font><font class="Normal">(</font><font class="Operator">.norm.</font><font class="Normal">)</font></br></div>
<div id="17" class="line"><font class="Normal"> </font><font class="DataType">public</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> </font><font class="Keyword">operator</font><font class="Normal">(</font><font class="Keyword">+</font><font class="Normal">) </font><font class="Comment">! <-- you can also overload the usual operators</font></br></div>
<div id="18" class="line"><font class="Normal"> </font><font class="DataType">public</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> factorial</font></br></div>
<div id="19" class="line"><font class="Normal"> </font><font class="DataType">public</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> example_fn</font></br></div>
<div id="20" class="line"></br></div>
<div id="21" class="line"><font class="Normal"> </font><font class="DataType">private</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> point3d_add</font></br></div>
<div id="22" class="line"><font class="Normal"> </font><font class="DataType">private</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> point3d_norm</font></br></div>
<div id="23" class="line"></br></div>
<div id="24" class="line"><font class="Comment">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</font></br></div>
<div id="25" class="line"><font class="Comment">! USER-DEFINED TYPES...</font></br></div>
<div id="26" class="line"></br></div>
<div id="27" class="line"><font class="Normal"> </font><font class="Comment">! This is a definition to use in declarations of real variables,</font></br></div>
<div id="28" class="line"><font class="Normal"> </font><font class="Comment">! parameters, etc.</font></br></div>
<div id="29" class="line"><font class="Normal"> </font><font class="DataType">integer</font><font class="Normal">, </font><font class="DataType">parameter</font><font class="Normal">, </font><font class="DataType">public</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> kr </font><font class="Keyword">=</font><font class="Normal"> </font><font class="Function">selected_real_kind</font><font class="Normal">(</font><font class="DecVal">10</font><font class="Normal">)</font></br></div>
<div id="30" class="line"></br></div>
<div id="31" class="line"><font class="Normal"> </font><font class="Comment">! This is a user-defined type</font></br></div>
<div id="32" class="line"><font class="Normal"> </font><font class="DataType">type</font><font class="Normal">, </font><font class="DataType">public</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> point3d </font></br></div>
<div id="33" class="line"><font class="DataType"> real(kind=kr)</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> x, y, z</font></br></div>
<div id="34" class="line"><font class="Normal"> </font><font class="DataType">end type</font><font class="Normal"> point3d</font></br></div>
<div id="35" class="line"></br></div>
<div id="36" class="line"><font class="Normal"> </font><font class="Comment">! This type is useless: it is only an example of type definition!</font></br></div>
<div id="37" class="line"><font class="Normal"> </font><font class="DataType">type</font><font class="Normal">, </font><font class="DataType">public</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> example_type</font></br></div>
<div id="38" class="line"><font class="Normal"> </font><font class="DataType">complex(kind=kr)</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> c </font><font class="Comment">! <-- a complex number (two reals of kind kr)!</font></br></div>
<div id="39" class="line"><font class="DataType"> real</font><font class="Normal">, </font><font class="DataType">dimension(-10:10)</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> </font><font class="Keyword">&</font><font class="Normal"> </font><font class="Comment">! <-- this line does not end here!</font></br></div>
<div id="40" class="line"><font class="Normal"> r1, r2 </font><font class="Comment">! <-- this is the final part of the previous line</font></br></div>
<div id="41" class="line"><font class="DataType"> real</font><font class="Normal">, </font><font class="DataType">pointer</font><font class="Normal">, </font><font class="DataType">dimension(:)</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> pointer_to_array_of_real</font></br></div>
<div id="42" class="line"><font class="DataType"> real</font><font class="Normal">, </font><font class="DataType">dimension(:)</font><font class="Normal">, </font><font class="DataType">pointer</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> array_of_pointer_to_real</font></br></div>
<div id="43" class="line"><font class="Normal"> </font><font class="DataType">end type</font><font class="Normal"> example_type</font></br></div>
<div id="44" class="line"><font class="Normal"> </font></br></div>
<div id="45" class="line"><font class="Comment">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</font></br></div>
<div id="46" class="line"><font class="Comment">! INTERFACES...</font></br></div>
<div id="47" class="line"></br></div>
<div id="48" class="line"><font class="Normal"> </font><font class="Comment">! Interface for the norm of a 3-D vector</font></br></div>
<div id="49" class="line"><font class="Normal"> </font><font class="Keyword">interface</font><font class="Normal"> </font><font class="Keyword">operator</font><font class="Normal">(</font><font class="Operator">.norm.</font><font class="Normal">)</font></br></div>
<div id="50" class="line"><font class="Normal"> </font><font class="Keyword">module procedure</font><font class="Normal"> point3d_norm</font></br></div>
<div id="51" class="line"><font class="Normal"> </font><font class="Keyword">end interface</font></br></div>
<div id="52" class="line"></br></div>
<div id="53" class="line"><font class="Normal"> </font><font class="Comment">! Interface for the operator '+'</font></br></div>
<div id="54" class="line"><font class="Normal"> </font><font class="Keyword">interface</font><font class="Normal"> </font><font class="Keyword">operator</font><font class="Normal">(</font><font class="Keyword">+</font><font class="Normal">)</font></br></div>
<div id="55" class="line"><font class="Normal"> </font><font class="Keyword">module procedure</font><font class="Normal"> point3d_add</font></br></div>
<div id="56" class="line"><font class="Normal"> </font><font class="Keyword">end interface</font></br></div>
<div id="57" class="line"></br></div>
<div id="58" class="line"><font class="Comment">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</font></br></div>
<div id="59" class="line"><font class="Comment">! SOME DECLARATIONS...</font></br></div>
<div id="60" class="line"></br></div>
<div id="61" class="line"><font class="Normal"> </font><font class="Comment">! A real number can be declared with the following line:</font></br></div>
<div id="62" class="line"><font class="DataType"> real(kind=kr)</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> real_var1</font></br></div>
<div id="63" class="line"><font class="Normal"> </font><font class="Comment">! But if you are not interested on the precision of floating point numbers,</font></br></div>
<div id="64" class="line"><font class="Normal"> </font><font class="Comment">! you can use simply:</font></br></div>
<div id="65" class="line"><font class="DataType"> real</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> real_var2</font></br></div>
<div id="66" class="line"></br></div>
<div id="67" class="line"><font class="Normal"> </font><font class="Comment">! An array can be declared in two ways:</font></br></div>
<div id="68" class="line"><font class="DataType"> real(kind=kr)</font><font class="Normal">, </font><font class="DataType">dimension(1:10, -4:5)</font><font class="Normal">, </font><font class="DataType">private</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> a, b, c</font></br></div>
<div id="69" class="line"><font class="DataType"> real(kind=kr)</font><font class="Normal">, </font><font class="DataType">private</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> d(</font><font class="DecVal">1</font><font class="Normal">:</font><font class="DecVal">10</font><font class="Normal">, </font><font class="Keyword">-</font><font class="DecVal">4</font><font class="Normal">:</font><font class="DecVal">5</font><font class="Normal">)</font></br></div>
<div id="70" class="line"></br></div>
<div id="71" class="line"><font class="Normal"> </font><font class="Comment">! This is a string with fixed lenght</font></br></div>
<div id="72" class="line"><font class="Normal"> </font><font class="DataType">character(len=10)</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> str_var</font></br></div>
<div id="73" class="line"></br></div>
<div id="74" class="line"><font class="Normal"> </font><font class="Comment">! This is an allocatable array, which can be a target of a pointer</font></br></div>
<div id="75" class="line"><font class="Normal"> </font><font class="DataType">type(example_type)</font><font class="Normal">, </font><font class="DataType">private</font><font class="Normal">, </font><font class="DataType">dimension(:)</font><font class="Normal">, </font><font class="DataType">allocatable</font><font class="Normal">, </font><font class="DataType">target</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> </font><font class="Keyword">&</font></br></div>
<div id="76" class="line"><font class="Normal"> many_examples</font></br></div>
<div id="77" class="line"></br></div>
<div id="78" class="line"><font class="Comment">! Fortran 90 hasn't got its own preprocessor, it uses the C preprocessor!</font></br></div>
<div id="79" class="line"><font class="Others">#ifdef XXX</font></br></div>
<div id="80" class="line"><font class="Comment">c <-- this is a comment in the old fortran 77 style (fixed form)</font></br></div>
<div id="81" class="line"><font class="Comment">c This is a free form file, so we shouldn't use this kind of comments!</font></br></div>
<div id="82" class="line"><font class="Comment">c But fortran 90 still understands fixed form, when parsing sources with</font></br></div>
<div id="83" class="line"><font class="Comment">c the *.f extension.</font></br></div>
<div id="84" class="line"><font class="Normal"> c </font><font class="Comment">! <-- this 'c' shouldn't be highlighted as a comment!</font></br></div>
<div id="85" class="line"><font class="Others">#endif</font></br></div>
<div id="86" class="line"></br></div>
<div id="87" class="line"><font class="Comment">contains</font></br></div>
<div id="88" class="line"></br></div>
<div id="89" class="line"></br></div>
<div id="90" class="line"><font class="Normal"> </font><font class="Comment">! The sum of two points</font></br></div>
<div id="91" class="line"><font class="Normal"> </font><font class="Keyword">pure</font><font class="Normal"> </font><font class="Keyword">function</font><font class="Normal"> point3d_add(a, b) </font><font class="Keyword">result</font><font class="Normal">(rs)</font></br></div>
<div id="92" class="line"><font class="Normal"> </font><font class="DataType">type(point3d)</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> rs</font></br></div>
<div id="93" class="line"><font class="Normal"> </font><font class="DataType">type(point3d)</font><font class="Normal">, </font><font class="DataType">intent(in)</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> a, b</font></br></div>
<div id="94" class="line"><font class="Normal"> rs%x </font><font class="Keyword">=</font><font class="Normal"> a%x </font><font class="Keyword">+</font><font class="Normal"> b%x</font></br></div>
<div id="95" class="line"><font class="Normal"> rs%y </font><font class="Keyword">=</font><font class="Normal"> a%y </font><font class="Keyword">+</font><font class="Normal"> b%y</font></br></div>
<div id="96" class="line"><font class="Normal"> rs%z </font><font class="Keyword">=</font><font class="Normal"> a%z </font><font class="Keyword">+</font><font class="Normal"> b%z</font></br></div>
<div id="97" class="line"><font class="Normal"> </font><font class="Keyword">end function</font><font class="Normal"> point3d_add</font></br></div>
<div id="98" class="line"></br></div>
<div id="99" class="line"></br></div>
<div id="100" class="line"><font class="Normal"> </font><font class="Comment">! The norm of a point</font></br></div>
<div id="101" class="line"><font class="Normal"> </font><font class="Keyword">pure</font><font class="Normal"> </font><font class="Keyword">function</font><font class="Normal"> point3d_norm(a) </font><font class="Keyword">result</font><font class="Normal">(rs)</font></br></div>
<div id="102" class="line"><font class="DataType"> real(kind=kr)</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> rs</font></br></div>
<div id="103" class="line"><font class="Normal"> </font><font class="DataType">type(point3d)</font><font class="Normal">, </font><font class="DataType">intent(in)</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> a</font></br></div>
<div id="104" class="line"><font class="Normal"> rs </font><font class="Keyword">=</font><font class="Normal"> </font><font class="BuiltIn">sqrt</font><font class="Normal">(a%x </font><font class="Keyword">*</font><font class="Normal"> a%x </font><font class="Keyword">+</font><font class="Normal"> a%y </font><font class="Keyword">*</font><font class="Normal"> a%y </font><font class="Keyword">+</font><font class="Normal"> a%z </font><font class="Keyword">*</font><font class="Normal"> a%z) </font></br></div>
<div id="105" class="line"><font class="Normal"> </font><font class="Keyword">end function</font><font class="Normal"> point3d_norm</font></br></div>
<div id="106" class="line"></br></div>
<div id="107" class="line"></br></div>
<div id="108" class="line"><font class="Normal"> </font><font class="Comment">! A simple recursive function</font></br></div>
<div id="109" class="line"><font class="Normal"> </font><font class="Keyword">recursive</font><font class="Normal"> </font><font class="Keyword">function</font><font class="Normal"> factorial(i) </font><font class="Keyword">result</font><font class="Normal"> (rs)</font></br></div>
<div id="110" class="line"><font class="Normal"> </font><font class="DataType">integer</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> rs</font></br></div>
<div id="111" class="line"><font class="Normal"> </font><font class="DataType">integer</font><font class="Normal">, </font><font class="DataType">intent(in)</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> i</font></br></div>
<div id="112" class="line"><font class="Normal"> </font><font class="Keyword">if</font><font class="Normal"> ( i </font><font class="Operator"><</font><font class="Keyword">=</font><font class="Normal"> </font><font class="DecVal">1</font><font class="Normal"> ) </font><font class="Keyword">then</font></br></div>
<div id="113" class="line"><font class="Normal"> rs </font><font class="Keyword">=</font><font class="Normal"> </font><font class="DecVal">1</font></br></div>
<div id="114" class="line"><font class="Normal"> </font><font class="Keyword">else</font></br></div>
<div id="115" class="line"><font class="Normal"> rs </font><font class="Keyword">=</font><font class="Normal"> i </font><font class="Keyword">*</font><font class="Normal"> factorial(i </font><font class="Keyword">-</font><font class="Normal"> </font><font class="DecVal">1</font><font class="Normal">)</font></br></div>
<div id="116" class="line"><font class="Normal"> </font><font class="Keyword">end if</font></br></div>
<div id="117" class="line"><font class="Normal"> </font><font class="Keyword">end function</font><font class="Normal"> factorial</font></br></div>
<div id="118" class="line"></br></div>
<div id="119" class="line"></br></div>
<div id="120" class="line"><font class="Normal"> </font><font class="Comment">! This is a useless function</font></br></div>
<div id="121" class="line"><font class="Normal"> </font><font class="Keyword">subroutine</font><font class="Normal"> example_fn(int_arg, real_arg, str_arg)</font></br></div>
<div id="122" class="line"><font class="Normal"> </font><font class="DataType">integer</font><font class="Normal">, </font><font class="DataType">intent(in)</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> int_arg</font></br></div>
<div id="123" class="line"><font class="DataType"> real(kind=kr)</font><font class="Normal">, </font><font class="DataType">intent(out)</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> real_arg</font></br></div>
<div id="124" class="line"><font class="Normal"> </font><font class="DataType">character(len=*)</font><font class="Normal">, </font><font class="DataType">intent(in)</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> str_arg</font></br></div>
<div id="125" class="line"></br></div>
<div id="126" class="line"><font class="Normal"> </font><font class="DataType">type(example_type)</font><font class="Normal">, </font><font class="DataType">pointer</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> p</font></br></div>
<div id="127" class="line"><font class="Normal"> </font><font class="DataType">integer</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> n, i, j</font></br></div>
<div id="128" class="line"><font class="Normal"> </font><font class="DataType">logical</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> flag</font></br></div>
<div id="129" class="line"></br></div>
<div id="130" class="line"><font class="Normal"> flag </font><font class="Keyword">=</font><font class="Normal"> </font><font class="Constant">.true.</font><font class="Normal"> </font><font class="Comment">! .true. is not an operator!</font></br></div>
<div id="131" class="line"><font class="Normal"> </font><font class="Keyword">if</font><font class="Normal"> ( flag </font><font class="Operator">.and.</font><font class="Normal"> flag ) </font><font class="Keyword">then</font><font class="Normal"> </font><font class="Comment">! .and. is a pre-defined operator</font></br></div>
<div id="132" class="line"><font class="Normal"> </font><font class="Preprocessor">print</font><font class="Normal"> </font><font class="Keyword">*</font><font class="Normal">, </font><font class="String">"blabla"</font></br></div>
<div id="133" class="line"><font class="Normal"> </font><font class="Keyword">end if</font></br></div>
<div id="134" class="line"></br></div>
<div id="135" class="line"><font class="Normal"> </font><font class="Comment">! Examples of inquiry functions: allocated, lbound, ubound.</font></br></div>
<div id="136" class="line"><font class="Normal"> </font><font class="Keyword">if</font><font class="Normal"> ( </font><font class="Operator">.not.</font><font class="Normal"> </font><font class="Function">allocated</font><font class="Normal">(many_examples) ) </font><font class="Keyword">then</font></br></div>
<div id="137" class="line"><font class="Normal"> </font><font class="Keyword">allocate</font><font class="Normal">( many_examples(</font><font class="DecVal">10</font><font class="Normal">) )</font></br></div>
<div id="138" class="line"><font class="Normal"> </font><font class="Keyword">end if</font></br></div>
<div id="139" class="line"><font class="Normal"> </font><font class="Preprocessor">print</font><font class="Normal"> </font><font class="Keyword">*</font><font class="Normal">, </font><font class="String">"Lower bound = "</font><font class="Normal">, </font><font class="Function">lbound</font><font class="Normal">(many_examples, </font><font class="DecVal">1</font><font class="Normal">)</font></br></div>
<div id="140" class="line"><font class="Normal"> </font><font class="Preprocessor">print</font><font class="Normal"> </font><font class="Keyword">*</font><font class="Normal">, </font><font class="String">"Upper bound = "</font><font class="Normal">, </font><font class="Function">ubound</font><font class="Normal">(many_examples, </font><font class="DecVal">1</font><font class="Normal">)</font></br></div>
<div id="141" class="line"></br></div>
<div id="142" class="line"><font class="Normal"> p </font><font class="Keyword">=</font><font class="Operator">></font><font class="Normal"> many_examples(</font><font class="DecVal">5</font><font class="Normal">) </font><font class="Comment">! <-- p is a pointer</font></br></div>
<div id="143" class="line"></br></div>
<div id="144" class="line"><font class="Normal"> </font><font class="Comment">! A strange way to calculate i*i: add the first i odd numbers</font></br></div>
<div id="145" class="line"><font class="Normal"> i </font><font class="Keyword">=</font><font class="Normal"> </font><font class="DecVal">6</font></br></div>
<div id="146" class="line"><font class="Normal"> j </font><font class="Keyword">=</font><font class="Normal"> </font><font class="DecVal">0</font></br></div>
<div id="147" class="line"><font class="Normal"> </font><font class="Keyword">do</font><font class="Normal"> n </font><font class="Keyword">=</font><font class="Normal"> </font><font class="DecVal">1</font><font class="Normal">, i</font></br></div>
<div id="148" class="line"><font class="Normal"> j </font><font class="Keyword">=</font><font class="Normal"> j </font><font class="Keyword">+</font><font class="Normal"> (</font><font class="DecVal">2</font><font class="Keyword">*</font><font class="Normal">n </font><font class="Keyword">-</font><font class="Normal"> </font><font class="DecVal">1</font><font class="Normal">)</font></br></div>
<div id="149" class="line"><font class="Normal"> </font><font class="Keyword">end do</font><font class="Normal"> </font></br></div>
<div id="150" class="line"><font class="Normal"> </font><font class="Preprocessor">print</font><font class="Normal"> </font><font class="Keyword">*</font><font class="Normal">, </font><font class="String">"i*i = "</font><font class="Normal">, i</font><font class="Keyword">*</font><font class="Normal">i, j</font></br></div>
<div id="151" class="line"></br></div>
<div id="152" class="line"><font class="Normal"> real_arg </font><font class="Keyword">=</font><font class="Normal"> </font><font class="BuiltIn">real</font><font class="Normal">(j) </font><font class="Comment">! <-- here the highlighting is not very good:</font></br></div>
<div id="153" class="line"><font class="Normal"> </font><font class="Comment">! it is unable to distinguish between this and a definition like:</font></br></div>
<div id="154" class="line"><font class="Normal"> </font><font class="Comment">! real(kind=kr) :: a</font></br></div>
<div id="155" class="line"><font class="Normal"> </font><font class="Keyword">deallocate</font><font class="Normal">( many_examples )</font></br></div>
<div id="156" class="line"><font class="Normal"> </font><font class="Keyword">end subroutine</font><font class="Normal"> example_fn</font></br></div>
<div id="157" class="line"></br></div>
<div id="158" class="line"><font class="Keyword">end module</font><font class="Normal"> module_example</font></br></div>
<div id="159" class="line"></br></div>
<div id="160" class="line"></br></div>
<div id="161" class="line"><font class="Comment">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</font></br></div>
<div id="162" class="line"><font class="Comment">! THIS IS THE MAIN PROGRAM !</font></br></div>
<div id="163" class="line"><font class="Comment">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</font></br></div>
<div id="164" class="line"><font class="Keyword">program</font><font class="Normal"> example</font></br></div>
<div id="165" class="line"><font class="Normal"> </font><font class="Keyword">use</font><font class="Normal"> module_example</font></br></div>
<div id="166" class="line"></br></div>
<div id="167" class="line"><font class="Normal"> </font><font class="Comment">! this is another example of use of the 'implicit' keyword</font></br></div>
<div id="168" class="line"><font class="Normal"> </font><font class="Keyword">implicit</font><font class="Normal"> </font><font class="DataType">double</font><font class="Normal"> </font><font class="DataType">precision</font><font class="Normal"> (a</font><font class="Keyword">-</font><font class="Normal">h,o</font><font class="Keyword">-</font><font class="Normal">z)</font></br></div>
<div id="169" class="line"></br></div>
<div id="170" class="line"><font class="DataType"> real(kind=kr)</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> var_out</font></br></div>
<div id="171" class="line"></br></div>
<div id="172" class="line"><font class="Normal"> </font><font class="DataType">type(point3d)</font><font class="Normal"> </font><font class="DataType">::</font><font class="Normal"> </font><font class="Keyword">&</font></br></div>
<div id="173" class="line"><font class="Normal"> a </font><font class="Keyword">=</font><font class="Normal"> point3d(</font><font class="Float">0.0_kr</font><font class="Normal">, </font><font class="Float">1.0_kr</font><font class="Normal">, </font><font class="Float">2.0_kr</font><font class="Normal">), </font><font class="Keyword">&</font></br></div>
<div id="174" class="line"><font class="Normal"> b </font><font class="Keyword">=</font><font class="Normal"> point3d(</font><font class="Float">4.0_kr</font><font class="Normal">, </font><font class="Float">5.0_kr</font><font class="Normal">, </font><font class="Float">6.0_kr</font><font class="Normal">)</font></br></div>
<div id="175" class="line"></br></div>
<div id="176" class="line"><font class="Normal"> </font><font class="Preprocessor">print</font><font class="Normal"> </font><font class="Keyword">*</font><font class="Normal">, </font><font class="String">"a + b = "</font><font class="Normal">, </font><font class="Operator">.norm.</font><font class="Normal"> (a </font><font class="Keyword">+</font><font class="Normal"> b)</font></br></div>
<div id="177" class="line"><font class="Normal"> </font><font class="Preprocessor">print</font><font class="Normal"> </font><font class="Keyword">*</font><font class="Normal">, </font><font class="String">"factorial of 5 = "</font><font class="Normal">, factorial(</font><font class="DecVal">5</font><font class="Normal">)</font></br></div>
<div id="178" class="line"></br></div>
<div id="179" class="line"><font class="Normal"> </font><font class="Keyword">call</font><font class="Normal"> example_fn(</font><font class="DecVal">1</font><font class="Normal">, var_out, </font><font class="String">"hello!"</font><font class="Normal">)</font></br></div>
<div id="180" class="line"></br></div>
<div id="181" class="line"><font class="Keyword">end program</font><font class="Normal"> example</font></br></div>
</div>
</body>
</html>