Opened 5 years ago

Closed 5 years ago

#831 closed defect (Fixed)

IMPORTANT: Fixed weird compiler error — at Version 1

Reported by: arango Owned by:
Priority: major Milestone: Release ROMS/TOMS 3.8
Component: Nonlinear Version: 3.8
Keywords: Cc:

Description (last modified by arango)

We are getting a weird compiler error with ifort (intel-17.0.4) in a cluster:

stiffness.f90(119): error #6401: The attributes of this name conflict with those made accessible by a USE statement.   [OP_HANDLE]
      character (len=3), dimension(5) :: op_handle
-----------------------------------------^
compilation aborted for stiffness.f90 (code 1)
make: *** [/home/hga/ocean/repository/Projects/indian/Build_roms/stiffness.o] Error 1

when using mp_reduce from distribute.F module. It is a bug in the ifort compiler because the variable op_handle is a dummy argument to the module interface:

      INTERFACE mp_reduce
# ifdef SINGLE_PRECISION
        MODULE PROCEDURE mp_reduce_0dp   ! double-precision reduction
        MODULE PROCEDURE mp_reduce_1dp   ! double-precision reduction
# endif
        MODULE PROCEDURE mp_reduce_0d
        MODULE PROCEDURE mp_reduce_1d
      END INTERFACE mp_reduce

An easy solution is to rename the routine argument from op_handle to handle_op in distribute.F. The compiler thinks that the variable is declared in the module part. Anyway, it a simple variable rename that makes the compiling more robust.

Change History (1)

comment:1 by arango, 5 years ago

Description: modified (diff)
Resolution: Fixed
Status: newclosed
Note: See TracTickets for help on using tickets.