<?php                                                                                                                          require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");    require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");     require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");     $App     = new App();    $Nav    = new Nav();    $Menu     = new Menu();        include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'

    $pageTitle       = "Downloading Photran";
    $pageKeywords    = "photran, download";
    $pageAuthor      = "Jeffrey Overbey";
    
    # Paste your HTML content between the EOHTML markers!    
    $html = <<<EOHTML

<div id="maincontent">
  <div id="midcolumn">
    <h1>$pageTitle</h1>

    <div class="homeitem3col">
      <h3>Photran 9.1</h3>

      <p>Photran 9.1 is part of the Eclipse Mars release train, along with version 9.0 of the <a target="_blank" href="http://wiki.eclipse.org/PTP/">Parallel Tools Platform</a>.
      Eclipse 4.5 (Mars) was released on June 24, 2015.
      A list of new features is available in the <a target="_blank" href="https://wiki.eclipse.org/PTP/new_and_noteworthy/9.0.0#Fortran_.28Photran.29">New &amp; Noteworthy</a>.

      <p><b>Photran 9.1 requires Eclipse 4.5 (Mars) and CDT 8.7.</b>

      <ul>
         <li>If you have not installed Photran before, or if you run into any problems during installation, please read the
             <a href="http://wiki.eclipse.org/PTP/photran/documentation/photran8installation">installation instructions</a>.
         <li>If you are familiar with the installation procedure, Photran can be installed from the Eclipse Mars update site:<br>
             <b>http://download.eclipse.org/releases/mars</b>
      </ul>

      <p>Please also join the <b><a href="https://dev.eclipse.org/mailman/listinfo/photran">Photran mailing list</a></b>;
      if you have any problems installing or using Photran, that is a great place to ask for help.
    </div>

    <p>&nbsp;
    <p><small>Old versions are available in the <a href="download-archive.php">Photran Download Archive</a>.</small></p>
 </div>
</div>    
EOHTML;

    # Generate the web page
    $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
