solve Subroutine

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

Calls

proc~~solve~~CallsGraph proc~solve solve proc~hyofh hyofh proc~solve->proc~hyofh proc~hyofs hyofS proc~solve->proc~hyofs proc~litter_props litter_props proc~solve->proc~litter_props proc~setsol setsol proc~solve->proc~setsol proc~sofh Sofh proc~solve->proc~sofh proc~timestep_loop timestep_loop proc~solve->proc~timestep_loop proc~zerovars zerovars proc~solve->proc~zerovars proc~dthetalmaxdt dthetalmaxdT proc~hyofs->proc~dthetalmaxdt proc~igamma igamma proc~hyofs->proc~igamma proc~slope_esat slope_esat proc~hyofs->proc~slope_esat proc~tfrz Tfrz proc~hyofs->proc~tfrz proc~litter_props->proc~slope_esat proc~timestep_loop->proc~litter_props proc~iflux_loop iflux_loop proc~timestep_loop->proc~iflux_loop proc~isotope_vap isotope_vap proc~timestep_loop->proc~isotope_vap proc~dthetalmaxdt->proc~tfrz proc~iflux_loop->proc~hyofs proc~iflux_loop->proc~litter_props proc~estimate_timestep estimate_timestep proc~iflux_loop->proc~estimate_timestep proc~get_and_solve_eqn get_and_solve_eqn proc~iflux_loop->proc~get_and_solve_eqn proc~get_fluxes_and_derivs get_fluxes_and_derivs proc~iflux_loop->proc~get_fluxes_and_derivs proc~snow_adjust snow_adjust proc~iflux_loop->proc~snow_adjust proc~update_s_t update_s_t proc~iflux_loop->proc~update_s_t proc~update_unknowns update_unknowns proc~iflux_loop->proc~update_unknowns proc~gammln gammln proc~igamma->proc~gammln proc~gcf gcf proc~igamma->proc~gcf proc~gser gser proc~igamma->proc~gser interface~tri tri proc~isotope_vap->interface~tri proc~tri_1d tri_1d interface~tri->proc~tri_1d proc~tri_2d tri_2d interface~tri->proc~tri_2d proc~gcf->proc~gammln proc~get_and_solve_eqn->proc~tfrz interface~massman_sparse massman_sparse proc~get_and_solve_eqn->interface~massman_sparse proc~get_fluxes_and_derivs->proc~zerovars interface~getfluxes_vp getfluxes_vp proc~get_fluxes_and_derivs->interface~getfluxes_vp interface~getheatfluxes getheatfluxes proc~get_fluxes_and_derivs->interface~getheatfluxes proc~flux flux proc~get_fluxes_and_derivs->proc~flux proc~seb SEB proc~get_fluxes_and_derivs->proc~seb proc~gser->proc~gammln proc~snow_adjust->proc~tfrz proc~esat_ice esat_ice proc~snow_adjust->proc~esat_ice proc~gtfrozen GTfrozen proc~snow_adjust->proc~gtfrozen proc~jsoillayer JSoilLayer proc~snow_adjust->proc~jsoillayer proc~rtbis_tfrozen rtbis_Tfrozen proc~snow_adjust->proc~rtbis_tfrozen proc~slope_esat_ice slope_esat_ice proc~snow_adjust->proc~slope_esat_ice proc~thetalmax thetalmax proc~snow_adjust->proc~thetalmax proc~update_s_t->proc~tfrz proc~dthetalmaxdth dthetalmaxdTh proc~update_s_t->proc~dthetalmaxdth proc~update_s_t->proc~gtfrozen proc~update_s_t->proc~jsoillayer proc~update_s_t->proc~rtbis_tfrozen proc~update_s_t->proc~thetalmax proc~update_unknowns->proc~jsoillayer proc~getfluxes_vp_1d getfluxes_vp_1d interface~getfluxes_vp->proc~getfluxes_vp_1d proc~getfluxes_vp_2d getfluxes_vp_2d interface~getfluxes_vp->proc~getfluxes_vp_2d proc~getheatfluxes_1d getheatfluxes_1d interface~getheatfluxes->proc~getheatfluxes_1d proc~getheatfluxes_2d getheatfluxes_2d interface~getheatfluxes->proc~getheatfluxes_2d proc~massman_sparse_1d massman_sparse_1d interface~massman_sparse->proc~massman_sparse_1d proc~massman_sparse_2d massman_sparse_2d interface~massman_sparse->proc~massman_sparse_2d proc~dthetalmaxdth->proc~tfrz proc~weight weight proc~flux->proc~weight proc~gtfrozen->proc~tfrz proc~jsoillayer->proc~tfrz proc~rtbis_tfrozen->proc~gtfrozen proc~seb->proc~hyofh proc~potential_evap potential_evap proc~seb->proc~potential_evap proc~slope_csat slope_csat proc~seb->proc~slope_csat proc~thetalmax->proc~tfrz proc~getfluxes_vp_1d->proc~hyofh proc~getfluxes_vp_1d->proc~zerovars proc~getfluxes_vp_1d->proc~flux proc~getfluxes_vp_2d->proc~hyofh proc~getfluxes_vp_2d->proc~zerovars proc~getfluxes_vp_2d->proc~flux interface~generic_thomas generic_thomas proc~massman_sparse_1d->interface~generic_thomas proc~massman_sparse_2d->interface~generic_thomas proc~potential_evap->proc~slope_esat proc~potential_evap->proc~slope_esat_ice proc~weight->proc~hyofh proc~generic_thomas_1d generic_thomas_1d interface~generic_thomas->proc~generic_thomas_1d proc~generic_thomas_2d generic_thomas_2d interface~generic_thomas->proc~generic_thomas_2d

Called by

proc~~solve~~CalledByGraph proc~solve solve proc~sli_main sli_main proc~sli_main->proc~solve