Skip to content

Commit

Permalink
new website
Browse files Browse the repository at this point in the history
  • Loading branch information
dorchard committed May 12, 2017
1 parent 9e9610f commit f0eb59c
Show file tree
Hide file tree
Showing 3 changed files with 235 additions and 1 deletion.
Binary file added camfort.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
137 changes: 136 additions & 1 deletion index.html
Original file line number Diff line number Diff line change
@@ -1 +1,136 @@
Hello World
<!doctype html5>
<html>
<head>
<title>CamFort: Automated evolution and verification of computational
science models</title>
<link rel="stylesheet" href="main.css" />
<link href="https://fonts.googleapis.com/css?family=Rasa"
rel="stylesheet" />
<script>window.twttr = (function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0],
t = window.twttr || {};
if (d.getElementById(id)) return t;
js = d.createElement(s);
js.id = id;
js.src = "https://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);

t._e = [];
t.ready = function(f) {
t._e.push(f);
};

return t;
}(document, "script", "twitter-wjs"));</script>
</head>
<body>
<div id="header">
<img src="camfort.png" /><br />
<span class="title-big">
Specify, verify, and refactor Fortran code
</span>
</div>
<div id="main">
<section>
</section><br />
<section>
<p>
CamFort is multi-feature tool for improving the quality of Fortran
code. Its features are primarily aimed at programming patterns found
in numerical modelling code e.g., in computational science. </p>
<p>
CamFort is free and open-source. It currently supports FORTRAN 66,
FORTRAN 77, and Fortran 90 language standards. Support for Fotran
96, 2003, and 2008 is in progress.
</p>
</section>

<section> <span class="title-medium">Specification &
Verification</span><br />
<p>
CamFort provides <em>lightweight verification</em> features.
Source-code annotations (comments) provide specifications of certain
aspects of a program's meaning or behaviour. CamFort can then check
that code conforms to these specifications. CamFort can also suggest
places to insert specifications, and in some cases case infer the
specifications of existing code.</p>
<p>
Our current specification and verification features provide:
<ul>
<li><b>Units-of-measure typing</b></li>
Example:
<div class="code">
<pre>
<span class='comment'>!= unit(m) :: d1, d2</span>
<span class='comment'>!= unit(s) :: t</span>
<span class='type'>real</span> :: <span class='var'>d1</span>, <span class='var'>d2</span>, <span class='var'>t</span>, <span class='var'>v</span>
<span class='var'>v</span> = (<span class='var'>d1</span> + <span class='var'>d2</span>)/<span class='var'>t</span>
</pre>
</div>
<li><b>Array access shape</b></li>
<div class="code">
<pre>
<span class='keyw'>do</span> <span class='var'>i</span> = 1, <span class='var'>n</span>
<span class='keyw'>do</span> <span class='var'>j</span> = 1, <span
class='var'>m</span>
<span class='comment'>!= stencil forward(dim=1,depth=1)*centered(dim=2,depth=1) :: a</span>
<span class='var'>x</span> = <span class='var'>a</span>(<span class='var'>i</span>, <span class='var'>j</span>-1) + <span class='var'>a</span>(<span class='var'>i</span>, <span class='var'>j</span>+1) + <span class='var'>a</span>(<span class='var'>i</span>, <span class='var'>j</span>)
<span class='var'>y</span> = <span class='var'>a</span>(<span class='var'>i</span>+1, <span class='var'>j</span>-1) + <span class='var'>a</span>(<span class='var'>i</span>+1, <span class='var'>j</span>+1) + <span class='var'>a</span>(<span class='var'>i</span>+1, <span class='var'>j</span>)
<span class='var'>b</span>(<span class='var'>i</span>, <span
class='var'>j</span>) = <span class='var'>x</span> + <span class='var'>y</span>
<span class='keyw'>end do</span>
<span class='keyw'>end do</span>
</pre>
</div>
</ul>
</p>
</section>

<section> <span class="title-medium">Refactoring</span><br />
<p>
Many language features of older Fortran standards (pre Fortran 90) are
known to be a ready source of programming error. CamFort provides
some facilities for automatically refactoring deprecated or
dangerous programming patterns, with the goal of helping to meet
core quality requirements, such as maintainability. For example, our
tool eliminates EQUIVALENCE and COMMON blocks. These refactorings
also helps to expose any programming bugs arising from bad
programming practices.
</p>

</section>
</div>
<div id="side">
<a class="twitter-follow-button" href="https://twitter.com/camfort_tool"
data-show-count="false" data-size="large">
Follow @camfort_tool</a><br /><br />
<span class="title-small">Download</span><br /><br />
<section>
The source code for CamFort is hosted on
<a href="https://github.com/camfort/camfort">GitHub</a>.<br />
Binary releases for Windows, Mac OS X, and Linux are
<a
href="https://github.com/camfort/camfort/releases">available</a>. Current
binary release: v0.900
</section>
<br />
<span class="title-small">Mailing list</span><br /><br />
<section>
For help and announcments you can sign-up to our
<a href="https://lists.cam.ac.uk/mailman/listinfo/cl-camfort">mailing list</a>.
</section><br />
<span class="title-small">Events</span><br /><br />
<section>
An introduction to CamFort and training material is provided
as part of the <a
href="http://www.nag.co.uk/content/fortran-modernization-workshop">Fortran
Modernization Workshops</a> run by <b>nag</b> in the UK and
Europe.<br /><br />
We host an annual event on <em>Testing and Verification in
Computational Science</em>. Previous versions occured in
<a href="http://www.cl.cam.ac.uk/~dao29/meeting-tvcs/">2016</a> and <a href="https://camfort.github.io/tvcs2017/">2017</a>.
</section>

</div>
</body>
</html>
99 changes: 99 additions & 0 deletions main.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
a {
color: #3e86a8;
}


a:hover {
color: #dfae70;
}

body {
padding: 10vw;
padding-top: 2vw;
margin: 0px;
}

#main {
width: 50vw;
padding: 0;
float:left;
}

#header {
font-family: "Helvetica Neue", Helvetica, Arial, sans;
}

#side {
margin: 0;
margin-left: 5vw;
padding: 0;
padding-left: 5vw;
width: calc(20vw - 2px);
float:left;
border-left: 1px solid #ccc;
font-family: "Helvetica Neue", Helvetica, Arial, sans;
font-size: 12pt;
font-weight: 400;
}

.title-big, .title-small {
color: #777;
font-weight: 300;
}

section {
font-family: 'Rasa', serif;
font-size: 15pt;
}

#side section {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 13pt;
font-weight: 300;
}

.title-big {
font-size: 24pt;
}


.title-medium {
font-weight: 600;
font-size: 18pt;
color: #dfae70;
}

.title-small {
font-weight: 500;
font-size:19pt;
color: #3e86a8
}

.code {
background: #eee;
color: #444;
width: 45vw;
padding:5px;
margin-left:40px;
font-size:11pt;
}

pre {
padding:0px;
}

.code .comment {
color: #090;
}

.code .type {
color: #a00;
}

.code .keyw {
color: #a00;
}

.code .var {
color: #444;
}

0 comments on commit f0eb59c

Please sign in to comment.