sli_solve Module


Uses

  • module~~sli_solve~~UsesGraph module~sli_solve sli_solve module~cable_def_types_mod cable_def_types_mod module~sli_solve->module~cable_def_types_mod module~cable_io_vars_module cable_IO_vars_module module~sli_solve->module~cable_io_vars_module module~sli_numbers sli_numbers module~sli_solve->module~sli_numbers module~sli_utils sli_utils module~sli_solve->module~sli_utils module~cable_climate_type_mod cable_climate_type_mod module~cable_def_types_mod->module~cable_climate_type_mod module~cable_io_vars_module->module~cable_def_types_mod module~sli_numbers->module~cable_def_types_mod module~sli_utils->module~cable_def_types_mod module~sli_utils->module~sli_numbers

Used by

  • module~~sli_solve~~UsedByGraph module~sli_solve sli_solve proc~sli_main sli_main proc~sli_main->module~sli_solve

Variables

Type Visibility Attributes Name Initial
integer(kind=i_d), private, DIMENSION(:), ALLOCATABLE :: nless
integer(kind=i_d), private, DIMENSION(:), ALLOCATABLE :: n_noconverge

Subroutines

private subroutine get_fluxes_and_derivs(irec, mp, qprec, qprec_snow, n, dx, h0, Tsoil, S, qh, vmet, vlit, vsnow, var, T0, Tsurface, dxL, SL, Tl, plit, par, qali, qvh, qevap, again, getq0, getqn, init, ns, nsat, nsatlast, phip, qpme, hint, phimin, qexd, q, qya, qyb, qTa, qTb, qhya, qhyb, qhTa, qhTb, qadv, qadvya, qadvyb, qadvTa, qadvTb, vtmp, qliq, qv, qvT, qlya, qlyb, qvya, qvyb, qlTb, qvTa, qvTb, vtop, vbot, lE0, G0, Epot, surface_case, iflux, litter, j, kk, advection, dTqwdTa, dTqwdTb, Tqw, keff, hice)

Arguments

Type IntentOptional Attributes Name
integer(kind=i_d) :: irec
integer(kind=i_d) :: mp
real(kind=r_2), DIMENSION(1:mp) :: qprec
real(kind=r_2), DIMENSION(1:mp) :: qprec_snow
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) :: Tsoil
real(kind=r_2), DIMENSION(1:n) :: S
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qh
type(vars_met), DIMENSION(1:mp) :: vmet
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) :: T0
real(kind=r_2), DIMENSION(1:mp) :: Tsurface
real(kind=r_2), DIMENSION(1:mp) :: dxL
real(kind=r_2), DIMENSION(1:mp) :: SL
real(kind=r_2), DIMENSION(1:mp) :: Tl
type(params), DIMENSION(1:mp) :: plit
type(params), DIMENSION(1:n) :: par
real(kind=r_2), optional, DIMENSION(1:mp) :: qali
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvh
real(kind=r_2), DIMENSION(1:mp) :: qevap
logical, DIMENSION(1:mp) :: again
logical, DIMENSION(1:mp) :: getq0
logical, DIMENSION(1:mp) :: getqn
logical, DIMENSION(1:mp) :: init
integer(kind=i_d), DIMENSION(1:mp) :: ns
integer(kind=i_d), DIMENSION(1:mp) :: nsat
integer(kind=i_d), DIMENSION(1:mp) :: nsatlast
real(kind=r_2), DIMENSION(1:mp) :: phip
real(kind=r_2), DIMENSION(1:mp) :: qpme
real(kind=r_2), DIMENSION(1:n) :: hint
real(kind=r_2), DIMENSION(1:n) :: phimin
real(kind=r_2), DIMENSION(1:n) :: qexd
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
type(vars) :: vtmp
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qliq
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qv
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvT
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qlya
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qlyb
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvya
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvyb
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qlTb
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvTa
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvTb
type(vars), DIMENSION(1:mp) :: vtop
type(vars), DIMENSION(1:mp) :: vbot
real(kind=r_2), DIMENSION(1:mp) :: lE0
real(kind=r_2), DIMENSION(1:mp) :: G0
real(kind=r_2), DIMENSION(1:mp) :: Epot
integer(kind=i_d), DIMENSION(1:mp) :: surface_case
integer(kind=i_d), DIMENSION(1:mp) :: iflux
logical :: litter
integer(kind=i_d) :: j
integer(kind=i_d) :: kk
integer(kind=i_d) :: advection
real(kind=r_2) :: dTqwdTa
real(kind=r_2) :: dTqwdTb
real(kind=r_2) :: Tqw
real(kind=r_2) :: keff
real(kind=r_2), DIMENSION(1:mp) :: hice

private subroutine estimate_timestep(irec, tfin, mp, n, dx, h0, qh, qhTa, qadvTa, qhTb, qadvTb, nsteps, vlit, vsnow, var, dxL, plit, par, deltaTa, qL, qhL, again, ns, nsat, nsatlast, nsteps0, dmax, dt, qpme, t, q, qadv, tmp2d1, tmp2d2, tmp1d1, tmp1d3, iflux, litter, kk, advection, iqex)

Arguments

Type IntentOptional Attributes Name
integer(kind=i_d) :: irec
real(kind=r_2) :: tfin
integer(kind=i_d) :: mp
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(-nsnow_max:n) :: qh
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qhTa
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qadvTa
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qhTb
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qadvTb
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) :: qL
real(kind=r_2), DIMENSION(1:mp) :: qhL
logical, DIMENSION(1:mp) :: again
integer(kind=i_d), DIMENSION(1:mp) :: ns
integer(kind=i_d), DIMENSION(1:mp) :: nsat
integer(kind=i_d), DIMENSION(1:mp) :: nsatlast
integer(kind=i_d), DIMENSION(1:mp) :: nsteps0
real(kind=r_2), DIMENSION(1:mp) :: dmax
real(kind=r_2), DIMENSION(1:mp) :: dt
real(kind=r_2), DIMENSION(1:mp) :: qpme
real(kind=r_2), DIMENSION(1:mp) :: t
real(kind=r_2), DIMENSION(-nsnow_max:n) :: q
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qadv
real(kind=r_2), DIMENSION(0:n) :: tmp2d1
real(kind=r_2), DIMENSION(0:n) :: tmp2d2
real(kind=r_2), DIMENSION(1:mp) :: tmp1d1
real(kind=r_2), DIMENSION(1:mp) :: tmp1d3
integer(kind=i_d), DIMENSION(1:mp) :: iflux
logical :: litter
integer(kind=i_d) :: kk
integer(kind=i_d) :: advection
real(kind=r_2), DIMENSION(1:n) :: iqex

