[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