!=====================================================================
!  鉛直 1 次元地表面熱収支計算プログラム; 拡散項の計算
!
!  履歴  2000/09/20  小高正嗣; 作成開始
!
!=====================================================================
      subroutine CLDIFG
     V   ( TEMPG,
     I     ELMG_BCK,
     W     DGL, DG, DGU, DGU2, BG, IPIVG,
     D     NZG )
!---------------------------------------------------------------------
      implicit real*8 (a-h,o-z)
!---------------------------------------------------------------------

      dimension
     \     TEMPG (NZG)         ! 地中温度

      dimension
     \     ELMG_BCK(NZG,NZG)    ! 係数行列2

      dimension                 ! LAPACK 用作業配列
     \     DGL(NZG-1),
     \     DG(NZG),
     \     DGU(NZG-1),
     \     DGU2(NZG-2),
     \     BG(NZG),
     \     IPIVG(NZG)

      character(1) TRANS

!---------------------------------------------------------------------

      do iz = 1, NZG
         BG(iz) = 0.0D0
         do jz = 1, NZG
            BG(iz) = BG(iz) + ELMG_BCK(iz, jz) * TEMPG(jz)
         end do
      end do

      TRANS = 'N'
      call DGTTRS
     \     ( TRANS, NZG, 1, DGL, DG, DGU, DGU2, IPIVG, BG, NZG, INFO)

      do iz = 1, NZG
         TEMPG(iz) = BG(iz)
      end do

!---------------------------------------------------------------------
      return
      end