Newsgroup: it.comp.os.linux.development
Titolo: Problemino compilazione con g77

Tentando di compilare questo programma (per chi lo conoscesse "Tapes G") ho 
incontrato qualche problemino.... (vedi output in fondo alla mail).
1. Durante la compilazione il programma fa riferimento ad un intrinsic 
"SCALE" che in g77 non è implementato, posso trovare da qualche parte la 
subroutine in modo da usarla come external??? o comunque qualcuno ha 
suggerimenti su come ovviare all'inconveniente?
2. tenendo conto che il programma se compilato su un Sun Solaris funziona 
egregiamente, qualcuno saprebbe dirmi perchè mi dà i due problemi 
successivi, ossia mi dice che "LINK" è sia global che intrinsic?? (ok è 
itrinsic perchè è dichiarata come function, ma perchè dovrebbe essere anche 
global?)
3. in generale come mai riesco a compilarlo sotto Sun Solaris, ma non sotto 
linuz, è un problema di compilatore o che altro? E dove posso trovare un 
compilatore gratis per Fortran 77?
Grazie a chiunque mi risponda
Bye
--
f77 -g -C -c tapes_g.f
tapes_g.f: In subroutine `proc':
tapes_g.f:995: warning:
               CALL SCALE(XB,YB,LX1,LY1)
                    ^
Reference to unimplemented intrinsic `SCALE' at (^) (assumed EXTERNAL)
tapes_g.f: In subroutine `artflw':
tapes_g.f:1057: warning:
         CALL SCALE(X(1),Y(1),LX1,LY1)
              ^
Reference to unimplemented intrinsic `SCALE' at (^) (assumed EXTERNAL)
tapes_g.f: In subroutine `deplss':
tapes_g.f:1976:
   100   IF(SDIR(J,I2).LT.0) DDIR(J)=LINK(SDIR(J,I2),ACTIVE(I),
                                     ^
Reference to intrinsic `LINK' at (^) invalid -- one or more arguments have 
incorrect type
tapes_g.f:2030:
   170   IF(SDIR(J,I2).LT.0) DDIR(J)=LINK(SDIR(J,I2),ACTIVE(I),
                                     ^
Reference to intrinsic `LINK' at (^) invalid -- one or more arguments have 
incorrect type
tapes_g.f:1332:
         SUBROUTINE ATRIB(J,I,SLOPE,SLOPED8,ASPECT,PROFC,PLANC,
                    1
tapes_g.f:2254: (continued):
            CALL ATRIB(JN,IN,SLOPE,DUM1,ASPECT,DUM2,DUM3,DUM4,ZDD,ZD,
                 2
Argument #17 (named `mfp') of `atrib' is one type at (2) but is some other 
type
at (1) [info -f g77 M GLOBALS]
tapes_g.f: Outside of any program unit:
tapes_g.f:1976: warning:
   100   IF(SDIR(J,I2).LT.0) DDIR(J)=LINK(SDIR(J,I2),ACTIVE(I),
                                     1
tapes_g.f:2647: (continued):
         FUNCTION LINK(CENTER,ACTIVE,D1,D2,D3,D4,D5,D6,D7,D8,SELECT,
                  2
Same name `link' used for global at (2) and intrinsic at (1) [info -f g77 M 
INTGLOB]
make: *** [tapes_g.o] Error 1
-- 
Cristiano Ballabio
cristiano...@toglimi.gmx.it
 (togli il "toglimi" per rispondere)
Università di Milano-Bicocca
Dipartimento di Scienze dell'Ambiente e del Territorio
Gis Lab

 
  stai usando g77?  forse (forse) chi ha prodotto il pacchetto fortran
  per la tua distro ha abilitato gli INTRINSIC definiti in f90, e
  quindi anche SCALE e LINK sono due INTRINSIC
  sono dichiarati nei sorgenti? esistono delle unita' di programma
  SUBROUTINE SCALE(
  ...
  END
  FUNCTION LINK(
  ...
  END
  se la risposta e' si, in ogni unita' di programma che le usa le devi
  dichiarare come EXTERNAL
  se la risposta e' no, da qui non saprei che pesci prendere
-- 
"Uccisi le due sentinelle per evitare che travisassero le mie
 intenzioni e me ne andai."
                                      John Gardner, "Grendel"