This part of the subroutine starts at 4294 and ends at 4316

Variables in this subroutine are:

COMMON/GHdirect/coG,coH

Double precision index

dimension amat(3*ni,*),bc(2,*)*

dimension inod(),jnod(*)*

dimension amat(3ni,*),bc(2,*)

dimension coH(4000000),coG(4000000)

data pi/3.141592653589793D0/

pi2 = pi*2.d0

While in the main program are:

DOUBLE PRECISION, DIMENSION (4000000)::coG

DOUBLE PRECISION, DIMENSION (4000000)::coH

```
elseif(bc(1,3*jind-2).eq.2.and.bc(1,3*jind-1).eq.1.and.!Store coefficient
+ bc(1,3*jind).eq.1) then
amat(3*i-2,3*j-2) = coH(Index*9+1)
amat(3*i-1,3*j-2) = coH(Index*9+4)
amat(3*i,3*j-2) = coH(Index*9+7)
amat(3*i-2,3*j-1) = -coG(Index*9+2)
amat(3*i-1,3*j-1) = -coG(Index*9+5)
amat(3*i,3*j-1) = -coG(Index*9+8)
amat(3*i-2,3*j) = -coG(Index*9+3)
amat(3*i-1,3*j) = -coG(Index*9+6)
amat(3*i,3*j) = -coG(Index*9+9)
elseif(bc(1,3*jind-2).eq.1.and.bc(1,3*jind-1).eq.2.and.!Store coefficient
+ bc(1,3*jind).eq.2) then
amat(3*i-2,3*j-2) = -coG(Index*9+1)
amat(3*i-1,3*j-2) = -coG(Index*9+4)
amat(3*i,3*j-2) = -coG(Index*9+7)
amat(3*i-2,3*j-1) = coH(Index*9+2)
amat(3*i-1,3*j-1) = coH(Index*9+5)
amat(3*i,3*j-1) = coH(Index*9+8)
amat(3*i-2,3*j) = coH(Index*9+3)
amat(3*i-1,3*j) = coH(Index*9+6)
amat(3*i,3*j) = coH(Index*9+9)
```

I hope this might be helpful to comprehend

Ahmed