<!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>