- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am trying to compile a fortran code using intel 17 compilers and facing issues.
user@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn> FC='mpiifort' make
cc -E -DDM_PARALLEL cmpcomm.F > cmpcomm.f90
mpiifort -o cmpcomm.o -c -I../io_int cmpcomm.f90
cmpcomm.F(89): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , :: : )
& 'CMP_INIT: illegal value of kind_REAL='
-----------------------------------------------^
cmpcomm.F(94): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , :: : )
& 'CMP_INIT: illegal value of kind_INTEGER='
--------------------------------------------------^
cmpcomm.F(154): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , :: : )
&
---------------^
cmpcomm.F(352): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , )
&
----------^
cmpcomm.F(354): error #5082: Syntax error, found ',' when expecting one of: => = . [ % ( :
& process_rank_local,component_master_rank_local
----------------------------^
cmpcomm.F(366): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , )
&
----------^
cmpcomm.F(351): error #7094: Unmatched parentheses within a character format specifier. ['("*** CMP_SEND: process_rank_local=",i4," ]
& '("*** CMP_SEND: process_rank_local=",i4," ***"/' &
----------------------------------------------------------^
cmpcomm.F(354): error #6793: The POINTER attribute is required. [PROCESS_RANK_LOCAL]
& process_rank_local,component_master_rank_local
----------^
cmpcomm.F(365): error #7094: Unmatched parentheses within a character format specifier. ['("*** CMP_SEND: illegal value of FlexLev",]
& '("*** CMP_SEND: illegal value of FlexLev",i9/' &
--------------------------------------------------------^
cmpcomm.F(410): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , )
&
----------^
cmpcomm.F(412): error #5082: Syntax error, found ',' when expecting one of: => = . [ % ( :
& process_rank_local,component_master_rank_local
----------------------------^
cmpcomm.F(424): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , )
&
----------^
cmpcomm.F(409): error #7094: Unmatched parentheses within a character format specifier. ['("*** CMP_SEND: process_rank_local=",i4," ]
& '("*** CMP_SEND: process_rank_local=",i4," ***"/' &
------------------------------------------------------------^
cmpcomm.F(412): error #6793: The POINTER attribute is required. [PROCESS_RANK_LOCAL]
& process_rank_local,component_master_rank_local
----------^
cmpcomm.F(423): error #7094: Unmatched parentheses within a character format specifier. ['("*** CMP_SEND: illegal value of FlexLev",]
& '("*** CMP_SEND: illegal value of FlexLev",i9/ ' &
-------------------------------------------------------^
cmpcomm.F(471): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , )
&
----------^
cmpcomm.F(473): error #5082: Syntax error, found ',' when expecting one of: => = . [ % ( :
& process_rank_local,component_master_rank_local
----------------------------^
cmpcomm.F(485): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , )
&
----------^
cmpcomm.F(470): error #7094: Unmatched parentheses within a character format specifier. ['("*** CMP_SEND: process_rank_local=",i4," ]
& '("*** CMP_SEND: process_rank_local=",i4," ***"/ ' &
----------------------------------------------------------^
cmpcomm.F(473): error #6793: The POINTER attribute is required. [PROCESS_RANK_LOCAL]
& process_rank_local,component_master_rank_local
----------^
cmpcomm.F(484): error #7094: Unmatched parentheses within a character format specifier. ['("*** CMP_SEND: illegal value of FlexLev",]
& '("*** CMP_SEND: illegal value of FlexLev",i9/ ' &
-------------------------------------------------------^
cmpcomm.F(530): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , )
&
----------^
cmpcomm.F(532): error #5082: Syntax error, found ',' when expecting one of: => = . [ % ( :
& process_rank_local,component_master_rank_local
----------------------------^
cmpcomm.f90(1165): catastrophic error: Too many errors, exiting
compilation aborted for cmpcomm.f90 (code 1)
Makefile:19: recipe for target 'cmpcomm.o' failed
make: *** [cmpcomm.o] Error 1
for a start , i tried compiling files individually,
user1@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn> cc -E -DDM_PARALLEL cmpcomm.F > cmpcomm.f90
now, on attempting compilation:
user1@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn> mpiifort -c cmpcomm.f90
cmpcomm.F(89): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , :: : )
& 'CMP_INIT: illegal value of kind_REAL='
-----------------------------------------------^
cmpcomm.F(94): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , :: : )
& 'CMP_INIT: illegal value of kind_INTEGER='
--------------------------------------------------^
cmpcomm.F(154): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , :: : )
&
---------------^
I made some changes in the original source code (attached - cmpcomm_modified.F.txt) . On compiling the modified file -
user1@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn_modified> cc -E -DDM_PARALLEL cmpcomm.F > cmpcomm.f90 No supported cpu target is set, CRAY_CPU_TARGET=x86-64 will be used. Load a valid targeting module or set CRAY_CPU_TARGET user1@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn_modifies> mpiifort -c cmpcomm.f90 user1@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn_modifies> echo $? 0
Issue is that there are multiple such source files, example -
user1@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn_modified> mpiifort atm_comm.f90
atm_comm.F(156): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , :: : )
call ATM_ANNOUNCE('back from CMP_INTRO, VerbLev='
-------------------------------------------------------^
atm_comm.F(164): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , :: : )
call ATM_ANNOUNCE('back from CMP_INTEGER_RECV, OM spec is '
-----------------------------------------------------------------^
atm_comm.F(171): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , :: : )
call ATM_ANNOUNCE('back from CMP_INTEGER_RECV, WM id is '
---------------------------------------------------------------^
atm_comm.F(193): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , :: : )
call ATM_ANNOUNCE('AM is standalone: Ocean_spec=1, NSF=4'
-----------------------------------------------------------------^
atm_comm.F(194): error #5082: Syntax error, found '&' when expecting one of: <LABEL> <END-OF-STATEMENT> ; TYPE INTEGER REAL COMPLEX BYTE CHARACTER CLASS DOUBLE ...
& ' assigned (as if for POM coupling)',2)
--------^
atm_comm.F(194): error #5276: Unbalanced parentheses
& ' assigned (as if for POM coupling)',2)
----------------------------------------------^
atm_comm.F(194): error #5082: Syntax error, found ')' when expecting one of: , <END-OF-STATEMENT> ;
& ' assigned (as if for POM coupling)',2)
----------------------------------------------^
atm_comm.F(199): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , :: : )
call ATM_ANNOUNCE('back from CMP_INTEGER_RECV, ia2o is '
--------------------------------------------------------------^
Q: Am i missing out on any compilation flag which is causing issues with the original code ?.
Please let me know if any further information is required from my end.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have no problems in compiling the code with either ifort, nor gfortran, nor gfortran-based mpifort.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi ,
I retried (with mpiifort as preprocessor), i got same error message.
user1@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn> mpiifort -E -DDM_PARALLEL cmpcomm.F > cmpcomm.f90
user1@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn> mpiifort cmpcomm.f90
cmpcomm.F(148): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , <REAL_KIND_CON> <REAL_CONSTANT> <DBLPRC_CONSTANT> <DBLPRC_KIND_CON> <QUAPRC_CONSTANT> ...
call MPI_RECV(ibuffer,ibuffer_size,MPI_INTEGER,MPI_ANY_SOURCE,tag,
------------------------------------------------------------------------^
cmpcomm.F(149): error #5276: Unbalanced parentheses
&MPI_COMM_WORLD,status,ierr)
--------------------------------^
cmpcomm.F(149): error #5082: Syntax error, found '&' when expecting one of: <LABEL> <END-OF-STATEMENT> ; TYPE INTEGER REAL COMPLEX BYTE CHARACTER CLASS DOUBLE ...
&MPI_COMM_WORLD,status,ierr)
------^
cmpcomm.F(149): error #5082: Syntax error, found ')' when expecting one of: , ( ::
&MPI_COMM_WORLD,status,ierr)
--------------------------------^
cmpcomm.F(153): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , :: : )
call wrf_debug(2,'CMP_INIT: stopped, rcvd ibuffer(1) value '
------------------------------------------------------------------------^
cmpcomm.F(154): error #5082: Syntax error, found '&' when expecting one of: <LABEL> <END-OF-STATEMENT> ; TYPE INTEGER REAL COMPLEX BYTE CHARACTER CLASS DOUBLE ...
& //'is not C id: ',ibuffer(1))
---------------^
cmpcomm.F(154): error #5276: Unbalanced parentheses
& //'is not C id: ',ibuffer(1))
-------------------------------------------^
cmpcomm.F(158): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , <REAL_KIND_CON> <REAL_CONSTANT> <DBLPRC_CONSTANT> <DBLPRC_KIND_CON> <QUAPRC_CONSTANT> ...
call wrf_debug(2,'CMP_INIT: stopped, rcvd ibuffer(3) value ',
------------------------------------------------------------------------^
cmpcomm.F(159): error #5276: Unbalanced parentheses
& ibuffer(3),' is not ibuffer_size=',ibuffer_size)
--------------------------------------------------------^
cmpcomm.F(159): error #5082: Syntax error, found '&' when expecting one of: <LABEL> <END-OF-STATEMENT> ; TYPE INTEGER REAL COMPLEX BYTE CHARACTER CLASS DOUBLE ...
& ibuffer(3),' is not ibuffer_size=',ibuffer_size)
---------^
cmpcomm.F(159): error #5082: Syntax error, found ')' when expecting one of: , <END-OF-STATEMENT> ;
& ibuffer(3),' is not ibuffer_size=',ibuffer_size)
--------------------------------------------------------^
cmpcomm.F(159): error #6252: This format specifier is invalid. [3]
& ibuffer(3),' is not ibuffer_size=',ibuffer_size)
-----------------^
cmpcomm.F(159): error #6358: Constants and expressions are invalid in read-only I/O lists. [' is not ibuffer_size=']
& ibuffer(3),' is not ibuffer_size=',ibuffer_size)
--------------------^
cmpcomm.F(159): error #6414: This PARAMETER constant name is invalid in this context. [IBUFFER_SIZE]
& ibuffer(3),' is not ibuffer_size=',ibuffer_size)
--------------------------------------------^
cmpcomm.F(159): error #6358: Constants and expressions are invalid in read-only I/O lists. [IBUFFER_SIZE]
& ibuffer(3),' is not ibuffer_size=',ibuffer_size)
--------------------------------------------^
cmpcomm.F(215): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: <REAL_KIND_CON> <REAL_CONSTANT> <DBLPRC_CONSTANT> <DBLPRC_KIND_CON> <QUAPRC_CONSTANT> ...
write(message,*) 'CMP_INTRO: to call MPI_SEND ',
------------------------------------------------------------------------^
cmpcomm.F(216): error #5082: Syntax error, found '&' when expecting one of: <LABEL> <END-OF-STATEMENT> ; TYPE INTEGER REAL COMPLEX BYTE CHARACTER CLASS DOUBLE ...
& process_rank_local, process_rank_global
------------^
cmpcomm.F(221): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: <REAL_KIND_CON> <REAL_CONSTANT> <DBLPRC_CONSTANT> <DBLPRC_KIND_CON> <QUAPRC_CONSTANT> ...
write(message,*) 'CMP_INTRO: error in MPI_SEND, process ',
------------------------------------------------------------------------^
cmpcomm.F(222): error #5082: Syntax error, found '&' when expecting one of: <LABEL> <END-OF-STATEMENT> ; TYPE INTEGER REAL COMPLEX BYTE CHARACTER CLASS DOUBLE ...
& process_rank_global
----------^
cmpcomm.F(280): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: <REAL_KIND_CON> <REAL_CONSTANT> <DBLPRC_CONSTANT> <DBLPRC_KIND_CON> <QUAPRC_CONSTANT> ...
write(message,*) 'CMP_INTRO_m: error in MPI_SEND, process ',
------------------------------------------------------------------------^
cmpcomm.F(281): error #5082: Syntax error, found '&' when expecting one of: <LABEL> <END-OF-STATEMENT> ; TYPE INTEGER REAL COMPLEX BYTE CHARACTER CLASS DOUBLE ...
& process_rank_global
--------^
cmpcomm.F(311): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: <REAL_KIND_CON> <REAL_CONSTANT> <DBLPRC_CONSTANT> <DBLPRC_KIND_CON> <QUAPRC_CONSTANT> ...
write(message,*) 'CMP_INTRO_s: error in MPI_RECV ',
------------------------------------------------------------------------^
cmpcomm.F(312): error #5082: Syntax error, found '&' when expecting one of: <LABEL> <END-OF-STATEMENT> ; TYPE INTEGER REAL COMPLEX BYTE CHARACTER CLASS DOUBLE ...
& process_rank_local
-----------------^
cmpcomm.f90(944): catastrophic error: Too many errors, exiting
compilation aborted for cmpcomm.f90 (code 1)
user1@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn> mpiifort --version
ifort (IFORT) 17.0.5 20170817
Copyright (C) 1985-2017 Intel Corporation. All rights reserved.
Could your please share your f90 file?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Juergen R. wrote:
I have no problems in compiling the code with either ifort, nor gfortran, nor gfortran-based mpifort.
Yes , you are correct. It seems that mpiifort is not recognizing the syntax.
user@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn> mpif77 -E -DDM_PARALLEL cmpcomm.F > cmpcomm.f90
user@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn> mpif77 -c cmpcomm.f90
cmpcomm.f90:39:10:
! The corresponding MPI data type variable MPI_kind_alt_REAL is
1
Warning: Legacy Extension: Blanket SAVE statement at (1) follows previous SAVE statement
user@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn> echo $?
0
user@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn> mpif90 -E -DDM_PARALLEL cmpcomm.F > cmpcomm.f90
user@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn> mpif90 -c cmpcomm.f90
cmpcomm.f90:39:10:
! The corresponding MPI data type variable MPI_kind_alt_REAL is
1
Warning: Legacy Extension: Blanket SAVE statement at (1) follows previous SAVE statement
user@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn> echo $?
0
user@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn> mpiifort -E -DDM_PARALLEL cmpcomm.F > cmpcomm.f90
user@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn> mpiifort -c cmpcomm.f90
cmpcomm.F(148): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: , <REAL_KIND_CON> <REAL_CONSTANT> <DBLPRC_CONSTANT> <DBLPRC_KIND_CON> <QUAPRC_CONSTANT> ...
call MPI_RECV(ibuffer,ibuffer_size,MPI_INTEGER,MPI_ANY_SOURCE,tag,
------------------------------------------------------------------------^
cmpcomm.F(149): error #5276: Unbalanced parentheses
&MPI_COMM_WORLD,status,ierr)
--------------------------------^
cmpcomm.F(149): error #5082: Syntax error, found '&' when expecting one of: <LABEL> <END-OF-STATEMENT> ; TYPE INTEGER REAL COMPLEX BYTE CHARACTER CLASS DOUBLE ...
&MPI_COMM_WORLD,status,ierr)
------^
cmpcomm.F(149): error #5082: Syntax error, found ')' when expecting one of: , ( ::
UPDATE-
mpif90/mpif77 is the correct preprocessor.
user1@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn> mpif90 -E -DDM_PARALLEL cmpcomm.F > cmpcomm.f90 user1@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn> mpiifort -c cmpcomm.f90 user1@machine1:~/MySoftwares/intel/WRF/3.8/WRFV3/external/atm_ocn>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Commands such as "... -E abc.F > pqr.f90" are what are causing your problems. The first file, abc.F, is by convention a fixed form Fortran file with preprocessor directives embedded in it. A preprocessor (or a compiler called with the -E flag) will produce an output file that is also fixed form. However, you are giving that file a ".f90" extension, which is the convention for a free form Fortran source. Thus, you have a file whose content is not in the form that the compiler expects to go with the name.
Use " ... -E abc.F > pqr.f" or use a compiler flag to ignore the file name suffix (.f90) and consider the file as fixed form.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page