# Fortranprogramm, Einlesen von Formeln?



## Rahul0891 (9. August 2006)

Hallo,

seit kurzem lerne ich ein wenig Fortran, jetzt wollte ich das erste Programm schreiben,
dass keine Beispielaufgabe ist, stoße aber schon bei dem Aufschreiben des Pseudocodes
mehr oder weniger an meine Grenzen.
Vielleicht kann mir der eine oder andere eine Anstoss geben, wie ich das Problem löse.

Also, es geht um ein Kristallsystem,
das ist zum einem definiert durch irreduzible, fraktionale Atomkoordinaten und 
zum anderen durch die Raumgruppe.
Jede der 230 möglichen Raumgruppen besitzt eine spezielle Anzahl von
Symmetrieoperatoren. Wenn ich dann bezüglich einer Raumgruppe
alle Symmetrieoperatoren auf die irreduziblen Koordinaten anwende
und miteinander vergleiche, 
erhalte ich alle fraktionalen Koordinaten der Elementarzelle.

Nun möchte ich zwei Files in das Programm mithineinnehmen,
zuerst ein File mit der speziellen Nummer der Raumgruppe und den fraktionalen Koordinaten 
und dann soll das Programm basierend auf diesem Inputfile 
das entsprechende File der Raumgruppe mit den Symmetrieoperatoren öffnen.

Zum Beispiel für Raumgruppe 220 öffnet es "P220.sg"
mit 

```
1 220
      2 48
      3 X, Y, Z
      4 0.5-X, -Y, 0.5+Z
      5 -X, 0.5+Y, 0.5-Z
      6 0.5+X, 0.5-Y, -Z
      7 Z, X, Y
      8 0.5+Z, 0.5-X, -Y
   ...
```

Die erste Zeile gibt noch mal die Nummer der Raumgruppe wieder,
die zweite Zahl ist die Anzahl der Symmetrieoperatoren,
und dann kommen die Operationen für die drei Koordinaten bezüglich der 
Symmetrieoperatoren.
An sich einfache Operationen, aber wie kann ich 
am elegantesten meinem Programm mitteilen,
dass er jetzt Operationen durchführen soll.

Dieses Format von "P220.sg" ist halt ziemlich einfach Copy-Paste aus einer
Datenbank, deswegen sieht das so aus und es wär auch einfachsten, es
möglichst beizubehalten.

Meine bisher einzige Idee dazu wäre halt, die Operationen spaltengenau anzuordnen
und dann immer Logikabfragen durchführen, steht da ein "-X" dann rechne so, usw
Finde ich aber oll.

Vielleicht kennt ja jemand was.

Danke Rahul


----------

