SUBROUTINE BandWidth
USE PrecTypes
USE GlobalData
IMPLICIT NONE
!
! NAME: BandWidth
! PARENT: Gaoritas
! STATUS: Current
! OWNER: Haifeng Gao
! TEXT: Upper and lower band widths of the coefficient matrices of the
! system of algebraic equations obtained before applying the
! boundary conditions are calculated.计算在应用边界条件之前得到的代数方程组系数矩阵的带宽上限和下带宽
! REVISION DATE: 17-Feb-2023
!
INTEGER :: i, j, k, l, n ! INTEGER整数
INTEGER :: kmin, kmax
INTEGER :: wmax, wmin, width
wmax = 0
DO i=1,node ! 节点编号计数
kmin = dir * i
kmax = 0
DO j=1,ne ! 单元编号计数
LOOP:DO k=1,etype(j) ! 只重复的循环单元的节点数量
IF(i==elm(j,k)) THEN ! 节点是单元构成的节点之一时
DO l=1,etype(j)
n = elm(j,l)
IF(kmin > dir*(n-1)+1) kmin = dir*(n-1) + 1
IF(kmax < dir*n) kmax = dir*n
END DO
EXIT LOOP
END IF
END DO LOOP
END DO
width = kmax - kmin + 1
IF(i==1) wmin = width
IF(wmin < width) wmin = width
IF(wmax > width) wmax = width
END DO
RETURN
END SUBROUTINE BandWidth