420 views

Skip to first unread message

Jun 23, 2020, 1:07:03 AM6/23/20

to wrf-chem-anthro_emiss

Hello,

I hope this message finds you well. So I'm using this EPA_anthro_emis tool to prepare NEI 2014 emissions for a nested WRF domain (CONUS), with the smallest domain (d03) resolution being about 1 km. The program runs, and so does wrf.ext. But I do notice that the produced wrfchemi_d02 have some interesting perhaps unrealistic spatial pattern, which is further exaggerated in wrfchemi_d03 (see attached plot). My d02 and d03 do have sufficient number of grid points. I'd assume this EPA_anthro_emis program would do some sort of interpolation if the input data resolution (NEI 2014, 12 km I think) is coarser than the domain res (d03: ~1 km), so I would expect a smoother spatial distribution. I was wondering if I need to worry about the spatial patterns shown in the attached plot?

(please forgive my potato quality plot. The box roughly shows the location of d03 within d02)

Thank you very much in advance.

Cheers

- Siyuan

Nov 18, 2021, 4:41:12 AM11/18/21

to wrf-chem-anthro_emiss, siy...@ucar.edu

Dear all,

this is likely too late for the author of this question, but perhaps my answer will help someone else.

I ran into the same problem with 1 and 3 km resolution simulations. The issue is only noticable for simulations with a higher resolution than the emission data set, so simulations with resolutions of 5 km and smaller when using the EPA emissions.

It is caused by the interpolation of the emission data set to the model domain, the indices are mixed up. I attached a file with a fix for that, replace anthro_emis.f90 with that one.

The relevant change is at line 1034 to 1037:

wrk_sum = raw_data(il,jl)*grid%ax(i,j,upper)*grid%by(i,j,upper) &

+ raw_data(il,ju)*grid%ax(i,j,upper)*grid%by(i,j,lower) &

+ raw_data(iu,jl)*grid%ax(i,j,lower)*grid%by(i,j,upper) &

+ raw_data(iu,ju)*grid%ax(i,j,lower)*grid%by(i,j,lower)

+ raw_data(il,ju)*grid%ax(i,j,upper)*grid%by(i,j,lower) &

+ raw_data(iu,jl)*grid%ax(i,j,lower)*grid%by(i,j,upper) &

+ raw_data(iu,ju)*grid%ax(i,j,lower)*grid%by(i,j,lower)

is replaced by

wrk_sum = raw_data(iu,ju)*grid%ax(i,j,upper)*grid%by(i,j,upper) &

+ raw_data(iu,jl)*grid%ax(i,j,upper)*grid%by(i,j,lower) &

+ raw_data(il,ju)*grid%ax(i,j,lower)*grid%by(i,j,upper) &

+ raw_data(il,jl)*grid%ax(i,j,lower)*grid%by(i,j,lower)

+ raw_data(iu,jl)*grid%ax(i,j,upper)*grid%by(i,j,lower) &

+ raw_data(il,ju)*grid%ax(i,j,lower)*grid%by(i,j,upper) &

+ raw_data(il,jl)*grid%ax(i,j,lower)*grid%by(i,j,lower)

Cheers,

Max

Reply all

Reply to author

Forward

0 new messages

Search

Clear search

Close search

Google apps

Main menu