Skip to content

Commit fcb3591

Browse files
committed
FDS Source: Fix allocation error Issue #14321
1 parent f3518f1 commit fcb3591

File tree

4 files changed

+6
-13
lines changed

4 files changed

+6
-13
lines changed

Source/func.f90

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3459,7 +3459,6 @@ SUBROUTINE ALLOCATE_BOUNDARY_ONE_D_ARRAYS
34593459
ONE_D%SURF_INDEX = SURF_INDEX
34603460
ONE_D%N_CELLS_MAX = SF%N_CELLS_MAX
34613461
ONE_D%N_CELLS_INI = SF%N_CELLS_INI
3462-
IF (SURFACE(SURF_INDEX)%PYROLYSIS_MODEL==PYROLYSIS_PREDICTED) ONE_D%N_CELLS_OLD = SF%N_CELLS_MAX
34633462
ONE_D%N_LAYERS = SF%N_LAYERS
34643463
ONE_D%N_MATL = SF%N_MATL
34653464
ONE_D%N_LPC = SF%N_LPC
@@ -4001,7 +4000,7 @@ SUBROUTINE PACK_BOUNDARY_ONE_D(NM,IC,RC,LC,OS,OD_INDEX,UNPACK_IT,COUNT_ONLY,CHEC
40014000
IC=IC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%INTEGERS(IC),ONE_D%SURF_INDEX,UNPACK_IT)
40024001
IC=IC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%INTEGERS(IC),ONE_D%N_CELLS_MAX,UNPACK_IT)
40034002
IC=IC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%INTEGERS(IC),ONE_D%N_CELLS_INI,UNPACK_IT)
4004-
IC=IC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%INTEGERS(IC),ONE_D%N_CELLS_OLD,UNPACK_IT)
4003+
IC=IC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%INTEGERS(IC),ONE_D%N_CELLS_MAX,UNPACK_IT) !OLD
40054004
IC=IC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%INTEGERS(IC),ONE_D%N_LAYERS,UNPACK_IT)
40064005
IC=IC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%INTEGERS(IC),ONE_D%N_MATL,UNPACK_IT)
40074006
IC=IC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%INTEGERS(IC),ONE_D%N_LPC,UNPACK_IT)
@@ -4028,7 +4027,7 @@ SUBROUTINE PACK_BOUNDARY_ONE_D(NM,IC,RC,LC,OS,OD_INDEX,UNPACK_IT,COUNT_ONLY,CHEC
40284027
RC=RC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(RC) ,ONE_D%LAYER_DIVIDE_DEPTH , UNPACK_IT)
40294028
I1=RC+1 ; RC=I1+ONE_D%N_MATL-1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(I1:RC),ONE_D%M_DOT_S_PP(1:RC-I1+1) , UNPACK_IT)
40304029
I1=RC+1 ; RC=I1+ONE_D%N_CELLS_MAX ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(I1:RC),ONE_D%X(0:RC-I1) , UNPACK_IT)
4031-
I1=RC+1 ; RC=I1+ONE_D%N_CELLS_OLD-1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(I1:RC),ONE_D%DX_OLD(1:RC-I1+1) , UNPACK_IT)
4030+
I1=RC+1 ; RC=I1+ONE_D%N_CELLS_MAX-1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(I1:RC),ONE_D%DX_OLD(1:RC-I1+1) , UNPACK_IT)
40324031
I1=RC+1 ; RC=I1+ONE_D%N_CELLS_MAX+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(I1:RC),ONE_D%TMP(0:RC-I1) , UNPACK_IT)
40334032
I1=RC+1 ; RC=I1+ONE_D%N_CELLS_MAX+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(I1:RC),ONE_D%DELTA_TMP(0:RC-I1) , UNPACK_IT)
40344033
I1=RC+1 ; RC=I1+ONE_D%N_CELLS_MAX-1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(I1:RC),ONE_D%RHO_C_S(1:RC-I1+1) , UNPACK_IT)
@@ -4072,7 +4071,7 @@ SUBROUTINE REALLOCATE_BOUNDARY_ONE_D(ONE_D)
40724071
IF (ALLOCATED(ONE_D%MATL_INDEX)) DEALLOCATE(ONE_D%MATL_INDEX) ; ALLOCATE(ONE_D%MATL_INDEX(ONE_D%N_MATL))
40734072
IF (ALLOCATED(ONE_D%M_DOT_S_PP)) DEALLOCATE(ONE_D%M_DOT_S_PP) ; ALLOCATE(ONE_D%M_DOT_S_PP(ONE_D%N_MATL)) ; ONE_D%M_DOT_S_PP=0._EB
40744073
IF (ALLOCATED(ONE_D%X)) DEALLOCATE(ONE_D%X) ; ALLOCATE(ONE_D%X(0:ONE_D%N_CELLS_MAX))
4075-
IF (ALLOCATED(ONE_D%DX_OLD)) DEALLOCATE(ONE_D%DX_OLD) ; ALLOCATE(ONE_D%DX_OLD(ONE_D%N_CELLS_OLD))
4074+
IF (ALLOCATED(ONE_D%DX_OLD)) DEALLOCATE(ONE_D%DX_OLD) ; ALLOCATE(ONE_D%DX_OLD(ONE_D%N_CELLS_MAX))
40764075
IF (ALLOCATED(ONE_D%TMP)) DEALLOCATE(ONE_D%TMP) ; ALLOCATE(ONE_D%TMP(0:ONE_D%N_CELLS_MAX+1))
40774076
IF (ALLOCATED(ONE_D%DELTA_TMP)) DEALLOCATE(ONE_D%DELTA_TMP) ; ALLOCATE(ONE_D%DELTA_TMP(0:ONE_D%N_CELLS_MAX+1))
40784077
IF (ALLOCATED(ONE_D%LAYER_THICKNESS)) DEALLOCATE(ONE_D%LAYER_THICKNESS) ; ALLOCATE(ONE_D%LAYER_THICKNESS(ONE_D%N_LAYERS))
@@ -4124,7 +4123,7 @@ SUBROUTINE INITIALIZE_BOUNDARY_ONE_D(NM,OD_INDEX,SURF_INDEX)
41244123
ONE_D%M_DOT_S_PP = 0._EB
41254124
ONE_D%X=0._EB ; ONE_D%X(0:ONE_D%N_CELLS_INI) = SF%X_S(0:ONE_D%N_CELLS_INI)
41264125
ONE_D%DX_OLD=0._EB
4127-
DO I=1,MIN(ONE_D%N_CELLS_OLD,ONE_D%N_CELLS_INI)
4126+
DO I=1,MIN(ONE_D%N_CELLS_MAX,ONE_D%N_CELLS_INI)
41284127
ONE_D%DX_OLD(I) = ONE_D%X(I)-ONE_D%X(I-1)
41294128
ENDDO
41304129
IF (ALLOCATED(ONE_D%LAYER_THICKNESS_OLD)) ONE_D%LAYER_THICKNESS_OLD(1:ONE_D%N_LAYERS) = SF%LAYER_THICKNESS(1:SF%N_LAYERS)

