logical :: l1(4) logical :: l2(4) l1 = (/.TRUE.,.FALSE.,.TRUE.,.FALSE./) l2 = (/.FALSE.,.TRUE.,.FALSE.,.TRUE./) if (dot_product (l1, l2)) call abort () l2 = .TRUE. if (.not.dot_product (l1, l2)) call abort () end