[R] Fortran and long integers
    Berend Hasselman 
    bhh at xs4all.nl
       
    Mon Feb  7 07:21:26 CET 2011
    
    
  
Earl F Glynn wrote:
> 
> 
> 2-byte (16 bit) signed integers would have a range from -32768 to 
> +37267.  So, it looks like you may be using 2-byte integers and 46,300 
> would definitely cause an overflow with 16-bit integers.
> 
> I haven't used Fortran for a long time, but there could be a compiler 
> switch that forces all 2-byte integers, or a specific declaration that 
> says I, J, N, IOFFSET are only 2-byte (16-bit) integers.
> 
> I'm guess, but you might try a specification like
> 
>    INTEGER*4 I, J, N, IOFFSET
> 
> assuming INTEGER*4 is legal with your Fortran compiler:
> 
The overflow is not caused by 16 bits integers.
I'm quite sure the OP is using 32 bit integers.
The overflow is caused by  the multiplication N*(i-1) and/or i*(i+1).
In Fortran there's not much you can do about this unless your compiler
supports larger integers.
A pity that fortran doesn't have a posint.
Either your solution with doubles or a small C function looks like the way
out.
Berend
-- 
View this message in context: http://r.789695.n4.nabble.com/Fortran-and-long-integers-tp3263054p3263605.html
Sent from the R help mailing list archive at Nabble.com.
    
    
More information about the R-help
mailing list