Compiling WRF model with pgf90

Hi,
I am trying to compile the WRF model version 2.1.2 (weather forecast model) with pgf90 version 5.0 on a linux cluster (Redhat Enterprise 3.0). I get several errors, the first one is:

(...)
rm -f ESMF_Calendar.o
sed -f ../../arch/standard.sed ESMF_Calendar.F90 > ESMF_Calendar.b
/lib/cpp -C -P -traditional -I../../inc -I. -DEM_CORE=1 -DNMM_CORE=0 -DNMM_MAX_DIM=2600 -DCOAMPS_CORE=0 -DEXP_CORE=0 -DNONSTANDARD_SYSTEM -DF90_STANDALONE -DCONFIG_BUF_LEN=8192 -DMAX_DOMAINS_F=21 -C -P -I. ESMF_Calendar.b > ESMF_Calendar.f
rm -f ESMF_Calendar.b
pgf90 -r4 -i4  -w -byteswapio -Mfree -tp p6   -c ESMF_Calendar.f
PGF90-S-0155-Illegal component initialization in derived type esmf_daysperyear (ESMF_Calendar.f: 136)
PGF90-S-0155-Illegal component initialization in derived type esmf_daysperyear (ESMF_Calendar.f: 137)
PGF90-S-0155-Illegal component initialization in derived type esmf_daysperyear (ESMF_Calendar.f: 138)
PGF90-S-0155-Illegal component initialization in derived type esmf_calendar (ESMF_Calendar.f: 148)
PGF90-S-0155-Illegal component initialization in derived type esmf_calendar (ESMF_Calendar.f: 149)
PGF90-S-0155-Illegal component initialization in derived type esmf_calendar (ESMF_Calendar.f: 150)
PGF90-S-0155-Illegal component initialization in derived type esmf_calendar (ESMF_Calendar.f: 151)
 0 inform,   0 warnings,   7 severes, 0 fatal for esmf_calendarmod
 0 inform,   0 warnings,   7 severes, 0 fatal for esmf_calendarcreate
 0 inform,   0 warnings,   7 severes, 0 fatal for esmf_calendarinitialized
PGF90/any Linux/x86 5.0-2: compilation completed with severe errors
make[3]: [ESMF_Calendar.o] Error 2 (ignored)
(...)

Using Intels ifort compiler 9.0 on the same platform seems to work:

(...)
rm -f ESMF_Calendar.o
sed -f ../../arch/standard.sed ESMF_Calendar.F90 > ESMF_Calendar.b
/lib/cpp -traditional -I../../inc -I.  -DEM_CORE=1 -DNMM_CORE=0 -DNMM_MAX_DIM=2600 -DCOAMPS_CORE=0 -DEXP_CORE=0 -DNONSTANDARD_SYSTEM -DF90_STANDALONE -DCONFIG_BUF_LEN=8
192 -DMAX_DOMAINS_F=21 -C -P -I. ESMF_Calendar.b > ESMF_Calendar.f
rm -f ESMF_Calendar.b
ifort -real_size 32  -O2 -w -FR -cm -I. -Vaxlib -convert big_endian -mp  -c ESMF_Calendar.f
rm -f ESMF_Fraction.o
sed -f ../../arch/standard.sed ESMF_Fraction.F90 > ESMF_Fraction.b
(...)

Somewhere I found the info that a PGI patch should solve the problem. Has anybody an idea if this is true, where to find the appropriate patch and how to install it?

Thanks,
Alex

Hi Alex,

Somewhere I found the info that a PGI patch should solve the problem. Has anybody an idea if this is true, where to find the appropriate patch and how to install it?

The problem is that the new WRF 2.1.2 routines use Fortran 95 features which are not supported on older PGI compilers. However, the authors of WRF are aware of the problem and have issued a patch which can be found HERE.

For more information about the issue, first go to the WRF download page, follow the “download” link and sign-in. Once signed in, follow the “known issues” link under the “WRF Model (Updated January 30, 2006 to Version 2.1.2)” download section. The section titled " Fix for ESMF compilation Using some old PGI compilers (Posted 2/15/06)" discusses the problem and has a link to the patch.

Hope this helps,
Mat