[Wrf-users] WRF/WPS Parallel Compile Issues

Mark Potter mpotter at pcpcdirect.com
Tue Feb 14 06:46:12 MST 2017


I am attempting to compile WRF/WPS with the Intel Parallel Suite 2017 U1. I have compiled all of the requirements (HDF5, NetCDF, Jasper, et al) with the same compiler. Here are the relevant bits from configure.wrf

-----

DESCRIPTION     =       INTEL ($SFC/$SCC)
DMPARALLEL      =        1
OMPCPP          =       # -D_OPENMP
OMP             =       # -openmp -fpp -auto
OMPCC           =       # -openmp -fpp -auto
SFC             =       ifort
SCC             =       icc
CCOMP           =       icc
DM_FC           =       mpif90 -f90=$(SFC)
DM_CC           =       mpicc -cc=$(SCC) -DMPI2_SUPPORT
FC              =       time $(DM_FC)
CC              =       $(DM_CC) -DFSEEKO64_OK
LD              =       $(FC)
RWORDSIZE       =       $(NATIVE_RWORDSIZE)
PROMOTION       =       -real-size `expr 8 \* $(RWORDSIZE)` -i4
ARCH_LOCAL      =       -DNONSTANDARD_SYSTEM_FUNC  -DWRF_USE_CLM
CFLAGS_LOCAL    =       -w -O3 -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars
LDFLAGS_LOCAL   =       -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common
CPLUSPLUSLIB    =
ESMF_LDFLAG     =       $(CPLUSPLUSLIB)
FCOPTIM         =       -O3
FCREDUCEDOPT    =       $(FCOPTIM)
FCNOOPT         =       -O0 -fno-inline -no-ip
FCDEBUG         =       # -g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
FORMAT_FIXED    =       -FI
FORMAT_FREE     =       -FR
FCSUFFIX        =
BYTESWAPIO      =       -convert big_endian
FCBASEOPTS_NO_G =       -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common
FCBASEOPTS      =       $(FCBASEOPTS_NO_G) $(FCDEBUG)
MODULE_SRCH_FLAG =
TRADFLAG        =      -traditional
CPP             =      /lib/cpp -P
AR              =      ar
ARFLAGS         =      ru
M4              =      m4
RANLIB          =      ranlib
RLFLAGS         =
CC_TOOLS        =      $(SCC)

----

The last attempt was with -j 1

----

setting serial make -j 1

==============================================================================================

The following indicate the compilers selected to build the WRF system

Serial Fortran compiler (mostly for tool generation):
which SFC
/apps/intel/2017.u1/compilers_and_libraries_2017.1.132/linux/bin/intel64/ifort

Serial C compiler (mostly for tool generation):
which SCC
/apps/intel/2017.u1/compilers_and_libraries_2017.1.132/linux/bin/intel64/icc

Fortran compiler for the model source code:
which FC
/apps/intel/2017.u1/compilers_and_libraries_2017.1.132/linux/mpi/intel64/bin/mpif90
Will use 'time' to report timing information

C compiler for the model source code:
which CC
/apps/intel/2017.u1/compilers_and_libraries_2017.1.132/linux/mpi/intel64/bin/mpicc

==============================================================================================

----

Everything appears to compile fine for quite a bit of the compile until this error:

