@@ -282,28 +282,6 @@ PROGRAM FDS
282282 CALL STOP_CHECK(1 )
283283ENDIF
284284
285- ! Poisson solver initialization
286-
287- SELECT CASE (PRES_FLAG)
288- CASE (FFT_FLAG)
289- ! All solvers require INITIALIZE_POISSON_SOLVER in INITIALIZE_MESH_VARIABLES_2
290- CASE (GLMAT_FLAG,UGLMAT_FLAG)
291- CALL GLMAT_SOLVER_SETUP(1 )
292- CALL STOP_CHECK(1 )
293- CALL MESH_EXCHANGE(3 ) ! Exchange guard cell info for CCVAR(I,J,K,CGSC) -> HS.
294- CALL GLMAT_SOLVER_SETUP(2 )
295- CALL MESH_EXCHANGE(3 ) ! Exchange guard cell info for CCVAR(I,J,K,UNKH) -> HS.
296- CALL GLMAT_SOLVER_SETUP(3 )
297- CALL STOP_CHECK(1 )
298- CASE (ULMAT_FLAG)
299- DO NM= LOWER_MESH_INDEX,UPPER_MESH_INDEX
300- CALL ULMAT_SOLVER_SETUP(NM)
301- ENDDO
302- CALL STOP_CHECK(1 )
303- END SELECT
304-
305- IF (MY_RANK== 0 .AND. VERBOSE) CALL VERBOSE_PRINTOUT(' Completed Poisson initialization' )
306-
307285! Initialize the flow field with random noise to eliminate false symmetries
308286
309287DO NM= LOWER_MESH_INDEX,UPPER_MESH_INDEX
@@ -524,7 +502,9 @@ PROGRAM FDS
524502
525503IF (HVAC_SOLVE .AND. N_ZONE> 0 .AND. .NOT. SOLID_PHASE_ONLY) CALL EXCHANGE_DIVERGENCE_INFO
526504
527- CALL GLOBAL_MATRIX_REASSIGN
505+ CALL GLOBAL_MATRIX_REASSIGN(FORCE_REASSIGN= .TRUE. )
506+
507+ IF (MY_RANK== 0 .AND. VERBOSE) CALL VERBOSE_PRINTOUT(' Completed Poisson initialization' )
528508
529509! Write out character strings to .smv file
530510
@@ -889,7 +869,7 @@ PROGRAM FDS
889869
890870 ! Update global pressure matrices after zone connections
891871
892- CALL GLOBAL_MATRIX_REASSIGN
872+ CALL GLOBAL_MATRIX_REASSIGN(FORCE_REASSIGN = .FALSE. )
893873
894874 ! Exchange mass loss information for OBSTs abutting interpolated boundaries
895875
@@ -1613,17 +1593,20 @@ END SUBROUTINE CREATE_OR_REMOVE_OBSTRUCTIONS
16131593! > CREATE_OR_REMOVE_OBSTRUCTIONS or CONNECTED_ZONES has been updated. Zone connections are established
16141594! > in DIVERGENCE_PART_1, so global reassignment must follow.
16151595
1616- SUBROUTINE GLOBAL_MATRIX_REASSIGN
1596+ SUBROUTINE GLOBAL_MATRIX_REASSIGN (FORCE_REASSIGN )
1597+
1598+ LOGICAL , INTENT (IN ) :: FORCE_REASSIGN
16171599
1618- IF (OBST_CREATED_OR_REMOVED .OR. ICYC == 1 ) THEN
1600+ IF (OBST_CREATED_OR_REMOVED .OR. FORCE_REASSIGN ) THEN
16191601 SELECT CASE (PRES_FLAG)
16201602 CASE (ULMAT_FLAG)
16211603 DO NM= LOWER_MESH_INDEX,UPPER_MESH_INDEX
1622- CALL FINISH_ULMAT_SOLVER(NM)
1604+ IF ( ALLOCATED (MESHES(NM) % ZONE_MESH)) CALL FINISH_ULMAT_SOLVER(NM)
16231605 CALL ULMAT_SOLVER_SETUP(NM)
16241606 ENDDO
1607+ CALL STOP_CHECK(1 )
16251608 CASE (UGLMAT_FLAG,GLMAT_FLAG)
1626- CALL FINISH_GLMAT_SOLVER
1609+ IF ( ALLOCATED (ZONE_SOLVE)) CALL FINISH_GLMAT_SOLVER
16271610 CALL GLMAT_SOLVER_SETUP(1 )
16281611 CALL STOP_CHECK(1 )
16291612 CALL MESH_EXCHANGE(3 ) ! Exchange guard cell info for CCVAR(I,J,K,CGSC) -> HS.
0 commit comments