@@ -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
14701471INTEGER , INTENT (IN ) :: N1,N2,NM
14711472TYPE (PATCH_TYPE), DIMENSION (:), ALLOCATABLE :: PATCH_DUMMY
14721473TYPE (MESH_TYPE), POINTER :: M
1474+ CHARACTER (* ), INTENT (IN ) :: PATCH_NAME
14731475
14741476M = > MESHES(NM)
14751477
14761478ALLOCATE (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
14811491DEALLOCATE (PATCH_DUMMY)
14821492
14831493END 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