private subroutine iflux_loop(tfin, irec, mp, qprec, qprec_snow, n, dx, h0, S, thetai, Jsensible, Tsoil, evap, infil, drainage, discharge, qh, nsteps, vmet, vlit, vsnow, var, T0, Tsurface, Hcum, lEcum, Gcum, Qadvcum, Jcol_sensible, Jcol_latent_S, Jcol_latent_T, csoil, kth, phi, dxL, zdelta, SL, Tl, plit, par, wex, ciso_snow, cisoice_snow, qali, qvsig, qlsig, qvTsig, qvh, deltaTa, precip, qevap, qL, qhL, qybL, qTbL, qhTbL, qhybL, rexcol, wcol, again, getq0, getqn, init, again_ice, ih0, iok, itmp, ns, nsat, nsatlast, nsteps0, accel, dmax, dt, dwinfil, dwoff, fac, phip, qpme, rsig, rsigdt, sig, t, hint, phimin, 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, vtmp, qsig, qhsig, qadvsig, qliq, qv, qvT, qlya, qlyb, qvya, qvyb, qlTb, qvTa, qvTb, deltaS, dTsoil, tmp2d1, tmp2d2, cv0, cisoliqice_snow, dthetaldT, thetal, isave, nsteps_ice, imelt, vtop, vbot, v_aquifer, dwcol, dwdrainage, drn, inlit, dwinlit, drexcol, dwdischarge, dJcol_latent_S, dJcol_latent_T, dJcol_sensible, deltaJ_latent_S, deltaJ_latent_T, deltaJ_sensible_S, deltaJ_sensible_T, qevapsig, qrunoff, tmp1d1, tmp1d2, tmp1d3, tmp1d4, deltah0, deltaSL, lE0, G0, Epot, Tfreezing, dtdT, LHS, RHS, LHS_h, RHS_h, surface_case, nns, iflux, litter, i, j, k, kk, condition, littercase, isotopologue, advection, c2, theta, dTqwdTa, dTqwdTb, Tqw, keff, cp, cpeff, hice, h0_0, hice_0, h0_tmp, hice_tmp, qmelt, qtransfer, delta_snowcol, delta_snowT, delta_snowliq, thetai_0, J0, tmp1, tmp2, iqex, nfac1, nfac2, nfac3, nfac4, nfac5, nfac6, nfac7, nfac8, nfac9, nfac10, nfac11, nfac12, J0snow, wcol0snow, h_ex, wpi, err)

Arguments

Type IntentOptional Attributes Name
real(kind=r_2) :: tfin
integer(kind=i_d) :: irec
integer(kind=i_d) :: mp
real(kind=r_2), DIMENSION(1:mp) :: qprec
real(kind=r_2), DIMENSION(1:mp) :: qprec_snow
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) :: Jsensible
real(kind=r_2), DIMENSION(1:n) :: Tsoil
real(kind=r_2), DIMENSION(1:mp) :: evap
real(kind=r_2), DIMENSION(1:mp) :: infil
real(kind=r_2), DIMENSION(1:mp) :: drainage
real(kind=r_2), DIMENSION(1:mp) :: discharge
real(kind=r_2), DIMENSION(1:mp,-nsnow_max:n) :: qh
integer(kind=i_d), DIMENSION(1:mp) :: nsteps
type(vars_met), DIMENSION(1:mp) :: vmet
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) :: T0
real(kind=r_2), DIMENSION(1:mp) :: Tsurface
real(kind=r_2), DIMENSION(1:mp) :: Hcum
real(kind=r_2), DIMENSION(1:mp) :: lEcum
real(kind=r_2), DIMENSION(1:mp) :: Gcum
real(kind=r_2), DIMENSION(1:mp) :: Qadvcum
real(kind=r_2), DIMENSION(1:mp) :: Jcol_sensible
real(kind=r_2), DIMENSION(1:mp) :: Jcol_latent_S
real(kind=r_2), DIMENSION(1:mp) :: Jcol_latent_T
real(kind=r_2), DIMENSION(1:n) :: csoil
real(kind=r_2), DIMENSION(1:n) :: kth
real(kind=r_2), DIMENSION(1:n) :: phi
real(kind=r_2), DIMENSION(1:mp) :: dxL
real(kind=r_2), DIMENSION(1:mp) :: zdelta
real(kind=r_2), DIMENSION(1:mp) :: SL
real(kind=r_2), DIMENSION(1:mp) :: Tl
type(params), DIMENSION(1:mp) :: plit
type(params), DIMENSION(1:n) :: par
real(kind=r_2), optional, DIMENSION(1:mp,1:n) :: wex
real(kind=r_2), DIMENSION(1:mp,1:nsnow_max) :: ciso_snow
real(kind=r_2), DIMENSION(1:mp,1:nsnow_max) :: cisoice_snow
real(kind=r_2), optional, DIMENSION(1:mp) :: qali
real(kind=r_2), DIMENSION(1:mp,-nsnow_max:n) :: qvsig
real(kind=r_2), DIMENSION(1:mp,-nsnow_max:n) :: qlsig
real(kind=r_2), DIMENSION(1:mp,-nsnow_max:n) :: qvTsig
real(kind=r_2), DIMENSION(1:mp,-nsnow_max:n) :: qvh
real(kind=r_2), DIMENSION(1:mp) :: deltaTa
real(kind=r_2), DIMENSION(1:mp) :: precip
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
real(kind=r_2), DIMENSION(1:mp) :: rexcol
real(kind=r_2), DIMENSION(1:mp) :: wcol
logical, DIMENSION(1:mp) :: again
logical, DIMENSION(1:mp) :: getq0
logical, DIMENSION(1:mp) :: getqn
logical, DIMENSION(1:mp) :: init
logical, DIMENSION(1:mp,1:n) :: again_ice
integer(kind=i_d), DIMENSION(1:mp) :: ih0
integer(kind=i_d), DIMENSION(1:mp) :: iok
integer(kind=i_d), DIMENSION(1:mp) :: itmp
integer(kind=i_d), DIMENSION(1:mp) :: ns
integer(kind=i_d), DIMENSION(1:mp) :: nsat
integer(kind=i_d), DIMENSION(1:mp) :: nsatlast
integer(kind=i_d), DIMENSION(1:mp) :: nsteps0
real(kind=r_2), DIMENSION(1:mp) :: accel
real(kind=r_2), DIMENSION(1:mp) :: dmax
real(kind=r_2), DIMENSION(1:mp) :: dt
real(kind=r_2), DIMENSION(1:mp) :: dwinfil
real(kind=r_2), DIMENSION(1:mp) :: dwoff
real(kind=r_2), DIMENSION(1:mp) :: fac
real(kind=r_2), DIMENSION(1:mp) :: phip
real(kind=r_2), DIMENSION(1:mp) :: qpme
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) :: hint
real(kind=r_2), DIMENSION(1:n) :: phimin
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
type(vars) :: vtmp
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(-nsnow_max:n) :: qliq
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qv
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvT
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qlya
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qlyb
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvya
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvyb
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qlTb
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvTa
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvTb
real(kind=r_2), DIMENSION(1:n) :: deltaS
real(kind=r_2), DIMENSION(1:n) :: dTsoil
real(kind=r_2), DIMENSION(0:n) :: tmp2d1
real(kind=r_2), DIMENSION(0:n) :: tmp2d2
real(kind=r_2), DIMENSION(1:n) :: cv0
real(kind=r_2), DIMENSION(1:nsnow_max) :: cisoliqice_snow
real(kind=r_2), DIMENSION(1:n) :: dthetaldT
real(kind=r_2), DIMENSION(1:n) :: thetal
integer(kind=i_d), DIMENSION(1:n) :: isave
integer(kind=i_d), DIMENSION(1:n) :: nsteps_ice
integer(kind=i_d), DIMENSION(1:n) :: imelt
type(vars), DIMENSION(1:mp) :: vtop
type(vars), DIMENSION(1:mp) :: vbot
type(vars_aquifer), DIMENSION(1:mp) :: v_aquifer
real(kind=r_2), DIMENSION(1:mp) :: dwcol
real(kind=r_2), DIMENSION(1:mp) :: dwdrainage
real(kind=r_2), DIMENSION(1:mp) :: drn
real(kind=r_2), DIMENSION(1:mp) :: inlit
real(kind=r_2), DIMENSION(1:mp) :: dwinlit
real(kind=r_2), DIMENSION(1:mp) :: drexcol
real(kind=r_2), DIMENSION(1:mp) :: dwdischarge
real(kind=r_2), DIMENSION(1:mp) :: dJcol_latent_S
real(kind=r_2), DIMENSION(1:mp) :: dJcol_latent_T
real(kind=r_2), DIMENSION(1:mp) :: dJcol_sensible
real(kind=r_2), DIMENSION(1:n) :: deltaJ_latent_S
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:n) :: deltaJ_sensible_T
real(kind=r_2), DIMENSION(1:mp) :: qevapsig
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) :: deltah0
real(kind=r_2), DIMENSION(1:mp) :: deltaSL
real(kind=r_2), DIMENSION(1:mp) :: lE0
real(kind=r_2), DIMENSION(1:mp) :: G0
real(kind=r_2), DIMENSION(1:mp) :: Epot
real(kind=r_2), DIMENSION(1:mp) :: Tfreezing
real(kind=r_2), DIMENSION(1:mp) :: dtdT
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) :: surface_case
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) :: j
integer(kind=i_d) :: k
integer(kind=i_d) :: kk
integer(kind=i_d) :: condition
integer(kind=i_d) :: littercase
integer(kind=i_d) :: isotopologue
integer(kind=i_d) :: advection
real(kind=r_2) :: c2
real(kind=r_2) :: theta
real(kind=r_2) :: dTqwdTa
real(kind=r_2) :: dTqwdTb
real(kind=r_2) :: Tqw
real(kind=r_2) :: keff
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_0
real(kind=r_2), DIMENSION(1:mp) :: hice_0
real(kind=r_2), DIMENSION(1:mp) :: h0_tmp
real(kind=r_2), DIMENSION(1:mp) :: hice_tmp
real(kind=r_2), DIMENSION(nsnow_max) :: qmelt
real(kind=r_2), DIMENSION(1:mp) :: qtransfer
real(kind=r_2), DIMENSION(nsnow_max) :: delta_snowcol
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) :: thetai_0
real(kind=r_2), DIMENSION(1:n) :: J0
real(kind=r_2) :: tmp1
real(kind=r_2) :: tmp2
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
real(kind=r_2), DIMENSION(1:mp) :: J0snow
real(kind=r_2), DIMENSION(1:mp) :: wcol0snow
real(kind=r_2), DIMENSION(1:n) :: h_ex
real(kind=r_2) :: wpi
integer(kind=i_d), intent(inout), optional :: err

