<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>fortran &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/fortran/</link>
	<description>Feed of posts on WordPress.com tagged "fortran"</description>
	<pubDate>Sun, 12 Oct 2008 07:38:56 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Mathematical Modelling Consultant, Dorset, UK]]></title>
<link>http://businessitjobs.wordpress.com/?p=12</link>
<pubDate>Thu, 18 Sep 2008 11:45:28 +0000</pubDate>
<dc:creator>mrcas</dc:creator>
<guid>http://businessitjobs.it.wordpress.com/2008/09/18/mathematical-modelling-consultant-dorset-uk/</guid>
<description><![CDATA[Mathematical Modelling Consultant
Reference: 1208262126
An experienced Mathematical Modelling Consul]]></description>
<content:encoded><![CDATA[<h1>Mathematical Modelling Consultant</h1>
<h3>Reference: 1208262126</h3>
<p class="datetime">An experienced Mathematical Modelling Consultant is required for an ERS Client's Dorset site. The successful applicant will provide scientific and technical consultancy to UK and overseas clients in the nuclear (and non-nuclear) sectors.</p>
<p> </p>
<p> </p>
<h3>Location</h3>
<p>Dorset</p>
<h3>Client Information</h3>
<p>Our Client's Nuclear Services (NSER) business provides consultancy advice to a variety of high technology users from within the nuclear and non-nuclear industries.</p>
<p>They provide scientific consultancy and software to many of the major players in the civil nuclear power industry, in the UK and overseas, and also support a number of large research programmes for the Ministry of Defence.</p>
<p>These posts represent an excellent opportunity for mathematicians, physicists, or engineers who wish to develop expertise in mathematical modelling in a diverse range of disciplines. These could include one or a combination of reactor physics, fluids and thermal modelling, radiation transport, aerosol transport, modelling chemical reactions and many others. Methods developments support safety and performance of power reactors, various nuclear facilities and other industrial plant operations.</p>
<p>NSER is a large department of experienced scientists and engineers, based at Winfrith and Harwell, working on a diverse range of projects for a broad portfolio of clients.</p>
<p>Working on these projects requires interaction with colleagues across the Groups, as well as supporting colleagues across the company. Many of their more experienced staff provide the technical lead on such projects, and this post offers the opportunity to develop into such a role.</p>
<p>Our client is committed to the training and continuing professional development of its staff; seeking to keep their skills up to date by appropriate training, attendance at conferences and liaison with universities. NSER has strong links with many science and engineering departments of a number of leading universities and retains access to state-of-the art research in these institutions.</p>
<h3>Requirements &#38; Responsibilities</h3>
<p>The provision of scientific and technical consultancy to UK and overseas clients in the nuclear (and non-nuclear) sectors, including analysing problems and developing solutions.</p>
<p>Developing, maintaining and validating the computer codes in their code products range.</p>
<p>Involvement in research tasks in the civil or defence nuclear sectors.</p>
<p>The production and presentation of technical reports to clients; Task management, including delivery of work to agreed timescales and budget; Leading/assisting with the production of contract proposals and bids, and identifying new technical business development opportunities</p>
<h3>Requirements: Education and Experience</h3>
<p>Educated to honours degree level (1 or 2:1) in mathematics, physics or engineering, coupled ideally with a relevant post graduate qualification. They are seeking high calibre candidates, who are flexible and keen to develop their skills in the above disciplines.</p>
<p>Some experience of FORTRAN and other high level programming languages, and also with modelling packages such as MATHMATICA or MATHCAD would be an advantage, as would previous experience within the civil nuclear industry or the defence nuclear sector.</p>
<p>Applications from any well qualified candidates in related scientific disciplines are welcome; such candidates will be considered if they can demonstrate a high level of commitment to learn new skills.</p>
<p>Security clearance to work on defence related projects would be desirable.</p>
<h3>Core Competences</h3>
<p>A strong mathematics, physics or engineering background; An aptitude for mathematical modelling including the ability to break down complex situations into tractable problems; An aptitude for computer code development and application; Good analytical skills and the ability to interpret a variety of technical information, distilling and conveying key information; Task management to deliver to time, budget and quality; The ability to work well in multi-disciplinary teams; Flexibility and adaptability, to be able to work on a variety of projects and good interpersonal and communication skills.</p>
<p><a name="OLE_LINK5"><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><strong><span style="font-size:10pt;color:black;font-family:Tahoma;">Contact ERS on 01454 203 460, or submit a CV to </span></strong></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></a><a href="mailto:cv@energyrs.co.uk"><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><strong><span style="font-size:10pt;font-family:Tahoma;">cv@energyrs.co.uk</span></strong></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></a><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><strong><span style="font-size:10pt;color:black;font-family:Tahoma;">, to register your interest or apply</span></strong></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><strong><span style="font-size:10pt;color:black;font-family:Tahoma;">, d</span></strong></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><strong><span style="font-size:10pt;color:black;font-family:Tahoma;">etails at www.ERSJobs.co.uk</span></strong></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><strong><span style="font-size:10pt;font-family:Tahoma;"></span></strong></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Como Dispararte en el pie en cualquier Lenguaje de Programacion]]></title>
<link>http://esotroblog.wordpress.com/?p=142</link>
<pubDate>Thu, 18 Sep 2008 02:26:33 +0000</pubDate>
<dc:creator>Marcelo Elizeche Landó</dc:creator>
<guid>http://elotroblog.com/2008/09/17/como-dispararte-en-el-pie-en-cualquier-lenguaje-de-programacion/</guid>
<description><![CDATA[Ante la proliferación mas lenguajes de programación cada dia(que cada uno fueron robando caracteri]]></description>
<content:encoded><![CDATA[<p>Ante la proliferación mas lenguajes de programación cada dia(que cada uno fueron robando caracteristicas uno de otros) a veces resulta dificil distinguir en que esta uno programando.</p>
<p>Esta es una Guia rapida y practica de como Diferenciar.</p>
<h2>TAREA: DISPARARTE EN EL PIE</h2>
<p><!--more--></p>
<p><strong>C</strong><br />
Te disparas en el pie, pero lugo te das cuenta que el arma es demasiado poderosa para tus simples necesidades de dispararte en el pie.</p>
<p><strong>C++</strong><br />
Accidentalmente creas una docena de clones tuyos y les disparas a todos en el pie. Proveer asistencia médica es imposible porque no puedes distinguir entre las copias reales y las que señalan a otros diciendo “¡Ese soy yo, ahí estoy!”</p>
<p><strong>Java</strong><br />
Después de importar java.awt.pie.derecho.* y java.awt.pistola.mano.derecha.* y después de escribir las clases y los métodos que necesitas, ya se te olvidó lo que estabas haciendo.</p>
<p><strong>Ruby</strong><br />
Tu pie está listo para que le dispares en unos cinco minutos, pero no puedes encontrar ningún lugar para dispararle.</p>
<p><strong>C#</strong><br />
Cópiale el método a Java y trata de convecer a todos que tú lo haces mejor.</p>
<p><strong>PHP</strong><br />
Te disparas en el pie con un arma hecha con 300 piezas de otras armas.</p>
<p><strong>ASP.NET</strong><br />
Encuentras una pistola, se desbarata. La vuelves a armar, se vuelve a desbaratar. Tratas de usar el .GUN Framework… se desbarata. Terminas mejor apuñalándote el pie.</p>
<p><strong>SQL</strong><br />
SELECT @munición:=bala FROM pistola WHERE gatillo = ‘JALAR’;<br />
INSERT INTO pierna (pie) VALUES (@ammo);</p>
<p><strong>Perl</strong><br />
Te disparas en el pie, pero nadie entiende cómo lo hiciste. Seis meses después tú tampoco lo entiendes.</p>
<p><strong>JavaScript</strong><br />
Has perfeccionado una rica y robusta experiencia de usuario para dispararte en el pie. Después te das cuenta de que las balas estan desabilitadas en tu pistola.</p>
<p><strong>CSS</strong><br />
Te disparas en el pie derecho con una mano, luego cambias de mano para dispararte en el otro pie, pero entonces te das cuenta que tu arma se ha convertido en una banana.</p>
<p><strong>Fortran</strong><br />
Te disparas en cada dedo del pie, iterativamente hasta que se te acaban los dedos de los pies, después lees tu otro pie y repites. Si se te acaban las balas continuas de todas formas porque no hay capacidad de manejo de excepciones.</p>
<p><strong>Modula2</strong><br />
Después de darte cuenta que no puedes hacer nada en este lenguaje, te das un tiro en la cabeza.</p>
<p><strong>Cobol</strong><br />
Usando una PISTOLA COLT 45, APUNTAR arma a PIE.IZQUIERDO, ENTONCES colocar BRAZO.MANO.DEDO en PISTOLA.GATILLO y APRIETA. ENTONCES regresa PISTOLA a FUNDA. VERIFICAR si las agujetas se tienen que volver a amarrar.</p>
<p><strong>Lisp</strong><br />
Te disparas en la extremidad la cual sostiene el arma con la cual<br />
te disparas en la extremidad la cual sostiene el arma con la cual<br />
Te disparas en la extremidad la cual sostiene el arma con la cual<br />
Te disparas en la extremidad la cual sostiene el arma con la cual<br />
Te disparas en la extremidad la cual…</p>
<p><strong>Scheme</strong><br />
(define (disparo arma pie)<br />
(if (null? pie) ()<br />
(disparo arma (car (cdr( pie)))))</p>
<p><strong>Basic</strong><br />
Te disparas en el pie con una pistola de agua. En sistemas grandes, continúas hasta que toda la parte baja del cuerpo esté inundada.</p>
<p><strong>Visual Basic</strong></p>
<p>Tratas de dispararte pero cuando tratas de meter la bala en el arma no podes porque pesa 153Kg.</p>
<p><strong>Pascal</strong><br />
El compilador no te deja dispararte en el pie.</p>
<p><strong>Snobol</strong><br />
Si tienes éxito, te disparas en el pie izquierdo.<br />
Si no lo tienes, te disparas en el pie derecho.</p>
<p><strong>Euclídeo concurrente</strong><br />
Te disparas a ti mismo en el pie de otra persona.</p>
<p><strong>HyperTalk</strong><br />
Colocas la primera bala del arma dentro del pie de tu pierna izquierda.<br />
Solucionas el resultado.</p>
<p><strong>Motif</strong><br />
Te la pasas los días escribiendo una descripción UIL de tu pie, la trayectoria, la bala, y hasta las partíclas de humo. Cuando finalmente vas a jalar el gatillo, está atascado.</p>
<p><strong>Unix</strong><br />
% ls<br />
pie.c pie.h pie.o dedo.c dedo.o<br />
% rm *.o<br />
rm: .o: No such file or directory<br />
% ls<br />
%</p>
<p><strong>Paradox</strong><br />
No sólo tú puedes dispararle a tu pie, tus usuarios también pueden.</p>
<p><strong>Prolog</strong><br />
Le dices a tu programa que quieres que te disparen en el pie. El programa calcula cómo hacerlo, pero la sintaxis no le permite explicarte.</p>
<p><strong>Ada</strong><br />
Después de empaquetar correctamente tu pie, intentas cargar el arma concurrentemente, jalar el gatillo, gritar y dispararte en el pie. Pero cuando lo pruebas, te das cuenta que tu pie está en la tipografía incorrecta.</p>
<p><strong>Ensamblador</strong><br />
Tratas de dispararte en el pie sólo para descubrir que primero tienes que reinventar el arma, la bala y tu pie. Después de que lo haces, jalas el gatillo, el arma hace bip varias veces, y se descompone.</p>
<p><strong>Python</strong><br />
Tratas de dispararte en el pie pero sólo le atinas al espacio entre los dedos.</p>
<p><strong>Smalltalk</strong><br />
Uno-mismo pie disparar</p>
<p><strong>370 JCL</strong></p>
<p>Mandas tu pie al MIS con una documentacion de 4000 paginas explicando como queres que sea disparado. Tres Años despues, tu pie vuelve frito.</p>
<p><a href="http://www.thealmightyguru.com/Humor/Docs/ShootYourselfInTheFoot.html">Articulo Original</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Fortran 90 95: encapsulamiento y sobrecarga de operadores]]></title>
<link>http://monocuantico.wordpress.com/?p=85</link>
<pubDate>Tue, 09 Sep 2008 00:50:07 +0000</pubDate>
<dc:creator>ibrahimz</dc:creator>
<guid>http://monocuantico.it.wordpress.com/2008/09/09/fortran-90-95-encapsulamiento-y-sobrecarga-de-operadores/</guid>
<description><![CDATA[Fortran es un lenguaje de programación de alto nivel, intensamente usado en computación científic]]></description>
<content:encoded><![CDATA[<p style="text-align:justify;">Fortran es un lenguaje de programación de alto nivel, intensamente usado en computación científica creado por la empresa IBM en los años 50. El lenguaje de programación Fortran ha pasado por varios procesos de estandarización, en cada uno de los cuales se han ido agregando las características más deseables de otros lenguajes de programación. Los sucesivos resultado de estos procesos de estandarización son FORTRAN 66, FORTRAN 77, Fortran 90, Fortran 95 y Fortran 2003. El enorme éxito de FORTRAN 77 en el mundo científico ha ocasionado que mucha gente crea que Fortran sigue soportando únicamente las características de este estándar.En esta ocasión nos centraremos en Fortran 90/95 si bien Fortran 2003 introduce un mucho mejor soporte a la programación orientada a objetos.<br />
Fortran 90 introduce, entre otras muchas características el concepto de módulo, junto con los atributos private y public y las interfaces permite encapsular en ellos datos, funciones y subrutinas controlando el acceso a los mismos. Empezaremos con un ejemplo trivial, para crear un módulo  <!--more-->ángulo.</p>
<p><code><span style="color:#ff0000;"><strong>module</strong></span> mod_angle       <span style="color:#0000ff;"><strong>! fichero: mod_angle.f95</strong></span><br />
<span style="padding-left:10px;">implicit none </span> <span style="color:#0000ff;"><strong>! las variables se declaran explictamente</strong></span><br />
<span style="color:#ff0000;"><strong> type</strong></span> Angle            <span style="color:#0000ff;"><strong>! la estructura Angle es public pero sus miembros</strong></span><br />
<span style="padding-left:10px;">private</span> <strong><span style="color:#0000ff;">! privados</span></strong><br />
<span style="padding-left:10px;color:#008000;"><strong> real</strong></span> :: rad</code></p>
<p><code><strong><span style="color:#ff0000;"><a href="http://www.monocuantico.org/post/fortran-90-95-encapsulamiento-y-sobrecarga-de-operadores/"> LEER EL RESTO DE LA ENTRADA</a><br />
</span></strong></code></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Fortran: can't get no leading zero]]></title>
<link>http://drj11.wordpress.com/?p=245</link>
<pubDate>Thu, 28 Aug 2008 13:26:18 +0000</pubDate>
<dc:creator>drj11</dc:creator>
<guid>http://drj11.it.wordpress.com/2008/08/28/fortran-cant-get-no-leading-zero/</guid>
<description><![CDATA[Perhaps someone who eats Fortran for breakfast can help me.
Is it really the case that there&#8217;s]]></description>
<content:encoded><![CDATA[<p>Perhaps someone who eats Fortran for breakfast can help me.</p>
<p>Is it really the case that there's no way (in (portable) Fortran) to format a floating point number so that it has as many leading zeros as are necessary to fill the field?</p>
<p>Imagine I wanted to output something like ISO 6709 and have the location of Sheffield displayed as:</p>
<p>+53.40-001.50</p>
<p>In Python (using C's syntax) this is just <code>'%+06.2f%+07.2f' % (lat,lon)</code>.</p>
<p>Can I really not do this in Fortran?  Surely I have just missed something.</p>
<pre>
      WRITE(*,'(SP,F6.2,F7.2)')LAT,LON
</pre>
<p>gives me:</p>
<p>+53.40  -1.50</p>
<p>which is not what I wanted at all.  I (half humourously) tried F06.2,F07.2 but that doesn't work.</p>
<p>If true, it's absolutely unforgivable.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Scientific Progress: A Home Computer in the year 2004]]></title>
<link>http://dsmith77.wordpress.com/?p=272</link>
<pubDate>Wed, 27 Aug 2008 14:40:34 +0000</pubDate>
<dc:creator>Daniel Smith</dc:creator>
<guid>http://dsmith77.it.wordpress.com/2008/08/27/scientific-progress-a-home-computer-in-the-year-2004/</guid>
<description><![CDATA[A Home Computer in the year 2004
This image was scanned from a 1954 issue of Popular Mechanics, the ]]></description>
<content:encoded><![CDATA[[caption id="attachment_271" align="aligncenter" width="509" caption="A Home Computer in the year 2004"]<a href="http://dsmith77.files.wordpress.com/2008/08/home-computer.jpg"><img class="size-full wp-image-271" src="http://dsmith77.wordpress.com/files/2008/08/home-computer.jpg" alt="2004 Home Computer" width="509" height="382" /></a>[/caption]
<p>This image was scanned from a 1954 issue of Popular Mechanics, the magazine. The text says,</p>
<blockquote><p>Scientists at the RAND Corporation have created this model to illustrate how a "home computer" could look like in the year 2004. However the needed technology will not be economically feasible for the averate home. Also the scientists readily admit that the computer will require not yet invented technology to actually work, but 50 years from now scientific progress is expected to solve these problems. With teletype interface and the Fortran language, the computer will be easy to use.</p></blockquote>
<p>Gotta love those early computer scientists!</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[C#, Java, C++, C and Fortran]]></title>
<link>http://programming2x.wordpress.com/?p=3</link>
<pubDate>Thu, 21 Aug 2008 21:01:15 +0000</pubDate>
<dc:creator>Suresh Peram</dc:creator>
<guid>http://programming2x.it.wordpress.com/2008/08/21/c-java-c-c-and-fortran/</guid>
<description><![CDATA[C was the second programming language that I learnt. I thought it was a whole lot better than Fortra]]></description>
<content:encoded><![CDATA[<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Times New Roman;">C was the second programming language that I learnt. I thought it was a whole lot better than Fortran because C did not force me to define the sizes of all the variables that I needed for my programs right at compile time. I could allocate more memory as needed. Perhaps it was the readability of the book, “The C Programming Language” by Kernighan and Richie, but I picked up C and started using it in large programs quickly. I found the use of pointers interesting – I could build “tricky” data structures with pointers and experiment with complex algorithms.</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Times New Roman;">As the creator of C++, Bjarne Stroustrup, said, “<a href="http://www.research.att.com/~bs/C++.html" target="_blank">C++ is a better C</a>” and surely it was. Classes and objects made it much easier to develop large programs, compared to C. Inheritance and polymorphism were useful, but the benefits of using classes and objects far surpassed those of inheritance and polymorphism. But many people, including me, found that it was difficult to ensure that all objects were properly destroyed, especially in large programs. This meant that large programs had memory leaks that needed to be debugged and removed and this required a lot of effort. Moreover, memory leaks meant that organizations could not rely on developing large programs with confidence.</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Times New Roman;">Object destruction and memory leaks were addressed with the introduction of grabade collection Java™ and C#. <span> </span>With garbage collection, the programmer needed no longer worry much about destroying unused objects. As soon as the objects went out of scope, they were made available for garbage collection. Programmers the world over soon found the advantages of using Java and C# too large to ignore and moved to en masses from C++ to these new languages.</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Times New Roman;">Garbage collection involves some overhead because the garbage collector needs to go through all unused objects, clean them up and make the resulting memory available to the global pool. Although Java and C# are great for most software programs, there are still some types of software out there that could benefit from the more efficient nature of C++. Programmers can still churn out good programs that are relatively free of memory leaks using C++. So, when required, organizations should still consider using C++ for their software needs in special situations. For most general programming, Java and C# will do fine and will likely save the organization the headache of dealing with pesky memory leaks. </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Times New Roman;">© Suresh Peram, 2008. All rights reserved.</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Times New Roman;">Notes:</span></p>
<ol style="margin-top:0;" type="1">
<li class="MsoNormal"><span style="font-size:small;font-family:Times New Roman;">Java is a trademark of Sun Microsystems Inc.</span></li>
</ol>
]]></content:encoded>
</item>
<item>
<title><![CDATA[So you want to be a Programmer ?]]></title>
<link>http://julianrdz.wordpress.com/?p=612</link>
<pubDate>Thu, 14 Aug 2008 04:33:38 +0000</pubDate>
<dc:creator>Julián Rodríguez</dc:creator>
<guid>http://julianrdz.it.wordpress.com/2008/08/13/so-you-want-to-be-a-programmer/</guid>
<description><![CDATA[Well I was reading articles in a programming forum, and I saw this title &#8220;So you want to be a ]]></description>
<content:encoded><![CDATA[<p>Well I was reading articles in a programming forum, and I saw this title "So you want to be a Programmer ?" the title sounds like a challenge so I want to share this important article with all of you. If you are really interested and you want to be a computer programmer read this and then start thinking about this career.</p>
<p>I often get personally asked, and see the question come up online a lot, what courses a person should take in college if they want to become a professional programmer. I took a fairly broad range of classes in college (Caltech), and have been programming for 30 years now, so I have some perspective on what has worked for me and what hasn't. I've ordered them from most important to least.</p>
<p>Calculus - No, you won't use calculus in programming. But it turns out that the training of your mind that happens when learning calculus is very beneficial to programming. This training seems to happen in math courses and doesn't happen in programming courses. If you find yourself selecting college courses based on which ones don't require calculus, you should seriously consider changing professions, because you won't make it as a programmer. Take at least 3 years of calculus.</p>
<p>Physics - For unknown reasons, the best programmers tend to be physicists by training. The way physics is taught seems to teach the brain how to go about solving problems in an organized way. Besides, understanding newtonian and quantum mechanics is just freaking cool. You'll be able to proudly wear your Maxwell's Equations t-shirt. Fair warning: once you understand physics, Star Trek, Star Wars, and other hollywood sci-fi craptastic films won't seem so cool anymore.</p>
<p>Compiler Construction - You'll be using a compiler probably more than any other tool, and understanding them will help a lot in getting the most out of them and bending them to your will. Furthermore, the skills learned in writing a compiler pretty much cover the gamut of computer science concepts.</p>
<p>Assembler Programming - You'll never learn how a computer really works by learning high level languages. I know too many programmers who have a fear of assembler. They will go to great lengths to avoid even glancing at the assembler output of their compiler, as if it would strike them blind. But they'll never be in the top tier of programmers. You can learn an awful lot about the compiler you're using, and how to get the most out of it by looking at the asm output. You'll also find that sometimes that's the only way to figure out what is going wrong.</p>
<p>Business Accounting - Eventually in your career, you'll want to move into management or spin off and start your own company. At that point, knowing the fundamentals and language of business accounting is indispensible.<br />
I know it's dull, dull, dull, and lion taming is so much more fun and you've even got a <a href="http://www.youtube.com/watch?v=XMOmB1q8W4Y">hat</a> for it, but without knowledge of accounting you'll be crippled talking to investors, your bank, or the tax man.</p>
<p>Digital Electronics - Understanding how the hardware actually functions will help you approach a computer as a machine that can be mastered rather than a magic black box. You're going to be working with it a lot, might as well understand it.</p>
<p>Jet Engine Analysis - I'm fascinated by engines of all types. Jet engines are especially cool. I'll never forget going to the test bunker while the engineers lit off an F-100 engine. If I could figure out what this has to do with programming, I'd tell you. So sue me.</p>
<p>FORTRAN - It was a waste of time, because FORTRAN shortly thereafter went out of fashion. Generally, any programming course that focusses on learning a particular language is a waste of time. Instead, courses that teach a thought process that is applicable in general to programming is far more valuable. Learning particular languages is just a detail you can do later.</p>
<p>Chemistry - I never properly understood chemistry. This deficit doesn't seem to have mattered in my career. Chemistry seemed to be more oriented towards memorization, and trial and error. I don't think that applies much to programming.</p>
<p>Economics - Ok, this has nothing to do with programming. But economics is one of those dismal fields where everyone thinks they are an expert, from 16 years old on. Few would dream of pontificating about physics or calculus without learning something about it first, but nobody seems to have any qualms about doing it for economics. I see this all the time on reddit, digg, etc. So please, please, take a course in economics and at least understand the basic concepts!</p>
<p>Foreign Language - I'm going to get flamed for this, but I see little point to it for a programming career. I took German, and aside from the personal pleasure in learning it, it's been professionally useless to me. It's a global economy, but knowing German won't help you in dealing with the Chinese or the French, and vice versa. English is the global language of business, and if you know that, you'll be fine.</p>
<p>Interestingly, there's not a lot of actual programming courses in this list. If you're training to be a programmer, shouldn't programming courses be the bulk of them? Not necessarily. College should not be viewed as learning particular knowledge, but as learning how to think. Math will teach you how to think abstractly and logically, and physics will teach you how to approach solving problems. Once that is working in your head, you'll find you can pick up programming rather easily, and those thought processes will serve you well for anything you want to tackle, for the rest of your life.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[NOTES on Fortran]]></title>
<link>http://jenszetech.wordpress.com/?p=59</link>
<pubDate>Sun, 27 Jul 2008 18:17:32 +0000</pubDate>
<dc:creator>jcsze</dc:creator>
<guid>http://jenszetech.it.wordpress.com/2008/07/27/notes-on-fortran/</guid>
<description><![CDATA[AFTER Finally finishing my first MP in CS131.. here are some of the things I learned while doing my ]]></description>
<content:encoded><![CDATA[<p>AFTER Finally finishing my first MP in CS131.. here are some of the things I learned while doing my MP. :D Hope this will serve as a guide for me.. and not to commit those mistakes again.. :D<br />
<!--more--><br />
1. Use function if you want to evaluate it to a certain value.<br />
   Use subroutine if you want to override the value passed to you or if you want to lets say return multiple values, or do not return any values..</p>
<p>2.  INTEGER, INTENT(IN) :: a -&#62; this is from the input, and it will not be changed.<br />
     INTEGER, INTENT(OUT) :: a -&#62; the return value.. as far as i know, you cant passed a value in the call method for it.. kasi output sya..<br />
     INTEGER, INTENT(INOUT) :: a -&#62; galing sa input.. then can change the value and return it. </p>
<p>3.  <strong>DYNAMIC SIZE of the ARRAY</strong><br />
     DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: A   !allocate 2D array<br />
     ALLOCATE(A(1:n, 1:n))    !size nya<br />
     DEALLOCATE(A)              !need to free</p>
<p>4.  END OF FILE.  USE IOSTAT<br />
    READ(fUnit,*, IOSTAT = endOfFile) e, itmax, n<br />
    IF (endOfFile  ibig sabhin end of file na.. </p>
<p>5. if you want everything to be in just one program.. internal functions, subroutines.. you have to MAKE SURE THAT EVERYTHING IS DECLARED.. i mean.. there are variables that will be globally available.. so if you dont want it.. then declare a local one :D okie okei??!??</p>
<p>6. INITIALIAZE Variable.<br />
   Remember that you are not using JAVA. so an integer will not be initialized to 0 at declaration.. so if you are going to use something like   f = f + ... then you neeed to initialize f first.. or else you get a garbage :P</p>
<p>7. Local variable Initialization<br />
   Wel.. another difference between fortran and java.. is that.. in fortran.. once you call a function that have an initialization at declaration.. the second time that you call that function.. d na sya naka init sa ganun.. :( it can remember the previous one.. :(.. so make sure na dapat.. lagi.. initialize mo nlng.. wag na sa declaraton.. wag dun. okie okie?? dapt after.. hehehe</p>
<p>8. FILE handling nga pala<br />
   OPEN(UNIT=fUnit,FILE=pathName,IOSTAT=openFile)<br />
   CLOSE(UNIT=fUnit)</p>
<p>9. If you're using notepad.. dapat may six spaces sa harap.. para mag blue. haha. :D</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[C++ external calls to Fortran executables]]></title>
<link>http://genetical.wordpress.com/?p=29</link>
<pubDate>Mon, 14 Jul 2008 16:32:18 +0000</pubDate>
<dc:creator>genetical</dc:creator>
<guid>http://genetical.it.wordpress.com/2008/07/14/c-external-calls-to-fortran-executables/</guid>
<description><![CDATA[On Sylow at /home/summer/wrappertest, there are two folders: simple and boinc-broken.  The former c]]></description>
<content:encoded><![CDATA[<p>On Sylow at <em>/home/summer/wrappertest</em>, there are two folders: <em>simple </em>and <em>boinc-broken</em>.  The former contains source code for both PC and Linux,  of which the PC source code is stable and the Linux source is stable to the extent of making external calls, but its respective Fortran-executable is not currently working.  In the latter is PC source code that implements the BOINC API but is not properly linked to the BOINC API yet.  I am using the following site now as a guide and hope to have the PC code linked with the BOINC API in the coming days:</p>
<p><a title="http://www.spy-hill.com/~myers/help/boinc/boinc-on-windows.html" href="http://www.spy-hill.com/~myers/help/boinc/boinc-on-windows.html" target="_blank">http://www.spy-hill.com/~myers/help/boinc/boinc-on-windows.html</a></p>
<p>-Chris</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Fortran on Leoprad 2]]></title>
<link>http://misfits.wordpress.com/?p=1854</link>
<pubDate>Fri, 11 Jul 2008 06:19:34 +0000</pubDate>
<dc:creator>ray</dc:creator>
<guid>http://misfits.it.wordpress.com/2008/07/11/fortran-on-leoprad-2/</guid>
<description><![CDATA[今度はGFortranで。
XCode Toolsとかが入っている事が前提となります。
gfortran-i]]></description>
<content:encoded><![CDATA[<p>今度は<a href="http://gcc.gnu.org/wiki/GFortran">GFortran</a>で。</p>
<p>XCode Toolsとかが入っている事が前提となります。</p>
<p>gfortran-intel-leopard-bin.tar.gz (Intel Mac gfortran only)を<a href="http://hpc.sourceforge.net/">High Performance Computing for Mac OS X</a>から落として自分のホームフォルダにおきます。</p>
<p><code>$ sudo tar zxvf gfortran-intel-leopard-bin.tar.gz -C /</code></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Fortran on Leopard]]></title>
<link>http://misfits.wordpress.com/?p=1844</link>
<pubDate>Fri, 11 Jul 2008 02:35:40 +0000</pubDate>
<dc:creator>ray</dc:creator>
<guid>http://misfits.it.wordpress.com/2008/07/11/fortran/</guid>
<description><![CDATA[Fortranのコンパイルのための備忘録 (Leopard 10.5.4)

Xcode Toolsのインストール
iM]]></description>
<content:encoded><![CDATA[<p>Fortranのコンパイルのための備忘録 (Leopard 10.5.4)</p>
<ol>
<li>Xcode Toolsのインストール</li>
<p>iMac付属のDVDから。或は、<a href="http://connect.apple.com/">Apple's developer site</a>からdmgを落として。</p>
<li>PATHの設定</li>
<p><code>export PATH=/opt/local/bin:/opt/local/sbin:$PATH<br />
export DISPLAY=:0.0</code></p>
<blockquote><p>Mac24:~ ray$ env<br />
MANPATH=/usr/share/man:/usr/local/share/man:/usr/X11/share/man<br />
TERM_PROGRAM=Apple_Terminal<br />
TERM=xterm-color<br />
SHELL=/bin/bash<br />
TMPDIR=/var/folders/a2/a2rMgf97Gpi9c0C7OP7+rU+++TI/-Tmp-/<br />
Apple_PubSub_Socket_Render=/tmp/launch-a35KgQ/Render<br />
TERM_PROGRAM_VERSION=240<br />
USER=ray<br />
COMMAND_MODE=unix2003<br />
SSH_AUTH_SOCK=/tmp/launch-p9K05M/Listeners<br />
__CF_USER_TEXT_ENCODING=0x1F5:1:14<br />
PATH=/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin<br />
PWD=/Users/ray<br />
LANG=ja_JP.UTF-8<br />
SHLVL=1<br />
HOME=/Users/ray<br />
LOGNAME=ray<br />
DISPLAY=:0.0<br />
SECURITYSESSIONID=xxx040<br />
_=/usr/bin/env</p></blockquote>
<li>MacPortsのインストール</li>
<p><a href="http://www.macports.org/install.php">The MacPorts Project -- Download &#38; Installation</a>から。MacPorts-1.6.0-10.5-Leopard.dmgだすた。</p>
<li>MacPortsのupdate</li>
<p><code>$ sudo port selfupdate</code></p>
<blockquote><p>iMac24:~ ray$ sudo port selfupdate<br />
Password:</p>
<p>MacPorts base version 1.600 installed</p>
<p>Downloaded MacPorts base version 1.600</p>
<p>The MacPorts installation is not outdated and so was not updated<br />
selfupdate done!</p></blockquote>
<li>G95のインストール</li>
<p><code>$ sudo port -d install g95</code><br />
7分くらいで完了。<br />
あとはビルドするだけ。<br />
<a href="http://ftp.g95.org/G95Manual.jp.pdf">日本語マニュアル</a>によると、</p>
<blockquote><p>簡単な例:<br />
g95 -c hello.f90<br />
hello.f90 をコンパイルして, hello.o という名前のオブジェクト・ファイルを作る.<br />
g95 hello.f90<br />
hello.f90 をコンパイル, リンクし a.out (Unix) あるいは a.exe (Windows) という実行ファイルを生成する.<br />
g95 -c h1.f90 h2.f90 h3.f90<br />
複数のソース・ファイルをコンパイル. 問題がなければ, オブジェクト・ファイル h1.o, h2.o 及び h3.o ができる.<br />
g95 -o hello h1.f90 h2.f90 h3.f90<br />
複数のソース・ファイルをコンパイルし, これらをリンクして hello (Unix) あるいは hello.exe (Windows)という名前の実行ファイルを生成する. </p></blockquote>
<p>参考サイト <a href="http://hiyokoz.blogspot.com/2008/02/macportsg95.html">ひよこっ!: MacPortsでg95をインストール</a></ol>
]]></content:encoded>
</item>
<item>
<title><![CDATA[The More Things Change... -- From Mainframe to Distributed to Cloud Computing]]></title>
<link>http://googlegazer.wordpress.com/?p=53</link>
<pubDate>Thu, 03 Jul 2008 17:31:06 +0000</pubDate>
<dc:creator>dsarna</dc:creator>
<guid>http://googlegazer.com/2008/07/03/the-more-things-change-from-mainframe-to-distributed-to-cloud-computing/</guid>
<description><![CDATA[When I began work for IBM in 1970, mainframes were where it was at, &#8220;Complex Systems&#8221; (i]]></description>
<content:encoded><![CDATA[<p>When I began work for IBM in 1970, mainframes were where it was at, "Complex Systems" (interconnected mainframes) was the ultimate state-of-the-art, the highest-speed character-based terminals were connected to mainframes at a speed of 9.6 kbs (about 1,000 characters a second on a good day), and PL/I an <a title="Imperative programming" href="http://en.wikipedia.org/wiki/Imperative_programming">imperative</a> <a title="Computer programming" href="http://en.wikipedia.org/wiki/Computer_programming">computer</a> <a title="Programming language" href="http://en.wikipedia.org/wiki/Programming_language">programming language</a> was the latest word in rapid development techniques.</p>
<p>Over time, Python, C#, C++, and Java replaced Assembler, PL/I, COBOL, and Fortran, speeds of processors and communications increased exponentially, "graphics" supplanted character-only terminals, memory and storage costs plummeted, and "distributed computing" became in vogue, putting more computing power closer to the user, and efforts focused on trying to get things off the "ancient" and hard-to-maintain mainframes. Then came the PC revolution, and for a while decentralization was all the range, and mainframes became very much "old school" and <strong>passé</strong>, their death warrants having been signed by columnists long ago. Then, people began to figure out two things: (1) they were putting a lot of complexity onto desktops, and this engendered mucho frustration, and required an expensive army of technicians and "help desks" to maintain some semblance of usability, and (2) those desktops had lots of power that went mostly unused most of the time. As Internet service became more reliable, as connection speeds increased, and as specialists like Google and Amazon learned to build multi-acre "farms" of cheap computers reliably and inexpensively, wise men and women figured out that "software as a service" (SAAS) had many potential benefits, and the transparent distribution of the centralized services was imperative to keep pace with wildly fluctuating changes in demand. Thus was born "cloud computing" which is the current rage.</p>
<p>The wizened old GoogleGazer is, once again, reminded, as the french proverb says, <span class="med1"><span class="med1" style="line-height:130%;"><span class="med1"><span class="lrg"><span style="color:blue;"><strong>plus ca change, plus c'est la meme chose</strong></span></span></span></span></span> (the more things change, the more they remain the same). In computing, things stay the same, but the terminology changes, the mechanics of execution get slicker, and the costs of hardware decline inexorably as <a title="Moore's law in Wikipedia" href="http://en.wikipedia.org/wiki/Moore%27s_law" target="_blank">Moore's law </a>has has proved itself for a half a century now. But the bottom line seems to be that we have now come full circle, and for good and for ill, we are moving with alacrity back to the era of centralized software hosting, centralized applications, and centralized control.</p>
<p>This is not necessarily a bad thing. The fundamental needs addressed by the grandfathers of today's young tiger developers haven't changed too much. People still seek powerful but simple to use and reliable solutions, and for the most part, they just want to get their work done without worrying too much about the complexity under the covers. As Samuel Clemens ("Mark Twain") famously observed as he got older, he was amazed at how much his dad had learned in the years between when he himself was 16 and 21! Not all old ideas are bad ideas, and implementing them with new technology can be a downright good idea.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Fortran PC Binary ready to go]]></title>
<link>http://genetical.wordpress.com/?p=27</link>
<pubDate>Tue, 01 Jul 2008 23:14:29 +0000</pubDate>
<dc:creator>genetical</dc:creator>
<guid>http://genetical.it.wordpress.com/2008/07/01/fortran-pc-binary-ready-to-go/</guid>
<description><![CDATA[I&#8217;ve compiled/built Dr. Alexander&#8217;s Fortran program for PC (32-bit).  It can be found on]]></description>
<content:encoded><![CDATA[<p>I've compiled/built Dr. Alexander's Fortran program for PC (32-bit).  It can be found on Sylow in my home directory, <em>/home/chris/PC\ Binaries/SteveAdd/x86/</em> .  The source code is located in <em>/home/chris/src</em> .  The executable takes two paramaters for the input and output files respectively.  Perhaps this is a good candidate for Bob's Haskell script?</p>
<p>-Chris</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Fortran Lesson 3]]></title>
<link>http://jenszetech.wordpress.com/?p=23</link>
<pubDate>Wed, 25 Jun 2008 15:23:48 +0000</pubDate>
<dc:creator>jcsze</dc:creator>
<guid>http://jenszetech.it.wordpress.com/2008/06/25/fortran-lesson-3/</guid>
<description><![CDATA[Lesson 3 tackles different way of doing a loop.

DO LOOP
DO control-var = initial-value, final-value]]></description>
<content:encoded><![CDATA[<p>Lesson 3 tackles different way of doing a loop.<br />
<!--more--><br />
<strong><span style="color:#800000;">DO LOOP</span></strong></p>
<p>DO control-var = initial-value, final-value, [step-size]<br />
statements<br />
END DO</p>
<p><span style="color:#ff6600;"><span style="text-decoration:underline;">EXAMPLE</span></span></p>
<p>DO Count = -3, 4, 2<br />
WRITE(*,*)  Count, Count*Count, Count*Count*Count<br />
END DO</p>
<p><span style="color:#800000;"><strong>DO - EXIT</strong></span><br />
DO<br />
statements-1<br />
EXIT<br />
statements-2<br />
END DO</p>
<p><span style="color:#800000;"><strong>NESTED DO</strong></span></p>
<p>INTEGER :: i, j</p>
<p>DO i = 1, 9<br />
DO j = 1, 9<br />
WRITE(*,*)  i*j<br />
END DO<br />
END DO</p>
<p><span style="color:#800000;"><strong>Handling End of File</strong></span></p>
<p>INTEGER :: io, x, sum<br />
sum = 0<br />
DO<br />
READ(*,*,IOSTAT=io)  x<br />
IF (io &#62; 0) THEN<br />
WRITE(*,*) 'Check input.  Something was wrong'<br />
EXIT<br />
ELSE IF (io &#60; 0) THEN<br />
WRITE(*,*)  'The total is ', sum<br />
EXIT<br />
ELSE<br />
sum = sum + x<br />
END IF<br />
END DO</p>
<p><span style="color:#800000;"><strong>The use of Cycle as Continue</strong></span></p>
<p>DO control-inf<br />
statements-1<br />
CYCLE<br />
statements-2<br />
END DO</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Fortran Lesson 2]]></title>
<link>http://jenszetech.wordpress.com/?p=22</link>
<pubDate>Wed, 25 Jun 2008 13:11:01 +0000</pubDate>
<dc:creator>jcsze</dc:creator>
<guid>http://jenszetech.it.wordpress.com/2008/06/25/fortran-lesson-2/</guid>
<description><![CDATA[Lesson 2 is about the control variables. the if statement etc.

IF-ELSE
IF (logical-expression) THEN]]></description>
<content:encoded><![CDATA[<p>Lesson 2 is about the control variables. the if statement etc.</p>
<p><!--more--></p>
<p><span style="color:#800000;"><strong>IF-ELSE</strong></span></p>
<pre>IF (logical-expression) THEN
   statements-1
ELSE
   statements-2
END IF</pre>
<p><span style="color:#800000;"><span style="text-decoration:underline;"><strong>EXAMPLE:</strong></span></span></p>
<pre><span><span style="color:#000000;">
<pre>INTEGER :: Number

READ(*,*)  Number
IF (MOD(Number, 2) == 0) THEN
   WRITE(*,*)  Number, ' is even'
ELSE
   WRITE(*,*)  Number, ' is odd'
END IF</pre>
<p></span></span></pre>
<p><span style="color:#800000;"><strong>IF (logical-expression)  one-statement</strong></span></p>
<p>EX.  IF( X &#62; Y) write(*,*)</p>
<p><span style="color:#800000;"><strong>SELECTIVE CASE</strong></span></p>
<p>EX 1</p>
<p><em><em><span><em><em></em></em></span></em></em></p>
<pre><em><em><em><em>INTEGER :: Class

SELECT CASE (Class)
   CASE (1)
      WRITE(*,*)  'Freshman'
   CASE (2)
      WRITE(*,*)  'Sophomore'
   CASE (3)
      WRITE(*,*)  'Junior'
   CASE (4)
      WRITE(*,*)  'Senior'
   CASE DEFAULT
      WRITE(*,*)  "Hmmmm, I don't know"
END SELECT
WRITE(*,*)  'Done'</em></em></em></em></pre>
<p><em><em><em><em></em></em></em></em></p>
<p>EX 2</p>
<p><em><em><span><em><em></em></em></span></em></em></p>
<pre><em><em><em><em><em><em><span><em><em><span style="color:#000000;">
<pre>SELECT CASE (Number)
   CASE ( : -1)
      Sign = -1
   CASE (0)
      Sign =  0
   CASE (1 : )
      Sign =  1
END SELECT
WRITE(*,*)  "Sign = ", Sign</pre>
<p></span></em></em></span></em></em>NOTE:   THE ":" symbolizes the range.. pwde rin mag comma sa loob ng case, pwde din ang string.. :D</em></em></em></em></pre>
<p><em><em><em><em></em></em></em></em></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Fortran: Lesson 1]]></title>
<link>http://jenszetech.wordpress.com/?p=18</link>
<pubDate>Sun, 22 Jun 2008 07:56:55 +0000</pubDate>
<dc:creator>jcsze</dc:creator>
<guid>http://jenszetech.it.wordpress.com/2008/06/22/fortran-lesson-1/</guid>
<description><![CDATA[Brief introduction of Fortran.. basic data types, etc.. variables..  how to read and write.. and al]]></description>
<content:encoded><![CDATA[<p>Brief introduction of Fortran.. basic data types, etc.. variables..  how to read and write.. and all those special math functions like abs.. etc.</p>
<p><!--more--><br />
<span style="text-decoration:underline;"><span style="color:#ff0000;">Availabe Data Types:</span></span><br />
integer   list of variables<br />
real      list of variables<br />
double precision  list of variables<br />
complex   list of variables<br />
logical   list of variables<br />
character list of variables</p>
<p><strong><span style="color:#ff0000;">*variables: no more than 31 characters, only [a-zA-Z0-9_] and starts with a letter. case insensitive</span></strong></p>
<p>parameter (pi = 3.14) -&#62; for the constant.. cant be change once declared</p>
<p>***********Body***********</p>
<p><span style="color:#ff6600;"> program prog_name</span><span style="color:#ff6600;"><br />
IMPLICIT NONE<br />
variable declarations<br />
statements, algo<br />
end program prog_name</span><br />
*************************</p>
<p><strong>Constants</strong></p>
<p>for integer: 1, 0, +200, -300</p>
<p>for real:  2.0E6, 3.333E-1  (E = 10^)</p>
<p>for double: 2.0D6</p>
<p>for complex:  (2, -3)  ,  (1., 9.9E-1)   (first part is the real or integer then the second is the imaginary)</p>
<p>logical : .TRUE. , .FALSE.</p>
<p>string: 'HELLO world'  //to use the ' need to escape it. so double ''</p>
<p><strong>Expressions:</strong></p>
<p>operand operator operand ==&#62;   x + y**2  (** here is power)</p>
<p>How to multiply two real variables <tt>x</tt> and <tt>y</tt> using double precision and store the result in the double precision variable <tt>w</tt>:</p>
<pre>      w = dble(x)*dble(y)</pre>
<p><strong>typecasting function:</strong> int, real, dble, ichar(convert char to integer), char (viceversa)</p>
<p>others:</p>
<p>comments: use '!'</p>
<p>continuation of lines: use '&#38;'</p>
<p><strong>declaration of variables:</strong></p>
<p>real :: a, b, c</p>
<p>CHARACTER(LEN=10) :: City, Nation*20, BOX, bug*1  (default is 10, Nation is 20, bug is 1)</p>
<p>CHARACTER(LEN=*) :: Title, Position (* means that the size of this will be declared later)</p>
<p>INTEGER, PARAMETER :: A = '1'</p>
<p>CHARACTER(LEN=*), PARAMETER :: A="JEN", B="ZHEN" ==&#62; A will have 3, B will have 4</p>
<p>Arithmetic: **, + , -, /, *</p>
<p>Relational: ==, /=, &#60;, &#60;=, &#62;, &#62;=</p>
<p>Logical: .NOT. .AND. .OR. .EQV. .NEQV.</p>
<p>FUNCTIONS:<br />
<a href="http://jenszetech.files.wordpress.com/2008/06/formulas.jpg"><img class="alignnone size-medium wp-image-19" src="http://jenszetech.wordpress.com/files/2008/06/formulas.jpg?w=300" alt="" width="443" height="296" /></a></p>
<p><span style="color:#ff0000;"><strong>READ DATA</strong></span><br />
READ(*,*)  var1, var2, ..., varn</p>
<p><span style="color:#ff0000;"><strong>WRITE DATA</strong></span><br />
WRITE(*,*)  exp1, exp2, ..., expn<br />
WRITE(*,*)  'Angle    = ', Angle (comma separated)</p>
<p><span style="color:#ff0000;"><strong>Concatenation:</strong></span> use '//'<br />
<span style="color:#ff0000;"><strong> Substring: </strong></span>LeftHand(3:5) = "abc": the new content of LeftHand  is "12abc67890".</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Installation of Fortran]]></title>
<link>http://jenszetech.wordpress.com/?p=16</link>
<pubDate>Sun, 22 Jun 2008 06:28:55 +0000</pubDate>
<dc:creator>jcsze</dc:creator>
<guid>http://jenszetech.it.wordpress.com/2008/06/22/installation/</guid>
<description><![CDATA[Need to download the g95 compiler at  - Choose the one for the windows&#8230;

then after downloadin]]></description>
<content:encoded><![CDATA[<p>Need to download the g95 compiler at <a href="http://www.g95.org/"></a> - Choose the one for the windows...</p>
<p><!--more--><br />
then after downloading the compiler. put the .exe to the C:\ folder, and then install it. Make sure that you put the files in the C:\ so that there will be no spaces in the directory path. </p>
<p>go to the system -&#62; add new variable "LIBRARY_PATH", include the lib folder of the g95.. thats it! </p>
<p>to try the compiler.. type in the notepad this:</p>
<p>program Hello<br />
print *, 'Hello, world'<br />
end program Hello</p>
<p>then save it as hello.f90<br />
then to compile.. go to command prompt and type: g95 -c hello.f90<br />
to see the output: g95 -o out hello.f90<br />
then type out to see the result. </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Scala to Fortran in 0.68 Seconds]]></title>
<link>http://pshaw.wordpress.com/?p=82</link>
<pubDate>Fri, 20 Jun 2008 03:40:15 +0000</pubDate>
<dc:creator>pshaw</dc:creator>
<guid>http://pshaw.it.wordpress.com/2008/06/19/scala-to-fortran-in-068-seconds/</guid>
<description><![CDATA[Whereas Scala was created just a short 5 years ago, Fortran was created about the time computers wen]]></description>
<content:encoded><![CDATA[<p>Whereas Scala was created just a short 5 years ago, Fortran was created about the time computers went from being powered by steam to being powered by electricity. I'm still writing a few programs in Scala and I just finished writing a small game to learn the ins and outs of Scala's inheritance features. I may publish that code soon. In one week, I begin teaching CS 112 in Java and I still do all of my just-for-me coding in Python. I've got enough languages floating through my head that learning one more won't matter.<br />
<!--more--><br />
I applied for a job in the CS department. The department chair walked into my office today and said, "We want you to do a half-hour lecture on looping mechanisms in Fortran as part of your interview." I don't know Fortran. (I wrote one program in undergrad in Fortran, but quickly forgot everything I learned.)</p>
<p>Alright... let's get loopy in Fortran. It's been 5 years since I looked at a Fortran program, and 5 is close enough to infinity.</p>
<pre><code>
      program count
      integer i, n

c This program counts

      write (*,*) 'Count to:'
      read  (*,*) n
      do 10 i = 1, n
         write(*,*) i
 10   continue

      stop
      end
</code></pre>
<p>I'm already seeing cruft that I don't like about Fortran. The word "continue" literally does nothing in Fortran. The line "do 10 i = 1,n" will begin a counting loop until a line beginning with label "10". The problem is the label itself. I shouldn't have to use labels where labels aren't needed. The loop can be rewritten without the labels:</p>
<pre><code>
      do i = 1, n
         write(*,*) i
      end do
</code></pre>
<p>It's shorter. It's cleaner. It has no labels. I like it. Sadly, this is not standard Fortran. Let's go a while-loop:</p>
<pre><code>
      i = 1
      do while (i .LE. n)
         write(*,*) i
         i = i + 1
      end do
</code></pre>
<p>Again... we have clean, easy to read Fortran. There seems to be an extraneous "do" before the "while", but other than that, it's good code. Again, this isn't standard Fortran.</p>
<p>Standard Fortran is ugly. Legal "while" loops in Fortran don't use the word "while." They use "if." Blah. I feel like I'm writing code for my old TI-82 when I look at this code.</p>
<pre><code>
      i = 1
 10   if (i .le. 10) then
        write (*,*) i
        i = i + 1
        goto 10
      end if
</code></pre>
<p>This is a pre-conditional loop. The same loop can be written as a post-conditional loop.</p>
<pre><code>
      i = 1
 10   write (*,*) i
      i = i + 1
      if (i .le. 10) then
        goto 10
      endif
</code></pre>
<p>I don't see a way out of writing loops in Fortran without resorting to labels or non-standard code. See this post? I have to give a half-hour talk on just this content. Oh boy. How do I make this exciting?</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Pascal : Origins]]></title>
<link>http://bokbonella.wordpress.com/?p=72</link>
<pubDate>Wed, 18 Jun 2008 17:46:58 +0000</pubDate>
<dc:creator>bokbonella</dc:creator>
<guid>http://bokbonella.it.wordpress.com/2008/06/18/pascal-origins/</guid>
<description><![CDATA[Pascal grew out of ALGOL, a programming language intended for scientific computing.  Meeting in Zuri]]></description>
<content:encoded><![CDATA[<p>Pascal grew out of ALGOL, a programming language intended for scientific computing.  Meeting in Zurich, an international committee designed ALGOL as a platform-independent language.  This gave them comparatively free rein in the features they could design into ALGOL, but also made it more difficult to write compilers for it.  Those were the days when many computers lacked hardware features that we now take for granted.  The lack of compilers on many platforms, combined with its lack of pointers and many basic data types such as characters, led to ALGOL not being widely accepted.  Scientists and engineers flocked to FORTRAN, a programming language which <em>was</em> available on many platforms.  ALGOL mostly faded away except as a language for describing algorithms.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Development of Linux]]></title>
<link>http://bokbonella.wordpress.com/?p=69</link>
<pubDate>Wed, 18 Jun 2008 05:00:43 +0000</pubDate>
<dc:creator>bokbonella</dc:creator>
<guid>http://bokbonella.it.wordpress.com/2008/06/18/development-of-linux/</guid>
<description><![CDATA[The primary difference between Linux and many other popular contemporary operating systems is that t]]></description>
<content:encoded><![CDATA[<p>The primary difference between Linux and many other popular contemporary operating systems is that the Linux kernel and other components are free and open source software. Linux is not the only such operating system, although it is the best-known and most widely used. Some free and open source software licences are based on the principle of copyleft, a kind of reciprocity: any work derived from a copyleft piece of software must also be copyleft itself. The most common free software license, the GNU GPL, is a form of copyleft, and is used for the Linux kernel and many of the components from the GNU project.</p>
<p>Linux systems adhere to POSIX,[20] SUS,[21] ISO and ANSI standards where possible. To date, however, only the Linux-FT distribution has been POSIX.1 certified.[22]</p>
<p>Free software projects, although developed in a collaborative fashion, are often produced independently of each other. However, because the software licenses explicitly permit redistribution there is a basis for larger scale projects that collect the software produced by stand-alone projects and make this software available together in a Linux distribution.</p>
<p>A Linux distribution, commonly called a “distro”, is a project that manages a remote collection of Linux-based software, and facilitates installation of a Linux operating system. Distributions are maintained by individuals, loose-knit teams, volunteer organizations, and commercial entities. They include system software and application software in the form of packages, and distribution-specific software for initial system installation and configuration as well as later package upgrades and installs. A distribution is responsible for the default configuration of installed Linux systems, system security, and more generally integration of the different software packages into a coherent whole.</p>
<p>Community</p>
<p>Linux is largely driven by its developer and user communities. Some vendors develop and fund their distributions on a volunteer basis, Debian being a well-known example. Others maintain a community version of their commercial distributions, as Red Hat does with Fedora.</p>
<p>In many cities and regions, local associations known as Linux Users Groups (LUGs) seek to promote Linux and by extension free software. They hold meetings and provide free demonstrations, training, technical support, and operating system installation to new users. There are also many Internet communities that seek to provide support to Linux users and developers. Most distributions and open source projects have IRC chatrooms or newsgroups. Online forums are another means for support, with notable examples being LinuxQuestions.org and the Gentoo forums. Linux distributions host mailing lists; commonly there will be a specific topic such as usage or development for a given list.</p>
<p>There are several technology websites with a Linux focus. Linux Weekly News is a weekly digest of Linux-related news; the Linux Journal is an online magazine of Linux articles published monthly; Slashdot is a technology-related news website with many stories on Linux and open source software; Groklaw has written in depth about Linux-related legal proceedings and there are many articles relevant to the Linux kernel and its relationship with GNU on the GNU project's website. Print magazines on Linux often include cover disks including software or even complete Linux distributions.[23][24]</p>
<p>Although Linux is generally available free of charge, several large corporations have established business models that involve selling, supporting, and contributing to Linux and free software. These include Dell, IBM, HP, Sun Microsystems, Novell, and Red Hat. The free software licenses on which Linux are based explicitly accommodate and encourage commercialization; the relationship between Linux as a whole and individual vendors may be seen as symbiotic. One common business model of commercial suppliers is charging for support, especially for business users. A number of companies also offer a specialized business version of their distribution, which adds proprietary support packages and tools to administer higher numbers of installations or to simplify administrative tasks. Another business model is to give away the software in order to sell hardware.</p>
<p>Programming on Linux</p>
<p>Most Linux distributions support dozens of programming languages. The most common collection of utilities for building both Linux applications and operating system programs is found within the GNU toolchain, which includes the GNU Compiler Collection (GCC) and the GNU build system. Amongst others, GCC provides compilers for Ada, C, C++, Java, and Fortran. The Linux kernel itself is written to be compiled with GCC. Proprietary compilers for Linux include the Intel C++ Compiler and IBM XL C/C++ Compiler.</p>
<p>Most distributions also include support for Perl, Ruby, Python and other dynamic languages. Examples of languages that are less common, but still well-supported, are C# via the Mono project, and Scheme. A number of Java Virtual Machines and development kits run on Linux, including the original Sun Microsystems JVM (HotSpot), and IBM's J2SE RE, as well as many open-source projects like Kaffe. The two main frameworks for developing graphical applications are those of GNOME and KDE. These projects are based on the GTK+ and Qt widget toolkits, respectively, which can also be used independently of the larger framework. Both support a wide variety of languages. There are a number of Integrated development environments available including Anjuta, Code::Blocks, Eclipse, KDevelop, Lazarus, MonoDevelop, NetBeans, and Omnis Studio while the long-established editors Vim and Emacs remain popular.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[PC Binaries]]></title>
<link>http://genetical.wordpress.com/?p=14</link>
<pubDate>Mon, 16 Jun 2008 23:07:33 +0000</pubDate>
<dc:creator>genetical</dc:creator>
<guid>http://genetical.it.wordpress.com/2008/06/16/pc-binaries/</guid>
<description><![CDATA[I am trying to compile Dr. Alexander&#8217;s Fortran test file against a PC kernel so we can do a te]]></description>
<content:encoded><![CDATA[<p>I am trying to compile Dr. Alexander's Fortran test file against a PC kernel so we can do a test run with BOINC on some PC's later this week.  I seem to be missing a bunch of libraries, perhaps because of the compiler I got.  Does anyone know a good place to get a vast C/C++ library?  I just recently downloaded a 900MB SDK from Microsoft but I am still missing quite a few libraries apparently.  They don't seem to be related to BOINC because I am missing windows.h and things like that.  I've tried downloading directly the libraries I need but every time I add one it finds five more that I am missing.  I'm not at my laptop right now with the compiler but I'll post up everything I am missing in a bit.</p>
<p>-Chris</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Introduction to Data Structures and Non-Numeric Computation]]></title>
<link>http://blog.wolffmyren.com/2008/06/15/introduction-to-data-structures-and-non-numeric-computation/</link>
<pubDate>Sun, 15 Jun 2008 17:35:34 +0000</pubDate>
<dc:creator>willwm</dc:creator>
<guid>http://blog.wolffmyren.com/2008/06/15/introduction-to-data-structures-and-non-numeric-computation/</guid>
<description><![CDATA[
06142008429, originally uploaded by William WM.
Picked this up at Powell&#8217;s Technical Books fo]]></description>
<content:encoded><![CDATA[<p><a title="photo sharing" href="http://www.flickr.com/photos/willwm/2578850828/"><img src="http://farm4.static.flickr.com/3177/2578850828_682eb92ca5.jpg" alt="" /></a></p>
<p><a href="http://www.flickr.com/photos/willwm/2578850828/">06142008429</a>, originally uploaded by <a href="http://www.flickr.com/people/willwm/">William WM</a>.</p>
<p class="flickr-yourcomment">Picked this up at Powell's Technical Books for $2.00!</p>
<p>Chock full of good FORTRAN code and optimizations for S/360 computers. Interestingly enough, the data structures themselves hold up quite nicely (binary trees, linked lists, etc) despite the book being over 35 years old!</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Singing paeans to Python!]]></title>
<link>http://mogadalai.wordpress.com/?p=2554</link>
<pubDate>Wed, 11 Jun 2008 04:25:03 +0000</pubDate>
<dc:creator>Guru</dc:creator>
<guid>http://mogadalai.it.wordpress.com/2008/06/11/singing-paens-to-python/</guid>
<description><![CDATA[Phil Hughes does the honour (and along the way there are also some other nice comparisons &#8212; li]]></description>
<content:encoded><![CDATA[<p><a href="http://www.linuxjournal.com/content/why-python-best">Phil Hughes does the honour</a> (and along the way there are also some other nice comparisons -- like the one between C and awk+sed that I quote below):</p>
<blockquote><p>In a more "awkish" venture, my old boss who was now at a company that made microprocessor hardware emulators, asked me if I could do a project for him. They were converting from a 6809-based emulator to a 68000-based one and needed to convert thousands of lines of instruction set encode and decode tables from 6809 assembly language to C. He had estimated a month to do the task assuming it would be done in C. I did it in about three days using awk and sed.</p>
<p>...</p>
<p>So, I was now a C programmer and an awk scripter. The problem was that there was a gap in my toolset. Unlike Fortran V where I even found a way to build and execute assembly language code within the Fortran framework, if I wanted to do anything other than process characters, I had to write the code in C. In most cases this wasn't bad but sometimes 99% of a task could easily be done in a few lines of awk but would require a lot of C.</p>
<p>Well, in 1999 I had the opportunity to <a href="http://www.linuxjournal.com/article/3709">interview Guido von Rossum</a>, the father of Python. While I had already been playing with Python, my chat with Guido (a lot more than an interview) inspired me to get more serious. The interview actually addresses what is wrong with awk and Perl so I won't go into more detail here.</p>
<p>While my life in the last almost ten years has not been primarily programming, I do turn to Python as my tool of choice. Some of what I have done can be called scripting but not all. For example, I implemented a credit card processing system for Visanet (the nastiest of all possible credit card protocols) in Python. I also have done some work with Karrigell, a web framework implemented in Python.</p>
<p>Ok, I talked about awk's limitations and Guido helped me beat up Perl in the interview. Note that my default comment about Perl is that if you don't know regular expressions and UNIX/Linux shell programming, Perl is not the best way to get to knowing a scripting language. So, what's left? The obvious choice is Ruby.</p>
<p>Well, this is where my long, boring history of my Pascal experience fits in. First, let me say that I like Ruby. It is a nicely-designed and very clean language. If you don't already know Python, you should seriously give it a try. But, is it better than Python? I think not.</p>
<p>Ruby, while not really new, just hasn't done as much work as Python. Much like Pascal 30 years ago, Ruby looks good on paper. Pascal's claim to fame was that there were no surprises. Ruby's is that it is pure object oriented. Those are both good things. But, as Ruby does more heavy lifting, it seems likely to me that it will have to evolve. That is, its purity will get subverted much like the purity of Pascal did.</p>
<p>In any case, I will stick with Python. It has certainly evolved over the years but that evolution feels like taking a solid base, seeing what makes it more useful and cleanly handling the evolution. To me, Python 2.5 is easier to explain to someone that Python 1.5.2.</p></blockquote>
<p>A very interesting piece; take a look!</p>
]]></content:encoded>
</item>

</channel>
</rss>
