Skip to content

Commit edec799

Browse files
authored
Merge pull request #15504 from mcgratta/master
FDS Source: Allow EXTERIOR_PATCH to be reallocated
2 parents 7094072 + d66887c commit edec799

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

Source/dump.f90

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1296,7 +1296,7 @@ SUBROUTINE INITIALIZE_MESH_DUMPS(NM)
12961296
IF (ABS(OB%Z2-M%ZS)<TWO_EPSILON_EB) IOR = 3
12971297
IF (IOR==0) CYCLE OBST_LOOP
12981298
M%N_PATCH = M%N_PATCH + 1
1299-
IF (M%N_PATCH>SIZE(M%PATCH)) CALL REALLOCATE_PATCH(NM,SIZE(M%PATCH),SIZE(M%PATCH)+10)
1299+
IF (M%N_PATCH>SIZE(M%PATCH)) CALL REALLOCATE_PATCH(NM,SIZE(M%PATCH),SIZE(M%PATCH)+10,'PATCH')
13001300
PA => M%PATCH(M%N_PATCH)
13011301
PA%I1 = MIN(M%IBAR,MAX(0,NINT( GINV(OB%X1-M%XS,1,NM)*RDXI ))) ; PA%IG1 = PA%I1+1
13021302
PA%I2 = MIN(M%IBAR,MAX(0,NINT( GINV(OB%X2-M%XS,1,NM)*RDXI ))) ; PA%IG2 = PA%I2
@@ -1464,20 +1464,30 @@ END SUBROUTINE INITIALIZE_MESH_DUMPS
14641464
!> \param NM Mesh number
14651465
!> \param N1 Current size of array
14661466
!> \param N2 New size of array
1467+
!> \param PATCH_NAME Character string indicating which PATCH_TYPE variable to reallocate
14671468

1468-
SUBROUTINE REALLOCATE_PATCH(NM,N1,N2)
1469+
SUBROUTINE REALLOCATE_PATCH(NM,N1,N2,PATCH_NAME)
14691470

14701471
INTEGER, INTENT(IN) :: N1,N2,NM
14711472
TYPE (PATCH_TYPE), DIMENSION(:), ALLOCATABLE :: PATCH_DUMMY
14721473
TYPE (MESH_TYPE), POINTER :: M
1474+
CHARACTER(*), INTENT(IN) :: PATCH_NAME
14731475

14741476
M => MESHES(NM)
14751477

14761478
ALLOCATE(PATCH_DUMMY(1:N2))
1477-
PATCH_DUMMY(1:N1) = M%PATCH(1:N1)
1478-
DEALLOCATE(M%PATCH)
1479-
ALLOCATE(M%PATCH(1:N2))
1480-
M%PATCH(1:N2) = PATCH_DUMMY(1:N2)
1479+
SELECT CASE(PATCH_NAME)
1480+
CASE('PATCH')
1481+
PATCH_DUMMY(1:N1) = M%PATCH(1:N1)
1482+
DEALLOCATE(M%PATCH)
1483+
ALLOCATE(M%PATCH(1:N2))
1484+
M%PATCH(1:N2) = PATCH_DUMMY(1:N2)
1485+
CASE('EXTERIOR_PATCH')
1486+
PATCH_DUMMY(1:N1) = M%EXTERIOR_PATCH(1:N1)
1487+
DEALLOCATE(M%EXTERIOR_PATCH)
1488+
ALLOCATE(M%EXTERIOR_PATCH(1:N2))
1489+
M%EXTERIOR_PATCH(1:N2) = PATCH_DUMMY(1:N2)
1490+
END SELECT
14811491
DEALLOCATE(PATCH_DUMMY)
14821492

14831493
END SUBROUTINE REALLOCATE_PATCH
@@ -2298,7 +2308,7 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
22982308

22992309
! Create EXTERIOR_PATCHes with which Smokeview colors, textures, or contours exterior mesh boundaries.
23002310

2301-
ALLOCATE(M%EXTERIOR_PATCH(10*(6+N_VENT_TOTAL))) ; M%N_EXTERIOR_PATCH = 0
2311+
ALLOCATE(M%EXTERIOR_PATCH(10)) ; M%N_EXTERIOR_PATCH = 0 ! The size of EXTERIOR_PATCH will expand if need be.
23022312
ALLOCATE(VENT_INDICES(MAX(M%IBAR,M%JBAR),MAX(M%JBAR,M%KBAR),6)) ; VENT_INDICES = 0
23032313

23042314
VENT_LOOP: DO N=1,M%N_VENT
@@ -2634,6 +2644,8 @@ SUBROUTINE DUMMY_VENTS(FI,N1,N2)
26342644
VENT_INDICES(I:ISTP,J:JSTP,FI) = -1
26352645

26362646
M%N_EXTERIOR_PATCH = M%N_EXTERIOR_PATCH + 1
2647+
IF (M%N_EXTERIOR_PATCH>SIZE(M%EXTERIOR_PATCH)) &
2648+
CALL REALLOCATE_PATCH(NM,SIZE(M%EXTERIOR_PATCH),SIZE(M%EXTERIOR_PATCH)+10,'EXTERIOR_PATCH')
26372649
EP => M%EXTERIOR_PATCH(M%N_EXTERIOR_PATCH)
26382650
SELECT CASE(FI)
26392651
CASE (1) ; EP%I1=0 ; EP%I2=0 ; EP%J1=I-1 ; EP%J2=ISTP ; EP%K1=J-1 ; EP%K2=JSTP ; EP%IOR= 1

0 commit comments

Comments
 (0)