module outerand_m implicit none contains FUNCTION outerand(a,b) LOGICAL, DIMENSION(:), INTENT(IN) :: a,b LOGICAL, DIMENSION(size(a),size(b)) :: outerand outerand = spread(a,dim=2,ncopies=size(b)) .and. & spread(b,dim=1,ncopies=size(a)) END FUNCTION outerand end module outerand_m