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

WRF-Var V3 compile errors with ifort 10.1.015

lianqing
Beginner
460 Views

I've got compile errors when buildingWRF-Var V3.0 (http://wrf-model.org/index.php) with ifort 10.1.015 on a LinuxPC (CentOS 5.1 i386, Core 2 Quad Q6600). Before WRF-Var compilation, I've successfully built WRF V3 and WPS V3.

Here are some typicalerror messages when compiling a Fortran source file:

/lib/cpp -C -P -I/usr/local/WRF/WRFDA/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 -DDM_PARALLEL -DNETCDF -DGRIB1 -DINTIO -DLIMIT_ARGS -DCONFIG_BUF_LEN=32768 -DMAX_DOMAINS_F=21 -DNMM_NEST=0 -I. -traditional da_control.f90 > da_control.f
mpif90 -f90=ifort -c -O3 -w -ftz -align all -fno-alias -fp-model precise -FR -convert big_endian -I/usr/local/WRF/WRFDA/main -I/usr/local/WRF/WRFDA/external/io_netcdf -I/usr/local/WRF/WRFDA/external/io_int -I/usr/local/WRF/WRFDA/external/esmf_time_f90 -I/usr/local/WRF/WRFDA/frame -I/usr/local/WRF/WRFDA/share -I/usr/local/WRF/WRFDA/phys -I/usr/local/WRF/WRFDA/chem -I/usr/local/WRF/WRFDA/inc -i4 -I/usr/local/WRF/WRFDA/main da_control.f
/lib/cpp -C -P -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 -DDM_PARALLEL -DNETCDF -DGRIB1 -DINTIO -DLIMIT_ARGS -DCONFIG_BUF_LEN=32768 -DMAX_DOMAINS_F=21 -DNMM_NEST=0 -I. -traditional -I/usr/local/WRF/WRFDA/inc da_reporting.f90 > da_reporting.f
mpif90 -f90=ifort -c -O3 -w -ftz -align all -fno-alias -fp-model precise -FR -convert big_endian -I/usr/local/WRF/WRFDA/main -I/usr/local/WRF/WRFDA/external/io_netcdf -I/usr/local/WRF/WRFDA/external/io_int -I/usr/local/WRF/WRFDA/external/esmf_time_f90 -I/usr/local/WRF/WRFDA/frame -I/usr/local/WRF/WRFDA/share -I/usr/local/WRF/WRFDA/phys -I/usr/local/WRF/WRFDA/chem -I/usr/local/WRF/WRFDA/inc -i4 da_reporting.f
fortcom: Error: da_reporting.f, line 5: Name in only-list does not exist. [STDOUT]
use da_control, only : stdout, use_html, documentation_url, &
--------------------------^
fortcom: Error: da_reporting.f, line 5: Name in only-list does not exist. [USE_HTML]
use da_control, only : stdout, use_html, documentation_url, &
----------------------------------^
fortcom: Error: da_reporting.f, line 5: Name in only-list does not exist. [DOCUMENTATION_URL]
use da_control, only : stdout, use_html, documentation_url, &
--------------------------------------------^
fortcom: Error: da_reporting.f, line 6: Name in only-list does not exist. [WARNINGS_ARE_FATAL]
warnings_are_fatal
------^
fortcom: Error: da_reporting.f, line 51: This name does not have a type, and must have an explicit type. [USE_HTML]
if (use_html) then
----------^
fortcom: Error: da_reporting.f, line 51: A logical data type is required in this context. [USE_HTML]
if (use_html) then
----------^
fortcom: Error: da_reporting.f, line 53: This name does not have a type, and must have an explicit type. [DOCUMENTATION_URL]
trim(documentation_url)//'/'//trim(html_file)//'">'//file_str// &
-----------------^
fortcom: Error: da_reporting.f, line 53: The data types of the argument(s) are invalid. [TRIM]
trim(documentation_url)//'/'//trim(html_file)//'">'//file_str// &
-----------------^
fortcom: Error: da_reporting.f, line 84: This name does not have a type, and must have an explicit type. [WARNINGS_ARE_FATAL]
if (warnings_are_fatal) then
-------^
fortcom: Error: da_reporting.f, line 84: A logical data type is required in this context. [WARNINGS_ARE_FATAL]
if (warnings_are_fatal) then
-------^
fortcom: Error: da_reporting.f, line 95: A logical data type is required in this context. [USE_HTML]
if (use_html) then
-------------^
fortcom: Error: da_reporting.f, line 97: The data types of the argument(s) are invalid. [TRIM]
trim(documentation_url)//'/'//trim(html_file)//'">'// &
--------------------^
fortcom: Error: da_reporting.f, line 127: This name does not have a type, and must have an explicit type. [STDOUT]
write(unit=stdout,fmt='(a)') trim(strs(i))
-----------------^
compilation aborted for da_reporting.f (code 1)
make[1]: [da_reporting.o] Error 1 (ignored)

