function get_parameters() result(params) type(ScenarioDescription), allocatable :: params(:) params = [ScenarioDescription:: ] ! Field oriented tests params = [params, add_params('item exist', check_item_type)] params = [params, add_params('field status', check_field_status)] params = [params, add_params('field typekind', check_field_typekind)] params = [params, add_params('field value', check_field_value)] params = [params, add_params('field vertical_profile', check_field_vertical_profile)] params = [params, add_params('field exists', check_field_rank)] ! Service oriented tests params = [params, ScenarioDescription('service_service', 'parent.yaml', 'field count', check_fieldcount)] contains function add_params(check_name, check_stateitem) result(params) type(ScenarioDescription), allocatable :: params(:) character(*), intent(in) :: check_name procedure(I_check_stateitem) :: check_stateitem params = [ & ScenarioDescription('scenario_1', 'parent.yaml', check_name, check_stateitem), & ScenarioDescription('scenario_2', 'parent.yaml', check_name, check_stateitem), & ScenarioDescription('scenario_reexport_twice', 'grandparent.yaml', check_name, check_stateitem), & ScenarioDescription('history_1', 'cap.yaml', check_name, check_stateitem), & ScenarioDescription('history_wildcard', 'cap.yaml', check_name, check_stateitem), & ScenarioDescription('extdata_1', 'cap.yaml', check_name, check_stateitem), & ScenarioDescription('precision_extension', 'parent.yaml', check_name, check_stateitem), & ScenarioDescription('precision_extension_3d', 'parent.yaml', check_name, check_stateitem), & ScenarioDescription('3d_specs', 'parent.yaml', check_name, check_stateitem), & ScenarioDescription('ungridded_dims', 'parent.yaml', check_name, check_stateitem), & ScenarioDescription('service_service', 'parent.yaml', check_name, check_stateitem), & ScenarioDescription('export_dependency', 'parent.yaml', check_name, check_stateitem), & ScenarioDescription('regrid', 'cap.yaml', check_name, check_stateitem), & ScenarioDescription('propagate_geom', 'parent.yaml', check_name, check_stateitem), & ScenarioDescription('vertical_regridding', 'parent.yaml', check_name, check_stateitem), & ScenarioDescription('vertical_regridding_2', 'parent.yaml', check_name, check_stateitem), & ScenarioDescription('vertical_regridding_3', 'AGCM.yaml', check_name, check_stateitem) & ] end function add_params end function get_parameters