Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7953 Discussions

Problem with the compilation of wrf-chem with kpp enabled

sombrero2003
Beginner
1,084 Views
Hi everyone,

I'm trying to compile wrf with the chemistry module enabled. I managed to get wrf alone compiling well following the tutorial on the intel website but it doesn't work with the chemistry model.

I am using byacc for yacc and intel compiler verson 9.1

I get this error and have no idea on how to solve it.

Thanks for your help

------------------------------------------
configure_kpp, settings:
location of flex library: /home/paulot/WRF/Others/FLEX/lib/libfl.a
# DM_CC = mpiicc DM_CC = mpiicc CC = $(DM_CC) -DFSEEKO64_OK
SCC = icc CC_TOOLS = $(SCC)
writing chem/KPP/configure.kpp
/home/paulot/WRF/WRF-V3/WRFV3_CHEM
-----------------------------------------
compile kpp
make[1]: Entering directory `/ibrixfs1/home/paulot/WRF/WRF-V3/WRFV3_CHEM/chem/KPP/kpp/kpp-2.1/src'
yacc -d scan.y
icc -O -c y.tab.c
y.tab.c(1216): warning #266: function declared implicitly
if ((yychar = yylex()) < 0) yychar = 0;
^

scan.y(95): warning #266: function declared implicitly
{ CmdJacobian( yyvsp[0].str );
^

scan.y(98): warning #266: function declared implicitly
{ CmdHessian( yyvsp[0].str );
^

scan.y(101): warning #266: function declared implicitly
{ CmdStoicmat( yyvsp[0].str );
^

scan.y(104): warning #266: function declared implicitly
{ CmdDouble( yyvsp[0].str );
^

scan.y(107): warning #266: function declared implicitly
{ CmdReorder( yyvsp[0].str );
^

scan.y(110): warning #266: function declared implicitly
{ CmdMex( yyvsp[0].str );
^

scan.y(113): warning #266: function declared implicitly
{ CmdDummyindex( yyvsp[0].str );
^

scan.y(116): warning #266: function declared implicitly
{ CmdEqntags( yyvsp[0].str );
^

scan.y(119): warning #266: function declared implicitly
{ CmdFunction( yyvsp[0].str );
^

scan.y(122): warning #266: function declared implicitly
{ CmdStochastic( yyvsp[0].str );
^

scan.y(153): warning #266: function declared implicitly
{ CheckAll(); }
^

scan.y(155): warning #266: function declared implicitly
{ LookAtAll(); }
^

scan.y(157): warning #266: function declared implicitly
{ TransportAll(); }
^

scan.y(167): warning #266: function declared implicitly
{ CmdUse( yyvsp[0].str ); }
^

scan.y(169): warning #266: function declared implicitly
{ CmdLanguage( yyvsp[0].str ); }
^

scan.y(171): warning #266: function declared implicitly
{ DefineInitializeNbr( yyvsp[0].str ); }
^

scan.y(173): warning #266: function declared implicitly
{ DefineXGrid( yyvsp[0].str ); }
^

scan.y(175): warning #266: function declared implicitly
{ DefineYGrid( yyvsp[0].str ); }
^

scan.y(177): warni ng #266: function declared implicitly
{ DefineZGrid( yyvsp[0].str ); }
^

scan.y(186): warning #266: function declared implicitly
{ CmdIntegrator( yyvsp[0].str ); }
^

scan.y(188): warning #266: function declared implicitly
{ CmdDriver( yyvsp[0].str ); }
^

scan.y(190): warning #266: function declared implicitly
{ CmdRun( yyvsp[0].str ); }
^

scan.y(194): warning #266: function declared implicitly
{ SparseData( yyvsp[0].str );
^

scan.y(197): warning #266: function declared implicitly
{ WRFConform();
^

scan.y(250): warning #266: function declared implicitly
{ AddUseFile( yyvsp[0].str );
^

y.tab.c(1745): warning #266: function declared implicitly
if ((yychar = yylex()) < 0) yychar = 0;
^

y.tab.c(1260): warning #177: label "yyerrlab" was declared but never referenced
yyerrlab:
^

flex scan.l
icc -O -c lex.yy.c
scan.l(80): error: identifier "INC_STATE" is undefined
KEYWORD keywords[] = { { "INCLUDE", INC_STATE, 0 },
^

scan.l(81): error: identifier "MOD_STATE" is undefined
{ "MODEL", MOD_STATE, 0 },
^

scan.l(82): error: identifier "INT_STATE" is undefined
{ "INTEGRATOR", INT_STATE, 0 },
^

scan.l(83): error: identifier "PRM_STATE" is undefined
{ "JACOBIAN", PRM_STATE, JACOBIAN },
^

scan.l(93): error: identifier "ATM_STATE" is undefined
&nbs p; { "ATOMS", ATM_STATE, ATOMDECL },
^

scan.l(95): error: identifier "INITIAL" is undefined
{ "CHECKALL", INITIAL, CHECKALL },
^

scan.l(96): error: identifier "DSP_STATE" is undefined
{ "DEFVAR", DSP_STATE, DEFVAR },
^

scan.l(99): error: identifier "SSP_STATE" is undefined
{ "SETVAR", SSP_STATE, SETVAR },
^

scan.l(102): error: identifier "INI_STATE" is undefined
{ "INITVALUES", INI_STATE, INITVALUES },
^

scan.l(103): error: identifier "EQN_STATE" is undefined
{ "EQUATIONS", EQN_STATE, EQUATIONS },
^

scan.l(104): error: identifier "LMP_STATE" is undefined
{ "LUMP", LMP_STATE, LUMP },
&nb sp; ^

scan.l(105): error: identifier "LKT_STATE" is undefined
{ "LOOKAT", LKT_STATE, LOOKAT },
^

scan.l(107): error: identifier "TPT_STATE" is undefined
{ "TRANSPORT", TPT_STATE, TRANSPORT },
^

scan.l(113): error: identifier "MNI_STATE" is undefined
{ "MONITOR", MNI_STATE, MONITOR },
^

scan.l(120): error: identifier "INL_STATE" is undefined
{ "INLINE", INL_STATE, INLINE },
^

scan.l(125): error: identifier "USE_STATE" is undefined
{ "USES", USE_STATE, USES },
^

scan.l(315): warning #266: function declared implicitly
{ if ( EqNoCase( yytext+1, "ENDINLINE" ) ){
^

scan.l(348): error: identifier "yy_current_buffer" is undefined
yy_buffers[ yy_buf_level ] = yy_current_buffer;
^

scan.l(372): error: identifier "yy_current_buffer" is undefined
oldb = yy_current_buffer;
&n bsp; ^

compilation aborted for lex.yy.c (code 2)
make[1]: *** [lex.yy.o] Error 2
make[1]: Leaving directory `/ibrixfs1/home/paulot/WRF/WRF-V3/WRFV3_CHEM/chem/KPP/kpp/kpp-2.1/src'
-----------------------------------------
linker.csh: Command not found.
linker.csh: Command not found.
compile the coupler
icc -c -g registry_kpp.c
registry_kpp.c(10): catastrophic error: could not open source file "protos.h"
#include "protos.h"
^

compilation aborted for registry_kpp.c (code 4)
make: [registry_kpp.o] Error 4 (ignored)
make: *** No rule to make target `my_strtok.o', needed by `registry'. Stop.
0 Kudos
2 Replies
Brandon_H_Intel
Employee
1,084 Views

Hi- I don't have any personal experience with WRF (I've sent this out to the author of the Building WRF article though, so they might have some more insight), but it looks like you're not finding a header file that you need. Those "function declared implicitly" warnings are a good indicator - you need to find where those functions are declared. It's very likely that where those functions are declared is somewhere in the neighborhood of the header that defines the constants you need.

0 Kudos
Brandon_H_Intel
Employee
1,084 Views

Some more info I got from one of the engineers working on this. Hope this helps!

I have possibly found a workaround for problems encountered by user: /chem/KPP/util/wkc must be in $PATH. Build scripts expects that.

Other compiler complaints (warnings about implicitly defined functions) arise because byacc headers are not included.

0 Kudos
Reply