/apps/incoming/Lerach-requests/3.8.1/WRFV3/tools/standard.exe module_dm.F > module_dm.b
/lib/cpp -P -I/apps/incoming/Lerach-requests/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_dm.b  > module_dm.f90
rm -f module_dm.b
if fgrep -iq '!$OMP' module_dm.f90 ; then \
          if [ -n "" ] ; then echo COMPILING module_dm.F WITH OMP ; fi ; \
          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/Lerach-requests/3.8.1/WRFV3/external/esmf_time_f90  -I/apps/incoming/Lerach-requests/3.8.1/WRFV3/main -I/apps/incoming/Lerach-requests/3.8.1/WRFV3/external/io_netcdf -I/apps/incoming/Lerach-requests/3.8.1/WRFV3/external/io_int -I/apps/incoming/Lerach-requests/3.8.1/WRFV3/frame -I/apps/incoming/Lerach-requests/3.8.1/WRFV3/share -I/apps/incoming/Lerach-requests/3.8.1/WRFV3/phys -I/apps/incoming/Lerach-requests/3.8.1/WRFV3/chem -I/apps/incoming/Lerach-requests/3.8.1/WRFV3/inc -I/apps/netcdf-fortran/4.4.4/intel-mpi/include    module_dm.f90 ; \
        else \
          if [ -n "" ] ; then echo COMPILING module_dm.F WITHOUT OMP ; fi ; \
          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/Lerach-requests/3.8.1/WRFV3/external/esmf_time_f90  -I/apps/incoming/Lerach-requests/3.8.1/WRFV3/main -I/apps/incoming/Lerach-requests/3.8.1/WRFV3/external/io_netcdf -I/apps/incoming/Lerach-requests/3.8.1/WRFV3/external/io_int -I/apps/incoming/Lerach-requests/3.8.1/WRFV3/frame -I/apps/incoming/Lerach-requests/3.8.1/WRFV3/share -I/apps/incoming/Lerach-requests/3.8.1/WRFV3/phys -I/apps/incoming/Lerach-requests/3.8.1/WRFV3/chem -I/apps/incoming/Lerach-requests/3.8.1/WRFV3/inc -I/apps/netcdf-fortran/4.4.4/intel-mpi/include   module_dm.f90 ; \
        fi
module_dm.f90(1136): error #7013: This module file was not generated by any release of this compiler.   [MPI]
      use mpi
----------^
module_dm.f90(1176): error #7013: This module file was not generated by any release of this compiler.   [MPI]
      use mpi
----------^
module_dm.f90(1216): error #7013: This module file was not generated by any release of this compiler.   [MPI]
      use mpi
----------^
module_dm.f90(5909): error #7002: Error in opening the compiled module file.  Check INCLUDE paths.   [MODULE_DM]
      USE module_dm
----------^
module_dm.f90(5915): error #6410: This name has not been declared as an array or a function.   [ID_STACK]
      id_stack(communicator_stack_cursor) = current_id
------^
module_dm.f90(5916): error #6410: This name has not been declared as an array or a function.   [LOCAL_COMMUNICATOR_STACK]
      local_communicator_stack( communicator_stack_cursor )    =    local_communicator
------^
module_dm.f90(5917): error #6410: This name has not been declared as an array or a function.   [LOCAL_COMMUNICATOR_PERIODIC_STACK]
      local_communicator_periodic_stack( communicator_stack_cursor )  =    local_communicator_periodic
------^
module_dm.f90(5918): error #6410: This name has not been declared as an array or a function.   [LOCAL_IOCOMMUNICATOR_STACK]
      local_iocommunicator_stack( communicator_stack_cursor )  =    local_iocommunicator
------^
module_dm.f90(5919): error #6410: This name has not been declared as an array or a function.   [LOCAL_COMMUNICATOR_X_STACK]
      local_communicator_x_stack( communicator_stack_cursor )  =    local_communicator_x
------^
module_dm.f90(5920): error #6410: This name has not been declared as an array or a function.   [LOCAL_COMMUNICATOR_Y_STACK]
      local_communicator_y_stack( communicator_stack_cursor )  =    local_communicator_y
------^
module_dm.f90(5921): error #6410: This name has not been declared as an array or a function.   [NTASKS_STACK]
------^
module_dm.f90(5922): error #6410: This name has not been declared as an array or a function.   [NTASKS_Y_STACK]
      ntasks_y_stack( communicator_stack_cursor )      =    ntasks_y
------^
module_dm.f90(5923): error #6410: This name has not been declared as an array or a function.   [NTASKS_X_STACK]
      ntasks_x_stack( communicator_stack_cursor )      =    ntasks_x
------^
module_dm.f90(5924): error #6410: This name has not been declared as an array or a function.   [MYTASK_STACK]
      mytask_stack( communicator_stack_cursor )        =    mytask
------^
module_dm.f90(5925): error #6410: This name has not been declared as an array or a function.   [MYTASK_X_STACK]
      mytask_x_stack( communicator_stack_cursor )       =    mytask_x
------^
module_dm.f90(5926): error #6410: This name has not been declared as an array or a function.   [MYTASK_Y_STACK]
      mytask_y_stack( communicator_stack_cursor )       =    mytask_y
