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

Fixing the wet deposition #1

Open
dingwell opened this issue Dec 11, 2012 · 0 comments
Open

Fixing the wet deposition #1

dingwell opened this issue Dec 11, 2012 · 0 comments

Comments

@dingwell
Copy link

Maybe I should start putting some info on my progress/plans here...
I've been working with the wdep process and I now see why it has not been implemented earlier.

Precipitation from WRF is given as accumulated amount since model start, we want the precipitation rate. There are several ways to achieve this, currently, I have a Python script which calculates the rate and adds it to the netcdf files (https://github.com/dingwell/flx_ppwrf). The script is not very flexible but it is only a temporary solution. It also results in a time-lag in the precipitation fields if used with the current interpolation routines in flx-wrf. However, this was the easiest approach I could think of if one has to deal with WRF cold starts during the simulation.

My current concern is the wet deposition scheme itself and not the model input, but it is needed...

I have considered some ways to support the precipitation data natively within flx-wrf, which require the following modifications:
readwind.f/readwind_nests.f
• An additional option for reading accumulated precipitation from WRF
• Variables RAINC, RAINSH, RAINNC, SNOWNC, HAILNC(?) and GRAUPELNC must be taken into account
• The available variables should be read and missing variables should be skipped without producing any error
• RAINNC should always be present, an error should be given if it is not.
FLEXPART WRF generally keeps data from two time steps in memory (previous and next) which are used for interpolating to the current simulation time. Precipitation might need to be treated differently...

interpol_rain.f/interpol_rain_nests.f
• These might be used for other variables than precipitation, better to create a new subroutine for getting precipitation rate

get_wrf_rain.f/get_wrf_rain_nests.f (new)
I see two reasonable ways of doing this:
1) Consider the two closest WRF-outputs, the precipitation rate between these is simply the difference in total accumulated precipitation divided by the time between the two. We don't interpolate, but simply assume that the rate is constant over the entire period.
2) [A] For each WRF output time (2), take the previous (1) and next (3) output file into consideration. [B] First, calculate the precipitation rate between file 1 and 2, as in the previous method. Do the same for file 2 and 3. [C] Calculate the precipitation rate for any instance between time 2 +/- 0.5 hours by interpolating to current time. This could probably be done with interpol_rain.f and interpol_rain_nests.f

The first order solution is the easiest one, but there could be issues when the cloud cover is interpolated and precipitation is not. The second solution is more complex since it requires three files rather than two as well as an additional step before the data can be used. If we are to load an additional time step into memory, we need to add a whole new reading routine specifically for precipitation. However, the way netcdf files are accessed it shouldn't increase memory demands significantly. Another problem is that the precipitation sample will be a different times than all the other fields, so the reading routine must be called at different times depending on variable. Therefore, option 2 will require the creation of separate read-subroutine.

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
@dingwell and others