Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

An issue in ACM2 scheme for chemical species

sdfan

New member
Hi there,

I am running WRF-VPRM (v3.9.1.1) with ACM2 PBL scheme, and I find the simulated CO2_ANT concentration at surface is extremely high and the vertical gradient very small, which are drastically different from those simulated using the same setup except with YSU scheme.

I look into the code (phys/module_bl_acm.F) and find that the first two chemical species are skipped by ACM2 because the loop transferring values from VCI to CHEM starts from 7 instead of NSP+1 (=5) (compare lines 1041 and 1187, and see line 938 in the attached file). I do not know how WRF-Chem manages the order of chemical species, but in frame/module_configure.f90 the second species is CO2_ANT (and the first is null).

I modify the "7" in the line 1187 to "NSP+1", and the simulated CO2_ANT looks more reasonable. When I change it to 8 and 9, CO2_BIO, and CO2_BIO and CO2_OCE after CO2_ANT are also significantly influenced, respectively. Therefore, this loop indeed controls some processes of chemical species transport. I check the newest release of WRF-chem (v4.4), and the loop still starts from 7.

Does anyone know why the loop skips the first two species? I know that the first one can be skipped because it is null, but I do not know why the second is also skipped. Or is this a bug? Since in most chemical mechanisms the first chemical species except for null seems SO2, relevant applications may be affected if using ACM2 scheme.

Best regards,
Shidong Fan
 

Attachments

  • module_bl_acm.F
    61.5 KB · Views: 3
Hi Sdfan,
I‘m trying to run WRF-VPRM,but when I have run WRF sucessfully,I don't know how to conduct the next step.Could you give me some guidances?Thank you very much,hope you can reply.
 
Hi,

Suppose you have WRF-Chem already (since WRF-VPRM is just part of WRF-Chem). Turn on VPRM by setting chem_opt=16 or 17 (as well as other related options such as emiss_opt). If you are not familiar with WRF-Chem, you need to see WRF-Chem manual or so at first.

Then you need to prepare some input files for chemistry (in this case, for VPRM), including offline emission files (anthropogenic, oceanic, etc), IC/BC files, and VPRM input files which contain EVI, EVI_MAX, EVI_MIN, LSWI, LSWI_MAX, LSWI_MIN, and VEGFRA_VPRM, which can be calculated from MODIS data or so. You can use the VPRMpreproc tool (which may not work properly) to produce the VPRM input data, or you can use your own tools.

Then you need to specify the names of these files in namelist.input.

Then run and check if the input files are read correctly.
 
Hi,
Thank you for your reply. Before I turn on VPRM by setting chem_opt = 16 or 17 , do I need to make any changes to registry.chem, and if so, where do I need to make the changes?
 
No, you don't need to change anything. You can search "GHG" in the registry.chem file to check relevant variables that have been included.
 
Thank you for your reply . I'm meeting some new problems now . After I download the required EVI and albedo data on MODIS, is the process of calculating LSWI from the albedo data on the server or is it done by myself using Excel? If it's done on a server, how?
 
OK.I have already downloaded and installed R and VPRMpreproc. Is the next step to download the relevant data, tools, etc. according to config.r, and then use VPRMpreproc. r to generate the VPRM input file?
 
I have downloaded VPRMpreproc from the website of Max Planck Institute for Biogeochemistry and editted config.r . Then I downloaded the data such as MODIS 、SYNMAP and so on . After that ,I downloaded R and installed it in the linux . But I don't know how to do the next step. Should I run VPRMpreproc.r with R ?
 
Hi,

Suppose you have WRF-Chem already (since WRF-VPRM is just part of WRF-Chem). Turn on VPRM by setting chem_opt=16 or 17 (as well as other related options such as emiss_opt). If you are not familiar with WRF-Chem, you need to see WRF-Chem manual or so at first.

Then you need to prepare some input files for chemistry (in this case, for VPRM), including offline emission files (anthropogenic, oceanic, etc), IC/BC files, and VPRM input files which contain EVI, EVI_MAX, EVI_MIN, LSWI, LSWI_MAX, LSWI_MIN, and VEGFRA_VPRM, which can be calculated from MODIS data or so. You can use the VPRMpreproc tool (which may not work properly) to produce the VPRM input data, or you can use your own tools.

Then you need to specify the names of these files in namelist.input.

Then run and check if the input files are read correctly.
Hello sdfan

