https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68893
--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> --- event post ( event_value_has_been_set) call event_query (event_value_has_been_set, cnt) translates into: integer(kind=4) event_value_has_been_set; event_value_has_been_set = event_value_has_been_set + 1; cnt = event_value_has_been_set; Expected: The static variable (must be a coarray and hence in static memory) is initialized by 0. Using an allocatable variable, the initialization works: type(event_type), allocatable :: event_value_has_been_set[:] allocate(event_value_has_been_set[*]) translates into event_value_has_been_set.data = __builtin_malloc (4); ... *event_value_has_been_set.data = 0; // <<<< 0 initialization *event_value_has_been_set.data = *event_value_has_been_set.data + 1; cnt = *event_value_has_been_set.data;