I’m trying to compile OpenMC (GitHub - openmc-dev/openmc: OpenMC Monte Carlo Code) with the PGI 16.10 community edition compiler and I’m running into the following error:
PGF90-S-0155-Dummy argument names must be the same as those in parent's interface for type bound procedure get_next_bin_energyfunction (/home/romano/openmc/src/tally_filter.F90: 1649)
The relevant function has dummy arguments declared as follows (see openmc/tally_filter.F90 at 7f41ab2babe4742c41f96f0459dde1dd6d4df288 · openmc-dev/openmc · GitHub):
subroutine get_next_bin_energyfunction(this, p, estimator, current_bin, &
next_bin, weight)
class(EnergyFunctionFilter), intent(in) :: this
type(Particle), intent(in) :: p
integer, intent(in) :: estimator
integer, value, intent(in) :: current_bin
integer, intent(out) :: next_bin
real(8), intent(out) :: weight
The abstract class that EnergyFunctionFilter extends has a deferred type-bound procedure with its interface defined as follows (see openmc/tally_filter_header.F90 at 7f41ab2babe4742c41f96f0459dde1dd6d4df288 · openmc-dev/openmc · GitHub):
abstract interface
subroutine get_next_bin_(this, p, estimator, current_bin, next_bin, weight)
import TallyFilter
import Particle
class(TallyFilter), intent(in) :: this
type(Particle), intent(in) :: p
integer, intent(in) :: estimator
integer, value, intent(in) :: current_bin
integer, intent(out) :: next_bin
real(8), intent(out) :: weight
end subroutine get_next_bin_
As you can see, all the dummy argument names seem to match, so I’m not sure why the compiler is rejecting it.