Newsgroup: it.comp.macintosh
Titolo: errore compilazione g77

Ciao a tutti,
spero la domanda non sia troppo OT, ma ho installato e compilato un
programma fortran sul mac e ho alcuni problemi. La compilazione dal makefile
avviene senza problemi, ma quando lo lancio ho il seguente errore
fmt: read unexpected character
apparent state: internal I/O
last format: (I3)
lately reading sequential formatted internal IO
Abort trap
Mi pare di capire ci sia un formato che non piace, ma non capisco dove e
perche'. Ho installato lo stesso programma su una macchina linux e funziona,
anche se su linux compilavo con
gfortran -ff2c
mentre in mac uso g77 -Wall.
Forse il punto in cui il tutto si pianta origina dal seguente pezzo di
codice. Nella directory /tmp infatti si crea un file tmpsize che poi non
viene cancellato, suppongo perche' qui sia il punto in cui il programma si
pianta. Se qualcuno sa come aiutarmi, ne sarei molto grato! :)
c clear the text screen, and define the number of lines available
c on the screen; these coding lines work for Redhat Linux machines
      write (systemcall,*) 'stty -a > /tmp/tmpsize'
      call system (systemcall)
      open (99,file='/tmp/tmpsize')
      read (99,1010) line
1010 format (a80)
      do i=1,80
         if (line(i:i+3) .eq. 'rows') then
            read (line(i+4:i+6),1011) maxline
1011 format (i3)
            maxline = maxline - 2
            go to 1009
         endif
      enddo
1008 maxline = 24
1009 close (99,status='delete')
      write (systemcall,*) '\\rm -f /tmp/tmpsize'
      call system (systemcall)
      write (systemcall,*) 'clear'
      call system (systemcall)
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 pianta. Se qualcuno sa come aiutarmi, ne sarei molto grato! :)
dall'errore sembra che la READ legga un carattere che non si aspetta
(una lettera invece di un numero ad esempio) e quindi si blocca.
In /tmp/tmpsize cosa c'e' dentro? e sei sicuro che legga giusto?
Ciao Jack

 In /tmp/tmpsize cosa c'e' dentro? e sei sicuro che legga giusto?
bho', il file tmpsize e' quello a seguire. Ma il fatto che mi giri su linux
e non su mac, mi fa ritenere che sia un qualche errore di compilazione
difficile da scovare. Per ora non capisco proprio ...
lflags: icanon isig iexten echo echoe echok echoke -echonl echoctl
        -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
        -extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel -ignbrk
        brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
        -dtrflow -mdmbuf
cchars: discard = <undef>; dsusp = ^Y; eof = ^D; eol = <undef>;
        eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U;
        lnext = <undef>; min = 1; quit = ^\; reprint = ^R; start = ^Q;
        status = <undef>; stop = ^S; susp = ^Z; time = 0; werase = ^W;


 Ciao grazie,
Se pensi sia un problema di compilazione, perche' non installare
gfortran per os x? Lo trovi su 
hpc.sourceforge.net
 o in bundle insieme
ad una installazione di R
d

 ad una installazione di R
in effetti non e' un problema di compilazione, ho installato gfortran
(comunque grazie per il consiglio!!) e sono venuto a capo che il problema e'
legato al fatto che uso un programma scritto per linux e il cui formato di
output per qualche motivo non va bene con quello mac OS X :-( Insomma il
programma si aspetterebbe un output intero e per qualche motivo invece
output prodotto non e' un intero.
Non so proprio come fare, ma so che il problema e' molto probabilmente in
questa linea di pezzo di codice che ho postato precedentemente
read (line(i+4:i+6),1011) maxline
Grazie per eventuali aiuti


 read (line(i+4:i+6),1011) maxline
1) ma maxline l'hai definito come intero?
2) se leggi in file dopo la scritta "rows" c'è un intero?
prova a rimpiazzare 1011 con fmt=*
read (line(i+4:i+6),fmt=*) maxline
che fa?
p.s. comunque è strano perché lui legge quel file e lo chiude
eliminandolo e poi fa una call di sistema per rimuoverlo! lo fa 2
volte.... la seconda non serve.
p.p.s o il programma o quello che l'ha scritto è davvero vecchio!!!