[FLASH-USERS] Bounds-checking fails on IBM BG/L
Christopher Daley
cdaley at flash.uchicago.edu
Tue Jul 28 21:14:27 EDT 2009
Hi Aaron,
>
> Does anyone know of a way to get around this or fix this problem so that I
> can compile with bounds-checking?
>
I have had this compilation failure before. It is a problem with the
IBM compilers as zero-sized arrays are allowed by the Fortran
standard. It is happening because your application does not use
scratch variables and so a dimension of "scratch" array (unused in
your application) is zero.
In the past I have added extra rules to Makefile.h to compile the
affected files according to FFLAGS_TEST options rather than
FFLAGS_DEBUG options (my FFLAGS_DEBUG had -C option and FFLAGS_TEST
did not), e.g.
Grid_getBlkData.o : Grid_getBlkData.F90
${FCOMP} ${FFLAGS_TEST} ${F90FLAGS} ${FDEFINES} $<
Grid_getPlaneData.o : Grid_getPlaneData.F90
${FCOMP} ${FFLAGS_TEST} ${F90FLAGS} ${FDEFINES} $<
Grid_getPointData.o : Grid_getPointData.F90
${FCOMP} ${FFLAGS_TEST} ${F90FLAGS} ${FDEFINES} $<
Grid_getRowData.o : Grid_getRowData.F90
${FCOMP} ${FFLAGS_TEST} ${F90FLAGS} ${FDEFINES} $<
Grid_putBlkData.o : Grid_putBlkData.F90
${FCOMP} ${FFLAGS_TEST} ${F90FLAGS} ${FDEFINES} $<
Grid_putPlaneData.o : Grid_putPlaneData.F90
${FCOMP} ${FFLAGS_TEST} ${F90FLAGS} ${FDEFINES} $<
Grid_putPointData.o : Grid_putPointData.F90
${FCOMP} ${FFLAGS_TEST} ${F90FLAGS} ${FDEFINES} $<
Grid_putRowData.o : Grid_putRowData.F90
${FCOMP} ${FFLAGS_TEST} ${F90FLAGS} ${FDEFINES} $<
However, thinking about it, a quick fix that should work is to change
NSCRATCH_GRID_VARS from 0 to 1 in Flash.h.
For Blue Gene systems, you may find it helpful to add "--env
BG_COREDUMPONERROR=1" option to qsub. When your application
encounters the error it will dump a whole bunch of core files that can
be analysed using coreprocessor.pl tool.
Regards,
Chris
More information about the flash-users
mailing list