Bombentrichter

Archiv => 5./6. Semester => Belege 5./6. Semester => Topic started by: Litschi on June 05, 2009, 03:46:55 pm

Title: CFD Fortran
Post by: Litschi on June 05, 2009, 03:46:55 pm
Moin,

also ich sitz hier noch an der Einführung ins Fortran, vom Herrn Stiller.

Also für die Übungsaufgabe mit dem Darstellen der Funktion hab ich den code schon fertig, aber mein bild ausm Gnuplot sieht irgendwie doof aus....entweder bin ich du doof das ding einzustellen oder mein code is falsch:

program sinus
implicit none

real, dimension(30)   :: x,y
real,   dimension(30,30)   :: f

integer      ::   i,j

do i=1, 30
   do j=1,30
      x(i)=(i-1.0)/(6./29)
      y(j)=(j-1.0)/(6./29)
   end do
end do
open (unit=40, file='sinus.dat' ,status='new', action='write')

do   i=1, 30
   do   j=1, 30
      
      f(i,j)=SIN(x(i))*COS(y(j))
         
         
         write(40,*) x(i), y(j), f(i,j)


      
   end do   
end do

close (40)
      
end program

Gnuplot:


set term jpeg
set output "Bild.jpg"


set hidden3d


splot "sinus.dat" using 1:2:3 with lines


ich hoffe mir kann einer helfen -.-
Title: CFD Fortran
Post by: Ledan on June 05, 2009, 06:40:43 pm
Mach mal aus:
x(i)=(i-1.0)/(6./29)
y(j)=(j-1.0)/(6./29)
folgendes:
x(i)=(i-1.0)*(6./29)
y(j)=(j-1.0)*(6./29)

:w00t:
Und wenn du eine Schleife davon weg lässt, wirds noch eleganter.

do i=1,30
           x(i)=(i-1.0)*(6./29)
           y(i)=(i-1.0)*(6./29)
end do

Mit deiner Variante belegt er bei einem Durchgang der äußeren Schleife 30 mal x(i) (Da es innerhalb der zweiten Schleife liegt). Bei einem weiteren Durchgang der ersten Schleife läuft er wieder Schleife 2 durch, belegt 30 mal x(i+1) und überflüssigerweise y( : ) nochmal.  Das führt dazu, dass dein x und y Array 30 mal belegt wird. Wir müssen es ja nicht übertreiben.
Title: CFD Fortran
Post by: Hägar on June 10, 2009, 10:59:21 pm
Das Ändern der Schleifen spart Litschi zwar einige Rechenoperationen, sein Problem dürfte aber davon unabhängig sein. Denn an den Vektoren x und y ändert sich durch ändern der Schleifen ja nix.

edith sagt: lass mal das "with lines" weg
Title: CFD Fortran
Post by: Ledan on June 10, 2009, 11:03:12 pm
Ich versteh deinen Beitrag nicht. Litschi hat einfach die Werte von x und y falsch belegt. Und ich hab ja hingeschrieben was falsch ist...
Title: CFD Fortran
Post by: Hägar on June 11, 2009, 12:04:32 pm
Ok, jetzt seh ich es auch.