7 PSOILHCAPZ,PCT,PTERM1,PTERM2, &
8 PTDEEP_A,PTDEEP_B,PTG,PDEEP_FLUX,&
72 USE modi_tridiag_ground
81 REAL,
INTENT(IN) :: PTSTEP
83 REAL,
DIMENSION(:),
INTENT(IN) :: PCT, PTERM1, PTERM2, PTDEEP_A, PTDEEP_B
100 REAL,
DIMENSION(:,:),
INTENT(IN) :: PSOILCONDZ, PSOILHCAPZ, PFLUX_COR
105 REAL,
DIMENSION(:,:),
INTENT(IN) :: PDZDIF, PDZG
109 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PTG
112 REAL,
DIMENSION(:),
INTENT(OUT) :: PDEEP_FLUX
119 INTEGER :: INI, INLVLD
121 REAL,
DIMENSION(SIZE(PTG,1),SIZE(PTG,2)) :: ZTGM, ZDTERM, ZCTERM, &
122 ZFRCV, ZAMTRX, ZBMTRX
125 REAL :: ZWORK1, ZWORK2
127 REAL(KIND=JPRB) :: ZHOOK_HANDLE
142 ini =
SIZE(ptg(:,:),1)
143 inlvld =
SIZE(ptg(:,:),2)
152 zwork1 = pdzg(jj,jl )/(2.0*pdzdif(jj,jl)*psoilcondz(jj,jl ))
153 zwork2 = pdzg(jj,jl+1)/(2.0*pdzdif(jj,jl)*psoilcondz(jj,jl+1))
155 zwork1 = pdzg(jj,jl)/(2.0*pdzdif(jj,jl)*psoilcondz(jj,jl))
158 zdterm(jj,jl)=1.0/(pdzdif(jj,jl)*(zwork1+zwork2))
159 zcterm(jj,jl)= psoilhcapz(jj,jl)*pdzg(jj,jl)/ptstep
168 zbmtrx(:,1) = 1./(pct(:)*ptstep)
169 zcmtrx(:,1) = -pterm2(:)*zbmtrx(:,1)
170 zfrcv(:,1) = pterm1(:)*zbmtrx(:,1)
176 zamtrx(jj,jl) = -zdterm(jj,jl-1)
177 zbmtrx(jj,jl) = zcterm(jj,jl) + zdterm(jj,jl-1) + zdterm(jj,jl)
178 zcmtrx(jj,jl) = -zdterm(jj,jl)
179 zfrcv(jj,jl) = zcterm(jj,jl)*ztgm(jj,jl)+pflux_cor(jj,jl)
186 zamtrx(:,inlvld) = -zdterm(:,inlvld-1)
187 zcmtrx(:,inlvld) = 0.0
197 WHERE(ptdeep_b(:) /=
xundef)
200 zbmtrx(:,inlvld) = zcterm(:,inlvld) + zdterm(:,inlvld-1) &
201 + zdterm(:,inlvld)/(1.+zdterm(:,inlvld)*ptdeep_a)
202 zfrcv(:,inlvld) = zcterm(:,inlvld)*ztgm(:,inlvld) &
203 + zdterm(:,inlvld)*ptdeep_b(:)/(1.+zdterm(:,inlvld)
206 zbmtrx(:,inlvld) = zcterm(:,inlvld) + zdterm(:,inlvld-1)
207 zfrcv(:,inlvld) = zcterm(:,inlvld)*ztgm(:,inlvld)+pflux_cor(:,inlvld
226 WHERE(ptdeep_b(:) /=
xundef)
227 pdeep_flux=zdterm(:,inlvld)*(ztgm(:,inlvld)-ptdeep_b)/(1.+zdterm(:,inlvld
subroutine tridiag_ground(PA, PB, PC, PY, PX)
subroutine soil_heatdif(PTSTEP, PDZG, PDZDIF, PSOILCONDZ, PSOILHCAPZ, PCT, PTERM1, PTERM2, PTDEEP_A, PTDEEP_B, PTG, PDEEP_FLUX, PFLUX_COR)