Skip to content

Can't compile Fortran application with -std=f2008 using mpi_f08 module #1323

Closed
@paulromano

Description

@paulromano

I have a Fortran application that uses MPI (via mpi_f08) and is normally compiled with gfortran -std=f2008. When trying to compile against OpenMPI 1.10.2, I get the following build errors:

/home/romano/openmc/src/message_passing.F90:5:6:

   use mpi_f08
      1
Error: GNU Extension: LOGICAL dummy argument ‘flag’ at (1) with non-C_Bool kind in BIND(C) procedure ‘mpi_comm_copy_attr_function’
/home/romano/openmc/src/message_passing.F90:5:6:

   use mpi_f08
      1
Error: GNU Extension: LOGICAL dummy argument ‘flag’ at (1) with non-C_Bool kind in BIND(C) procedure ‘mpi_type_copy_attr_function’
/home/romano/openmc/src/message_passing.F90:5:6:

   use mpi_f08
      1
Error: GNU Extension: LOGICAL dummy argument ‘flag’ at (1) with non-C_Bool kind in BIND(C) procedure ‘mpi_win_copy_attr_function’
/home/romano/openmc/src/message_passing.F90:5:6:

   use mpi_f08
      1
Error: GNU Extension: LOGICAL dummy argument ‘flag’ at (1) with non-C_Bool kind in BIND(C) procedure ‘mpi_comm_copy_attr_function’
/home/romano/openmc/src/message_passing.F90:5:6:

   use mpi_f08
      1
Error: GNU Extension: LOGICAL dummy argument ‘flag’ at (1) with non-C_Bool kind in BIND(C) procedure ‘mpi_type_copy_attr_function’
/home/romano/openmc/src/message_passing.F90:5:6:

   use mpi_f08
      1
Error: GNU Extension: LOGICAL dummy argument ‘flag’ at (1) with non-C_Bool kind in BIND(C) procedure ‘mpi_win_copy_attr_function’
/home/romano/openmc/src/message_passing.F90:5:6:

   use mpi_f08
      1
Error: GNU Extension: LOGICAL dummy argument ‘flag’ at (1) with non-C_Bool kind in BIND(C) procedure ‘mpi_comm_dup_fn’
/home/romano/openmc/src/message_passing.F90:5:6:

   use mpi_f08
      1
Error: GNU Extension: LOGICAL dummy argument ‘flag’ at (1) with non-C_Bool kind in BIND(C) procedure ‘mpi_comm_null_copy_fn’
/home/romano/openmc/src/message_passing.F90:5:6:

   use mpi_f08
      1
Error: GNU Extension: LOGICAL dummy argument ‘flag’ at (1) with non-C_Bool kind in BIND(C) procedure ‘mpi_type_dup_fn’
/home/romano/openmc/src/message_passing.F90:5:6:

   use mpi_f08
      1
Error: GNU Extension: LOGICAL dummy argument ‘flag’ at (1) with non-C_Bool kind in BIND(C) procedure ‘mpi_type_null_copy_fn’
/home/romano/openmc/src/message_passing.F90:5:6:

   use mpi_f08
      1
Error: GNU Extension: LOGICAL dummy argument ‘flag’ at (1) with non-C_Bool kind in BIND(C) procedure ‘mpi_win_dup_fn’
/home/romano/openmc/src/message_passing.F90:5:6:

   use mpi_f08
      1
Error: GNU Extension: LOGICAL dummy argument ‘flag’ at (1) with non-C_Bool kind in BIND(C) procedure ‘mpi_win_null_copy_fn’

I should note that the errors still persist with -std=f2008ts as well. I'm on Ubuntu 15.10 with gfortran 5.2.1 which I used to build OpenMPI from source. Not sure if there is a solution for this given the problems with logicals and C interoperability...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions