Hi,
If my comprehension of the OpenMP specification is correct (who is probably not the case...) in openmp/target_map/derived_types you are mapping only the pointer to the data (in setud_types wit !$omp target enter data map(to:op_ptr)) but you are not mapping the data pointed by the pointer (missing a !$omp target enter data map(to:op%array) in setup_values).
This causes segmentation fault in all the compiler I tested (ifx, gfortran, nvfortran).
Hope that Help,
Regards,
Thomas