Skip to content

Commit 7e7a75a

Browse files
authored
Merge pull request #14415 from ericvmueller/master
FDS Source: implement linear interpolation of reference wind for leve…
2 parents e12949b + 211f006 commit 7e7a75a

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

Source/vege.f90

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ SUBROUTINE LEVEL_SET_FIRESPREAD(T,DT,NM)
333333
INTEGER :: IIG,IW,JJG,IC,OUTPUT_INDEX
334334
INTEGER :: KDUM,KWIND,ICF,IKT
335335
REAL(EB) :: UMF_TMP,PHX,PHY,MAG_PHI,PHI_W_X,PHI_W_Y,UMF_X,UMF_Y,UMAG,ROS_MAG,UMF_MAG,ROTH_FACTOR,&
336-
SIN_THETA,COS_THETA,THETA
336+
SIN_THETA,COS_THETA,THETA,ZWIND(2),U_Z(2),V_Z(2)
337337

338338
T_NOW = CURRENT_TIME()
339339

@@ -395,16 +395,34 @@ SUBROUTINE LEVEL_SET_FIRESPREAD(T,DT,NM)
395395

396396
IF (LEVEL_SET_COUPLED_WIND) THEN
397397

398-
KWIND = 0
399-
DO KDUM = K_LS(IIG,JJG),KBAR
400-
IF (ZC(KDUM)-ZC(K_LS(IIG,JJG))>=6.1_EB) THEN
401-
KWIND = KDUM
402-
EXIT
398+
! Check if sample height is in the mesh
399+
IF (ZC(KBAR)<6.1_EB) THEN
400+
U_LS(IIG,JJG) = 0.5_EB*(U(IIG-1,JJG,KBAR)+U(IIG,JJG,KBAR))
401+
V_LS(IIG,JJG) = 0.5_EB*(V(IIG,JJG-1,KBAR)+V(IIG,JJG,KBAR))
402+
ELSE
403+
404+
KWIND = 0
405+
DO KDUM = K_LS(IIG,JJG),KBAR
406+
IF ((ZC(KDUM)-Z_LS(IIG,JJG))>=6.1_EB) THEN
407+
KWIND = KDUM
408+
ZWIND(1) = ZC(KWIND-1)-Z_LS(IIG,JJG)
409+
ZWIND(2) = ZC(KWIND)-Z_LS(IIG,JJG)
410+
EXIT
411+
ENDIF
412+
ENDDO
413+
414+
U_Z(1) = 0.5_EB*(U(IIG-1,JJG,KWIND-1)+U(IIG,JJG,KWIND-1))
415+
U_Z(2) = 0.5_EB*(U(IIG-1,JJG,KWIND)+U(IIG,JJG,KWIND))
416+
V_Z(1) = 0.5_EB*(V(IIG,JJG-1,KWIND-1)+V(IIG,JJG,KWIND-1))
417+
V_Z(2) = 0.5_EB*(V(IIG,JJG-1,KWIND)+V(IIG,JJG,KWIND))
418+
! If wind comes from first grid cell assume zero wind at ground level
419+
IF (KWIND==1) THEN
420+
U_Z(1) = 0._EB; V_Z(1) = 0._EB; ZWIND(1) = 0._EB
403421
ENDIF
404-
ENDDO
422+
U_LS(IIG,JJG) = U_Z(1) + (6.1_EB-ZWIND(1))/(ZWIND(2)-ZWIND(1))*(U_Z(2)-U_Z(1))
423+
V_LS(IIG,JJG) = V_Z(1) + (6.1_EB-ZWIND(1))/(ZWIND(2)-ZWIND(1))*(V_Z(2)-V_Z(1))
405424

406-
U_LS(IIG,JJG) = 0.5_EB*(U(IIG-1,JJG,KWIND)+U(IIG,JJG,KWIND))
407-
V_LS(IIG,JJG) = 0.5_EB*(V(IIG,JJG-1,KWIND)+V(IIG,JJG,KWIND))
425+
ENDIF
408426

409427
ENDIF
410428

0 commit comments

Comments
 (0)