180 likes | 240 Views
Rechnerlandschaft am GIUW. Geo-Pool: 13 PCs mit Betriebssystem Windows XP CIP-Pool: 16 PCs mit Betriebssystemen Windows XP und Linux:. CIP : Computer Investitions Programme (Rechner zu Lehrzwecken an Hochschulen) jeder Teilnehmer hat (hoffentlich) einen Account (Username, Password)
E N D
Rechnerlandschaft am GIUW • Geo-Pool: 13 PCs mit Betriebssystem Windows XP • CIP-Pool: 16 PCs mit Betriebssystemen Windows XP und Linux: • CIP : Computer Investitions Programme (Rechner zu Lehrzwecken an Hochschulen) • jeder Teilnehmer hat (hoffentlich) einen Account (Username, Password) • für Programmiersprache Fortran und Datenvisualisierungsprogramm GMT wird Betriebssystem Linux benötigt
Arbeitsablauf • bei der Bearbeitung wissenschaftlicher Fragestellungen werden meist verschiedene Prozesse und Programme am Computer genutzt: Starten des Betriebs- systems Öffnen einer zu bearbeitenden Datei mit einem Editor Bearbeiten eines Textdokuments, einer Graphik oder eines Programms mit den Editorbefehlen Abspeichern der bearbeiteten Datei auf einem Speicher- medium (Festplatte, CD) Dokumentation oder Präsentation des berech- neten Ergebnisses (Ausdruck, Datei) Nach- bearbeitung des berech- neten Ergebnisses (weiteres Programm, Visualisierung) Ausführen des kompilierten Programms Übersetzen (Kompilieren) des Programms in Maschinen- sprache
Starten des Betriebssystems • Einschalten des Computers bewirkt automatisch Booten: Betriebs-system wird vom Master Boot Record auf der Festplatte in Hauptspeicher (RAM) geladen • nach Booten ist eine vollständige Konsole verfügbar: Eingabeeinheit (Maus+Tastatur) sowie Ausgabeeinheit (Bildschirm) • Eingabeoberfläche kann graphisch (Windows, Maus) oder befehls-zeilenorientiert (DOS, Tastatur) sein • Einloggen (Benutzername+Kennwort) führt auf die graphische Linux-Eingabeoberfläche, die selbst ein Programm ist und nun weitere Programme zugänglich macht
Betriebssystem Linux • Starten einer befehlszeilen-orientierten Eingabeoberfläche (Shell) oder einer graphischen Bedieneroberfläche (z.B. OpenOffice) • hier wird die sogenannte C-Shell “csh“ verwendet • Einstellungen für das Erscheinungsbild der Shell werden in den Umgebungsdateien /etc/profile und /home/user/.cshrc getätigt (wirksam mit source .cshrc oder bei Neustart der Shell): • zu praktisch jedem Programm gibt es Hilfsseiten (Manual Pages), die im Befehlszeilenmodus über man befehl_name aufgerufen werden • Prompting • Aliasing • globale Pfadangaben • …
Betriebssystem Linux • wichtigste Befehle im Linux-Eingabemodus:
Bash-Shell • Start der Shell mit Mausklick auf den Button unter Linux • Beenden der Shell mit ‘exit‘ oder STRG + D • Cursor auf / ab ruft letzte Befehle im Eingabemodus auf • Tabulatortaste |↔| ergänzt begonnene Befehle oder Dateinamen • nachgestelltes & schickt Programmausführung in den Hintergrund und gibt Shell frei • Pipe-Symbol | verbindet zwei Befehle, z.B.: ls –l | wc • Joker-Symbol * Platzhalter für Datei- und Verzeichnisnamen • einzelne Shell-Befehle können auch in Shellskripten gebündelt werden
joe-Editor • praktischer ASCII-Editor unter Linux mit Tastensteuerung: Aufruf mit joe file_name • Befehle werden über Strg -Taste angesprochen (siehe ^KH), z.B.: • beim Abspeichern wird Sicherheitskopie file_name~ erzeugt
Dateisystem • elektronische Speicherung von Informationen erfolgt binär mit den Zuständen 0 und 1 (Bit); 8 Bit-Informationen ergeben ein Zeichen (Byte) • Zahlen im Wertebereich ± 231=2·109 können mit 4 Bytes dargestellt werden, z.B.: • Vielzahl von Zeichen oder Zahlen in Dateien abgespeichert, die auf dem Computer einem Ordnungsprinzip (Dateisystem) unterliegen: 84 = 1·26 + 0·25 +1·24 +0·23 +1·22 +0·20 Partitionen, Stammverzeichnis: c:\ d:\ /verz1/ /verz2/ Einzeldateien: file_name.suffix [Buchstaben Zahlen . - _ ] / [, / \ ? * : ; @ ~] Verzeichnisbaum: uverz1\uuverz1\... uuverz2\... uverz2\uuverz3\... uuverz4\... uverz1/uuverz1/… uuverz2/…
Dateisystem • relative Adressierung von Verzeichnissen und Dateien: • absolute Adressierung von Verzeichnissen und Daten: • Dateiattribute unter Linux: • wichtigste Verzeichnisse für Methodenkurs: Windows & Linux : cd ../../uverz1/uuverz2 Windows : cd c:\uverz1\uuverz2 Linux : cd /verz1/uverz2/uuverz3 drwxr-xr-x 1 user group 1295382 Datum : Verzeichnis -rwxr-xr-x 1 user group 1295382 Datum : Datei read write für execute User Group Others
Fortran • Fortran steht für Formula Translator: speziell für formelmäßige Berechnungen mit dem Computer • Hochsprache: Sprachelemente sind an naturwissenschaftlich arbeitende Menschen angepasst (mathematische Funktionen etc.) • Versionen: Fortran77 (1978), Fortran90 (1991), Fortran95 (1995) • auch heute noch Basissprache für praktisch alle Modellanwendungen in den Naturwissenschaften • alternativ auch C und C++ (seit 1990): analoge Struktur, andere Syntax • Dateien mit Fortran-Quellcode haben die Dateiendung .f bzw. .for
Compiler • die Übersetzung vom für den Menschen verständlichen Quellcode zum maschinenlesbaren Executable wird von einem Compiler bewerkstelligt • Fortran-Compiler für Windows sind meist sehr teuer oder haben Eigenarten bzgl. des Quellcodes • deshalb hier kostenloser Fortran-Compiler von GNU unter Linux • Aufruf des Compilers im Befehlszeilenmodus von Linux: g77 –o file_name.exe file_name.f [Optionen, Bibliotheken] mit alias-Befehl bzw. Shellskript: g file_name User erhält automatisch das Recht, das Executable auszuführen
Arbeitsschritte • das Arbeiten mit Fortran beinhaltet i.d.R. die folgenden Arbeitsschritte: Starten eines beliebigen Texteditors (ASCII, nicht Word & Co.) Bearbeiten der Textdatei mit dem Fortran- Quellcode (“Program- mieren“) Abspeichern der Quellcode- Datei Aufruf des Compilers im Befehls- zeilenmodus Editieren oder Weiter- verarbeiten der Ergebnis- datei Ausführen des Executables im Befehls- zeilenmodus
Allgemeine Form des Quelltextes • Fortran-Befehle werden im Quellcode zeilenweise in Datei geschrieben und nach dem Kompilieren auch zeilenweise ausgeführt • allgemein ist in der Quellcode-Datei zu beachten: • nur eine Anweisung pro Zeile • zwischen Groß- und Kleinschreibung wird nicht unterschieden • Spaltenbelegung: 1-5 : Anweisungsmarke (Label, Kommentarzeichen) 6 : Zeichen für Zeilenfortsetzung 7-72 : Raum für Anweisungen (Fortran-Befehle) >73 : vom Compiler nicht interpretierter Raum für Kommentare
hier werden nur die wichtigsten Sprachelemente zusammengefasst; am besten lässt sich der Sprachumfang direkt beim Programmieren erweitern Sprachelemente
Beispielprogramm program beispiel_fortran_programm implicit none c ********************************************************** c * - dieses Programm vereint beispielhaft einige der * c * wichtigsten Sprachelemente von Fortran * c * - das Programm liest Temperaturen in Grad Celsius ein * c * rechnet in Kelvin um und schreibt das Ergebnis in * c * eine neue Datei * c ********************************************************** c---- Vereinbarungsteil ---------------------------------------- integer nt,ja,bs character infile*11,outfile*10 real kv parameter(infile='celsius.dat', ! Input-Datei mit Werten 1 nt=11, ! Anzahl der Zeitpunkte 1 kv=273.15, ! Umrechnungsgroesse 1 bs=1, ! 0=nicht ; 1=Bildschirmausgabe 1 outfile='kelvin.dat') ! Output-Datei fuer Ergebnisse integer jahr(nt) real temp(nt),neutemp(nt) c---- Temperaturzeitreihe aus ASCII-Datei einlesen ------------- open(11,file=infile,form='formatted') do ja=1,nt read(11,'(i6,f8.1)') jahr(ja),temp(ja) enddo close(11) write(6,*) 'Daten eingelesen !' c---- Input-Daten am Bildschirm ausgeben ----------------------- write(6,'(a19)') ' Eingelesene Daten:' do ja=1,nt write(6,'(2i6,f10.2)') ja,jahr(ja),temp(ja) enddo
Beispielprogramm c---- Temperaturdaten umrechnen -------------------------------- do ja=1,nt neutemp(ja)=temp(ja)+kv enddo write(6,*) 'Daten umgerechnet !' c---- neue Temperaturdaten in Datei schreiben ------------------ open(21,file=outfile,form='formatted') do ja=1,nt write(21,'(i6,f8.1)') jahr(ja),neutemp(ja) enddo close(21) write(6,*) 'Neue Temperaturdaten in Datei geschrieben !' c---- ggf. neue Temperaturdaten auf Bildschirm schreiben ------- if (bs.eq.1) then write(6,'(a20)') ' Umgerechnete Daten:' do ja=1,nt write(6,'(2i6,f10.2)') ja,jahr(ja),neutemp(ja) enddo else write(6,'(a45)') ' Sie haben keine Ergebnisausgabe gewuenscht !' endif c---- Schluss -------------------------------------------------- write(6,*) 'Das Programm endet nun. Einen schoenen Tag noch!' end
#-- Shell angeben -----------------------------------------------------------#!/bin/sh#-- Daten in ASCII einlesen und in GRID umwandeln ---------------------------xyz2grd /home/heiko/hab/seminar/ypremedi.gmt -Gkarte.grd -R-10/40/30/44 -I0.5echo ' Daten umgewandelt !'#-- Daten als Pixel oder interpolierte Pixel zeichnen -----------------------#grdimage karte.grd -R-10/40/30/44 -JX8/2.3d -Ba5f5/a5f5WSne -Cfarbe200.cpt \# -X2 -Y3.3 -K > medi.psgrdview -Qs karte.grd -R-10/40/30/44 -JX8/2.3d -Ba5f5/a5f5WSne -Cfarbe200.cpt \ -X2 -Y3.3 -K > medi.psecho ' Pixel gezeichnet !'#-- Karte mit Kuestenlinien und Laendergrenzen zeichnen ---------------------pscoast -A1000 -N1 -R-10/40/30/44 -JX8/2.3d -W10 -O -K >> medi.psecho ' Karte gezeichnet !'#-- Abbildung beschriften ---------------------------------------------------pstext -N -Jx1 -R0/6/0/6.2 -O -K -N <<END>> medi.ps 4.0 2.6 16 0.0 1 2 Mittlerer Jahresniederschlag 4.0 -0.55 14 0 1 2 geogr. L\342nge -0.6 1.15 14 90 1 2 geogr. BreiteENDecho ' Abbildung beschriftet !'#-- Legende zeichnen --------------------------------------------------------psscale -Cfarbe200.cpt -L -D4/-0.8/8/0.2h -O >> medi.psecho ' Legende gezeichnet !‚ Generic Mapping Tool (GMT)