Water retention curve modeling via van Genuchten model and KSSL data.

`KSSL_VG_model(VG_params, phi_min = 10^-6, phi_max = 10^8, pts = 100)`

- VG_params
`data.frame`

or`list`

object with the parameters of the van Genuchten model, see details- phi_min
lower limit for water potential in kPa

- phi_max
upper limit for water potential in kPa

- pts
number of points to include in estimated water retention curve

A list with the following components:

- VG_curve
estimated water retention curve: paired estimates of water potential (phi) and water content (theta)

- VG_function
spline function for converting water potential (phi, units of kPa) to estimated volumetric water content (theta, units of percent, range: {0, 1})

- VG_inverse_function
spline function for converting volumetric water content (theta, units of percent, range: {0, 1}) to estimated water potential (phi, units of kPa)

This function was developed to work with measured or estimated parameters of the van Genuchten model, as generated by the Rosetta model. As such, `VG_params`

should have the following format and conventions:

- theta_r
saturated water content, values should be in the range of {0, 1}

- theta_s
residual water content, values should be in the range of {0, 1}

- alpha
related to the inverse of the air entry suction, function expects log10-transformed values with units of 1/cm

- npar
index of pore size distribution, function expects log10-transformed values (dimensionless)

A practical example is given in the fetchSCAN tutorial.

```
# basic example
d <- data.frame(
theta_r = 0.0337216,
theta_s = 0.4864061,
alpha = -1.581517,
npar = 0.1227247
)
vg <- KSSL_VG_model(d)
str(vg)
#> List of 3
#> $ VG_curve :'data.frame': 100 obs. of 2 variables:
#> ..$ phi : num [1:100] 1.00e-06 1.38e-06 1.92e-06 2.66e-06 3.68e-06 ...
#> ..$ theta: num [1:100] 0.486 0.486 0.486 0.486 0.486 ...
#> $ VG_function :function (x, deriv = 0L)
#> $ VG_inverse_function:function (x, deriv = 0L)
```