diff --git a/Source/read.f90 b/Source/read.f90 index f811d1da671..d4e6c023bd7 100644 --- a/Source/read.f90 +++ b/Source/read.f90 @@ -9231,8 +9231,10 @@ SUBROUTINE READ_OBST THICKEN_LOC = THICKEN IF ( (XB2>=XS-0.5_EB*DX(0) .AND. XB2=XS-DX(0) .AND. XB20) THEN + DX_GHOST = DX(0) + CALL SEARCH_OTHER_MESHES(XS-0.1_EB*DX(0),0.5_EB*(MAX(YS,XB3)+MIN(YF,XB4)),0.5_EB*(MAX(ZS,XB5)+MIN(ZF,XB6)),& + NOM,IIO,JJO,KKO,XXI,YYJ,ZZK) + IF (NOM>0 .AND. ALLOCATED(MESHES(NOM)%DX)) THEN DX_GHOST = MESHES(NOM)%DX(IIO) ENDIF IF (XB2>=XS-0.5_EB*DX_GHOST) THEN @@ -9242,8 +9244,10 @@ SUBROUTINE READ_OBST ENDIF ENDIF IF ( (XB1XF) .OR. (THICKEN .AND. 0.5_EB*(XB1+XB2)< XF+DX(IBP1) .AND. XB1>XF) ) THEN - CALL SEARCH_OTHER_MESHES(XF+0.1_EB*DX(IBP1),0.5_EB*(XB3+XB4),0.5_EB*(XB5+XB6),NOM,IIO,JJO,KKO,XXI,YYJ,ZZK) - IF (NOM>0) THEN + DX_GHOST = DX(IBP1) + CALL SEARCH_OTHER_MESHES(XF+0.1_EB*DX(IBP1),0.5_EB*(MAX(YS,XB3)+MIN(YF,XB4)),0.5_EB*(MAX(ZS,XB5)+MIN(ZF,XB6)),& + NOM,IIO,JJO,KKO,XXI,YYJ,ZZK) + IF (NOM>0 .AND. ALLOCATED(MESHES(NOM)%DX)) THEN DX_GHOST = MESHES(NOM)%DX(IIO) ENDIF IF (XB1=YS-0.5_EB*DY(0) .AND. XB4=YS-DY(0) .AND. XB40) THEN + DY_GHOST = DY(0) + CALL SEARCH_OTHER_MESHES(0.5_EB*(MAX(XS,XB1)+MIN(XF,XB2)),YS-0.1_EB*DY(0),0.5_EB*(MAX(ZS,XB5)+MIN(ZF,XB6)),& + NOM,IIO,JJO,KKO,XXI,YYJ,ZZK) + IF (NOM>0 .AND. ALLOCATED(MESHES(NOM)%DY)) THEN DY_GHOST = MESHES(NOM)%DY(JJO) ENDIF IF (XB4>=YS-0.5_EB*DY_GHOST) THEN @@ -9264,8 +9270,10 @@ SUBROUTINE READ_OBST ENDIF ENDIF IF ( (XB3YF) .OR. (THICKEN .AND. 0.5_EB*(XB3+XB4)< YF+DY(JBP1) .AND. XB3>YF) ) THEN - CALL SEARCH_OTHER_MESHES(0.5_EB*(XB1+XB2),YF+0.1_EB*DY(JBP1),0.5_EB*(XB5+XB6),NOM,IIO,JJO,KKO,XXI,YYJ,ZZK) - IF (NOM>0) THEN + DY_GHOST = DY(JBP1) + CALL SEARCH_OTHER_MESHES(0.5_EB*(MAX(XS,XB1)+MIN(XF,XB2)),YF+0.1_EB*DY(JBP1),0.5_EB*(MAX(ZS,XB5)+MIN(ZF,XB6)),& + NOM,IIO,JJO,KKO,XXI,YYJ,ZZK) + IF (NOM>0 .AND. ALLOCATED(MESHES(NOM)%DY)) THEN DY_GHOST = MESHES(NOM)%DY(JJO) ENDIF IF (XB3=ZS-0.5_EB*DZ(0) .AND. XB6=ZS-DZ(0) .AND. XB60) THEN + DZ_GHOST = DZ(0) + CALL SEARCH_OTHER_MESHES(0.5_EB*(MAX(XS,XB1)+MIN(XF,XB2)),0.5_EB*(MAX(YS,XB3)+MIN(YF,XB4)),ZS-0.1_EB*DZ(0),& + NOM,IIO,JJO,KKO,XXI,YYJ,ZZK) + IF (NOM>0 .AND. ALLOCATED(MESHES(NOM)%DZ)) THEN DZ_GHOST = MESHES(NOM)%DZ(KKO) ENDIF IF (XB6>=ZS-0.5_EB*DZ_GHOST) THEN @@ -9286,8 +9296,10 @@ SUBROUTINE READ_OBST ENDIF ENDIF IF ( (XB5ZF) .OR. (THICKEN .AND. 0.5_EB*(XB5+XB6)< ZF+DZ(KBP1) .AND. XB5>ZF) ) THEN - CALL SEARCH_OTHER_MESHES(0.5_EB*(XB1+XB2),0.5_EB*(XB3+XB4),ZF+0.1_EB*DZ(KBP1),NOM,IIO,JJO,KKO,XXI,YYJ,ZZK) - IF (NOM>0) THEN + DZ_GHOST = DZ(KBP1) + CALL SEARCH_OTHER_MESHES(0.5_EB*(MAX(XS,XB1)+MIN(XF,XB2)),0.5_EB*(MAX(YS,XB3)+MIN(YF,XB4)),ZF+0.1_EB*DZ(KBP1),& + NOM,IIO,JJO,KKO,XXI,YYJ,ZZK) + IF (NOM>0 .AND. ALLOCATED(MESHES(NOM)%DZ)) THEN DZ_GHOST = MESHES(NOM)%DZ(KKO) ENDIF IF (XB5