1*59599516SKenneth E. Jansen module periodicity 2*59599516SKenneth E. Jansen 3*59599516SKenneth E. Jansen real*8, allocatable :: rcount(:) 4*59599516SKenneth E. Jansen end module 5*59599516SKenneth E. Jansen 6*59599516SKenneth E. Jansen 7*59599516SKenneth E. Jansen subroutine setper (nshg) 8*59599516SKenneth E. Jansen 9*59599516SKenneth E. Jansen use periodicity 10*59599516SKenneth E. Jansen 11*59599516SKenneth E. Jansen allocate (rcount(nshg)) 12*59599516SKenneth E. Jansen 13*59599516SKenneth E. Jansen return 14*59599516SKenneth E. Jansen end 15*59599516SKenneth E. Jansen 16*59599516SKenneth E. Jansen subroutine perprep (iBC, iper,nshg) 17*59599516SKenneth E. Jansen 18*59599516SKenneth E. Jansen use periodicity 19*59599516SKenneth E. Jansen 20*59599516SKenneth E. Jansen dimension iBC(nshg), 21*59599516SKenneth E. Jansen & iper(nshg) 22*59599516SKenneth E. Jansen 23*59599516SKenneth E. Jansenc 24*59599516SKenneth E. Jansenc..... calculate the inverse of the number of slaves + 1 25*59599516SKenneth E. Jansenc 26*59599516SKenneth E. Jansen one=1.00000000000 27*59599516SKenneth E. Jansen rcount=one 28*59599516SKenneth E. Jansen do j = 1,nshg 29*59599516SKenneth E. Jansen if (btest(iBC(j),10)) then 30*59599516SKenneth E. Jansen i = iper(j) 31*59599516SKenneth E. Jansen rcount(i) = rcount(i) + one 32*59599516SKenneth E. Jansen endif 33*59599516SKenneth E. Jansen enddo 34*59599516SKenneth E. Jansen do k=1,nshg 35*59599516SKenneth E. Jansen if(rcount(k).ne.one) then 36*59599516SKenneth E. Jansen rcount(k)=one/rcount(k) 37*59599516SKenneth E. Jansen endif 38*59599516SKenneth E. Jansen enddo 39*59599516SKenneth E. Jansen 40*59599516SKenneth E. Jansenc 41*59599516SKenneth E. Jansenc.... return 42*59599516SKenneth E. Jansenc 43*59599516SKenneth E. Jansen return 44*59599516SKenneth E. Jansen end 45