private subroutine update_s_t(mp, n, dx, h0, S, thetai, Tsoil, infil, nsteps, var, par, qlsig, again, ih0, ns, dt, sig, dy, qhsig, deltaS, dTsoil, dJcol_latent_S, dJcol_latent_T, dJcol_sensible, deltaJ_latent_S, deltaJ_latent_T, deltaJ_sensible_S, deltaJ_sensible_T, qrunoff, tmp1d1, tmp1d2, tmp1d3, tmp1d4, deltah0, Tfreezing, dtdT, LHS_h, i, j, k, kk, theta, cp, hice, hice_tmp, J0, tmp1, tmp2, h_ex, wpi)

Arguments

Type IntentOptional Attributes Name
integer(kind=i_d) :: mp
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(1:mp) :: infil
integer(kind=i_d), DIMENSION(1:mp) :: nsteps
type(vars), DIMENSION(1:n) :: var
type(params), DIMENSION(1:n) :: par
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qlsig
logical, DIMENSION(1:mp) :: again
integer(kind=i_d), DIMENSION(1:mp) :: ih0
integer(kind=i_d), DIMENSION(1:mp) :: ns
real(kind=r_2), DIMENSION(1:mp) :: dt
real(kind=r_2), DIMENSION(1:mp) :: sig
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: dy
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qhsig
real(kind=r_2), DIMENSION(1:n) :: deltaS
real(kind=r_2), DIMENSION(1:n) :: dTsoil
real(kind=r_2), DIMENSION(1:mp) :: dJcol_latent_S
real(kind=r_2), DIMENSION(1:mp) :: dJcol_latent_T
real(kind=r_2), DIMENSION(1:mp) :: dJcol_sensible
real(kind=r_2), DIMENSION(1:n) :: deltaJ_latent_S
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:n) :: deltaJ_sensible_T
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) :: deltah0
real(kind=r_2), DIMENSION(1:mp) :: Tfreezing
real(kind=r_2), DIMENSION(1:mp) :: dtdT
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: LHS_h
integer(kind=i_d) :: i
integer(kind=i_d) :: j
integer(kind=i_d) :: k
integer(kind=i_d) :: kk
real(kind=r_2) :: theta
real(kind=r_2), DIMENSION(1:mp) :: cp
real(kind=r_2), DIMENSION(1:mp) :: hice
real(kind=r_2), DIMENSION(1:mp) :: hice_tmp
real(kind=r_2), DIMENSION(1:n) :: J0
real(kind=r_2) :: tmp1
real(kind=r_2) :: tmp2
real(kind=r_2), DIMENSION(1:n) :: h_ex
real(kind=r_2) :: wpi

