diff --git a/Source/dump.f90 b/Source/dump.f90 index 357c8633883..7f6fb8cc262 100644 --- a/Source/dump.f90 +++ b/Source/dump.f90 @@ -10253,8 +10253,14 @@ SUBROUTINE UPDATE_HRR(DT,NM) ENDDO ENDDO CFACE_LOOP_2 -Q_DOT_SUM = Q_DOT_SUM + DT*Q_DOT -M_DOT_SUM = M_DOT_SUM + DT*M_DOT +! Muliply the energy and mass rates (Q_DOT, M_DOT (W)) for this time step by the time step size, DT. +! For all the meshes belonging to the current MPI process, keep a running tally of the rates (Q_DOT_SUM, M_DOT_SUM (J)). +! When it is time for a dump to the CHID_hrr.csv file, sum up (i.e. MPI_ALLREDUCE) Q_DOT_SUM and M_DOT_SUM in main.f90. + +IF (NM==UPPER_MESH_INDEX) THEN + Q_DOT_SUM = Q_DOT_SUM + DT*Q_DOT + M_DOT_SUM = M_DOT_SUM + DT*M_DOT +ENDIF END SUBROUTINE UPDATE_HRR diff --git a/Source/main.f90 b/Source/main.f90 index 8b510adbcb3..2ceef62427f 100644 --- a/Source/main.f90 +++ b/Source/main.f90 @@ -4079,9 +4079,14 @@ SUBROUTINE DUMP_GLOBAL_OUTPUTS ! Dump out HRR info into CHID_hrr.csv IF (T>=HRR_CLOCK(HRR_COUNTER(1))) THEN - CALL MPI_ALLREDUCE(MPI_IN_PLACE,Q_DOT_SUM,N_Q_DOT,MPI_DOUBLE_PRECISION,MPI_SUM,MPI_COMM_WORLD,IERR) - CALL MPI_ALLREDUCE(MPI_IN_PLACE,M_DOT_SUM,N_TRACKED_SPECIES,MPI_DOUBLE_PRECISION,MPI_SUM,MPI_COMM_WORLD,IERR) - IF (MY_RANK==0) CALL DUMP_HRR(T,DT) + IF (MY_RANK==0) THEN + CALL MPI_REDUCE(MPI_IN_PLACE,Q_DOT_SUM,N_Q_DOT,MPI_DOUBLE_PRECISION,MPI_SUM,0,MPI_COMM_WORLD,IERR) + CALL MPI_REDUCE(MPI_IN_PLACE,M_DOT_SUM,N_TRACKED_SPECIES,MPI_DOUBLE_PRECISION,MPI_SUM,0,MPI_COMM_WORLD,IERR) + CALL DUMP_HRR(T,DT) + ELSE + CALL MPI_REDUCE(Q_DOT_SUM,Q_DOT_SUM,N_Q_DOT,MPI_DOUBLE_PRECISION,MPI_SUM,0,MPI_COMM_WORLD,IERR) + CALL MPI_REDUCE(M_DOT_SUM,M_DOT_SUM,N_TRACKED_SPECIES,MPI_DOUBLE_PRECISION,MPI_SUM,0,MPI_COMM_WORLD,IERR) + ENDIF HRR_COUNTER(1) = HRR_COUNTER(1) + 1 Q_DOT_SUM = 0._EB M_DOT_SUM = 0._EB