@@ -1816,7 +1816,7 @@ SUBROUTINE VELOCITY_BC(T,NM,APPLY_TO_ESTIMATED_VARIABLES)
18161816REAL (EB) :: MUA,TSI,WGT,T_NOW,RAMP_T,OMW,MU_WALL,RHO_WALL,SLIP_COEF,VEL_T, &
18171817 UUP(2 ),UUM(2 ),DXX(2 ),MU_DUIDXJ(- 2 :2 ),DUIDXJ(- 2 :2 ),PROFILE_FACTOR,VEL_GAS,VEL_GHOST, &
18181818 MU_DUIDXJ_USE(2 ),DUIDXJ_USE(2 ),VEL_EDDY,U_TAU,Y_PLUS,U_NORM, &
1819- DRAG_FACTOR,HT_SCALE_FACTOR,VEG_HT,VEL_MF
1819+ DRAG_FACTOR,HT_SCALE_FACTOR,VEG_HT,VEL_N
18201820INTEGER :: NOM(2 ),IIO(2 ),JJO(2 ),KKO(2 ),IE,II,JJ,KK,IEC,IOR,IWM,IWP,ICMM,ICMP,ICPM,ICPP,ICD,ICDO,IVL,I_SGN, &
18211821 VELOCITY_BC_INDEX,IIGM,JJGM,KKGM,IIGP,JJGP,KKGP,SURF_INDEXM,SURF_INDEXP,ITMP,ICD_SGN,ICDO_SGN, &
18221822 BOUNDARY_TYPE_M,BOUNDARY_TYPE_P,IS,IS2,IWPI,IWMI,VENT_INDEX
@@ -2267,29 +2267,33 @@ SUBROUTINE VELOCITY_BC(T,NM,APPLY_TO_ESTIMATED_VARIABLES)
22672267
22682268 ELSE
22692269
2270- PROFILE_FACTOR = 1._EB
2271- IF (ABS (SF% VEL)>0._EB ) THEN
2270+ VEL_N = 0.5_EB * (WCM_B1% U_NORMAL_S+ WCP_B1% U_NORMAL_S)
2271+
2272+ IF (ABS (SF% VEL)>0._EB .OR. VEL_N== 0._EB ) THEN ! User-specified normal velocity or no normal velocity at all
22722273 IF (ABS (SF% T_IGN- T_BEGIN)<= SPACING (SF% T_IGN) .AND. SF% RAMP(TIME_VELO)% INDEX>= 1 ) THEN
22732274 TSI = T
22742275 ELSE
22752276 TSI= T- SF% T_IGN
22762277 ENDIF
2278+ PROFILE_FACTOR = 1._EB
22772279 RAMP_T = EVALUATE_RAMP(TSI,SF% RAMP(TIME_VELO)% INDEX,TAU= SF% RAMP(TIME_VELO)% TAU)
22782280 IF (SF% VEL < 0._EB ) THEN
22792281 IF (SF% RAMP(VELO_PROF_Z)% INDEX> 0 ) PROFILE_FACTOR = EVALUATE_RAMP(ZC(KK),SF% RAMP(VELO_PROF_Z)% INDEX)
22802282 IF (IEC== 1 .OR. (IEC== 2 .AND. ICD== 2 )) VEL_T = RAMP_T* (PROFILE_FACTOR* (SF% VEL_T(2 ) + VEL_EDDY))
22812283 IF (IEC== 3 .OR. (IEC== 2 .AND. ICD== 1 )) VEL_T = RAMP_T* (PROFILE_FACTOR* (SF% VEL_T(1 ) + VEL_EDDY))
2282- ELSE
2284+ ELSEIF (SF % VEL > 0._EB ) THEN
22832285 IF (SF% PROFILE/= 0 ) PROFILE_FACTOR = ABS (0.5_EB * (WCM_B1% U_NORMAL_0+ WCP_B1% U_NORMAL_0)/ SF% VEL)
22842286 IF (SF% RAMP(VELO_PROF_Z)% INDEX> 0 ) PROFILE_FACTOR = EVALUATE_RAMP(ZC(KK),SF% RAMP(VELO_PROF_Z)% INDEX)
22852287 IF (IEC== 1 .OR. (IEC== 2 .AND. ICD== 2 )) VEL_T = RAMP_T* PROFILE_FACTOR* VEL_EDDY
22862288 IF (IEC== 3 .OR. (IEC== 2 .AND. ICD== 1 )) VEL_T = RAMP_T* PROFILE_FACTOR* VEL_EDDY
2289+ ELSE ! User-specified VEL_T but with VEL=0
2290+ IF (IEC== 1 .OR. (IEC== 2 .AND. ICD== 2 )) VEL_T = RAMP_T* SF% VEL_T(2 )
2291+ IF (IEC== 3 .OR. (IEC== 2 .AND. ICD== 1 )) VEL_T = RAMP_T* SF% VEL_T(1 )
22872292 ENDIF
2288- ELSE ! Mass flux BC
2289- VEL_MF = 0.5_EB * (WCM_B1% U_NORMAL_S+ WCP_B1% U_NORMAL_S)
2290- IF (VEL_MF < 0._EB ) THEN
2291- IF (IEC== 1 .OR. (IEC== 2 .AND. ICD== 2 )) VEL_T = - SF% VEL_T(2 )* VEL_MF
2292- IF (IEC== 3 .OR. (IEC== 2 .AND. ICD== 1 )) VEL_T = - SF% VEL_T(1 )* VEL_MF
2293+ ELSE ! VEL_N is due to something else besides a user-specified VEL, like a MASS_FLUX BC
2294+ IF (VEL_N < 0._EB ) THEN
2295+ IF (IEC== 1 .OR. (IEC== 2 .AND. ICD== 2 )) VEL_T = - SF% VEL_T(2 )* VEL_N
2296+ IF (IEC== 3 .OR. (IEC== 2 .AND. ICD== 1 )) VEL_T = - SF% VEL_T(1 )* VEL_N
22932297 ENDIF
22942298 ENDIF
22952299
0 commit comments