private subroutine update_unknowns(irec, mp, qprec, qprec_snow, n, dx, h0, S, Tsoil, evap, infil, drainage, discharge, qh, nsteps, vmet, vlit, vsnow, var, Hcum, lEcum, Gcum, Qadvcum, csoil, kth, phi, zdelta, SL, Tl, par, wex, qvsig, qlsig, qvTsig, precip, qevap, rexcol, wcol, again, ih0, ns, dt, dwinfil, dwoff, sig, qexd, dy, de, q, qya, qyb, qTa, qTb, qhya, qhyb, qhTa, qhTb, qsig, qhsig, qadvsig, qliq, qv, qvT, qlyb, qvya, qvyb, qlTb, qvTa, qvTb, dTsoil, v_aquifer, dwcol, dwdrainage, drn, inlit, dwinlit, drexcol, dwdischarge, dJcol_latent_S, dJcol_latent_T, dJcol_sensible, deltaJ_latent_S, deltaJ_latent_T, deltaJ_sensible_S, deltaJ_sensible_T, qevapsig, qrunoff, tmp1d1, tmp1d2, tmp1d3, deltah0, deltaSL, LHS_h, surface_case, litter, i, j, kk, advection, theta, Tqw, cp, hsnow, delta_snowcol, delta_snowT, delta_snowliq, J0, iqex, J0snow, wcol0snow)

Arguments

Type IntentOptional Attributes Name
integer(kind=i_d) :: irec
integer(kind=i_d) :: mp
real(kind=r_2), DIMENSION(1:mp) :: qprec
real(kind=r_2), DIMENSION(1:mp) :: qprec_snow
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) :: Tsoil
real(kind=r_2), DIMENSION(1:mp) :: evap
real(kind=r_2), DIMENSION(1:mp) :: infil
real(kind=r_2), DIMENSION(1:mp) :: drainage
real(kind=r_2), DIMENSION(1:mp) :: discharge
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qh
integer(kind=i_d), DIMENSION(1:mp) :: nsteps
type(vars_met), DIMENSION(1:mp) :: vmet
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) :: Hcum
real(kind=r_2), DIMENSION(1:mp) :: lEcum
real(kind=r_2), DIMENSION(1:mp) :: Gcum
real(kind=r_2), DIMENSION(1:mp) :: Qadvcum
real(kind=r_2), DIMENSION(1:n) :: csoil
real(kind=r_2), DIMENSION(1:n) :: kth
real(kind=r_2), DIMENSION(1:n) :: phi
real(kind=r_2), DIMENSION(1:mp) :: zdelta
real(kind=r_2), DIMENSION(1:mp) :: SL
real(kind=r_2), DIMENSION(1:mp) :: Tl
type(params), DIMENSION(1:n) :: par
real(kind=r_2), optional, DIMENSION(1:mp,1:n) :: wex
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvsig
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qlsig
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvTsig
real(kind=r_2), DIMENSION(1:mp) :: precip
real(kind=r_2), DIMENSION(1:mp) :: qevap
real(kind=r_2), DIMENSION(1:mp) :: rexcol
real(kind=r_2), DIMENSION(1:mp) :: wcol
logical, DIMENSION(1:mp) :: again
integer(kind=i_d), DIMENSION(1:mp) :: ih0
integer(kind=i_d), DIMENSION(1:mp) :: ns
real(kind=r_2), DIMENSION(1:mp) :: dt
real(kind=r_2), DIMENSION(1:mp) :: dwinfil
real(kind=r_2), DIMENSION(1:mp) :: dwoff
real(kind=r_2), DIMENSION(1:mp) :: sig
real(kind=r_2), DIMENSION(1:n) :: qexd
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: dy
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) :: qsig
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qhsig
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qadvsig
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qliq
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qv
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvT
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qlyb
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvya
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvyb
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qlTb
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvTa
real(kind=r_2), DIMENSION(-nsnow_max:n) :: qvTb
real(kind=r_2), DIMENSION(1:n) :: dTsoil
type(vars_aquifer), DIMENSION(1:mp) :: v_aquifer
real(kind=r_2), DIMENSION(1:mp) :: dwcol
real(kind=r_2), DIMENSION(1:mp) :: dwdrainage
real(kind=r_2), DIMENSION(1:mp) :: drn
real(kind=r_2), DIMENSION(1:mp) :: inlit
real(kind=r_2), DIMENSION(1:mp) :: dwinlit
real(kind=r_2), DIMENSION(1:mp) :: drexcol
real(kind=r_2), DIMENSION(1:mp) :: dwdischarge
real(kind=r_2), DIMENSION(1:mp) :: dJcol_latent_S
real(kind=r_2), DIMENSION(1:mp) :: dJcol_latent_T
real(kind=r_2), DIMENSION(1:mp) :: dJcol_sensible
real(kind=r_2), DIMENSION(1:n) :: deltaJ_latent_S
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:n) :: deltaJ_sensible_T
real(kind=r_2), DIMENSION(1:mp) :: qevapsig
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) :: deltah0
real(kind=r_2), DIMENSION(1:mp) :: deltaSL
real(kind=r_2), DIMENSION(-nsnow_max+1:n) :: LHS_h
integer(kind=i_d), DIMENSION(1:mp) :: surface_case
logical :: litter
integer(kind=i_d) :: i
integer(kind=i_d) :: j
integer(kind=i_d) :: kk
integer(kind=i_d) :: advection
real(kind=r_2) :: theta
real(kind=r_2) :: Tqw
real(kind=r_2), DIMENSION(1:mp) :: cp
real(kind=r_2), DIMENSION(nsnow_max) :: hsnow
real(kind=r_2), DIMENSION(nsnow_max) :: delta_snowcol
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
real(kind=r_2), DIMENSION(1:mp) :: J0snow
real(kind=r_2), DIMENSION(1:mp) :: wcol0snow

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

