[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