From d2f3e88cd086d1da31554796f2adde5c1dbe8cd1 Mon Sep 17 00:00:00 2001 From: marcosvanella Date: Thu, 30 Jan 2025 09:53:57 -0500 Subject: [PATCH] FDS Source : exchange blocked cut-cells in 3 dimensions. --- Source/geom.f90 | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Source/geom.f90 b/Source/geom.f90 index 7d3a7b29f34..44d20a6b288 100644 --- a/Source/geom.f90 +++ b/Source/geom.f90 @@ -780,7 +780,7 @@ SUBROUTINE SET_CUTCELLS_3D REAL(EB), ALLOCATABLE, DIMENSION(:) :: GEOM_AREA_SURF REAL(EB), ALLOCATABLE, DIMENSION(:,:) :: GEOM_AREA_SURF_OLD,GEOM_AREA_SURF_NEW INTEGER, ALLOCATABLE, DIMENSION(:) :: GEOM_SURF -INTEGER :: ICF, SURF_INDEX, SUM_CC +INTEGER :: ICF, SURF_INDEX, SUM_CC, IDIM LOGICAL, SAVE :: FIRST_CALL_ARG=.TRUE., FIRST_CALL_ARG2=.TRUE. @@ -1472,6 +1472,8 @@ SUBROUTINE SET_CUTCELLS_3D ! Deallocate Intersection variables: DEALLOCATE(CC_SVAR_CRS,CC_IS_CRS,CC_SEG_CRS,CC_BDNUM_CRS,CC_BDNUM_CRS_AUX,CC_IS_CRS2,CC_SEG_TAN) +DO IDIM=1,MAX_DIM + ! Exchange CC%NOADVANCE(JCC)>0 information among NEIGHBOURING meshes: CALL EXCHANGE_CC_NOADVANCE_INFO ! Add CC%NOADVANCE(JCC) where needed: @@ -1524,6 +1526,8 @@ SUBROUTINE SET_CUTCELLS_3D ! Call tag boundary cut-cells for blocking in refinement interfaces: CALL TAG_CC_BLOCKING_REFINEMENT +ENDDO + ! WRITE A file per process and mesh with the NOADVANCE cut-cells: ! DO NM=1,NMESHES ! M => MESHES(NM) @@ -4999,6 +5003,8 @@ SUBROUTINE EXCHANGE_CC_NOADVANCE_INFO ENDDO ENDDO IF (M%N_CC_BLOCKED>0) THEN + IF(ALLOCATED(M%XYZ_CC_BLOCKED)) DEALLOCATE(M%XYZ_CC_BLOCKED) + IF(ALLOCATED(M%JBT_CC_BLOCKED)) DEALLOCATE(M%JBT_CC_BLOCKED) ALLOCATE(M%XYZ_CC_BLOCKED(3,M%N_CC_BLOCKED)) ALLOCATE(M%JBT_CC_BLOCKED(2,M%N_CC_BLOCKED)) ! Fill in blocked cut-cell info: @@ -5052,6 +5058,8 @@ SUBROUTINE EXCHANGE_CC_NOADVANCE_INFO DO NM=1,NMESHES IF (PROCESS(NM)==MY_RANK) CYCLE ! already done for this mesh at the beginning of the routine. IF(MESHES(NM)%N_CC_BLOCKED>0) THEN + IF(ALLOCATED(MESHES(NM)%XYZ_CC_BLOCKED)) DEALLOCATE(MESHES(NM)%XYZ_CC_BLOCKED) + IF(ALLOCATED(MESHES(NM)%JBT_CC_BLOCKED)) DEALLOCATE(MESHES(NM)%JBT_CC_BLOCKED) ALLOCATE(MESHES(NM)%XYZ_CC_BLOCKED(3,MESHES(NM)%N_CC_BLOCKED)) ALLOCATE(MESHES(NM)%JBT_CC_BLOCKED(2,MESHES(NM)%N_CC_BLOCKED)) ENDIF