private subroutine timestep_loop(tfin, irec, mp, qprec, qprec_snow, n, dx, h0, S, thetai, Jsensible, Tsoil, evap, runoff, infil, drainage, discharge, qh, nsteps, vmet, vlit, vsnow, var, T0, Tsurface, Hcum, lEcum, deltaice_cum_T, deltaice_cum_S, Gcum, Qadvcum, Jcol_sensible, Jcol_latent_S, Jcol_latent_T, csoil, kth, phi, dxL, zdelta, SL, Tl, plit, par, wex, ciso, cisoice, ciso_snow, cisoice_snow, cisos, cprec, cprec_snow, qali, qiso_in, qiso_out, qiso_evap_cum, qiso_trans_cum, qiso_liq_adv, qiso_vap_adv, qiso_liq_diff, qiso_vap_diff, qvsig, qlsig, qvTsig, qvh, deltaTa, precip, qevap, qL, qhL, qybL, qTbL, qhTbL, qhybL, rexcol, wcol, ql0, qv0, again, getq0, getqn, init, again_ice, ih0, iok, itmp, ns, nsat, nsatlast, nsteps0, accel, dmax, dt, dwinfil, dwoff, fac, phip, qpme, rsig, rsigdt, sig, t, hint, phimin, qexd, vtmp, deltaS, dTsoil, tmp2d1, tmp2d2, vtop, vbot, v_aquifer, dwcol, dwdrainage, drn, inlit, dwinlit, drexcol, dwdischarge, dJcol_latent_S, dJcol_latent_T, dJcol_sensible, deltaJ_latent_S, deltaJ_latent_T, deltaJ_sensible_S, deltaJ_sensible_T, qevapsig, qrunoff, tmp1d1, tmp1d2, tmp1d3, tmp1d4, deltah0, SL0, deltaSL, cvL0, SLliq0, deltacvL, SLliq, deltaSLliq, qiso_evap, qiso_trans, lE0, G0, Epot, Tfreezing, dtdT, LHS, RHS, LHS_h, RHS_h, surface_case, nns, iflux, litter, i, j, k, kk, condition, littercase, isotopologue, advection, c2, theta, dTqwdTa, dTqwdTb, Tqw, keff, cp, cpeff, hice, deltahice, h0_0, hice_0, h0_tmp, hice_tmp, qtransfer, qmelt_ss, qprec_ss, cprec_ss, delta_snowcol, delta_snowT, delta_snowliq, thetai_0, J0, tmp1, tmp2, iqex, icali, nfac1, nfac2, nfac3, nfac4, nfac5, nfac6, nfac7, nfac8, nfac9, nfac10, nfac11, nfac12, J0snow, wcol0snow, h_ex, wpi, err)

Arguments