------^
module_dm.f90(5931): error #7002: Error in opening the compiled module file.  Check INCLUDE paths.   [MODULE_DM]
      USE module_dm
----------^
module_dm.f90(5933): error #6404: This name does not have a type, and must have an explicit type.   [COMMUNICATOR_STACK_CURSOR]
      IF ( communicator_stack_cursor .LT. 1 ) CALL wrf_error_fatal3("module_dm.b",2515,&
-----------^
module_dm.f90(5935): error #6404: This name does not have a type, and must have an explicit type.   [CURRENT_ID]
      current_id = id_stack(communicator_stack_cursor)
------^
module_dm.f90(5935): error #6404: This name does not have a type, and must have an explicit type.   [ID_STACK]
      current_id = id_stack(communicator_stack_cursor)
-------------------^
module_dm.f90(5936): error #6404: This name does not have a type, and must have an explicit type.   [LOCAL_COMMUNICATOR]
      local_communicator = local_communicator_stack( communicator_stack_cursor )
------^
module_dm.f90(5936): error #6404: This name does not have a type, and must have an explicit type.   [LOCAL_COMMUNICATOR_STACK]
      local_communicator = local_communicator_stack( communicator_stack_cursor )
---------------------------^
module_dm.f90(5937): error #6404: This name does not have a type, and must have an explicit type.   [LOCAL_COMMUNICATOR_PERIODIC]
      local_communicator_periodic = local_communicator_periodic_stack( communicator_stack_cursor )
------^
module_dm.f90(5937): error #6404: This name does not have a type, and must have an explicit type.   [LOCAL_COMMUNICATOR_PERIODIC_STACK]
      local_communicator_periodic = local_communicator_periodic_stack( communicator_stack_cursor )
------------------------------------^
module_dm.f90(5938): error #6404: This name does not have a type, and must have an explicit type.   [LOCAL_IOCOMMUNICATOR]
      local_iocommunicator = local_iocommunicator_stack( communicator_stack_cursor )
------^
module_dm.f90(5938): error #6404: This name does not have a type, and must have an explicit type.   [LOCAL_IOCOMMUNICATOR_STACK]
      local_iocommunicator = local_iocommunicator_stack( communicator_stack_cursor )
-----------------------------^
module_dm.f90(5939): error #6404: This name does not have a type, and must have an explicit type.   [LOCAL_COMMUNICATOR_X]
      local_communicator_x = local_communicator_x_stack( communicator_stack_cursor )
------^
module_dm.f90(5939): error #6404: This name does not have a type, and must have an explicit type.   [LOCAL_COMMUNICATOR_X_STACK]
      local_communicator_x = local_communicator_x_stack( communicator_stack_cursor )
-----------------------------^
module_dm.f90(5940): error #6404: This name does not have a type, and must have an explicit type.   [LOCAL_COMMUNICATOR_Y]
      local_communicator_y = local_communicator_y_stack( communicator_stack_cursor )
------^
module_dm.f90(5940): error #6404: This name does not have a type, and must have an explicit type.   [LOCAL_COMMUNICATOR_Y_STACK]
      local_communicator_y = local_communicator_y_stack( communicator_stack_cursor )
-----------------------------^
module_dm.f90(6581): catastrophic error: Too many errors, exiting
compilation aborted for module_dm.f90 (code 1)

----

Of course this leads to more errors and the compile fails. I get the same error from a fresh source tree or using clean -C. I have checked and module_dm.f90 does not exist before the compile so it is being compiled by the same compiler. I am not a developer by any stretch, I am an HPC cluster admin, however I have never had this much trouble compiling any package. I am hoping that someone on the list can help. I can post my full ENV and the full compile log if necessary.


--
Regards,

Mark L. Potter, RHCSA
Senior Consultant
PCPC Direct, Ltd.
O: 713-344-0952
M: 713-965-4133
S: mpotter at pcpcdirect.com

Controlling a laser with Linux is crazy, but everyone in this room is
crazy in his own way. So if you want to use Linux to control an
industrial welding laser, I have no problem with your using PREEMPT_RT.
- Linus Torvalds

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/wrf-users/attachments/20170214/cee4573b/attachment-0001.html 


More information about the Wrf-users mailing list