- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page