From c1cc2357e9fe61fb3874e98e7c3074721eb417a8 Mon Sep 17 00:00:00 2001 From: rmcdermo Date: Thu, 29 Apr 2021 18:56:25 -0400 Subject: [PATCH] FDS Source: fix FAVRE AVERAGE --- Source/dump.f90 | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Source/dump.f90 b/Source/dump.f90 index 00be294c5ff..86203eaf140 100644 --- a/Source/dump.f90 +++ b/Source/dump.f90 @@ -6420,11 +6420,6 @@ SUBROUTINE UPDATE_DEVICES_2(T,DT) CYCLE DEVICE_LOOP ENDIF - ! Weight factor for time-averaging - - WGT = DT/MAX(DT,T-DV%STATISTICS_START) - DV%AVERAGE_VALUE = (1._EB-WGT)*DV%AVERAGE_VALUE + WGT*DV%INSTANT_VALUE - ! Apply the various temporal statistics SELECT CASE (DV%TEMPORAL_STATISTIC) @@ -6435,9 +6430,13 @@ SUBROUTINE UPDATE_DEVICES_2(T,DT) DV%VALUE = DV%VALUE + DV%INSTANT_VALUE*DT DV%TIME_INTERVAL = DV%TIME_INTERVAL + DT CASE('RUNNING AVERAGE') + WGT = DT/MAX(DT,T-DV%STATISTICS_START) + DV%AVERAGE_VALUE = (1._EB-WGT)*DV%AVERAGE_VALUE + WGT*DV%INSTANT_VALUE DV%VALUE = DV%AVERAGE_VALUE DV%TIME_INTERVAL = 1._EB CASE('TIME INTEGRAL') + WGT = DT/MAX(DT,T-DV%STATISTICS_START) + DV%AVERAGE_VALUE = (1._EB-WGT)*DV%AVERAGE_VALUE + WGT*DV%INSTANT_VALUE DV%VALUE = DV%AVERAGE_VALUE*(T-DV%STATISTICS_START) DV%TIME_INTERVAL = 1._EB CASE('MAX') @@ -6461,11 +6460,15 @@ SUBROUTINE UPDATE_DEVICES_2(T,DT) DV%VALUE = DV%TIME_MIN_VALUE(INTERVAL_INDEX) ENDIF CASE('RMS') + WGT = DT/MAX(DT,T-DV%STATISTICS_START) + DV%AVERAGE_VALUE = (1._EB-WGT)*DV%AVERAGE_VALUE + WGT*DV%INSTANT_VALUE WGT_UNBIASED = DT/MAX(DT,T-DV%STATISTICS_START+DT) DV%RMS_VALUE = (1._EB-WGT_UNBIASED)*DV%RMS_VALUE + WGT_UNBIASED*(DV%INSTANT_VALUE-DV%AVERAGE_VALUE)**2 DV%VALUE = SQRT(DV%RMS_VALUE) DV%TIME_INTERVAL = 1._EB CASE('COV') + WGT = DT/MAX(DT,T-DV%STATISTICS_START) + DV%AVERAGE_VALUE = (1._EB-WGT)*DV%AVERAGE_VALUE + WGT*DV%INSTANT_VALUE WGT_UNBIASED = DT/MAX(DT,T-DV%STATISTICS_START+DT) DV%AVERAGE_VALUE2 = (1._EB-WGT)*DV%AVERAGE_VALUE2 + WGT*DV%VALUE_2 DV%COV_VALUE = (1._EB-WGT_UNBIASED)*DV%COV_VALUE + & @@ -6473,6 +6476,8 @@ SUBROUTINE UPDATE_DEVICES_2(T,DT) DV%VALUE = DV%COV_VALUE DV%TIME_INTERVAL = 1._EB CASE('CORRCOEF') + WGT = DT/MAX(DT,T-DV%STATISTICS_START) + DV%AVERAGE_VALUE = (1._EB-WGT)*DV%AVERAGE_VALUE + WGT*DV%INSTANT_VALUE WGT_UNBIASED = DT/MAX(DT,T-DV%STATISTICS_START+DT) DV%AVERAGE_VALUE2 = (1._EB-WGT)*DV%AVERAGE_VALUE2 + WGT*DV%VALUE_2 DV%COV_VALUE = (1._EB-WGT_UNBIASED)*DV%COV_VALUE + &