get_and_solve_eqn Subroutine

private subroutine get_and_solve_eqn(irec, mp, qprec, n, dx, h0, S, thetai, Tsoil, qh, nsteps, vlit, vsnow, var, dxL, plit, par, deltaTa, qevap, qL, qhL, qybL, qTbL, qhTbL, qhybL, again, again_ice, iok, itmp, ns, accel, dt, fac, phip, rsig, rsigdt, sig, t, qexd, aa, bb, cc, dd, ee, ff, gg, dy, aah, bbh, cch, ddh, eeh, ffh, ggh, de, q, qya, qyb, qTa, qTb, qhya, qhyb, qhTa, qhTb, qadv, qadvya, qadvyb, qadvTa, qadvTb, qsig, qhsig, qadvsig, dTsoil, tmp2d1, dthetaldT, nsteps_ice, imelt, deltaJ_latent_T, deltaJ_sensible_S, qrunoff, tmp1d1, tmp1d2, tmp1d3, tmp1d4, G0, Tfreezing, LHS, RHS, LHS_h, RHS_h, nns, iflux, litter, i, kk, condition, advection, c2, theta, cp, cpeff, hice, h0_tmp, hsnow, delta_snowT, delta_snowliq, J0, iqex, nfac1, nfac2, nfac3, nfac4, nfac5, nfac6, nfac7, nfac8, nfac9, nfac10, nfac11, nfac12, err)

Arguments

Type IntentOptional Attributes Name
integer(kind=i_d) :: irec
integer(kind=i_d) :: mp
real(kind=r_2), DIMENSION(1:mp) :: qprec
integer(kind=i_d) :: n
real(kind=r_2), DIMENSION(1:n) :: dx
real(kind=r_2), DIMENSION(1:mp) :: h0
real(kind=r_2), DIMENSION(1:n) :: S
real(kind=r_2), DIMENSION(1:n) :: thetai
real(kind=r_2), DIMENSION(1:n) :: Tsoil
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qh
integer(kind=i_d), DIMENSION(1:mp) :: nsteps
type(vars), DIMENSION(1:mp) :: vlit
type(vars_snow), DIMENSION(1:mp) :: vsnow
type(vars), DIMENSION(1:n) :: var
real(kind=r_2), DIMENSION(1:mp) :: dxL
type(params), DIMENSION(1:mp) :: plit
type(params), DIMENSION(1:n) :: par
real(kind=r_2), DIMENSION(1:mp) :: deltaTa
real(kind=r_2), DIMENSION(1:mp) :: qevap
real(kind=r_2), DIMENSION(1:mp) :: qL
real(kind=r_2), DIMENSION(1:mp) :: qhL
real(kind=r_2), DIMENSION(1:mp) :: qybL
real(kind=r_2), DIMENSION(1:mp) :: qTbL
real(kind=r_2), DIMENSION(1:mp) :: qhTbL
real(kind=r_2), DIMENSION(1:mp) :: qhybL
logical, DIMENSION(1:mp) :: again
logical, DIMENSION(1:mp,1:n) :: again_ice
integer(kind=i_d), DIMENSION(1:mp) :: iok
integer(kind=i_d), DIMENSION(1:mp) :: itmp
integer(kind=i_d), DIMENSION(1:mp) :: ns
real(kind=r_2), DIMENSION(1:mp) :: accel
real(kind=r_2), DIMENSION(1:mp) :: dt
real(kind=r_2), DIMENSION(1:mp) :: fac
real(kind=r_2), DIMENSION(1:mp) :: phip
real(kind=r_2), DIMENSION(1:mp) :: rsig
real(kind=r_2), DIMENSION(1:mp) :: rsigdt
real(kind=r_2), DIMENSION(1:mp) :: sig
real(kind=r_2), DIMENSION(1:mp) :: t
real(kind=r_2), DIMENSION(1:n) :: qexd
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: aa
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: bb
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: cc
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: dd
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: ee
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: ff
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: gg
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: dy
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: aah
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: bbh
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: cch
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: ddh
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: eeh
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: ffh
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: ggh
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: de
real(kind=r_2), DIMENSION(-nsnow_max:n) :: q
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qya
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qyb
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qTa
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qTb
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qhya
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qhyb
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qhTa
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qhTb
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qadv
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qadvya
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qadvyb
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qadvTa
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qadvTb
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qsig
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qhsig
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qadvsig
real(kind=r_2), DIMENSION(1:n) :: dTsoil
real(kind=r_2), DIMENSION(0:n) :: tmp2d1
real(kind=r_2), DIMENSION(1:n) :: dthetaldT
integer(kind=i_d), DIMENSION(1:n) :: nsteps_ice
integer(kind=i_d), DIMENSION(1:n) :: imelt
real(kind=r_2), DIMENSION(1:n) :: deltaJ_latent_T
real(kind=r_2), DIMENSION(1:n) :: deltaJ_sensible_S
real(kind=r_2), DIMENSION(1:mp) :: qrunoff
real(kind=r_2), DIMENSION(1:mp) :: tmp1d1
real(kind=r_2), DIMENSION(1:mp) :: tmp1d2
real(kind=r_2), DIMENSION(1:mp) :: tmp1d3
real(kind=r_2), DIMENSION(1:mp) :: tmp1d4
real(kind=r_2), DIMENSION(1:mp) :: G0
real(kind=r_2), DIMENSION(1:mp) :: Tfreezing
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: LHS
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: RHS
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: LHS_h
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: RHS_h
integer(kind=i_d), DIMENSION(1:mp) :: nns
integer(kind=i_d), DIMENSION(1:mp) :: iflux
logical :: litter
integer(kind=i_d) :: i
integer(kind=i_d) :: kk
integer(kind=i_d) :: condition
integer(kind=i_d) :: advection
real(kind=r_2) :: c2
real(kind=r_2) :: theta
real(kind=r_2), DIMENSION(1:mp) :: cp
real(kind=r_2), DIMENSION(1:mp) :: cpeff
real(kind=r_2), DIMENSION(1:mp) :: hice
real(kind=r_2), DIMENSION(1:mp) :: h0_tmp
real(kind=r_2), DIMENSION(nsnow_max) :: hsnow
real(kind=r_2), DIMENSION(nsnow_max) :: delta_snowT
real(kind=r_2), DIMENSION(nsnow_max) :: delta_snowliq
real(kind=r_2), DIMENSION(1:n) :: J0
real(kind=r_2), DIMENSION(1:n) :: iqex
integer(kind=i_d), DIMENSION(1:mp) :: nfac1
integer(kind=i_d), DIMENSION(1:mp) :: nfac2
integer(kind=i_d), DIMENSION(1:mp) :: nfac3
integer(kind=i_d), DIMENSION(1:mp) :: nfac4
integer(kind=i_d), DIMENSION(1:mp) :: nfac5
integer(kind=i_d), DIMENSION(1:mp) :: nfac6
integer(kind=i_d), DIMENSION(1:mp) :: nfac7
integer(kind=i_d), DIMENSION(1:mp) :: nfac8
integer(kind=i_d), DIMENSION(1:mp) :: nfac9
integer(kind=i_d), DIMENSION(1:mp) :: nfac10
integer(kind=i_d), DIMENSION(1:mp) :: nfac11
integer(kind=i_d), DIMENSION(1:mp) :: nfac12
integer(kind=i_d), intent(inout), optional :: err