why a parameter changes when transfered to subroutine

Jerry DeLisle jvdelisle@verizon.net
Sat Jul 28 05:10:00 GMT 2007


fanbin wrote:
> I got a subroutine resh_dis(hubble,redshift,distance) which calculate this:
> 
> distance = 1.0D0/hubble*redshift*3000000D0*(1+redshift/2)/((1+redshift)**2)
> 
> in the subroutine all variables (including hubble ) were defined to be
> real(kind=8), I admit that in the main program the hubble is real(kind=4)
> like 62.0, than when I transfer it to the subroutine, the distance simply
> become infinity, if I tranfered 62.0D0 instead of 62.0, everything becomes
> fine, why? I use the gfortran compiler. 

Can you please send a working simplified example of the problem you are seeing? 
  Need more information.

Also what version of gfortran are you running?  Send the results of the command:

gfortran -v

Regards,

Jerry



More information about the Fortran mailing list