Type IntentOptional Attributes Name
real(kind=r_2) :: tfin
integer(kind=i_d) :: irec
integer(kind=i_d) :: mp
real(kind=r_2), DIMENSION(1:mp) :: qprec
real(kind=r_2), DIMENSION(1:mp) :: qprec_snow
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) :: Jsensible
real(kind=r_2), DIMENSION(1:n) :: Tsoil
real(kind=r_2), DIMENSION(1:mp) :: evap
real(kind=r_2), DIMENSION(1:mp) :: runoff
real(kind=r_2), DIMENSION(1:mp) :: infil
real(kind=r_2), DIMENSION(1:mp) :: drainage
real(kind=r_2), DIMENSION(1:mp) :: discharge
real(kind=r_2), DIMENSION(1:mp,-nsnow_max:n) :: qh
integer(kind=i_d), DIMENSION(1:mp) :: nsteps
type(vars_met), DIMENSION(1:mp) :: vmet
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) :: T0
real(kind=r_2), DIMENSION(1:mp) :: Tsurface
real(kind=r_2), DIMENSION(1:mp) :: Hcum
real(kind=r_2), DIMENSION(1:mp) :: lEcum
real(kind=r_2), DIMENSION(1:mp) :: deltaice_cum_T
real(kind=r_2), DIMENSION(1:mp) :: deltaice_cum_S
real(kind=r_2), DIMENSION(1:mp) :: Gcum
real(kind=r_2), DIMENSION(1:mp) :: Qadvcum
real(kind=r_2), DIMENSION(1:mp) :: Jcol_sensible
real(kind=r_2), DIMENSION(1:mp) :: Jcol_latent_S
real(kind=r_2), DIMENSION(1:mp) :: Jcol_latent_T
real(kind=r_2), DIMENSION(1:n) :: csoil
real(kind=r_2), DIMENSION(1:n) :: kth
real(kind=r_2), DIMENSION(1:n) :: phi
real(kind=r_2), DIMENSION(1:mp) :: dxL
real(kind=r_2), DIMENSION(1:mp) :: zdelta
real(kind=r_2), DIMENSION(1:mp) :: SL
real(kind=r_2), DIMENSION(1:mp) :: Tl
type(params), DIMENSION(1:mp) :: plit
type(params), DIMENSION(1:n) :: par
real(kind=r_2), optional, DIMENSION(1:mp,1:n) :: wex
real(kind=r_2), optional, DIMENSION(1:mp,1:n) :: ciso
real(kind=r_2), optional, DIMENSION(1:mp,1:n) :: cisoice
real(kind=r_2), optional, DIMENSION(1:mp,1:nsnow_max) :: ciso_snow
real(kind=r_2), optional, DIMENSION(1:mp,1:nsnow_max) :: cisoice_snow
real(kind=r_2), optional, DIMENSION(1:mp) :: cisos
real(kind=r_2), optional, DIMENSION(1:mp) :: cprec
real(kind=r_2), optional, DIMENSION(1:mp) :: cprec_snow
real(kind=r_2), optional, DIMENSION(1:mp) :: qali
real(kind=r_2), optional, DIMENSION(1:mp) :: qiso_in
real(kind=r_2), optional, DIMENSION(1:mp) :: qiso_out
real(kind=r_2), optional, DIMENSION(1:mp) :: qiso_evap_cum
real(kind=r_2), optional, DIMENSION(1:mp) :: qiso_trans_cum
real(kind=r_2), optional, DIMENSION(1:mp,-nsnow_max+1:n) :: qiso_liq_adv
real(kind=r_2), optional, DIMENSION(1:mp,-nsnow_max+1:n) :: qiso_vap_adv
real(kind=r_2), optional, DIMENSION(1:mp,-nsnow_max+1:n-1) :: qiso_liq_diff
real(kind=r_2), optional, DIMENSION(1:mp,-nsnow_max+1:n-1) :: qiso_vap_diff
real(kind=r_2), optional, DIMENSION(1:mp,-nsnow_max:n) :: qvsig
real(kind=r_2), optional, DIMENSION(1:mp,-nsnow_max:n) :: qlsig
real(kind=r_2), optional, DIMENSION(1:mp,-nsnow_max:n) :: qvTsig
real(kind=r_2), optional, DIMENSION(1:mp,-nsnow_max:n) :: qvh
real(kind=r_2), optional, DIMENSION(1:mp) :: deltaTa
real(kind=r_2), DIMENSION(1:mp) :: precip
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
real(kind=r_2), DIMENSION(1:mp) :: rexcol
real(kind=r_2), DIMENSION(1:mp) :: wcol
real(kind=r_2), DIMENSION(1:mp) :: ql0
real(kind=r_2), DIMENSION(1:mp) :: qv0
logical, DIMENSION(1:mp) :: again
logical, DIMENSION(1:mp) :: getq0
logical, DIMENSION(1:mp) :: getqn
logical, DIMENSION(1:mp) :: init
logical, DIMENSION(1:mp,1:n) :: again_ice
integer(kind=i_d), DIMENSION(1:mp) :: ih0
integer(kind=i_d), DIMENSION(1:mp) :: iok
integer(kind=i_d), DIMENSION(1:mp) :: itmp
integer(kind=i_d), DIMENSION(1:mp) :: ns
integer(kind=i_d), DIMENSION(1:mp) :: nsat
integer(kind=i_d), DIMENSION(1:mp) :: nsatlast
integer(kind=i_d), DIMENSION(1:mp) :: nsteps0
real(kind=r_2), DIMENSION(1:mp) :: accel
real(kind=r_2), DIMENSION(1:mp) :: dmax
real(kind=r_2), DIMENSION(1:mp) :: dt
real(kind=r_2), DIMENSION(1:mp) :: dwinfil
real(kind=r_2), DIMENSION(1:mp) :: dwoff
real(kind=r_2), DIMENSION(1:mp) :: fac
real(kind=r_2), DIMENSION(1:mp) :: phip
real(kind=r_2), DIMENSION(1:mp) :: qpme
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) :: hint
real(kind=r_2), DIMENSION(1:n) :: phimin
real(kind=r_2), DIMENSION(1:n) :: qexd
type(vars) :: vtmp
real(kind=r_2), DIMENSION(1:n) :: deltaS
real(kind=r_2), DIMENSION(1:n) :: dTsoil
real(kind=r_2), DIMENSION(0:n) :: tmp2d1
real(kind=r_2), DIMENSION(0:n) :: tmp2d2
type(vars), DIMENSION(1:mp) :: vtop
type(vars), DIMENSION(1:mp) :: vbot
type(vars_aquifer), DIMENSION(1:mp) :: v_aquifer
real(kind=r_2), DIMENSION(1:mp) :: dwcol
real(kind=r_2), DIMENSION(1:mp) :: dwdrainage
real(kind=r_2), DIMENSION(1:mp) :: drn
real(kind=r_2), DIMENSION(1:mp) :: inlit
real(kind=r_2), DIMENSION(1:mp) :: dwinlit
real(kind=r_2), DIMENSION(1:mp) :: drexcol
real(kind=r_2), DIMENSION(1:mp) :: dwdischarge
real(kind=r_2), DIMENSION(1:mp) :: dJcol_latent_S
real(kind=r_2), DIMENSION(1:mp) :: dJcol_latent_T
real(kind=r_2), DIMENSION(1:mp) :: dJcol_sensible
real(kind=r_2), DIMENSION(1:n) :: deltaJ_latent_S
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:n) :: deltaJ_sensible_T
real(kind=r_2), DIMENSION(1:mp) :: qevapsig
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) :: deltah0
real(kind=r_2), DIMENSION(1:mp) :: SL0
real(kind=r_2), DIMENSION(1:mp) :: deltaSL
real(kind=r_2), DIMENSION(1:mp) :: cvL0
real(kind=r_2), DIMENSION(1:mp) :: SLliq0
real(kind=r_2), DIMENSION(1:mp) :: deltacvL
real(kind=r_2), DIMENSION(1:mp) :: SLliq
real(kind=r_2), DIMENSION(1:mp) :: deltaSLliq
real(kind=r_2), DIMENSION(1:mp) :: qiso_evap
real(kind=r_2), DIMENSION(1:mp) :: qiso_trans
real(kind=r_2), DIMENSION(1:mp) :: lE0
real(kind=r_2), DIMENSION(1:mp) :: G0
real(kind=r_2), DIMENSION(1:mp) :: Epot
real(kind=r_2), DIMENSION(1:mp) :: Tfreezing
real(kind=r_2), DIMENSION(1:mp) :: dtdT
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) :: surface_case
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) :: j
integer(kind=i_d) :: k
integer(kind=i_d) :: kk
integer(kind=i_d) :: condition
integer(kind=i_d) :: littercase
integer(kind=i_d) :: isotopologue
integer(kind=i_d) :: advection
real(kind=r_2) :: c2
real(kind=r_2) :: theta
real(kind=r_2) :: dTqwdTa
real(kind=r_2) :: dTqwdTb
real(kind=r_2) :: Tqw
real(kind=r_2) :: keff
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) :: deltahice
real(kind=r_2), DIMENSION(1:mp) :: h0_0
real(kind=r_2), DIMENSION(1:mp) :: hice_0
real(kind=r_2), DIMENSION(1:mp) :: h0_tmp
real(kind=r_2), DIMENSION(1:mp) :: hice_tmp
real(kind=r_2), DIMENSION(1:mp) :: qtransfer
real(kind=r_2), DIMENSION(1:mp) :: qmelt_ss
real(kind=r_2), DIMENSION(1:mp) :: qprec_ss
real(kind=r_2), DIMENSION(1:mp) :: cprec_ss
real(kind=r_2), DIMENSION(nsnow_max) :: delta_snowcol
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) :: thetai_0
real(kind=r_2), DIMENSION(1:n) :: J0
real(kind=r_2) :: tmp1
real(kind=r_2) :: tmp2
real(kind=r_2), DIMENSION(1:n) :: iqex
real(kind=r_2), DIMENSION(1:mp) :: icali
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
real(kind=r_2), DIMENSION(1:mp) :: J0snow
real(kind=r_2), DIMENSION(1:mp) :: wcol0snow
real(kind=r_2), DIMENSION(1:n) :: h_ex
real(kind=r_2) :: wpi
integer(kind=i_d), intent(inout), optional :: err

public subroutine solve(ts, tfin, irec, mp, qprec, qprec_snow, n, dx, h0, S, thetai, Jsensible, Tsoil, evap, evap_pot, runoff, infil, drainage, discharge, qh, nsteps, vmet, vlit, vsnow, var, csoil, kth, phi, T0, Tsurface, Hcum, lEcum, Gcum, Qadvcum, Jcol_sensible, Jcol_latent_S, Jcol_latent_T, deltaice_cum_T, deltaice_cum_S, dxL, zdelta, SL, Tl, plit, par, qex, wex, heads, ciso, cisoice, ciso_snow, cisoice_snow, cisos, cprec, cprec_snow, cali, qali, qiso_in, qiso_out, qiso_evap_cum, qiso_trans_cum, qiso_liq_adv, qiso_vap_adv, qiso_liq_diff, qiso_vap_diff, qvsig, qlsig, qvTsig, qvh, deltaTa, lE_old, dolitter, doisotopologue, docondition, doadvection, err)

Arguments