Seeing your communication has been very helpful to me. Can I help you with a few questions? Thank you very much.

I am using WRF-VPRM's chem_ Attempt to modify or add chem/chemicals when opt=17_ Vprm in init.F file_ Table_ To simulate the biological flux of other countries, I encountered a problem when recompiling the WRF after modifying the parameters. May I ask if I have modified the chemicals_ Do you still need to modify other files after the init.F file?

Thank you very much for taking the time to check my message. If you could reply to me, I would be grateful and disrespectful. Thank you!
 
Hi peng,

If you mean that you want to modify the four VPRM parameters, you can modify them directly and don't need to modify other files. From your log file in another thread, it is not likely that your modification to the parameters caused the problem. Did you try to clean your code before recompiling?
By the way, the values of λ are negative because photosynthesis causes "negative" emission (in the code the BIO emission is RES+GEE instead of RES-GEE).
 
Hi peng,

If you mean that you want to modify the four VPRM parameters, you can modify them directly and don't need to modify other files. From your log file in another thread, it is not likely that your modification to the parameters caused the problem. Did you try to clean your code before recompiling?
By the way, the values of λ are negative because photosynthesis causes "negative" emission (in the code the BIO emission is RES+GEE instead of RES-GEE).
Thank you very much for your serious answer, which has greatly helped me understand the model parameters. I only modified the values of those four parameters and executed them one by one./ clean - a;./ configure;./ compile em_ real, no changes were made to other code, but there was an issue of unsuccessful compilation. Later, I changed the parameters back to the original values to compile successfully, which confused me and made it difficult for me to start. Thank you again for your guidance.
 
Hi,

Suppose you have WRF-Chem already (since WRF-VPRM is just part of WRF-Chem). Turn on VPRM by setting chem_opt=16 or 17 (as well as other related options such as emiss_opt). If you are not familiar with WRF-Chem, you need to see WRF-Chem manual or so at first.

Then you need to prepare some input files for chemistry (in this case, for VPRM), including offline emission files (anthropogenic, oceanic, etc), IC/BC files, and VPRM input files which contain EVI, EVI_MAX, EVI_MIN, LSWI, LSWI_MAX, LSWI_MIN, and VEGFRA_VPRM, which can be calculated from MODIS data or so. You can use the VPRMpreproc tool (which may not work properly) to produce the VPRM input data, or you can use your own tools.

Then you need to specify the names of these files in namelist.input.

Then run and check if the input files ar

Hi,

Suppose you have WRF-Chem already (since WRF-VPRM is just part of WRF-Chem). Turn on VPRM by setting chem_opt=16 or 17 (as well as other related options such as emiss_opt). If you are not familiar with WRF-Chem, you need to see WRF-Chem manual or so at first.

Then you need to prepare some input files for chemistry (in this case, for VPRM), including offline emission files (anthropogenic, oceanic, etc), IC/BC files, and VPRM input files which contain EVI, EVI_MAX, EVI_MIN, LSWI, LSWI_MAX, LSWI_MIN, and VEGFRA_VPRM, which can be calculated from MODIS data or so. You can use the VPRMpreproc tool (which may not work properly) to produce the VPRM input data, or you can use your own tools.

Then you need to specify the names of these files in namelist.input.

Then run and check if the input files are read correctly.
Hi sdfan:
I'd like to ask how the output of VPRM run will be read and run by WRF-CHEM, I've changed options like chem_opt = 16 in the namelist.input file, but it's not quite clear how to change the filename of the VPRM result in the namelist.input so that it will be recognised by WRF-CHEM.
Looking forward to your reply!
 
Hi sdfan:
I'd like to ask how the output of VPRM run will be read and run by WRF-CHEM, I've changed options like chem_opt = 16 in the namelist.input file, but it's not quite clear how to change the filename of the VPRM result in the namelist.input so that it will be recognised by WRF-CHEM.
Looking forward to your reply!
WRF-Chem uses auxinput15 to control the input of VPRM data, so you need to assign the filename to "auxinput15_inname". You may also need to set io_form_auxinput15 and frames_per_auxinput15.
 
Hi,

Suppose you have WRF-Chem already (since WRF-VPRM is just part of WRF-Chem). Turn on VPRM by setting chem_opt=16 or 17 (as well as other related options such as emiss_opt). If you are not familiar with WRF-Chem, you need to see WRF-Chem manual or so at first.