Source/init.f90

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1671,7 +1671,6 @@ SUBROUTINE REALLOCATE_ONE_D_ARRAYS(NM,WALL_CELL,THIN_WALL_CELL)
16711671
TYPE(MATERIAL_TYPE), POINTER :: ML
16721672
REAL(EB), ALLOCATABLE, DIMENSION(:) :: X_S_OLD
16731673
LOGICAL, ALLOCATABLE, DIMENSION(:) :: REMESH_LAYER
1674-
LOGICAL :: SET_N_CELLS_OLD
16751674
TYPE(WALL_TYPE), POINTER :: WC
16761675
TYPE(THIN_WALL_TYPE), POINTER :: TW
16771676
TYPE(SURFACE_TYPE), POINTER :: SF
@@ -1730,7 +1729,6 @@ SUBROUTINE REALLOCATE_ONE_D_ARRAYS(NM,WALL_CELL,THIN_WALL_CELL)
17301729
ONE_D%N_CELLS_INI = 0
17311730
ONE_D%N_CELLS_MAX = 0
17321731
LAYER_DENSITY = 0._EB
1733-
SET_N_CELLS_OLD = .FALSE.
17341732

17351733
LAYER_LOOP: DO NL=1,ONE_D%N_LAYERS
17361734

@@ -1749,7 +1747,6 @@ SUBROUTINE REALLOCATE_ONE_D_ARRAYS(NM,WALL_CELL,THIN_WALL_CELL)
17491747
MIN_DENSITY = LAYER_DENSITY(NL)
17501748
MATL_REAC_LOOP: DO N=1,ONE_D%N_MATL
17511749
IF (MATERIAL(ONE_D%MATL_INDEX(N))%N_REACTIONS > 0) THEN ! Only compute a swell ratio if there is a reacting material
1752-
SET_N_CELLS_OLD = .TRUE.
17531750
DO NN=1,ONE_D%N_MATL
17541751
IF (MATERIAL(ONE_D%MATL_INDEX(NN))%ALLOW_SWELLING) &
17551752
MIN_DENSITY = MIN(MIN_DENSITY,MATERIAL(ONE_D%MATL_INDEX(NN))%RHO_S)
@@ -1776,7 +1773,6 @@ SUBROUTINE REALLOCATE_ONE_D_ARRAYS(NM,WALL_CELL,THIN_WALL_CELL)
17761773
ENDDO LAYER_LOOP
17771774

