Dear all

 I think I find the culprit.

 I was calculating my offset using

 offset = my_rank*dim

where dim is the array size. Both my_rank and dim are normal integers and here lies the rub.

Fortran (or should I say gfortran?) multiplies my_rank*dim in integer*4 and then converts to integer*8 (the offset type). Basically everything is lost then because the value converted is already out of range. I've done a small programme to test this and doing

 offset = INT(my_rank,8)*INT(dim,8)

works fine (in the test programme, I'm still checking if there is another problem on the other one)

Anyway, although is becomes obvious after tracking it I think it can be a normal pitfall for the unaware...

 best,

 Ricardo Reis

 'Non Serviam'

 PhD/MSc Mechanical Engineering | Lic. Aerospace Engineering

 Computational Fluid Dynamics, High Performance Computing, Turbulence
 http://www.lasef.ist.utl.pt

 Cultural Instigator @ Rádio Zero
 http://www.radiozero.pt

 http://www.flickr.com/photos/rreis/

 contacts:  gtalk: kyriu...@gmail.com  skype: kyriusan

 Institutional Address:

 Ricardo J.N. dos Reis
 IDMEC, Instituto Superior Técnico, Technical University of Lisbon
 Av. Rovisco Pais
 1049-001 Lisboa
 Portugal

                      - email sent with alpine 2.00 -

Reply via email to