Then you need to prepare some input files for chemistry (in this case, for VPRM), including offline emission files (anthropogenic, oceanic, etc), IC/BC files, and VPRM input files which contain EVI, EVI_MAX, EVI_MIN, LSWI, LSWI_MAX, LSWI_MIN, and VEGFRA_VPRM, which can be calculated from MODIS data or so. You can use the VPRMpreproc tool (which may not work properly) to produce the VPRM input data, or you can use your own tools.

Then you need to specify the names of these files in namelist.input.

Then run and check if the input files ar

Hi,

Suppose you have WRF-Chem already (since WRF-VPRM is just part of WRF-Chem). Turn on VPRM by setting chem_opt=16 or 17 (as well as other related options such as emiss_opt). If you are not familiar with WRF-Chem, you need to see WRF-Chem manual or so at first.

Then you need to prepare some input files for chemistry (in this case, for VPRM), including offline emission files (anthropogenic, oceanic, etc), IC/BC files, and VPRM input files which contain EVI, EVI_MAX, EVI_MIN, LSWI, LSWI_MAX, LSWI_MIN, and VEGFRA_VPRM, which can be calculated from MODIS data or so. You can use the VPRMpreproc tool (which may not work properly) to produce the VPRM input data, or you can use your own tools.

Then you need to specify the names of these files in namelist.input.

Then run and check if the input files are read correctly.
Hi sdfan:
I'd like to ask how the output of VPRM run will be read and run by WRF-CHEM, I've changed options like chem_opt = 16 in the namelist.input file, but it's not quite clear how to change the filename of the VPRM result in the namelist.input so that it will be recognised by WRF-CHEM.
WRF-Chem uses auxinput15 to control the input of VPRM data, so you need to assign the filename to "auxinput15_inname". You may also need to set io_form_auxinput15 and frames_per_auxinput15.
I don't quite understand that there are 7 files form VPRM output. When setting auxinput15_inname, how can you consider it? Or if you can give me a reference to your namelist.input, I will be very grateful.
 
You need to put the seven variables to a single nc file. You can merge your seven files if possible, or you can read them and write varibles to a new file. The dimensions of the files are like this:
char Times(Time, DateStrLen) ;
float EVI(Time, vprm_classes, south_north, west_east) ;
 
You need to put the seven variables to a single nc file. You can merge your seven files if possible, or you can read them and write varibles to a new file. The dimensions of the files are like this:
char Times(Time, DateStrLen) ;
float EVI(Time, vprm_classes, south_north, west_east) ;
Thank you, I have solved this problem.
 
Hi,

Suppose you have WRF-Chem already (since WRF-VPRM is just part of WRF-Chem). Turn on VPRM by setting chem_opt=16 or 17 (as well as other related options such as emiss_opt). If you are not familiar with WRF-Chem, you need to see WRF-Chem manual or so at first.

Then you need to prepare some input files for chemistry (in this case, for VPRM), including offline emission files (anthropogenic, oceanic, etc), IC/BC files, and VPRM input files which contain EVI, EVI_MAX, EVI_MIN, LSWI, LSWI_MAX, LSWI_MIN, and VEGFRA_VPRM, which can be calculated from MODIS data or so. You can use the VPRMpreproc tool (which may not work properly) to produce the VPRM input data, or you can use your own tools.

Then you need to specify the names of these files in namelist.input.

Then run and check if the input files are read correctly.
Hi sdfan,

I would like to ask, to prepare the anthropogenic emission files, the anthro_emiss utility can be used right? Could you please guide as to how to add the CO2 variable for mapping?
 
Hi vrinda-anand,

I did not use anthro_emiss utility and do not how to use it. For a simple test, I try to remap an EDGAR file as follows.
1. rename the variable emi_co2 in the EDGAR file to CO2 using nco
2. add time dimension using nco
3. add "date" and "datesec" using nco
4. set src_names = 'CO2(44)', emis_map = 'CO2->CO2', and sub_categories = 'CO2'.
Run anthro_emis and I get wrfchemi files. I do not check the output values, nor do I know how the temporal alocation works. Anyway, hope this simple example can help you.
 
Hi sdfan,
Thank you for your response. I also thought of doing it in the same way, I shall give it a try.
I would also like to ask what other way can I create the anthropogenic emissions for CO2?
 
Top