25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

138 Array<br />

! *** Sezione esecutiva ***<br />

! Valori iniziali di tentativo<br />

T = 0<br />

! Condizioni al contorno<br />

T(1:10,1) = 1.0<br />

T(1,1:10) = (/(0.1*j,j=10,1,-1)/)<br />

! Inizio iterazioni<br />

Told = T<br />

niter = 0<br />

DO<br />

T(2:9,2:9) = (Told(1:8,2:9)+Told(3:10,2:9) &<br />

+Told(2:9,1:8)+Told(2:9,3:10))/4.0<br />

diff = MAXVAL(ABS(T(2:9,2:9)-Told(2:9,2:9)))<br />

niter = niter+1<br />

! Test di convergenza<br />

PRINT *, "Iter n. ",niter, diff<br />

IF (diff < 1.0E-4) THEN<br />

EXIT<br />

END IF<br />

Told(2:9,2:9) = T(2:9,2:9)<br />

END DO<br />

! Stampa dei risultati<br />

PRINT *, "Campo finale: "<br />

DO i = 1,10<br />

PRINT "(10F7.3)", Told(1:10,i)<br />

END DO<br />

END PROGRAM laplace<br />

Si riporta, per completezza, uno stralcio dell’output:<br />

Iter n. 1 0.4750000<br />

Iter n. 2 0.1812500<br />

Iter n. 3 0.1125000<br />

...<br />

Iter n. 94 1.116693E-04<br />

Iter n. <strong>95</strong> 1.049638E-04<br />

Iter n. 96 9.861588E-05<br />

Campo finale:<br />

1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000<br />

0.<strong>90</strong>0 0.8<strong>90</strong> 0.879 0.866 0.848 0.820 0.774 0.686 0.494 0.000<br />

0.800 0.782 0.762 0.737 0.705 0.660 0.5<strong>90</strong> 0.477 0.291 0.000<br />

0.700 0.675 0.648 0.617 0.577 0.524 0.449 0.342 0.192 0.000<br />

0.600 0.570 0.539 0.504 0.462 0.409 0.340 0.249 0.134 0.000<br />

0.500 0.467 0.434 0.399 0.359 0.312 0.254 0.181 0.0<strong>95</strong> 0.000

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!