@@ -1643,7 +1643,7 @@ SUBROUTINE VELOCITY_PREDICTOR(T,DT,DT_NEW,NM)
16431643 T_NOW= CURRENT_TIME()
16441644 ENDIF
16451645 SELECT CASE (PRES_FLAG)
1646- CASE (GLMAT_FLAG,UGLMAT_FLAG,ULMAT_FLAG); CALL WALL_VELOCITY_NO_GRADH(NM, DT,.FALSE. )
1646+ CASE (GLMAT_FLAG,UGLMAT_FLAG,ULMAT_FLAG); CALL WALL_VELOCITY_NO_GRADH(DT,.FALSE. )
16471647 END SELECT
16481648
16491649ENDIF FREEZE_VELOCITY_IF
@@ -1721,7 +1721,7 @@ SUBROUTINE VELOCITY_CORRECTOR(T,DT,NM)
17211721 ENDIF
17221722 SELECT CASE (PRES_FLAG)
17231723 CASE (GLMAT_FLAG,UGLMAT_FLAG,ULMAT_FLAG)
1724- CALL WALL_VELOCITY_NO_GRADH(NM, DT,.TRUE. ) ! Store U velocities on OBST surfaces.
1724+ CALL WALL_VELOCITY_NO_GRADH(DT,.TRUE. ) ! Store U velocities on OBST surfaces.
17251725 END SELECT
17261726
17271727 ! $OMP PARALLEL PRIVATE(I,J,K)
@@ -1765,7 +1765,7 @@ SUBROUTINE VELOCITY_CORRECTOR(T,DT,NM)
17651765 ENDIF
17661766 SELECT CASE (PRES_FLAG)
17671767 CASE (GLMAT_FLAG,UGLMAT_FLAG,ULMAT_FLAG)
1768- CALL WALL_VELOCITY_NO_GRADH(NM, DT,.FALSE. )
1768+ CALL WALL_VELOCITY_NO_GRADH(DT,.FALSE. )
17691769 END SELECT
17701770
17711771ENDIF FREEZE_VELOCITY_IF
@@ -3235,13 +3235,12 @@ END SUBROUTINE BAROCLINIC_CORRECTION
32353235! > \details Ensure that the correct normal derivative of H is used on the projection. It is only used when the Poisson equation
32363236! > for the pressure is solved .NOT. PRES_ON_WHOLE_DOMAIN (i.e. using the GLMAT solver).
32373237
3238- SUBROUTINE WALL_VELOCITY_NO_GRADH (NM , DT ,STORE_UN )
3238+ SUBROUTINE WALL_VELOCITY_NO_GRADH (DT ,STORE_UN )
32393239
32403240REAL (EB), INTENT (IN ) :: DT
32413241LOGICAL , INTENT (IN ) :: STORE_UN
3242- INTEGER , INTENT (IN ) :: NM
32433242INTEGER :: II,JJ,KK,IIG,JJG,KKG,IOR,IW,N_INTERNAL_WALL_CELLS_AUX,IC,ICG
3244- REAL (EB) :: DHDN, VEL_N
3243+ REAL (EB) :: VEL_N
32453244TYPE (WALL_TYPE), POINTER :: WC
32463245REAL (EB), SAVE , ALLOCATABLE , DIMENSION (:) :: UN_WALLS
32473246TYPE (BOUNDARY_COORD_TYPE), POINTER :: BC
@@ -3263,10 +3262,7 @@ SUBROUTINE WALL_VELOCITY_NO_GRADH(NM,DT,STORE_UN)
32633262
32643263 WC = > WALL(IW)
32653264 BC = > BOUNDARY_COORD(WC% BC_INDEX)
3266- IIG = BC% IIG
3267- JJG = BC% JJG
3268- KKG = BC% KKG
3269- IOR = BC% IOR
3265+ IIG= BC% IIG; JJG= BC% JJG; KKG= BC% KKG; IOR= BC% IOR
32703266
32713267 SELECT CASE (IOR)
32723268 CASE ( IAXIS)
@@ -3300,38 +3296,28 @@ SUBROUTINE WALL_VELOCITY_NO_GRADH(NM,DT,STORE_UN)
33003296 WC% BOUNDARY_TYPE== MIRROR_BOUNDARY) ) CYCLE
33013297
33023298 BC = > BOUNDARY_COORD(WC% BC_INDEX)
3303- II = BC% II
3304- JJ = BC% JJ
3305- KK = BC% KK
3306- IIG = BC% IIG
3307- JJG = BC% JJG
3308- KKG = BC% KKG
3299+ II = BC% II; JJ = BC% JJ; KK = BC% KK; IIG = BC% IIG; JJG = BC% JJG; KKG = BC% KKG
33093300 IC = CELL_INDEX(II,JJ,KK)
33103301 ICG = CELL_INDEX(IIG,JJG,KKG)
33113302
33123303 IF (WC% BOUNDARY_TYPE== NULL_BOUNDARY .AND. .NOT. CELL(ICG)% SOLID .AND. .NOT. CELL(IC)% SOLID) CYCLE
33133304
33143305 IOR = BC% IOR
3315- DHDN= 0._EB ! Set the normal derivative of H to zero for solids.
33163306
3317- SELECT CASE (IOR)
3318- CASE ( IAXIS)
3319- IF (TUNNEL_PRECONDITIONER .AND. IW> N_EXTERNAL_WALL_CELLS) &
3320- DHDN = (H_BAR(I_OFFSET(NM)+ IIG)- H_BAR(I_OFFSET(NM)+ IIG-1 ))* TP_RDXN(I_OFFSET(NM)+ IIG-1 )
3321- US(IIG-1 ,JJG ,KKG ) = (U(IIG-1 ,JJG ,KKG ) - DT* ( FVX(IIG-1 ,JJG ,KKG ) + DHDN ))
3322- CASE (- IAXIS)
3323- IF (TUNNEL_PRECONDITIONER .AND. IW> N_EXTERNAL_WALL_CELLS) &
3324- DHDN = (H_BAR(I_OFFSET(NM)+ IIG+1 )- H_BAR(I_OFFSET(NM)+ IIG))* TP_RDXN(I_OFFSET(NM)+ IIG)
3325- US(IIG ,JJG ,KKG ) = (U(IIG ,JJG ,KKG ) - DT* ( FVX(IIG ,JJG ,KKG ) + DHDN ))
3326- CASE ( JAXIS)
3327- VS(IIG ,JJG-1 ,KKG ) = (V(IIG ,JJG-1 ,KKG ) - DT* ( FVY(IIG ,JJG-1 ,KKG ) + DHDN ))
3328- CASE (- JAXIS)
3329- VS(IIG ,JJG ,KKG ) = (V(IIG ,JJG ,KKG ) - DT* ( FVY(IIG ,JJG ,KKG ) + DHDN ))
3330- CASE ( KAXIS)
3331- WS(IIG ,JJG ,KKG-1 ) = (W(IIG ,JJG ,KKG-1 ) - DT* ( FVZ(IIG ,JJG ,KKG-1 ) + DHDN ))
3332- CASE (- KAXIS)
3333- WS(IIG ,JJG ,KKG ) = (W(IIG ,JJG ,KKG ) - DT* ( FVZ(IIG ,JJG ,KKG ) + DHDN ))
3334- END SELECT
3307+ SELECT CASE (IOR)
3308+ CASE ( IAXIS)
3309+ US(IIG-1 ,JJG ,KKG ) = (U(IIG-1 ,JJG ,KKG ) - DT* ( FVX(IIG-1 ,JJG ,KKG ) ))
3310+ CASE (- IAXIS)
3311+ US(IIG ,JJG ,KKG ) = (U(IIG ,JJG ,KKG ) - DT* ( FVX(IIG ,JJG ,KKG ) ))
3312+ CASE ( JAXIS)
3313+ VS(IIG ,JJG-1 ,KKG ) = (V(IIG ,JJG-1 ,KKG ) - DT* ( FVY(IIG ,JJG-1 ,KKG ) ))
3314+ CASE (- JAXIS)
3315+ VS(IIG ,JJG ,KKG ) = (V(IIG ,JJG ,KKG ) - DT* ( FVY(IIG ,JJG ,KKG ) ))
3316+ CASE ( KAXIS)
3317+ WS(IIG ,JJG ,KKG-1 ) = (W(IIG ,JJG ,KKG-1 ) - DT* ( FVZ(IIG ,JJG ,KKG-1 ) ))
3318+ CASE (- KAXIS)
3319+ WS(IIG ,JJG ,KKG ) = (W(IIG ,JJG ,KKG ) - DT* ( FVZ(IIG ,JJG ,KKG ) ))
3320+ END SELECT
33353321
33363322 ENDDO WALL_CELL_LOOP_1
33373323
@@ -3358,34 +3344,21 @@ SUBROUTINE WALL_VELOCITY_NO_GRADH(NM,DT,STORE_UN)
33583344 IF (WC% BOUNDARY_TYPE== NULL_BOUNDARY .AND. .NOT. CELL(ICG)% SOLID .AND. .NOT. CELL(IC)% SOLID) CYCLE
33593345
33603346 IOR = BC% IOR
3361- DHDN= 0._EB ! Set the normal derivative of H to zero for solids.
3362-
33633347 VEL_N = UN_WALLS(IW)
33643348
33653349 SELECT CASE (IOR)
3366- CASE ( IAXIS) ! | - Problem with this is it was modified in VELOCITY_CORRECTOR,
3367- ! V => Store the untouched U normal on internal WALLs.
3368- IF (TUNNEL_PRECONDITIONER.AND. IW> N_EXTERNAL_WALL_CELLS) &
3369- DHDN = (H_BAR(I_OFFSET(NM)+ IIG)- H_BAR(I_OFFSET(NM)+ IIG-1 ))* TP_RDXN(I_OFFSET(NM)+ IIG-1 )
3370- U(IIG-1 ,JJG ,KKG ) = 0.5_EB * ( VEL_N + US(IIG-1 ,JJG ,KKG ) - &
3371- DT* ( FVX(IIG-1 ,JJG ,KKG ) + DHDN ))
3350+ CASE ( IAXIS)
3351+ U(IIG-1 ,JJG ,KKG ) = 0.5_EB * (VEL_N + US(IIG-1 ,JJG ,KKG ) - DT* ( FVX(IIG-1 ,JJG ,KKG ) ))
33723352 CASE (- IAXIS)
3373- IF (TUNNEL_PRECONDITIONER.AND. IW> N_EXTERNAL_WALL_CELLS) &
3374- DHDN = (H_BAR(I_OFFSET(NM)+ IIG+1 )- H_BAR(I_OFFSET(NM)+ IIG))* TP_RDXN(I_OFFSET(NM)+ IIG)
3375- U(IIG ,JJG ,KKG ) = 0.5_EB * ( VEL_N + US(IIG ,JJG ,KKG ) - &
3376- DT* ( FVX(IIG ,JJG ,KKG ) + DHDN ))
3353+ U(IIG ,JJG ,KKG ) = 0.5_EB * (VEL_N + US(IIG ,JJG ,KKG ) - DT* ( FVX(IIG ,JJG ,KKG ) ))
33773354 CASE ( JAXIS)
3378- V(IIG ,JJG-1 ,KKG ) = 0.5_EB * ( VEL_N + VS(IIG ,JJG-1 ,KKG ) - &
3379- DT* ( FVY(IIG ,JJG-1 ,KKG ) + DHDN ))
3355+ V(IIG ,JJG-1 ,KKG ) = 0.5_EB * (VEL_N + VS(IIG ,JJG-1 ,KKG ) - DT* ( FVY(IIG ,JJG-1 ,KKG ) ))
33803356 CASE (- JAXIS)
3381- V(IIG ,JJG ,KKG ) = 0.5_EB * ( VEL_N + VS(IIG ,JJG ,KKG ) - &
3382- DT* ( FVY(IIG ,JJG ,KKG ) + DHDN ))
3357+ V(IIG ,JJG ,KKG ) = 0.5_EB * (VEL_N + VS(IIG ,JJG ,KKG ) - DT* ( FVY(IIG ,JJG ,KKG ) ))
33833358 CASE ( KAXIS)
3384- W(IIG ,JJG ,KKG-1 ) = 0.5_EB * ( VEL_N + WS(IIG ,JJG ,KKG-1 ) - &
3385- DT* ( FVZ(IIG ,JJG ,KKG-1 ) + DHDN ))
3359+ W(IIG ,JJG ,KKG-1 ) = 0.5_EB * (VEL_N + WS(IIG ,JJG ,KKG-1 ) - DT* ( FVZ(IIG ,JJG ,KKG-1 ) ))
33863360 CASE (- KAXIS)
3387- W(IIG ,JJG ,KKG ) = 0.5_EB * ( VEL_N + WS(IIG ,JJG ,KKG ) - &
3388- DT* ( FVZ(IIG ,JJG ,KKG ) + DHDN ))
3361+ W(IIG ,JJG ,KKG ) = 0.5_EB * (VEL_N + WS(IIG ,JJG ,KKG ) - DT* ( FVZ(IIG ,JJG ,KKG ) ))
33893362 END SELECT
33903363
33913364 ENDDO WALL_CELL_LOOP_2
0 commit comments