1*59599516SKenneth E. Jansen subroutine Asadj ( row_fill_list, 2*59599516SKenneth E. Jansen & iens, adjcnt ) 3*59599516SKenneth E. Jansenc 4*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 5*59599516SKenneth E. Jansenc 6*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 7*59599516SKenneth E. Jansenc 8*59599516SKenneth E. Jansen include "common.h" 9*59599516SKenneth E. Jansenc 10*59599516SKenneth E. Jansen integer row_fill_list(nshg,15*nnz), 11*59599516SKenneth E. Jansen & ien(npro,nshl), 12*59599516SKenneth E. Jansen & adjcnt(nshg), ndlist(nshl) 13*59599516SKenneth E. Jansen 14*59599516SKenneth E. Jansen integer iens(npro,nshl) 15*59599516SKenneth E. Jansenc 16*59599516SKenneth E. Jansenc prefer to show explicit absolute value needed for cubic modes and 17*59599516SKenneth E. Jansenc higher rather than inline abs on pointer as in past versions 18*59599516SKenneth E. Jansenc iens is the signed ien array ien is unsigned 19*59599516SKenneth E. Jansenc 20*59599516SKenneth E. Jansen ien=abs(iens) 21*59599516SKenneth E. Jansen 22*59599516SKenneth E. Jansen do i=1,npro 23*59599516SKenneth E. Jansen do j=1,nshl 24*59599516SKenneth E. Jansen ndlist(j)=ien(i,j) 25*59599516SKenneth E. Jansen enddo 26*59599516SKenneth E. Jansen do j=1,nshl 27*59599516SKenneth E. Jansen jnd=ndlist(j) 28*59599516SKenneth E. Jansen jlngth=adjcnt(jnd) ! current length of j's list 29*59599516SKenneth E. Jansen do k=1,nshl 30*59599516SKenneth E. Jansen knd=ndlist(k) 31*59599516SKenneth E. Jansen ibroke=zero 32*59599516SKenneth E. Jansen do l= 1,jlngth 33*59599516SKenneth E. Jansen if(row_fill_list(jnd,l).eq. knd) then 34*59599516SKenneth E. Jansen ibroke=1 35*59599516SKenneth E. Jansen exit 36*59599516SKenneth E. Jansen endif 37*59599516SKenneth E. Jansen enddo 38*59599516SKenneth E. Jansen 39*59599516SKenneth E. Jansenc 40*59599516SKenneth E. Jansenc to get here k was not in j's list so add it 41*59599516SKenneth E. Jansenc 42*59599516SKenneth E. Jansen if(ibroke.eq.0) then 43*59599516SKenneth E. Jansen jlngth=jlngth+1 ! lenthen list 44*59599516SKenneth E. Jansen if(jlngth.gt.15*nnz) then 45*59599516SKenneth E. Jansen write(*,*) 'increase overflow factor in genadj' 46*59599516SKenneth E. Jansen stop 47*59599516SKenneth E. Jansen endif 48*59599516SKenneth E. Jansen row_fill_list(jnd,jlngth)=knd ! add unique entry to list 49*59599516SKenneth E. Jansen endif 50*59599516SKenneth E. Jansen enddo ! finished checking all the k's for this j 51*59599516SKenneth E. Jansen adjcnt(jnd)=jlngth ! update the counter 52*59599516SKenneth E. Jansen enddo ! done with j's 53*59599516SKenneth E. Jansen enddo ! done with elements in this block 54*59599516SKenneth E. Jansenc 55*59599516SKenneth E. Jansenc 56*59599516SKenneth E. Jansenc.... end 57*59599516SKenneth E. Jansenc 58*59599516SKenneth E. Jansen return 59*59599516SKenneth E. Jansen end 60