error with function declaration
Marcello Vichi
vichi@bo.ingv.it
Sat Aug 25 08:03:00 GMT 2007
Dear all,
hope someone can help me with this problem that's driving me mad...
I am currently porting a scientific software for biogeochemistry
simulations to gfortran. For those of you who are interested in this
stuff, check www.bo.ingv.it/bfm
Compilation is fine both with Portland, ifort (on linux and mac) and F90
compilers on NEC SX machines.
However, I get an error with gfortran (linux and mac) when I have
functions declared in this way
REAL(RLEN) FUNCTION BESS_EXP(X,LAMBDA,FN)
USE global_mem, ONLY:RLEN
USE constants
IMPLICIT NONE
...
where RLEN is declared as
MODULE global_mem
INTEGER, PARAMETER :: RLEN=kind(1.D0)
...
The reported error is:
REAL(RLEN) FUNCTION BESS_EXP(X,LAMBDA,FN)
1
Error: Parameter 'rlen' at (1) has not been declared or is a variable,
which does not reduce to a constant expression
I've never had problems with the other compilers up to now. I can
overcome this by declaring the function name in the preamble
REAL(RLEN) :: BESS_EXP
but I have quite many of them, and moreover this kind of declaration
should be standard since f90
Does anyone have an idea of what I'm doing wrong?
Many thanks in advance
Marcello
--
>>> NOTE THE CHANGE OF ADDRESS AND TELEPHONE NUMBER <<<
Dr Marcello Vichi
Centro Euro-Mediterraneo per i Cambiamenti Climatici (CMCC)
Istituto Nazionale di Geofisica e Vulcanologia (INGV)
Via Aldo Moro 44, 40127 Bologna. Italy
Tel: +39 051 3782631 Fax: +39 051 3782654
Email: marcello.vichi@cmcc.it, vichi@bo.ingv.it
skype: marcello_vichi
More information about the Fortran
mailing list