timestep_loop Subroutine

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