@@ -1793,6 +1793,7 @@ SUBROUTINE EXCHANGE_DIVERGENCE_INFO
1793
1793
1794
1794
INTEGER :: IPZ,IOPZ,IOPZ2
1795
1795
REAL (EB) :: TNOW
1796
+ LOGICAL :: NEW_CONNECTION
1796
1797
1797
1798
TNOW = CURRENT_TIME()
1798
1799
@@ -1836,16 +1837,23 @@ SUBROUTINE EXCHANGE_DIVERGENCE_INFO
1836
1837
! Connect zones to others which are not directly connected
1837
1838
1838
1839
DO NM= 1 ,NMESHES
1839
- DO IPZ= 1 ,N_ZONE
1840
- DO IOPZ= 1 ,N_ZONE
1841
- IF (IOPZ== IPZ) CYCLE
1842
- IF (CONNECTED_ZONES(IPZ,IOPZ,NM)) THEN
1843
- DO IOPZ2= 0 ,N_ZONE
1844
- IF (IOPZ== IOPZ2) CYCLE
1845
- IF (CONNECTED_ZONES(IOPZ,IOPZ2,NM)) CONNECTED_ZONES(IPZ,IOPZ2,NM) = .TRUE.
1846
- IF (CONNECTED_ZONES(IOPZ,IOPZ2,NM)) CONNECTED_ZONES(IOPZ2,IPZ,NM) = .TRUE.
1847
- ENDDO
1848
- ENDIF
1840
+ NEW_CONNECTION = .TRUE.
1841
+ DO WHILE (NEW_CONNECTION)
1842
+ NEW_CONNECTION = .FALSE.
1843
+ DO IPZ= 1 ,N_ZONE
1844
+ DO IOPZ= 1 ,N_ZONE
1845
+ IF (IOPZ== IPZ) CYCLE
1846
+ IF (CONNECTED_ZONES(IPZ,IOPZ,NM)) THEN
1847
+ DO IOPZ2= 0 ,N_ZONE
1848
+ IF (IOPZ== IOPZ2) CYCLE
1849
+ IF (CONNECTED_ZONES(IOPZ,IOPZ2,NM)) THEN
1850
+ IF (.NOT. CONNECTED_ZONES(IPZ,IOPZ2,NM)) NEW_CONNECTION = .TRUE.
1851
+ CONNECTED_ZONES(IPZ,IOPZ2,NM) = .TRUE.
1852
+ CONNECTED_ZONES(IOPZ2,IPZ,NM) = .TRUE.
1853
+ ENDIF
1854
+ ENDDO
1855
+ ENDIF
1856
+ ENDDO
1849
1857
ENDDO
1850
1858
ENDDO
1851
1859
ENDDO
0 commit comments