<!DOCTYPE html>
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>So after talking to several of you today in class it appears that
      Fortran is the language that is causing you the most grief.  I
      really want everyone to do well on the project so I will give you
      an extension until MONDAY NIGHT (October 15) to get this done. 
      Thursday of this week will be a workday, but on Tuesday of next
      week I am going to get you started with Julia and maybe Go and I
      need you focused on that.</p>
    <p>Fortran and LISP are both extremely powerful languages (hence the
      reason people still develop new code in them after 60 years!) but
      mastering them takes time.   It appears to me that most of the
      problems you are having with Fortran are related to reading files
      and parsing the text.  If you remember, a few weeks ago we did two
      separate exercises.  One was related to building a comma separated
      values (CSV) parser in fortran and one was related to reading long
      input lines.   You should be able to combine the ideas from those
      two exercises to build a file reader that parses comma separated
      data to then build card objects.<br>
    </p>
    <p>If you want to retrieve these files for testing (with a fresh set
      of eyes) then on cobra do a:</p>
    <p>cp /pub/pounds/CSC330/csvtokenizer.f90  csvtokenizer.f90<br>
    </p>
    <p>You had to modify this program so it printed the output WITHOUT
      the commas.</p>
    <p><br>
    </p>
    <p>I also gave you access to another example to process command line
      arguments and to do some string processing.</p>
    <p>cp /pub/pounds/CSC330/stringprocess.f90  stringprocess.f90</p>
    <p>You might want to take a look at these again and see if they help
      you inplement reading and processing the input data file for
      Fortran.</p>
    <p>And here is the example reader that we used to read in a long
      line of text...</p>
    <pre>program readtest

    character(80) :: lineOfText
    character(len=*), parameter :: filename="testhands"
    character(len=*), parameter :: path="/pub/pounds/CSC330/poker/"
    character(:), allocatable :: fullpath

    ! Concatenate the path and filename together
    fullpath = path // filename

    open(unit=5,file=fullpath,status="old")
    read (5,"(a80)") lineOfText
    print *, lineOfText
    close(5)

end program readtest

</pre>
    <p>I am starting to get a lot of questions so as you hit problems,
      push the code to Anvil and open an issue where you clearly
      describe the problem and where you think it is in your code (like
      with file and line number).  I'll do my best to respond as quickly
      as possible.  <br>
    </p>
    <p>That reminds me, I took a quick look at some of the repos and
      many of you need to start putting code on Anvil -- some of you
      only have a README and maybe part of one language.  It is YOUR
      responsibility to make sure that I can clone your code and that I
      have directions explaining how to compile and run it on cobra.<br>
    </p>
    <p><br>
    </p>
    <div class="moz-signature">-- <br>
      <b><em>Andrew J. Pounds, Ph.D.</em></b><br>
      <em>Professor of Chemistry and Computer Science</em><br>
      <em>Director of the Computational Science Program</em><br>
      <em>Mercer University</em><br>
      <em>1501 Mercer University Drive, Macon, GA 31207 </em><br>
      <em>(478) 301-5627</em><br>
    </div>
  </body>
</html>