@@ -105,6 +105,11 @@ module pineappl
105105 type (pineappl_scale_func_form_body) :: body
106106 end type
107107
108+ type, bind(c) :: pineappl_conv
109+ integer (kind (pineappl_conv_type)) :: conv_type
110+ integer (c_int32_t) :: pid
111+ end type
112+
108113 type, bind(c) :: pineappl_interp
109114 real (c_double) :: min
110115 real (c_double) :: max
@@ -345,18 +350,17 @@ type (c_ptr) function grid_new(lumi, orders, order_params, bins, bin_limits, key
345350 end function
346351
347352 type (c_ptr) function grid_new2(bins, bin_limits, orders, order_params, channels, &
348- pid_basis, convolution_types, convolution_pdg_ids , interpolations, interp_info, &
353+ pid_basis, convolutions , interpolations, interp_info, &
349354 kinematics, mu_scales) bind(c, name = ' pineappl_grid_new2' )
350355 use iso_c_binding
351356 import ! so we can use pineappl_kinematics and pineappl_interp
352357
353358 integer (c_int32_t), value :: pid_basis
354359 type (c_ptr), value :: channels
355- integer (c_int32_t) :: convolution_types(* )
356360 integer (c_size_t), value :: orders, bins, interpolations
357361 integer (c_int8_t) :: order_params(* )
358362 real (c_double) :: bin_limits(* )
359- integer (c_int32_t ) :: convolution_pdg_ids (* )
363+ type (pineappl_conv ) :: convolutions (* )
360364 type (pineappl_kinematics) :: kinematics(* )
361365 type (pineappl_interp) :: interp_info(* )
362366 type (pineappl_scale_func_form) :: mu_scales(* )
@@ -932,17 +936,15 @@ type (pineappl_grid) function pineappl_grid_new(lumi, orders, order_params, bins
932936 end function
933937
934938 type (pineappl_grid) function pineappl_grid_new2(bins, bin_limits, orders, order_params, &
935- channels, pid_basis, convolution_types, convolution_pdg_ids, interpolations, interp_info, &
936- kinematics, mu_scales)
939+ channels, pid_basis, convolutions, interpolations, interp_info, kinematics, mu_scales)
937940 implicit none
938941
939942 integer (kind (pineappl_pid_basis)), intent (in ) :: pid_basis
940943 type (pineappl_channels), intent (in ) :: channels
941944 integer , intent (in ) :: orders, bins, interpolations
942945 integer (int8), dimension (5 * orders), intent (in ) :: order_params
943946 real (dp), dimension (bins + 1 ), intent (in ) :: bin_limits
944- integer (kind (pineappl_conv_type)), dimension (interpolations - 1 ), intent (in ) :: convolution_types
945- integer , dimension (interpolations - 1 ), intent (in ) :: convolution_pdg_ids
947+ type (pineappl_conv), dimension (* ), intent (in ), target :: convolutions
946948 type (pineappl_kinematics), dimension (interpolations), intent (in ), target :: kinematics
947949 type (pineappl_interp), dimension (interpolations), intent (in ) :: interp_info
948950 type (pineappl_scale_func_form), dimension (interpolations) :: mu_scales
@@ -956,8 +958,7 @@ type (pineappl_grid) function pineappl_grid_new2(bins, bin_limits, orders, order
956958 order_params, &
957959 channels% ptr, &
958960 pid_basis, &
959- convolution_types, &
960- convolution_pdg_ids, &
961+ convolutions, &
961962 int (interpolations, c_size_t), &
962963 interp_info, &
963964 kinematics, &
0 commit comments