jphorne
New member
Hello,
I have been digging through the source code and looking for the answer to this question, but I have been unable to find what I am looking for. Maybe someone here knows where this is occurring.
Okay, so I am running a WRF-LES simulation with NOAH-MP and BEP. I want to determine how WRF-LES interacts with NOAH-MP and BEP when calculating variables such as T2.
I started by looking at module_surface_driver.F and can see quite clearly that under ...
it appears to be grabbing the TH_PHY variable at the first level, which is likely T2 with BEP impacts already taken into account? Same with U10, Q2, etc.
So then, look at noahmp_urban under module_sf_noahmpdrv.F I see ...
So, my question is, where or how are these explicit and implicit parts incorporated into WRF-LES? From what I can tell, they are then used in the module_pbl_driver.F for the portions written by Alberto many moons ago.
Later, in module_pbl_driver.F, they are used in
But WRF-LES uses no PBL scheme, so how are these impacts incorporated?
It is likely that I am missing something somewhere or that these impacts were never coupled to WRF-LES (which seems very unlikely). If anyone can point me towards where the magic is happening, it would be most appreciated and save me time!
I have been digging through the source code and looking for the answer to this question, but I have been unable to find what I am looking for. Maybe someone here knows where this is occurring.
Okay, so I am running a WRF-LES simulation with NOAH-MP and BEP. I want to determine how WRF-LES interacts with NOAH-MP and BEP when calculating variables such as T2.
I started by looking at module_surface_driver.F and can see quite clearly that under ...
Code:
CASE (NOAHMPSCHEME)
...
IF(SF_URBAN_PHYSICS > 0 ) THEN !urban
...
call noahmp_urban (...) !<- run the subroutine in module_sf_noahmpdrv.F
...
IF((SF_URBAN_PHYSICS.eq.2).OR.(SF_URBAN_PHYSICS.eq.3)) THEN
DO j=j_start(ij),j_end(ij) !urban
DO i=i_start(ij),i_end(ij) !urban
IF( IVGTYP(I,J) == ISURBAN .or. IVGTYP(I,J) == LCZ_1 .or. IVGTYP(I,J) == LCZ_2 .or. &
IVGTYP(I,J) == LCZ_3 .or. IVGTYP(I,J) == LCZ_4 .or. IVGTYP(I,J) == LCZ_5 .or. &
IVGTYP(I,J) == LCZ_6 .or. IVGTYP(I,J) == LCZ_7 .or. IVGTYP(I,J) == LCZ_8 .or. &
IVGTYP(I,J) == LCZ_9 .or. IVGTYP(I,J) == LCZ_10 .or. IVGTYP(I,J) == LCZ_11 )THEN
T2(I,J) = TH_PHY(i,1,j)/((1.E5/PSFC(I,J))**RCP) !urban <-------------------------------------------------------------HERE
TH2(I,J) = TH_PHY(i,1,j) !urban
Q2(I,J) = qv_curr(i,1,j) !urban
U10(I,J) = U_phy(I,1,J) !urban
V10(I,J) = V_phy(I,1,J) !urban
END IF !urban
ENDDO !urban
ENDDO !urban
ENDIF
So then, look at noahmp_urban under module_sf_noahmpdrv.F I see ...
Code:
IF (SF_URBAN_PHYSICS == 2) THEN
...
CALL BEP(...)
...
IF((SF_URBAN_PHYSICS == 2).OR.(SF_URBAN_PHYSICS == 3))THEN
...
b_t_bep(i,k,j) = b_t_bep(i,k,j)*frc_urb2d(i,j) <-the explicit and explicit sources from BEP multiplied by urban factions which make sense
...
b_t_bep(i,1,j) = (1.-frc_urb2d(i,j))*hfx_rural(i,j)/dz8w(i,1,j)/rho(i,1,j)/CP+ & <-which is then modified the lowest cell by the rural heat flux in a mosaic fashion
b_t_bep(i,1,j)
So, my question is, where or how are these explicit and implicit parts incorporated into WRF-LES? From what I can tell, they are then used in the module_pbl_driver.F for the portions written by Alberto many moons ago.
Code:
IF ( idiff.eq.1 ) THEN
...
b_t(i,k,j)=b_t_bep(i,k,j)
Code:
SUBROUTINE diff3d(...)
It is likely that I am missing something somewhere or that these impacts were never coupled to WRF-LES (which seems very unlikely). If anyone can point me towards where the magic is happening, it would be most appreciated and save me time!