[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