Ich habe mich gefragt, wie ich am besten lernen kann, wie man in Fortran programmiert.
Ich habe nach Büchern gesucht. Die Beispiele, die mir in Ordnung erschienen, waren "Fortran 95/2003 Explained" und "Fortran For Scientists And Engineers" .
Ich weiß nicht, was ihr darüber denkt?
Eine andere Sache, über die ich mich frage, ist, welchen Compiler ich verwenden soll? Ich arbeite auf einem Windows 7-Computer (64-Bit).
Ich hoffe ihr könnt mir dabei helfen!
Also für meine Erfahrung mit der Programmierung:
- Matlab und Maple waren nett von meinen ersten Einführungen in die Programmierwelt. Matlab ist ein Programm, in dem ich eigentlich ziemlich gut bin. Ich habe den Dreh raus, mit Loops zu arbeiten und wie man diese kombiniert, um effektivere Programme zu erstellen. Maple befindet sich eher in der Grundphase (ich weiß, wie man die Lösung für einfache Integrale usw. sucht).
- Ein Jahr später erhielten wir eine Einführung in C ++ in Visual Basic. Der Professor ging tatsächlich zu schnell, nach 2 Monaten diskutierten wir bereits über Hinweise und Vererbung. Ich kann einfache Programme in dieser Sprache schreiben, nur die Arbeit mit Klassen ist eine Schwierigkeit, aber ich glaube, das ist nur eine Frage der Übung.
- Und ein Jahr später musste ich Mathematica 8 lernen, was ich heutzutage auch sehr gut kann.
Ich habe also ein bisschen Programmier-Erfahrung, aber ich werde nicht sagen, dass es eine unglaubliche Menge ist!
Der Grund, warum ich Fortran lernen möchte, ist hauptsächlich, dass Sie theoretische Physik nicht alleine machen können, dass Sie Ihre Theorien testen müssen und dass Sie in der Lage sein müssen, Programme zu schreiben, die diese Theorien möglicherweise numerisch testen können. Ich habe gehört, dass Fortran eine gute Sprache für die numerische Mathematik ist, daher denke ich, dass es nützlich wäre, diese Sprache zu kennen.
ps: was ist der unterschied zwischen fortran95 und fortran 2003?
Antworten:
Ich gehe auf die Empfehlung von Stali zu Chapmans Buch ein. Ich habe aus Chapmans Fortran 90-Buch gelernt und es war sehr hilfreich. Es wird Ihnen die Fortran-Sprache beibringen. Es wird Ihnen nichts über gute Workflows für das Programmieren beibringen, und dafür sollten Sie sich anderswo umsehen, nachdem Sie Fortran gelernt und ein wenig programmiert haben.
Die meisten Online-Ressourcen, die Sie bei der Fortran-Programmierung unterstützen, werden Linux-basiert sein. In ähnlicher Weise werden in der Computerwissenschaft die meisten schriftlichen Materialien auf Linux-Benutzer ausgerichtet sein. Aus diesem Grund empfehle ich dringend, VirtualBox (oder eine Software, mit der Sie virtuelle Betriebssysteme ausführen können) zu installieren und dort eine Linux-Distribution zu installieren. Wenn Sie noch nie Linux verwendet haben, ist eine benutzerfreundliche Distribution wie Ubuntu, Mint oder Fedora wahrscheinlich die beste Wahl. Diese Distributionen erfordern ein Mindestmaß an Konfiguration, wenn sie in einer virtuellen Umgebung ausgeführt werden, und verfügen über eine gute Benutzeroberfläche, mit der Sie im Betriebssystem navigieren können. Jede dieser Distributionen verfügt über einen Paketmanager, mit dem Sie zusätzliche Software installieren können. Mit dem Paketmanager können Sie gfortran installieren.
Sie möchten Software in einem Texteditor (oder einer IDE) entwickeln, daher lohnt es sich wahrscheinlich, die Grundlagen der Befehlszeile zu erlernen. Software Carpentry verfügt über gute Ressourcen für diese Aufgabe. (Haftungsausschluss: Ich habe einen Teil eines Workshops für Software Carpentry unterrichtet.) Dann sollten Sie in der Lage sein, das Schreiben einfacher Programme zu erlernen und diese über die Befehlszeile zu kompilieren und dann die Verwendung von Makefile zu lernen.
Das Problem bei Windows-basierten Aktionen besteht darin, dass die meisten Online-Materialien, die Sie bei der Durchführung von Computerwissenschaften sehen, davon ausgehen, dass Sie Linux verwenden, und dass der Rat (wenn er von Anfang an gut war) nicht mehr funktioniert runter und kostet dich Zeit. Cygwin ist eine API-Schicht, die mehr Linux-ähnliche Funktionen hinzufügt, aber die Korrespondenz mit Linux ist nicht perfekt, und für Linux kompilierte Software funktioniert auf Ihrem Computer nicht. Sie müssen weiterhin Windows-native Versionen herunterladen oder die Software für Windows neu kompilieren. Ein Windows-nativer Fortran-Compiler wie Visual Fortran wird Geld kosten, und Sie werden immer noch das Problem haben, dass die meisten Fortran-Benutzer und Computerwissenschaftler Linux für ihre Softwareentwicklung verwenden, was bedeutet, dass Sie Ihre Fortschritte vorantreiben müssen besitzen. Allerdings, wenn Sie wirklich müssenVerteilen Sie Windows-basierte Software aus irgendeinem Grund. Dann ist es sinnvoll, alle Anstrengungen zu unternehmen, um herauszufinden, wie Sie etwas wie Visual Fortran verwenden können.
quelle
Ich denke, dass das Metcalfe-Buch eine gute kommentierte Anleitung zu den modernen Funktionen von Fortran ist, sehr nützlich, wenn Sie bereits eine frühere Version der Sprache kennen, aber keine gute Einführung in die Programmierung in der Sprache.
Für mein Geld sind das Buch von Chiver und Sleightholme sowie das Buch von Brainerd beide gut genug, obwohl ich auch nicht denke, dass es so gut ist wie das Buch von Ellis et al. , Das leider nicht für Fortran 2003 oder später aktualisiert wurde.
Ich habe eine starke Abneigung gegen das Chapman-Buch. Ich kann mich nicht erinnern, warum ich die 90/95-Ausgabe so wenig mochte, also kann ich diese Abneigung nicht länger rechtfertigen, man kann sie als Vorurteil abwerten.
Aber das einzige Buch, das ich ohne zu zögern empfehle, ist das Buch von Arjen Markus . Es ist wahrscheinlich keine ideale Einführung für jemanden, der immer noch versucht, die Grundfunktionen der Sprache herauszufinden, aber wenn Sie diese beherrschen, lohnt es sich, eine wertvolle Substanz zu verwenden.
Was den zu verwendenden Compiler betrifft, verwende ich den Intel-Compiler und bin im Allgemeinen damit zufrieden. Es lässt sich in Visual Studio integrieren, was für Sie möglicherweise wichtig ist. Der NAG-Compiler hat bessere Fehler- und Warnmeldungen, erzeugt jedoch langsamere (im Allgemeinen und nach Ihrer Erfahrung abweichende) ausführbare Dateien. Der Gfortran-Compiler ist kostenlos und erhält genügend Bewertungen, aber ich verwende ihn nicht. Wenn Sie mehr wissen möchten, wird Polyhedron es Ihnen sagen.
quelle
Für Bücher empfehle ich "Modern Fortran Explained" von Metcalf / Reid / Cohen. Es ist eher eine Referenz als ein Lehrbuch, aber es wird Ihnen gute Dienste leisten, wenn Sie bereits mit der Programmierung im Allgemeinen vertraut waren (z. B. C).
Neben diesem Buch empfehle ich dringend die Website von Ondřej Čertík http://fortran90.org/ . Es wird Ihnen Fortran nicht in erster Linie beibringen, aber es wird Ihnen eine Reihe von Best Practices bieten. Fortran bietet verschiedene Programmiermöglichkeiten - es ist schließlich abwärtskompatibel. Die dort angegebenen Best Practices helfen Ihnen dabei, einen konsistenten, modernen Fortran-Stil zu entwickeln. Auch die dort gefundenen FAQ werden Sie interessieren.
quelle
Chapmans Buch ist meiner Meinung nach für Neulinge freundlicher und eine gute Referenz. Die Autoren des zweiten sind alle Experten, aber ich denke, das Buch wird zu einem späteren Zeitpunkt eine gute Ergänzung Ihrer Bibliothek sein.
Für den Anfang würde ich vorschlagen, dass Sie sich an Fortran 95 halten und später (falls erforderlich) zu Fortran 2003 wechseln. Fortran 95 ist leicht zu erlernen (fast wie Matlab) und Sie werden sehr schnell produktiv sein.
Unter Linux gibt es eine Reihe kostenloser Fortran-Compiler (GNU, Solaris Studio, Open64 usw.) sowie eine umfangreichere Reihe von Tools, z. B. valgrind, gdb, gnuplot (für schnelle Informationen), svn / hg usw. vorkompilierte Pakete mit numerischen Bibliotheken (blas / lapack / netcdf / fftw usw.) sind nur einen Befehl entfernt (zumindest unter Debian mit apt-get).
Unter Windows sind Sie mit Cygwin möglicherweise besser dran, da Sie zusätzlich zum GNU Fortran-Compiler einfach und schnell auf einige der oben genannten Tools / Bibliotheken zugreifen können. Also ja, gehen Sie zu cygwin.com und installieren Sie das Kernpaket zusammen mit gfortran und einem Editor Ihrer Wahl (vim ist gut). Das sollte ein guter Anfang sein. Wenn Sie später noch etwas anderes haben, würde ich vorschlagen, das apt-cyg- Paket für die Installation zu verwenden.
quelle