Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

WRF - error #7012

Mark_P_
Beginner
2,461 Views

I am compiling WRF 3.8.1 with MPI support. All dependencies save the NCAR bits have been compiled from scratch with the same Intel Parallel Suite (2017 1). Everything kicks off just right, runs for a while, then starts to fail due to cascading errors. The first error is:

( cd /apps/incoming/3.8.1/WRFV3/external/io_int ; \
          make -j 2 CC="mpicc -cc=icc -DMPI2_SUPPORT -DFSEEKO64_OK " CFLAGS_LOCAL="-w -O3 -ip " RM="rm -f" RANLIB="ranlib" CPP="/lib/cpp -P" \
          FC="time mpif90 -f90=ifort -real-size `expr 8 \* 4` -i4  -ip -fp-model precise -w -ftz -align all -fno-alias -FR -convert big_endian   " FGREP="fgrep -iq" \
          TRADFLAG="-traditional" AR="ar" ARFLAGS="ru" ARCHFLAGS="-DEM_CORE=1 -DNMM_CORE=0 -DNMM_MAX_DIM=2600 -DCOAMPS_CORE=0 -DDA_CORE=0 -DEXP_CORE=0 -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNONSTANDARD_SYSTEM_FUNC  -DWRF_USE_CLM  -DDM_PARALLEL -DNETCDF -DUSE_ALLOCATABLES -DGRIB1 -DINTIO -DKEEP_INT_AROUND -DLIMIT_ARGS -DCONFIG_BUF_LEN=65536 -DMAX_DOMAINS_F=21 -DMAX_HISTORY=25 -DNMM_NEST=0" all )
make[3]: Entering directory `/apps/incoming/3.8.1/WRFV3/external/io_int'
if [ -f ../../frame/pack_utils.o -a -f ../../frame/clog.o ] ; then \
          time mpif90 -f90=ifort -real-size 32 -i4  -ip -fp-model precise -w -ftz -align all -fno-alias -FR -convert big_endian      -I../ioapi_share -o diffwrf diffwrf.f \
                ../../frame/pack_utils.o ../../frame/module_internal_header_util.o ../../frame/module_driver_constants.o ../../frame/module_machine.o ../../frame/module_wrf_error.o ../../frame/wrf_debug.o  libwrfio_int.a ; \
        fi
diffwrf.f(50): error #7012: The module file cannot be read.  Its format requires a more recent F90 compiler.   [MODULE_EXT_INTERNAL]
  use module_ext_internal
------^
compilation aborted for diffwrf.f (code 1)

 

With the next error being much the same:

make[2]: Entering directory `/apps/incoming/3.8.1/WRFV3/frame'
rm -f module_domain_type.o
/lib/cpp -P -I/apps/incoming/3.8.1/WRFV3/inc -DEM_CORE=1 -DNMM_CORE=0 -DNMM_MAX_DIM=2600 -DCOAMPS_CORE=0 -DDA_CORE=0 -DEXP_CORE=0 -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNONSTANDARD_SYSTEM_FUNC  -DWRF_USE_CLM  -DDM_PARALLEL -DNETCDF -DUSE_ALLOCATABLES -DGRIB1 -DINTIO -DKEEP_INT_AROUND -DLIMIT_ARGS -DCONFIG_BUF_LEN=65536 -DMAX_DOMAINS_F=21 -DMAX_HISTORY=25 -DNMM_NEST=0  -I. -traditional   module_domain_type.F  > module_domain_type.bb
/apps/incoming//3.8.1/WRFV3/tools/standard.exe module_domain_type.bb | /lib/cpp -P -traditional > module_domain_type.f90
rm -f module_domain_type.b module_domain_type.bb
time mpif90 -f90=ifort -c -real-size `expr 8 \* 4` -i4  -O0 -fno-inline -no-ip -ip -fp-model precise -w -ftz -align all -fno-alias -FR -convert big_endian   -I../dyn_em -I../dyn_nmm   -I/apps/incoming/3.8.1/WRFV3/external/esmf_time_f90  -I/apps/incoming/3.8.1/WRFV3/main -I/apps/incoming/3.8.1/WRFV3/external/io_netcdf -I/apps/incoming/3.8.1/WRFV3/external/io_int -I/apps/incoming/3.8.1/WRFV3/frame -I/apps/incoming/3.8.1/WRFV3/share -I/apps/incoming/3.8.1/WRFV3/phys -I/apps/incoming/3.8.1/WRFV3/chem -I/apps/incoming/3.8.1/WRFV3/inc -I/apps/netcdf-fortran/4.4.4/intel-mpi/include  module_domain_type.f90
module_domain_type.f90(5): error #7012: The module file cannot be read.  Its format requires a more recent F90 compiler.   [MODULE_UTILITY]
   USE module_utility
-------^
module_domain_type.f90(4378): error #6457: This derived type name has not been declared.   [WRFU_TIME]
      Type(WRFU_Time)                                     :: start_subtime, stop_subtime
-----------^
module_domain_type.f90(4379): error #6457: This derived type name has not been declared.   [WRFU_TIME]
      Type(WRFU_Time)                                     :: this_bdy_time, next_bdy_time
-----------^
module_domain_type.f90(4380): error #6457: This derived type name has not been declared.   [WRFU_TIME]
      Type(WRFU_Time)                                     :: this_emi_time, next_emi_time
-----------^
module_domain_type.f90(4381): error #6457: This derived type name has not been declared.   [WRFU_TIMEINTERVAL]
      Type(WRFU_TimeInterval), DIMENSION(MAX_WRF_ALARMS)  :: io_intervals
-----------^
module_domain_type.f90(4401): error #6457: This derived type name has not been declared.   [WRFU_TIMEINTERVAL]
      Type(WRFU_TimeInterval) :: last_dtInterval
-----------^
module_domain_type.f90(4377): error #6457: This derived type name has not been declared.   [WRFU_CLOCK]
      Type(WRFU_Clock), POINTER                           :: domain_clock
-----------^
module_domain_type.f90(4377): error #6404: This name does not have a type, and must have an explicit type.   [DOMAIN_CLOCK]
      Type(WRFU_Clock), POINTER                           :: domain_clock
-------------------------------------------------------------^
module_domain_type.f90(4382): error #6457: This derived type name has not been declared.   [WRFU_ALARM]
      Type(WRFU_Alarm), POINTER :: alarms(:)
-----------^
module_domain_type.f90(4382): error #6404: This name does not have a type, and must have an explicit type.   [ALARMS]
      Type(WRFU_Alarm), POINTER :: alarms(:)
-----------------------------------^
compilation aborted for module_domain_type.f90 (code 1)

 

I will admit to not being a developer here, I am a cluster admin, however I find the error quite confusing. I couldn't find this specific error in the forums, hence the new post. Thanks in advance for any help.

 

 

0 Kudos
1 Reply
Steve_Lionel
Honored Contributor III
2,461 Views

If the error message is to be believed, the .mod files (module_ext_internal.mod and module_utility.mod) were either created by a different compiler or are corrupted. Can you see the compiles for the sources for those modules in the build log?

0 Kudos
Reply