Here is the content of the Fortran source file da_reporting.f:

module da_reporting

use da_control, only : stdout, use_html, documentation_url, &
warnings_are_fatal


implicit none

interface
subroutine wrf_message(str)
character(len=*), intent(in) :: str
end subroutine wrf_message
end interface

interface
subroutine wrf_abort
end subroutine wrf_abort
end interface

character(len=10000) :: message(50)

contains

subroutine da_error( file_str, line, errors)

!-----------------------------------------------------------------------
! Purpose: Standardised error reporting
!-----------------------------------------------------------------------

implicit none

character(len=*), intent(in) :: file_str
integer , intent(in) :: line ! only print file and line if line > 0
character(len=*), intent(in) :: errors(:)
character*256 :: line_str
character*256 :: html_file
integer :: i

write(line_str,'(i6)') line

html_file=file_str(1:LEN_trim(file_str)-4)//'.html'

call wrf_message( &
'---------------------------- FATAL ERROR -----------------------' )
! only print file and line if line is positive
if (line > 0) then
if (use_html) then
call wrf_message( 'Fatal error in file: '//file_str// &
'
LINE: '//trim(line_str) )
else
call wrf_message( 'Fatal error in file: '//trim(file_str)// &
' LINE: '//trim(line_str) )
end if
end if
do i=1,size(errors)
call wrf_message(errors(i))
end do
call wrf_message( &
'----------------------------------------------------------------' )
call wrf_abort
end subroutine da_error


subroutine da_warning(file_str, line, warnings)

!--------------------------------------------------------------------
! Purpose: Standard interface for warning messages
!--------------------------------------------------------------------

implicit none

character(len=*), intent(in) :: file_str
integer, intent(in) :: line
character(len=*), intent(in) :: warnings(:)
character*256 :: line_str
character*256 :: html_file
integer :: i

if (warnings_are_fatal) then
call da_error(file_str, line, warnings)
else
write(line_str,'(i6)') line

html_file=file_str(1:LEN_trim(file_str)-4)//'.html'

call wrf_message( &
'--------------------------- WARNING ---------------------------')
! only print file and line if line is positive
if (line > 0) then
if (use_html) then
call wrf_message('WARNING FROM FILE: '// &
trim(file_str)// &
'
LINE: '//trim(line_str))
else
call wrf_message('WARNING FROM FILE: '//trim(file_str)// &
' LINE: '//trim(line_str))
end if
end if
do i=1,size(warnings)
call wrf_message(warnings(i))
end do
call wrf_message( &
'---------------------------------------------------------------')
end if

end subroutine da_warning


subroutine da_message(strs)

!-----------------------------------------------------------------------
! Purpose: TBD
!-----------------------------------------------------------------------

implicit none

character(len=*), intent(in) :: strs(:)
integer :: i

do i=1,size(strs)
write(unit=stdout,fmt='(a)') trim(strs(i))
end do
write(unit=stdout,fmt=*) " "

end subroutine da_message


subroutine da_message2(strs)

!-----------------------------------------------------------------------
! Purpose: TBD
!-----------------------------------------------------------------------

implicit none

character(len=*), intent(in) :: strs(:)
integer :: i

do i=1,size(strs)
write(0,*) strs(i)
end do

end subroutine da_message2

end module da_reporting

Thanks for the help.

0 Kudos
1 Reply
Steven_L_Intel1
Employee
460 Views

Whatever the problems are, they are outside the source file you posted. It seems there's an issue with a previously compiled module or two. Maybe there's some conditionalization not being done correctly?

0 Kudos
Reply