DOI-USGS / COAWST

COAWST modeling system git repository
Other
107 stars 51 forks source link

Compilation error in building WRF-chem #215

Closed qwdy closed 8 months ago

qwdy commented 10 months ago

Hello John, I attach the log file after running coawst.bash. There are lots of fatal error generated. I only define WRF_MODEL in the header file, and here are some additional settings in my bashrc file:

flex

export PATH=/home/coawst/Build_COAWST/LIBRARIES/flex/bin:$PATH export FLEX=/home/coawst/Build_COAWST/LIBRARIES/flex/bin/flex export FLEX_LIB_DIR=/home/coawst/Build_COAWST/LIBRARIES/flex/lib

byacc

export PATH=/usr/bin/yacc:$PATH export YACC='/usr/bin/yacc -d'

wrf-chem

export WRF_CHEM=1 export WRF_KPP=1 export KPP_HOME=/home/coawst/Build_COAWST/COAWST/WRF/chem/KPP/kpp/kpp-2.1 chem_log.txt

jcwarner-usgs commented 10 months ago

yes i see lots of errors. i am not sure. I see

" error while loading shared libraries: libfl.so.2: cannot open shared object file: No such file or directory" this is an issue with your system. do you have a sys admin person to help you?

qwdy commented 10 months ago

I changed export FLEX_LIB_DIR=/home/coawst/Build_COAWST/LIBRARIES/flex/lib to export LD_LIBRARY_PATH=/home/coawst/Build_COAWST/LIBRARIES/flex/lib:$LD_LIBRARY_PATH and ran coawst.bash again. The libfl.so.2 error seemed disappear, though the compilation failed again. chem_log2.txt

jcwarner-usgs commented 10 months ago

i see things like "make[1]: 进入目录“/home/coawst/Build_COAWST/COAWST/WRF/chem/KPP/mechanisms/nmhc9” /home/coawst/Build_COAWST/COAWST/WRF/chem/KPP/kpp/kpp-2.1/bin/kpp nmhc9.kpp Makefile:3: recipe for target 'nmhc9_Integrator.f90' failed"

This is not a coawst issue. i am not sure how you add chem to wrf, but perhaps you could down load wrf from the wrf git site, down load the chem, and try to compile it with those versions. Then you could ask directly on the WRF github site for help. once you figure out how to build wrf with chem, then you can come back here. this will remove any potential 'coawst' issues and you can get direct help from the wrf developers.

sorry, this is a bit outside of what i do. It just seems that you are using a non-standard way to build wrf chem, and i would think that you can get better help over there on the wrf site.

for example: https://forum.mmm.ucar.edu/threads/compiling-wrf-chem.8905/

qwdy commented 10 months ago

Thanks for your advice, John. I have one more thing to confirm. According to https://ruc.noaa.gov/wrf/wrf-chem/wrf_tutorial_exercises_v35/compiling_code.html, I need to 'cd WRF' to configure and compile WRF code, however I'm in a COAWST framework, I shoudn't do that directly. Instead, I need to create a new project folder and #define WRF_MODEL, then edit and run coawst.bash. Do I understand correctly?

jcwarner-usgs commented 10 months ago

in coawst world, yes. you need to make a proj .h file, and use the coawst.bash. The coawst.bash does this:

make wrf

and the coawst makefile does: ... ifdef USE_WRF cd $(WRF_DIR); ls; ./clean -a; \ ./configure; \ ... ./compile em_real; \

So the coawst build approach does the same thing as the WRF world. I just have it all set up so the user only needs to run coawst.bash to build all the models.

Get their WRF, do their configure and compile. What ever you need to do for their code will be the same with coawst. I imagine you will need to edit your ldlib path or other env stuff.

qwdy commented 10 months ago

Hello John and anyone who might met similar problem. I want to say I have built WRF-chem within COAWST successfully. Here are some key points:

  1. I am using a virtual machine and the memory I distributed before is 4 GB which wasn't enough to compile chem. For reference, I increased it to 6 GB.
  2. flex version 2.6.4 was not suitable for my case, I reinstall v2.5.39 and it worked
  3. https://forum.mmm.ucar.edu/forums/historical-archive.106/ search keyword "WRF chem" and you may find other related questions and answers.
qwdy commented 10 months ago

John, https://ruc.noaa.gov/wrf/wrf-chem/wrf_tutorial_exercises_v35/compiling_code.html how to achieve step 7 in coawst world? This step is about creating an executable called convert_emiss.exe, the related code in 'compile' file is: else if ( "$a" == "emi_conv" ) then set arglist = ( $arglist $a ) set ZAP = ( chem/convert_emiss.exe ) I got a following message if I use 'compile emi_conv >& emcompile.log' directly under COAWST/WRF directory: `Command 'compile' not found, did you mean:

command 'compiler' from deb eclipse-titan

Try: apt install `

jcwarner-usgs commented 9 months ago

there is the file 'compile' under the WRF dir image

maybe try ls -ltr and see if it is an executable? if not chmod the compile file.

qwdy commented 9 months ago

Hi, John. I think it's an executable, but it doesn't work to generate convert_emiss.exe(although wrf-chem was compiled successfully). image

jcwarner-usgs commented 9 months ago

try ./compile emi_conv