From f0eb59c4a876b2ddc903b71abe1259d1846eeeff Mon Sep 17 00:00:00 2001 From: dominic Date: Fri, 12 May 2017 22:29:01 +0100 Subject: [PATCH] new website --- camfort.png | Bin 0 -> 34102 bytes index.html | 137 +++++++++++++++++++++++++++++++++++++++++++++++++++- main.css | 99 +++++++++++++++++++++++++++++++++++++ 3 files changed, 235 insertions(+), 1 deletion(-) create mode 100644 camfort.png create mode 100644 main.css diff --git a/camfort.png b/camfort.png new file mode 100644 index 0000000000000000000000000000000000000000..83d42a9fc52217b2bc4227f8b365969833fae9ce GIT binary patch literal 34102 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 557db03..dfd357c 100644 --- a/index.html +++ b/index.html @@ -1 +1,136 @@ -Hello World + + + +CamFort: Automated evolution and verification of computational +science models + + + + + + +
+
+

+
+

+ 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.

+

+ 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. +

+
+ +
Specification & + Verification
+

+ CamFort provides lightweight verification 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.

+

+ Our current specification and verification features provide: +

    +
  • Units-of-measure typing
  • + Example: +
    +
    +  != unit(m) :: d1, d2
    +  != unit(s) :: t
    +  real :: d1, d2, t, v
    +  v = (d1 + d2)/t
    +
    +
    +
  • Array access shape
  • +
    +
    +  do i = 1, n
    +    do j = 1, m
    +      != stencil forward(dim=1,depth=1)*centered(dim=2,depth=1) :: a
    +      x = a(i, j-1) + a(i, j+1) + a(i, j)
    +      y = a(i+1, j-1) + a(i+1, j+1) + a(i+1, j)
    +      b(i, j) = x + y
    +    end do
    +  end do
    +
    +
    +
+

+
+ +
Refactoring
+

+ 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. +

+ +
+
+
+

+ Download

+
+ The source code for CamFort is hosted on + GitHub.
+ Binary releases for Windows, Mac OS X, and Linux are + available. Current + binary release: v0.900 +
+
+ Mailing list

+
+ For help and announcments you can sign-up to our + mailing list. +

+ Events

+
+ An introduction to CamFort and training material is provided + as part of the Fortran + Modernization Workshops run by nag in the UK and + Europe.

+ We host an annual event on Testing and Verification in + Computational Science. Previous versions occured in + 2016 and 2017. +
+ +
+ + diff --git a/main.css b/main.css new file mode 100644 index 0000000..541d203 --- /dev/null +++ b/main.css @@ -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; +} \ No newline at end of file