Type IntentOptional Attributes Name
real(kind=r_2), intent(in) :: ts
real(kind=r_2), intent(in) :: tfin
integer(kind=i_d), intent(in) :: irec
integer(kind=i_d), intent(in) :: mp
real(kind=r_2), intent(in), DIMENSION(1:mp) :: qprec
real(kind=r_2), intent(inout), DIMENSION(1:mp) :: qprec_snow
integer(kind=i_d), intent(in) :: n
real(kind=r_2), intent(in), DIMENSION(1:mp,1:n) :: dx
real(kind=r_2), intent(inout), DIMENSION(1:mp) :: h0
real(kind=r_2), intent(inout), DIMENSION(1:mp,1:n) :: S
real(kind=r_2), intent(out), DIMENSION(1:mp,1:n) :: thetai
real(kind=r_2), intent(out), DIMENSION(1:mp,1:n) :: Jsensible
real(kind=r_2), intent(inout), DIMENSION(1:mp,1:n) :: Tsoil
real(kind=r_2), intent(inout), DIMENSION(1:mp) :: evap
real(kind=r_2), intent(out), DIMENSION(1:mp) :: evap_pot
real(kind=r_2), intent(out), DIMENSION(1:mp) :: runoff
real(kind=r_2), intent(out), DIMENSION(1:mp) :: infil
real(kind=r_2), intent(out), DIMENSION(1:mp) :: drainage
real(kind=r_2), intent(out), DIMENSION(1:mp) :: discharge
real(kind=r_2), intent(out), DIMENSION(1:mp,-nsnow_max:n) :: qh
integer(kind=i_d), intent(out), DIMENSION(1:mp) :: nsteps
type(vars_met), intent(inout), DIMENSION(1:mp) :: vmet
type(vars), intent(inout), DIMENSION(1:mp) :: vlit
type(vars_snow), intent(inout), DIMENSION(1:mp) :: vsnow
type(vars), intent(inout), DIMENSION(1:mp,1:n) :: var
real(kind=r_2), intent(out), DIMENSION(1:mp,1:n) :: csoil
real(kind=r_2), intent(out), DIMENSION(1:mp,1:n) :: kth
real(kind=r_2), intent(inout), DIMENSION(1:mp,1:n) :: phi
real(kind=r_2), intent(inout), DIMENSION(1:mp) :: T0
real(kind=r_2), intent(inout), DIMENSION(1:mp) :: Tsurface
real(kind=r_2), intent(out), DIMENSION(1:mp) :: Hcum
real(kind=r_2), intent(out), DIMENSION(1:mp) :: lEcum
real(kind=r_2), intent(out), DIMENSION(1:mp) :: Gcum
real(kind=r_2), intent(out), DIMENSION(1:mp) :: Qadvcum
real(kind=r_2), intent(out), DIMENSION(1:mp) :: Jcol_sensible
real(kind=r_2), intent(out), DIMENSION(1:mp) :: Jcol_latent_S
real(kind=r_2), intent(out), DIMENSION(1:mp) :: Jcol_latent_T
real(kind=r_2), intent(out), DIMENSION(1:mp) :: deltaice_cum_T
real(kind=r_2), intent(out), DIMENSION(1:mp) :: deltaice_cum_S
real(kind=r_2), intent(in), DIMENSION(1:mp) :: dxL
real(kind=r_2), intent(inout), DIMENSION(1:mp) :: zdelta
real(kind=r_2), intent(inout), DIMENSION(1:mp) :: SL
real(kind=r_2), intent(inout), DIMENSION(1:mp) :: Tl
type(params), intent(in), DIMENSION(1:mp) :: plit
type(params), intent(inout), DIMENSION(1:mp,1:n) :: par
real(kind=r_2), intent(in), optional, DIMENSION(1:mp,1:n) :: qex
real(kind=r_2), intent(inout), optional, DIMENSION(1:mp,1:n) :: wex
real(kind=r_2), intent(out), optional, DIMENSION(1:mp,1:n) :: heads
real(kind=r_2), intent(inout), optional, DIMENSION(1:mp,1:n) :: ciso
real(kind=r_2), intent(inout), optional, DIMENSION(1:mp,1:n) :: cisoice
real(kind=r_2), intent(inout), optional, DIMENSION(1:mp,1:nsnow_max) :: ciso_snow
real(kind=r_2), intent(inout), optional, DIMENSION(1:mp,1:nsnow_max) :: cisoice_snow
real(kind=r_2), intent(inout), optional, DIMENSION(1:mp) :: cisos
real(kind=r_2), intent(in), optional, DIMENSION(1:mp) :: cprec
real(kind=r_2), intent(in), optional, DIMENSION(1:mp) :: cprec_snow
real(kind=r_2), intent(in), optional, DIMENSION(1:mp) :: cali
real(kind=r_2), intent(in), optional, DIMENSION(1:mp) :: qali
real(kind=r_2), intent(out), optional, DIMENSION(1:mp) :: qiso_in
real(kind=r_2), intent(out), optional, DIMENSION(1:mp) :: qiso_out
real(kind=r_2), intent(out), optional, DIMENSION(1:mp) :: qiso_evap_cum
real(kind=r_2), intent(out), optional, DIMENSION(1:mp) :: qiso_trans_cum
real(kind=r_2), intent(out), optional, DIMENSION(1:mp,-nsnow_max+1:n) :: qiso_liq_adv
real(kind=r_2), intent(out), optional, DIMENSION(1:mp,-nsnow_max+1:n) :: qiso_vap_adv
real(kind=r_2), intent(out), optional, DIMENSION(1:mp,-nsnow_max+1:n-1) :: qiso_liq_diff
real(kind=r_2), intent(out), optional, DIMENSION(1:mp,-nsnow_max+1:n-1) :: qiso_vap_diff
real(kind=r_2), intent(out), optional, DIMENSION(1:mp,-nsnow_max:n) :: qvsig
real(kind=r_2), intent(out), optional, DIMENSION(1:mp,-nsnow_max:n) :: qlsig
real(kind=r_2), intent(out), optional, DIMENSION(1:mp,-nsnow_max:n) :: qvTsig
real(kind=r_2), intent(out), optional, DIMENSION(1:mp,-nsnow_max:n) :: qvh
real(kind=r_2), intent(inout), optional, DIMENSION(1:mp) :: deltaTa
real(kind=r_2), intent(in), optional, DIMENSION(1:mp) :: lE_old
integer(kind=i_d), intent(in), optional :: dolitter
integer(kind=i_d), intent(in), optional :: doisotopologue
integer(kind=i_d), intent(in), optional :: docondition
integer(kind=i_d), intent(in), optional :: doadvection
integer(kind=i_d), intent(inout), optional, DIMENSION(1:mp) :: err

private subroutine snow_augment(mp, kk, qprec_snow, Ta, tfin, vsnow)

Arguments

