<?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       = "Photran - An Integrated Development Environment for Fortran";
    $pageKeywords    = "photran, fortran, ide, eclipse";
    $pageAuthor      = "Jeffrey Overbey";
    
    # Paste your HTML content between the EOHTML markers!    
    $html = <<<EOHTML

<div id="maincontent">
  <div id="midcolumn">
    <h1>$pageTitle</h1>
    
<img align="right" hspace="20" vspace="20" style="width: 382px; height: 300px;"
  alt="Screenshot of Photran 3.1 Beta 2"
  src="images/screenshot.png">
Photran is an IDE for Fortran 77, 90, 95, and 2003 based on <a href="http://www.eclipse.org/"
 target="_blank">Eclipse</a> and
the <a href="http://www.eclipse.org/cdt/" target="_blank">CDT</a>.
It includes:<br>
            <ul>
              <li>Syntax-highlighting editor</li>
              <li>Content assist*</li>
              <li>Open declaration*</li>
              <li>Declaration view and hover tips*</li>
              <li>Reference searching*</li>
              <li>Refactorings*</li>
              <li>Outline view</li>
              <li>CVS support</li>
              <li>GUI interface to <span style="font-style: italic;">gdb</span></li>
              <li>Makefile-based compilation</li>
              <li>Compiler error extraction</li>
            </ul>
            
            <p><small><small><i>* A project must explicitly have analysis support
            enabled for these features to work.
            <a href="refactoring.php">More Information</a></i></small></small></p>
            
            <p>Photran is a component of the
            <a target="_blank" href="http://www.eclipse.org/ptp">Parallel Tools Platform</a>.

            <!--p><small><small><i>Photran
is being developed at the University of Illinois at
Urbana-Champaign and Los Alamos National Laboratory and is closely
involved with the <a href="http://www.eclipse.org/ptp">Parallel Tools
Platform</a>.  For further information, contact&nbsp;<a
 href="http://st-www.cs.uiuc.edu/users/johnson" target="_blank">Ralph
Johnson</a> or <a href="http://www.laputan.org/"
 target="_blank"></a><a href="http://jeff.over.bz/"
 target="_blank">Jeff Overbey</a>&nbsp;at UIUC, or
contact Craig Rasmussen at LANL.
If you have technical questions, please do <b>not</b>
send them to us directly; instead, post them to the
<a href="mailinglists.php">mailing list</a>.</i></small></small></p-->
  </div>
  <!--div id="rightcolumn">
    <div class="sideitem">
      <h6>Incubation</h6>
      <div align="center">
        <a href="/projects/what-is-incubation.php">
          <img align="center" src="/images/egg-incubation.png" border="0" alt="Incubation" />
        </a>
      </div>
   </div-->
 </div>
</div>    
EOHTML;

    # Generate the web page
    #require_once($_SERVER['DOCUMENT_ROOT'] . "/projects/common/project-info.class.php");
    #$projectInfo = new ProjectInfo("technology.photran");
    #$projectInfo->generate_common_nav( $Nav );

    $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
