PROGRAM main implicit none integer :: length = 0; write (*,"(A,$)") "Bitte eine Laenge eingeben: " read (*,*) length call bin ( length ) write (*,*) " " END PROGRAM SUBROUTINE bin ( length ) implicit none integer :: maxi, k, length ! 2 ^ length maxi = 2**length -1 do k=0, maxi call dec2bin_mod ( k, length ) write (*,*) "" enddo END SUBROUTINE recursive SUBROUTINE dec2bin_mod ( zahl, length ) implicit none integer :: zahl, tmp, k integer,INTENT(in) :: length if (zahl > 0) then tmp = mod(zahl, 2) call dec2bin_mod ( zahl / 2, length-1 ) write (*,"(I1,$)") tmp else do k=1, length ! führende Nullen ausgeben (auf die angebene Länge ausdehnen) write (*,("(A,$)")) "0" enddo endif END SUBROUTINE