Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Terrain temperature #1457

Closed
indra098124 opened this issue Feb 23, 2024 · 6 comments
Closed

Terrain temperature #1457

indra098124 opened this issue Feb 23, 2024 · 6 comments

Comments

@indra098124
Copy link

Thanks a lot for developing the code. I have a question about terrain surface conditions. For e.g. in Terrain3d, can I set the temperature of the hemispherical terrain while using MOST?

Thank you

@AMLattanzi
Copy link
Collaborator

The entire bottom boundary temperature may be specified with erf.most.surf_temp = 301.0 # SPECIFIED SURFACE TEMP (see MOST docs for more detail on the input parameters).

If you want to specify a fixed temperature just over the hemisphere and something else (say adiabatic) everywhere else, we do not currently support that but it is very possible with the way MOST is set up in the code.

@indra098124
Copy link
Author

indra098124 commented Feb 23, 2024

Thanks @AMLattanzi for explaining. Do we have access to z_phys or some other quantity in MOST class to identify the terrain vs flat region?

@AMLattanzi
Copy link
Collaborator

The z_phys data is sent in through the ABL MOST constructor here but the pointer to that data is not stored. One could save the pointer in the ABL most class, or alternatively, one could pass it through the update_fluxes call. Either way, multiple structs for the different BC types (e.g. surface_flux and surface_temp) need to be constructed and one needs to select which struct to do the iterations with for each i,j,k (see here)

@indra098124
Copy link
Author

@AMLattanzi may I ask how the MOST finds the surface values when when use WRF input and boundary data?

@AMLattanzi
Copy link
Collaborator

@indra098124 When you say the surface values, are you referring to the reference values for u; v; theta in the below equations for the Moeng formulation with MOST or are you referring to the surface temperature theta_0?

If you are referring to the former (u; v; theta), then nothing should change with the WRF bdy and input simulation; these values should correspond to a specified height above the bottom surface (we are using the field variables at zref height).

If you are referring to the latter (theta_0), then we have to find a surface temperature that is consistent with the type of BC being imposed (is it constant theta flux or constant theta temperature). For an imposed flux, we are specifyin Ustar*Tstar and can use the similarity theory to compute theta_0 once we've iterated to get a valid Ustar (second image below). For a specified surface temp theta_0, we have to iterate to get the flux Ustar*Tstar. Finally, we do have time varying sea surface temperatures (SST) that can be read from netcdf files when you initialize with MetGrid. The SST values can be used to give a spatially varying surface temperature with MOST (I'm guessing that's what you're ultimately interested in?). I have not looked at reading SST or LandMasks when initializing with WRF input, but we can put that on the to-do list.
image
image

@indra098124
Copy link
Author

Thank you @AMLattanzi for explaining. Yes, I assumed that a framework should exist when using boundary conditions from WRFs for consider spatially varying theta_0. No worries, it can wait. Many thanks again for your help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants