anchor.diff:              character(kind=c_char), intent(in) :: name(*)
               character(kind=c_char), intent(in) :: shm_key(*)
               integer(kind=c_int), intent(in) :: comm
  -            type(c_ptr) :: prof(*)
  +            type(c_ptr) :: prof
           end function geopm_prof_create
   
           integer(kind=c_int) function geopm_prof_destroy(prof) bind(C)
  
positive.code:             integer(kind=c_int), intent(in) :: num_iter
              integer(kind=c_int), intent(in) :: chunk_size
              integer(kind=c_int), intent(in) :: num_thread
              integer(kind=c_int) :: min(*)
          end function geopm_progress_threaded_min
  
          integer(kind=c_int) function geopm_progress_threaded_sum(num_iter, chunk_size, num_thread, sum) bind(C)
  
negative.code:             import
              implicit none
              integer(kind=c_int), intent(in) :: comm
              type(c_ptr) :: num_node
          end function geopm_num_node
  
          integer(kind=c_int) function geopm_comm_split(comm, split_comm, is_ctl_comm) bind(C)
              import
              implicit none
              integer(kind=c_int), intent(in) :: comm
              type(c_ptr) :: split_comm
              type(c_ptr) :: is_ctl_comm
          end function geopm_comm_split
  
          integer(kind=c_int) function geopm_comm_split_ppn1(comm, ppn1_comm) bind(C)
              import
              implicit none
              integer(kind=c_int), intent(in) :: comm
              type(c_ptr) :: ppn1_comm
          end function geopm_comm_split_ppn1
  
          integer(kind=c_int) function geopm_omp_sched_static_norm(num_iter, chunk_size, num_thread, norm) bind(C)
  