[FLASH-USERS] Sedov and Sod test problems in Flash 3.0
Klaus Weide
klaus at flash.uchicago.edu
Mon Apr 7 12:06:00 EDT 2008
On Mon, 7 Apr 2008, Geoff Bicknell wrote:
> We are now having problems getting FLASH running in AMR mode. Running in
> single processor mode the dbx output is:
>
[ snip ]
> [5] malloc(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffb35f6cd
> =>[6] compress_list(neigh_morts = ASSUMED-SHAPE ARRAY, istack = 12,
> no_of_remote_neighs = 0, mype = 0, nprocs = 1, l_on_pe = true), line 1630 in "mpi_morton_bnd.F90"
> [7] mpi_morton_bnd_fluxcon(mype = 0, nprocs = 1, tag_offset = 100), line 303 in "mpi_morton_bnd_fluxcon.F90"
> [8] amr_morton_process(), line 807 in "mpi_amr_refine_derefine.F90"
> [9] amr_refine_derefine(), line 602 in "mpi_amr_refine_derefine.F90"
[ snip ]
> Flash is trying to do a malloc with parameters all set to 0. We are using the
> standard flash.par that comes with the 3.0 distribution. We also have similar
> problems with the Sod test.
Geoff,
First of all, I don't think the code is doing something illegal there;
maybe your compiler (or runtime library) is overly picky -- are there some
flags you could use to make it less so? -- or perhaps it cannot deal with
an unusual situation.
Would you please verify that in your code the statement that begins on
line 1630 in "mpi_morton_bnd.F90" looks like this:
call amr_q_sort(neigh_morts(6,2,istart:iend),iend-istart+1, &
ia=indx(istart:iend))
If yes, please try the following: replace the
call amr_q_sort(...
with
if (iend>istart) call amr_q_sort(...
BOTH on line 1630 and a few lines down.
This suggestion is based on the assumption that the compiler
is generating a temporary array for the neigh_morts(6,2,istart:iend)
argument, and that this somehow fails when istart>=iend. I have no way
of testing locally if this is really the cause of your failure.
Please let me know if this results in any improvement - perhaps there are
are other places where similar changes are necessary.
Klaus Weide
More information about the flash-users
mailing list