Fortran lettura file
Salve sono alle prime armi con il fortran e sto cercando di imparare qualcosa. Negli ultimi giorni sto cercando di creare un programma che legga dei numeri reali da una tabella posta in un file txt e stamparli sullo schermo, ma con scarso successo. Infatti, non so come mai (uso netbeans) il compilatore, con questo primo codice scritto giù, mi porti un errore del tipo: at line 10 of file asd.f95 (unit=8,file='asd.txt') ed al rigo successivo Fortran runtime error: end of file. Da premettere che il file da cui attingere i valori è semplicemente una matrice 3x3, del tipo 1,2,3 poi a capo 4,5,6 e poi ancora a capo 7,8,9. Il codice in questione che uso è il seguente:
Inoltre, ho provato con una diversa tipologia di ciclo "do" e cioè:
In quest'ultimo caso riesco a scrivere la matrice sullo schermo, ma accadono cose strane quando si va nel debugger. L'array a(i,j) rimane sempre non determinato e questo è un problema perché con una versione successiva del programmino mi serve un determinato valore dell'array e il contatore j passa direttamente a 4.
Spero di essere stato chiaro e mi scuso ancora se non lo sono stato, tenterò di essere più chiaro, so inoltre che non è il modo più corretto di scrivere la dimensione dell'array se non si sanno le dimensioni, per questo vi chiedo anche con pazienza di spiegarmi la funzione "allocate" . Vi ringrazio in anticipo
program lettura
real::a(100,100)
integer::m,n,i,j
print*,"Inserire il numero delle righe e delle colonne della matrice"
open (8,file='asd.txt',status='old')
read*,m,n
do i=1,m
do j=1,n
read(8,*) ,a(i,j)
write(*,*) ,a(i,j)
enddo
enddo
endInoltre, ho provato con una diversa tipologia di ciclo "do" e cioè:
program lettura
real::a(100,100)
integer::m,n,i,j
print*,"Inserire il numero delle righe e delle colonne della matrice"
open (8,file='asd.txt',status='old')
read*,m,n
do i=1,m
read(8,*) (a(i,j),j=1,m)
write(*,*) (a(i,j),j=1,m)
enddo
endIn quest'ultimo caso riesco a scrivere la matrice sullo schermo, ma accadono cose strane quando si va nel debugger. L'array a(i,j) rimane sempre non determinato e questo è un problema perché con una versione successiva del programmino mi serve un determinato valore dell'array e il contatore j passa direttamente a 4.
Spero di essere stato chiaro e mi scuso ancora se non lo sono stato, tenterò di essere più chiaro, so inoltre che non è il modo più corretto di scrivere la dimensione dell'array se non si sanno le dimensioni, per questo vi chiedo anche con pazienza di spiegarmi la funzione "allocate" . Vi ringrazio in anticipo