[FLASH-BUGS] bug report
Klaus Weide
klaus at flash.uchicago.edu
Tue Feb 21 21:53:58 CST 2017
Dear Congyao Zhang,
I have tried to reproduce your problem, based on the FLASH 4.4 release
code and the attachment.gz (archived now at
http://flash.uchicago.edu/pipermail/flash-bugs/2017-February/000400.html
). I have failed to see those velocity patterns so far; but you did not
give enough information to easily reproduce the circumstances in which
your problem occurs.
Can you please provide ONE setup (as simple as possible - e.g., uniform
grid if possible, and the smallest number of processes), and instructions,
including setup command and par file, and how long the setup needs to run
before the problem occurs. This should be for FLASH 4.4.
I already noticed some problems with the 2D_test setup contained in your
attachment.gz. Maybe they have something to do with your problem, maybe
not, but you definitely should fix them:
1. Your code refers to grv_meshComm, but this is not initialized
in the Grid_init.F90 your are using. Apply at least the following changes:
Index: Gravity_init.F90
===================================================================
--- Gravity_init.F90 (revision 25622)
+++ Gravity_init.F90 (working copy)
@@ -27,13 +27,14 @@
use Gravity_data
use RuntimeParameters_interface, ONLY : RuntimeParameters_get
- use Driver_interface, ONLY : Driver_getMype, Driver_getNumProcs
+ use Driver_interface, ONLY : Driver_getMype, Driver_getNumProcs, Driver_getComm
implicit none
!==============================================================================
! Everybody should know these
+ call Driver_getComm(MESH_COMM,grv_meshComm)
call Driver_getMype(MESH_COMM,grv_meshMe)
call Driver_getNumProcs(MESH_COMM,grv_meshNumProcs)
call RuntimeParameters_get("useGravity", useGravity)
2. Your implementation of Gravity_accelOneRow does not have the correct
interface, at least for FLASH 4.4 - it disagrees with the interface
block in Gravity_interface.F90, by lacking the optional 'extraAccelVars'
dummy argument. Your implementation has to declare the dummy argument
(even if its code then ignores it), otherwise your code is invalid and
that can lead to strange errors.
There may be similar problems with other routines.
I would strongly recommend compiling and running your code with
debugging enabled. Also, the utility
tools/scripts/codeCheck.py
that comes with FLASH should help you check for inconsistencies
between routines in your simulation directory and elsewhere.
(Try 'tools/scripts/codeCheck.py --help' to get started.)
Klaus
More information about the flash-bugs
mailing list