Type IntentOptional Attributes Name
integer(kind=i_d), intent(in) :: mp
integer(kind=i_d), intent(in) :: kk
real(kind=r_2), intent(inout), DIMENSION(mp) :: qprec_snow
real(kind=r_2), intent(in), DIMENSION(mp) :: Ta
real(kind=r_2), intent(in) :: tfin
type(vars_snow), intent(inout), DIMENSION(1:mp) :: vsnow

private subroutine snow_adjust(irec, mp, n, kk, ns, h0, hice, thetai, dx, vsnow, var, par, S, Tsoil, Jcol_latent_S, Jcol_latent_T, Jcol_sensible, deltaJ_sensible_S, qmelt, qtransfer, j0snow)

Arguments

Type IntentOptional Attributes Name
integer(kind=i_d), intent(in) :: irec
integer(kind=i_d), intent(in) :: mp
integer(kind=i_d), intent(in) :: n
integer(kind=i_d), intent(in) :: kk
integer(kind=i_d), intent(inout), DIMENSION(mp) :: ns
real(kind=r_2), intent(inout), DIMENSION(mp) :: h0
real(kind=r_2), intent(inout), DIMENSION(mp) :: hice
real(kind=r_2), intent(inout), DIMENSION(1:n) :: thetai
real(kind=r_2), intent(in), DIMENSION(1:n) :: dx
type(vars_snow), intent(inout), DIMENSION(1:mp) :: vsnow
type(vars), intent(inout), DIMENSION(1:n) :: var
type(params), intent(in), DIMENSION(1:n) :: par
real(kind=r_2), intent(inout), DIMENSION(1:n) :: S
real(kind=r_2), intent(inout), DIMENSION(1:n) :: Tsoil
real(kind=r_2), intent(inout), DIMENSION(1:mp) :: Jcol_latent_S
real(kind=r_2), intent(inout), DIMENSION(1:mp) :: Jcol_latent_T
real(kind=r_2), intent(inout), DIMENSION(1:mp) :: Jcol_sensible
real(kind=r_2), intent(inout), DIMENSION(1:n) :: deltaJ_sensible_S
real(kind=r_2), intent(inout), DIMENSION(nsnow_max) :: qmelt
real(kind=r_2), intent(out), DIMENSION(1:mp) :: qtransfer
real(kind=r_2), intent(inout), DIMENSION(mp) :: j0snow

private subroutine isotope_vap(irec, isotopologue, n, nsnow, nsnow_last, ns, dx, deltaz, sig, dt, Tsoil0, dTsoil, Sliqice, deltaSliqice, Sliq, deltaSliq, Sice, deltaSice, Ts, Ta, qsig, qlsig, qvsig, qmelt, qtransfer, qprec, qprec_snow, qevap, qrunoff, qex, var_cv, var_Dv, thetasat, thetar, tortuosity, deltacv, rbw, cva, civa, cprec, cprec_snow, cali, ql0, qv0, ciso, cisoice, cisos, qiso_in, qiso_out, qiso_evap, qiso_trans, qiso_liq_adv, qiso_vap_adv, qiso_liq_diff, qiso_vap_diff)

Arguments

Type IntentOptional Attributes Name
integer(kind=i_d), intent(in) :: irec
integer(kind=i_d), intent(in) :: isotopologue
integer(kind=i_d), intent(in) :: n
integer(kind=i_d), intent(in) :: nsnow
integer(kind=i_d), intent(in) :: nsnow_last
integer(kind=i_d), intent(in) :: ns
real(kind=r_2), intent(in), DIMENSION(ns:n) :: dx
real(kind=r_2), intent(in), DIMENSION(ns:n-1) :: deltaz
real(kind=r_2), intent(in) :: sig
real(kind=r_2), intent(in) :: dt
real(kind=r_2), intent(in), DIMENSION(ns:n) :: Tsoil0
real(kind=r_2), intent(in), DIMENSION(ns:n) :: dTsoil
real(kind=r_2), intent(in), DIMENSION(ns:n) :: Sliqice
real(kind=r_2), intent(in), DIMENSION(ns:n) :: deltaSliqice
real(kind=r_2), intent(in), DIMENSION(ns:n) :: Sliq
real(kind=r_2), intent(in), DIMENSION(ns:n) :: deltaSliq
real(kind=r_2), intent(in), DIMENSION(ns:n) :: Sice
real(kind=r_2), intent(in), DIMENSION(ns:n) :: deltaSice
real(kind=r_2), intent(in) :: Ts
real(kind=r_2), intent(in) :: Ta
real(kind=r_2), intent(in), DIMENSION(ns-1:n) :: qsig
real(kind=r_2), intent(inout), DIMENSION(ns-1:n) :: qlsig
real(kind=r_2), intent(inout), DIMENSION(ns-1:n) :: qvsig
real(kind=r_2), intent(in) :: qmelt
real(kind=r_2), intent(in) :: qtransfer
real(kind=r_2), intent(in) :: qprec
real(kind=r_2), intent(in) :: qprec_snow
real(kind=r_2), intent(in) :: qevap
real(kind=r_2), intent(in) :: qrunoff
real(kind=r_2), intent(in), DIMENSION(1:n) :: qex
real(kind=r_2), intent(in), DIMENSION(ns:n) :: var_cv
real(kind=r_2), intent(in), DIMENSION(ns:n) :: var_Dv
real(kind=r_2), intent(in), DIMENSION(ns:n) :: thetasat
real(kind=r_2), intent(in), DIMENSION(ns:n) :: thetar
real(kind=r_2), intent(in), DIMENSION(ns:n) :: tortuosity
real(kind=r_2), intent(inout), DIMENSION(ns:n) :: deltacv
real(kind=r_2), intent(in) :: rbw
real(kind=r_2), intent(in) :: cva
real(kind=r_2), intent(in) :: civa
real(kind=r_2), intent(in) :: cprec
real(kind=r_2), intent(in) :: cprec_snow
real(kind=r_2), intent(in) :: cali
real(kind=r_2), intent(inout) :: ql0
real(kind=r_2), intent(inout) :: qv0
real(kind=r_2), intent(inout), DIMENSION(ns:n) :: ciso
real(kind=r_2), intent(inout), DIMENSION(ns:n) :: cisoice
real(kind=r_2), intent(inout) :: cisos
real(kind=r_2), intent(out) :: qiso_in
real(kind=r_2), intent(out) :: qiso_out
real(kind=r_2), intent(out) :: qiso_evap
real(kind=r_2), intent(out) :: qiso_trans
real(kind=r_2), intent(out), DIMENSION(ns:n) :: qiso_liq_adv
real(kind=r_2), intent(out), DIMENSION(ns:n) :: qiso_vap_adv
real(kind=r_2), intent(out), DIMENSION(ns:n-1) :: qiso_liq_diff
real(kind=r_2), intent(out), DIMENSION(ns:n-1) :: qiso_vap_diff