159599516SKenneth E. Jansen module periodicity 259599516SKenneth E. Jansen 359599516SKenneth E. Jansen real*8, allocatable :: rcount(:) 459599516SKenneth E. Jansen end module 559599516SKenneth E. Jansen 659599516SKenneth E. Jansen 759599516SKenneth E. Jansen subroutine setper (nshg) 859599516SKenneth E. Jansen 959599516SKenneth E. Jansen use periodicity 1059599516SKenneth E. Jansen 1159599516SKenneth E. Jansen allocate (rcount(nshg)) 1259599516SKenneth E. Jansen 1359599516SKenneth E. Jansen return 1459599516SKenneth E. Jansen end 1559599516SKenneth E. Jansen 16*bd5c8633SCameron Smith subroutine clearper 17*bd5c8633SCameron Smith use periodicity 18*bd5c8633SCameron Smith if( allocated(rcount) ) then 19*bd5c8633SCameron Smith deallocate(rcount) 20*bd5c8633SCameron Smith endif 21*bd5c8633SCameron Smith end 22*bd5c8633SCameron Smith 2359599516SKenneth E. Jansen subroutine perprep (iBC, iper,nshg) 2459599516SKenneth E. Jansen 2559599516SKenneth E. Jansen use periodicity 2659599516SKenneth E. Jansen 2759599516SKenneth E. Jansen dimension iBC(nshg), 2859599516SKenneth E. Jansen & iper(nshg) 2959599516SKenneth E. Jansen 3059599516SKenneth E. Jansenc 3159599516SKenneth E. Jansenc..... calculate the inverse of the number of slaves + 1 3259599516SKenneth E. Jansenc 3359599516SKenneth E. Jansen one=1.00000000000 3459599516SKenneth E. Jansen rcount=one 3559599516SKenneth E. Jansen do j = 1,nshg 3659599516SKenneth E. Jansen if (btest(iBC(j),10)) then 3759599516SKenneth E. Jansen i = iper(j) 3859599516SKenneth E. Jansen rcount(i) = rcount(i) + one 3959599516SKenneth E. Jansen endif 4059599516SKenneth E. Jansen enddo 4159599516SKenneth E. Jansen do k=1,nshg 4259599516SKenneth E. Jansen if(rcount(k).ne.one) then 4359599516SKenneth E. Jansen rcount(k)=one/rcount(k) 4459599516SKenneth E. Jansen endif 4559599516SKenneth E. Jansen enddo 4659599516SKenneth E. Jansen 4759599516SKenneth E. Jansenc 4859599516SKenneth E. Jansenc.... return 4959599516SKenneth E. Jansenc 5059599516SKenneth E. Jansen return 5159599516SKenneth E. Jansen end 52