Bombentrichter
Home
Mensa
Stundenpläne
StuRa
Home
Help
Search
Calendar
Login
Register
Bombentrichter
»
Archiv
»
5./6. Semester
»
Belege 5./6. Semester
»
CFD Fortran
« previous
next »
Print
Pages: [
1
]
Author
Topic: CFD Fortran (Read 3354 times)
Litschi
Full Member
Posts: 244
Karma: +0/-0
CFD Fortran
«
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 -.-
Logged
Ledan
Newbie
Posts: 37
Karma: +0/-0
CFD Fortran
«
Reply #1 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.
Logged
Hägar
Jr. Member
Posts: 90
Karma: +0/-0
CFD Fortran
«
Reply #2 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
Logged
Ledan
Newbie
Posts: 37
Karma: +0/-0
CFD Fortran
«
Reply #3 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...
Logged
Hägar
Jr. Member
Posts: 90
Karma: +0/-0
CFD Fortran
«
Reply #4 on:
June 11, 2009, 12:04:32 pm »
Ok, jetzt seh ich es auch.
Logged
Print
Pages: [
1
]
« previous
next »
Bombentrichter
»
Archiv
»
5./6. Semester
»
Belege 5./6. Semester
»
CFD Fortran