c----------------------------------------------------------- c Chapter 26: The Mobius Function(p233) c----------------------------------------------------------- c Name of subroutine: MOBIUS c c Algorithm:Find mobius matrix from covering relation. c c input: n=11 c complier: f77 mobius_2.f cycles.f triang.f renumb.f invert.f c----------------------------------------------------------- parameter(n=11) integer h(n,n), sigma(n),mu(n,n),sig1(n) do 20 i=1,n read(*,30) (h(i,j),j=1,n) 30 format (11(i2)) 20 continue call mobius(n,h,mu,sigma,sig1) write(*,35) 35 format("The output matrix is:") do 50 i=1,n write(*,40) (mu(i,j),j=1,n) 40 format (11(i3)) 50 continue stop end c-----Subroutine begins here-------------------------------- subroutine mobius(n,h,mu,sigma,sig1) implicit integer(a-z) dimension h(n,n),sigma(n),mu(n,n),sig1(n) call triang(n,h,sigma) do 1 i=1,n do 1 j=1,n 1 mu(i,j)=h(i,j) call renumb(n,n,sigma,sigma,mu) n1=n-1 do 11 i=1,n1 j1=i+1 do 11 j=j1,n 11 mu(i,j)=-mu(i,j) call invert(n,mu,mu) do 12 i=1,n do 12 j=i,n 12 if(mu(i,j).ne.0)mu(i,j)=1 call invert(n,mu,mu) do 20 i=1,n 20 sig1(sigma(i))=i call renumb(n,n,sig1,sig1,mu) return end