Case runs well with single core but fail when parallel running

Hi,
I was simulating leaching progress.
The case runs normally on my windows desktop but fails when parallel.
I run it with the mfix-21.1.3.
the log file says that " From : PARSE_RESID_STRING
Error: Phase index 1 in RESID_STRING V1 out of bounds. "

case.zip (16.4 KB)

When it fails, what platform are you running on? And by parallel, do you mean SMP or DMP? How many cores? Thanks.

– Charles

@yueyuanhe - I just tested this case in mfix-21.2 on both Windows and Linux. I had to update the case slightly because there are more now data checks on the species definitions and you haven’t specified the C_p coefficients for species AgNO3_L. After fixing that, it runs on Windows in both serial and SMP modes (DMP is not supported on Windows). On the Linux platform, the DMP run fails because the code at L212 in your usr1.f routine is not safe - in between your check for existence, and the open statement, another process could have opened the file. One easy woraround is to only do file I/O from processing element 1:

! output
     if (pe .eq. 1)
      FNAME='middle_par.dat'
      INQUIRE(FILE=FNAME,EXIST=F_EXISTS)
      IF (.NOT.F_EXISTS) THEN
         OPEN(UNIT=output_UNIT,FILE=FNAME,STATUS='NEW')
      ELSE
         OPEN(UNIT=output_UNIT,FILE=FNAME,&
            POSITION="APPEND",STATUS='OLD')
      ENDIF
 [ ... ]
   endif

with this modification I was able to run in DMP mode with no errors.

Thank you very much for your help.