17781775
NWP_MAX = MAX(NWP_MAX,ONE_D%N_CELLS_MAX)
1779-
IF (SET_N_CELLS_OLD) ONE_D%N_CELLS_OLD = ONE_D%N_CELLS_MAX
17801776

17811777
ALLOCATE(LAYER_INDEX(0:ONE_D%N_CELLS_MAX+1))
17821778
NL = 1
@@ -1809,8 +1805,8 @@ SUBROUTINE REALLOCATE_ONE_D_ARRAYS(NM,WALL_CELL,THIN_WALL_CELL)
18091805
ONE_D%STRETCH_FACTOR,REMESH_LAYER,ONE_D%X,X_S_OLD,ONE_D%LAYER_THICKNESS(1:ONE_D%N_LAYERS))
18101806
DEALLOCATE(X_S_OLD)
18111807

1812-
IF (ALLOCATED(ONE_D%DX_OLD)) DEALLOCATE(ONE_D%DX_OLD) ; ALLOCATE(ONE_D%DX_OLD(ONE_D%N_CELLS_OLD)) ; ONE_D%DX_OLD=0._EB
1813-
DO II=1,MIN(ONE_D%N_CELLS_OLD,ONE_D%N_CELLS_INI)
1808+
IF (ALLOCATED(ONE_D%DX_OLD)) DEALLOCATE(ONE_D%DX_OLD) ; ALLOCATE(ONE_D%DX_OLD(ONE_D%N_CELLS_MAX)) ; ONE_D%DX_OLD=0._EB
1809+
DO II=1,MIN(ONE_D%N_CELLS_MAX,ONE_D%N_CELLS_INI)
18141810
ONE_D%DX_OLD(II) = ONE_D%X(II) - ONE_D%X(II-1)
18151811
ENDDO
18161812

Source/part.f90

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4745,7 +4745,6 @@ SUBROUTINE ADD_TO_PARTICLE_SEND_BUFFER
47454745
ENDIF
47464746

47474747
OS%N_ITEMS = OS%N_ITEMS + 1
4748-
47494748
CALL PACK_PARTICLE(NM,OS,LP,LP%CLASS_INDEX,OS%N_REALS,OS%N_INTEGERS,OS%N_LOGICALS,UNPACK_IT=.FALSE.,COUNT_ONLY=.FALSE.,&
47504749
CHECK_BOUNDS=.FALSE.)
47514750

Source/type.f90

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,6 @@ MODULE TYPES
213213
INTEGER :: SURF_INDEX=-1 !< SURFACE index
214214
INTEGER :: N_CELLS_MAX=0 !< Maximum number of interior cells
215215
INTEGER :: N_CELLS_INI=0 !< Initial number of interior cells
216-
INTEGER :: N_CELLS_OLD=1 !< Maximum number of interior cells for DX_OLD
217216
INTEGER :: N_LAYERS=0 !< Number of material layers
218217
INTEGER :: N_MATL=0 !< Number of materials
219218
INTEGER :: N_LPC=0 !< Number of Lagrangian Particle Classes

0 commit comments

Comments
 (0)