compdyn/partmc

compilation fails in photolysis.F90 if both MPI and CAMP are enabled

slayoo opened this issue · 0 comments

CC: @jcurtis2, @zdaq12, @mattldawson

Working on CAMP support for PyPartMC, we have encountered a problem in compiling PartMC's photolysis.F90 getting the following error message (see, e.g., here: https://github.com/open-atmos/PyPartMC/runs/7410164964?check_suite_focus=true#step:4:455):

      253 |     call pmc_mpi_unpack_real_array(buffer, pos, this%base_rates, l_comm)
          |                                                                        1
    Error: More actual than formal arguments in procedure call at (1)

It seems that the MPI code in photolysis.F90 uses MPI calls which were not merged into PartMC, see:

call pmc_mpi_pack_real_array(buffer, pos, this%base_rates, l_comm)

vs.
subroutine pmc_mpi_pack_real_array(buffer, position, val)

in PyPartMC, we set PMC_USE_MPI to be able to mock mpi_abort for error handling.

To proceed, we either need to update PartMC's mpi.F90 to support the optional comm argument or to drop support for it within photolysis.F90. Comments welcome, thanks, Sylwester