You are visitor number 

to this page since 9/19/2000 
This is a draft I/O specification for the version bnmf2v.for of POULIT. Since this code was intended only for calibrating the flow portion of the model to laboratory and field measurements, the thermal and transport code has been stripped out. Most of the variables and subroutines actually used in this version are defined here. But it was not convenient to remove variables from the common block statements relating to the deleted routines. So not all of the variables defined below are used in this version, and not all of the variables shown below are defined. This is meant only to help those interested in understanding the Fortran code to keep track of the many variables. It may be difficult to follow unless one prints out a copy of the Fortran code, bnmf2v.for, and the numerical development, and tracks the use of the variables.
The common block statements are divided into three types: profile, series and flags, and four subtypes: real arrays, real scalars, integer arrays and integer scalars.














The variables used for soil profile information are in the commons labeled /pr*/, where * is a number. The index of the arrays runs from 0 to izm, with 0 generally referring to the soil surface, and the index referring to positive depth below the surface. Most array variables are functions of time and depth, where depth is z(i) = i*dz dz/2, z(0) = 0, and dz is the finite difference space step (cm). "Grid cell centers" refers to the position z(i), while "grid cell boundaries" refers to the position z(i) + dz/2. Unless otherwise stated, the index, i, refers to grid cell centers.
The variables used for time series information, usually weather processes, are in the common statements labeled /ts*/. The index of the arrays runs from 0 to iwm, with 1 generally referring to the first day of simulation time, and the index referring to days from start of either simulation or the last application of the litter. The remaining common statement labeled /lo1/ contains logical flags to help with model processing decisions.
Of the subtypes, the common statements labeled /**1/ are double precision real arrays, /**2/ are double precision real scalar variables, /**3/ are integer arrays, and /**4/ are integer scalar variables. Thus, the common statement labeled /pr2/ contains real scalar variables. All real scalars and arrays are double precision whether in common blocks or not.
There is only one subtype for logical flags, since there are so few of them in use.
Note  Many of the dimensions which show as (cm/x) are really (cm^{3}/(xcm^{2})), a volumetric measurement per square area of land surface.
Note: some variables may be in the wrong common statement. Not all are defined yet.
common /pr1/
aa(i), bb(i), cc(i)  dummy coefficient arrays for lefthandside of tridiagonal solution method for diffusive finite difference equations: aai pi1 + bbi pi + cci pi+1 = ri
at(i)  air entry suction head in saturation relation (cm).
bc(i)  exponent that converts effective saturation to relative conductivity (dimensionless).
c(i)  ammonium concentration in soil solution (ug/ml).
ch(i)  water capacity function, ¶q/¶h, (1/cm) at grid cell centers, z(i).
ck(i)  partially saturated soil hydraulic conductivities (cm/h) at grid cell centers.
cv(i)  interblock hydraulic conductivity means (cm/h) at grid cell boundaries, z(i) + dz/2.
ht(i)  total hydraulic head (cm), p(i)z(i), at cell centers.
ofp(i)  objective function for soil water pressure and water content used to calibrate to field measurements.
oft(i)  objective function for soil temperature used to calibrate to field measurements.
p(i)  soil water pressure head (cm) at cell centers (positive below the water table, always).
pm(i)  field piezometer measurement of soil water pressure head (cm)
qme(i)  Imax (ug/(hcm)) maximum rate of plant nitrogen uptake per unit root length in the MichaelisMenten model.
r(i)  dummy array for righthandside of tridiagonal solution for diffusive finite difference methods.
rdist(i)  distribution of root length (cm/cm^{3}) .
rdn(i)  denitrification coefficient, k_{2} (1/h)
rex(i)  ammonium distribution coefficient, Kd (cm^{3}/h).
rkd(i)  composite Freundlich adsorption coefficient, r·Kd (g/cm^{3})·(cm^{3}/g), for NH_{4}.
rnt(i)  nitrification ratio, k_{1} (1/h).
rob(i)  soil bulk density, r (g/cm^{3}).
rx(i)  root extraction rate of water (1/h), (cm^{3}/(cm^{3}h)).
sc(i)  saturated hydraulic conductivity, Ks (cm/h).
t(i)  soil temperature (°C).
tdif(i)  soil heat diffusion coefficient (cm^{2}/h).
th(i)  volumetric water content (cm^{3}/cm^{3}).
thj(i)  th(i) (cm^{3}/cm^{3}) solved at lst time step.
thp(i)  the equivalent of th(i) (cm^{3}/cm^{3}) solved at the partial time step, prk*dt.
thr(i)  residual soil water content (cm^{3}/cm^{3}).
ths(i)  saturated soil water content (cm^{3}/cm^{3}).
tm(i)  field temperature measurements (°C)
udl(i)  upper drainage limit (cm^{3}/cm^{3}) , the water content at p(i) = 0.1 bar
v(i)  unsaturated water flux (cm^{3}/(cm^{2}h)) at grid cell boundary.
vm(i)  exponent of ratio of suction head to displacement pressure in soil saturation relation.
vn(i)  exponent, divided by vm, of effective saturation in soil saturation relation.
wm(i)  field water content sensor measurement reading (cm^{3}/cm^{3}).
wv(i)  intergrid Darcien weight of the upper grid point conductivity to the mean conductivity between grid points with respect to pressure (dimensionless).
y(i)  NO_{3} concentration in soil solution (ug/ml)
z(i)  depth from soil surface (cm) positive downwards at finite difference grid cell centers, z(i) = (i*dz  dz/2), z(0) = 0.
common /pr2/
a1  RungeKutta parameter, the coefficient of the partial time step contribution at the full time step (dimensionless).
a2  RungeKutta parameter, the coefficient of the full time step contribution at the full time step (dimensionless).
cl  length of soil column (cm) from the surface to the bottom of modeled soil layer.
cn  SCS curve number.
disp  solute dispersion coefficient (cm^{2}/h).
dt  finite difference method time step size (h).
dtt  maximum time step allowed (h).
dz  finite difference method space step size (cm).
dzg  height of insulating grass (cm).
dzl  distance from the bottom of the modeled soil layer to the water table (cm).
dzp  depth increment (cm) for writing soil profile data to file *1.out.
evs  actual surface evaporation (cm/h) limited by soil surface conductivity.
fcu  flux of ammonium (ug/(cm^{2}h)) at the soil suface (due to infiltration of litter ammonium).
pl  soil water pressure head (cm) at depth zl (pl = 0 at water table).
pmax  upper limit of soil water pressure head (cm) allowed by model (not used in this version).
prk  RungeKutta parameter, 0 < prk < 0.5, the relative size of the partial time step (dimensionless).
qe  soil or rain pond surface evaporation (cm/h).
qin  water flux (cm/h) entering the soil surface at the full time step.
qinp  water flux (cm/h) entering the soil surface at the partial time step.
qk  Michaelis constant for root nitrogen uptake (ug/ml).
ql  water flux density (cm/h) from bottom of the modeled soil layer to water table at the full time step.
qlp  water flux density (cm/h) from the bottom of the soil column at the partial time step.
qm  maximum rate of nitrogen uptake per root length (ug/(cmh)) in the MichaelisMenten approach without temperature adjustment.
qn  net water flux into the soil column (cm/h), qinql, at the full time step.
qnp  net water flux into the soil column (cm/h), qinql, at the partial time step.
res  residual mass balance (cm) calculated at the full time step.
resp  residual mass balance (cm) calculated at the partial time step.
sev  potential soil surface evaporation (cm/h).
sxrp  cumulative root water extraction rate (1/h) from the surface to depth cl at the partial time step.
tdg  thermal diffusion rate of insulating grass layer, (cm^{2}/h).
thr  residual saturation (cm^{3}/cm^{3}) common to all soil layers.
ths1, ths2, ths3  maximum saturation or porosity (cm^{3}/cm^{3}) for soils layers 1, 2 & 3.
tl  bottom boundary condition constant temperature (°C).
tnfin  total nitrogen in the soil column (ug/cm^{2}) to depth cl at the end of the current day.
wfin  equivalent depth of water (cm) in the soil column to depth cl at the end of the current day.
wilt  plant wilting point soil water pressure head (cm), used to limit root water extraction.
winit  equivalent depth of water (cm) in the soil column to depth cl at the start of day.
wk1  upgravity weight (0.5 to 1.0) used to create vertical interblock mean hydraulic conductivities from grid cell center conductivities (not used in this version).
wk2  downgravity weight, (1wk1, not used in this version).
zl  depth (cm) to a supposed water table or other constant head boundary.
zr  height of ponded water above the soil surface (cm) at the full time step.
zrj  height of ponded water above the soil surface (cm) at the last time step.
zrp  height of ponded water above the soil surface (cm) at the partial time step.
ztl  depth of the bottom boundary condition for temperature (cm).
common /pr4/
inewt  index of the current iteration in Newton's method for the partial or full time step.
lt  depth index for bottom boundary of temperature model.
maxit  the maximum number of iterations allowed in Newton's method.
n  depth index such that z(n) = cl.
nm1  (n1).
np1  (n+1), depth index for z(np1) = zl.
common /ts1/
crain(n)  cumulative rain (cm) since start of model or nth application of litter.
crdaly(k)  daily rain (0.001 in) from the input weather file weather.dat.
csno3(k)  concentration of NO^{3} (ug/ml) in rain infiltration (zero in this version).
et(k)  rate of potential evapotranspiration (cm/h) apportioned to plant transpiration.
fam(n)  fraction of the total nitrogen in the nth litter application mineralized to NH_{4}.
fav(n)  fraction of the total nitrogen in the nth litter application lost to NH3 volatilization.
fion(n)  fraction of the total nitrogen in the nth litter application apportioned to inorganic nitrogen.
pet(k)  total potential evapotranspiration (cm/h).
runof(k)  rainfall runoff (cm).
tappn(n)  total nitrogen (ug/cm^{2}) in the nth litter application.
tempmn(k)  daily minimum air temperature (°C).
tempmx(k)  daily maximum air temperature (°C).
xinfl(k)  depth of rain (cm) apportioned to surface infiltration and evaporation.
common /ts2/
accevp  cumulative total evaporation (cm) (not used in this version).
accpln  cumulative total nitrogen (ug/cm^{2}) absorbed by plants.
ampd  amount of NH_{4} in the litter (ug/cm^{2}) generated per day by mineralization.
aplr  application rate (tons/acre) of litter to land in nth application.
avpd  amount of volatile ammonia (ug/cm^{2}) generated per day.
blt 
cam  total supply of mineralized ammonium in the litter (ug/cm^{2}) available for rainwater leaching.
caml  cam for the previous day.
cav 
cavl 
cev  cumulative evaporation for one day in equivalent water depth (cm).
cev1  cev of the previous day.
csin  total mass of inorganic nitrogen (ug/cm^{2}) remaining in all n applications of litter.
csinl  csin of the previous day.
csln  NH_{4} (ug/cm^{2}) leached from the litter to the soil in one rain.
cslo 
cslr  total nitrogen remaining undecomposed in the litter (ug/cm^{2}).
csls 
csom  cumulative total nitrogen (ug/cm^{2}) released by the litter to soil organic matter on completion of mineralization.
cson  total mass of organic nitrogen (ug/cm^{2}) remaining in all n applications of litter.
csonl  cson of the previous day.
dfam  the fraction of the total nitrogen mineralized to NH_{4} in the nth litter application in one time step.
dfav  the fraction of the total nitrogen converted to volatile ammonia in the nth litter application in one time step.
dnitr1  dnitrf of the previous day.
dnitrf  cumulative denitrification (ug/cm^{2}) of NO^{3} over time.
fci  the fraction of the nth litter application total nitrogen apportioned to inorganic nitrogen.
gwn  total nitrogen released to the groundwater (ug/cm^{2}) at the end of the day.
gwn1  gwn of the previous day.
gwn2 
gwnh4  cumulative mass of NH_{4} (ug/cm^{2}) passing from the soil column to the ground water.
gwno3  cumulative mass of NO^{3} (ug/cm^{2}) passing from the soil column to the ground water.
gww1  cumulative volume of water (cm^{3}/cm^{2}) passing from the soil column to the ground water by the end of the current day.
gww2  gww1 for the previous day.
mdoy  day of year number of next field measurement (day).
myr  year number minus 1900 of next field measurement (yr).
percen  percent of the total litter application mass apportioned to all types of nitrogen.
pln  total nitrogen (ug/cm^{2}) absorbed by plants in one day.
pln1  pln for the previous day.
plnh4  cumulative mass of NH_{4} (ug/cm^{2}) absorbed by plants from the soil column.
plnh41  plnh4 of the previous day.
plno3  cumulative mass of NO^{3} (ug/cm^{2}) absorbed by plants from the soil column.
plno31  plno3 of the previous day.
plnw  cumulative depth of water (cm^{3}/cm^{2}) absorbed by plants from the soil column.
plnw1  plnw of the previous day.
qlnh4 
qlno3 
rad  ?
sumcn 
sumtns 
sumyn 
tave  daily average temperature (°C).
tavek  daily average temperature (°K).
time  simulated time (h) since the start of the model.
timnw  time of the next write to output files (h).
tinf  time since midnight (h) over which the program spreads the daily rain.
tmax  daily maximum temperature (°C).
tmaxf  daily maximum temperature (°F).
tmin  daily minimum temperature (°C).
tminf  daily minimum temperature (°F).
tnfin 
tninit  total nitrogen (ug/cm^{2}) in the soil column to depth cl.
twrite  simulation time (h) of the next scheduled output to data files.
xkt  ?
xno3  total NO^{3} in the soil solution to depth cl (ug/cm^{2}) .
xtnh4  total NH_{4} in the soil column (ug/cm^{2}) to depth cl.
common /ts3/
kdoy(k)  day of year for kth input from input file weather.dat
kyer(k)  (year number  1900) for the kth input from weather.dat
common /ts4/
idd  day of month of weather data input.
imm  month of year of weather data input.
iyr  scalar for kyer(klm).
kday  day of year of the litter application.
klm  number of simulation days since the start of the model or last litter application.
kyr  (year  1900) of the litter application..
napp  total number of litter applications to date.
nday  scalar for kdoy(klm).
common /lo1/
rday  rain day flag, .true. if rain is currently infiltrating the soil.
vd(i)  soil water flux direction flag, .true. if the direction of the water flux, v(i), is downwards (zpositive) in the soil column at depth z(i) + dz/2.
unit# file
1 outday.dat
15 soils.dat
16 sinit.dat
20 weather.dat
77 appinfo.dat
outday.dat (up)
This file is used only for calibration runs. It consists of field measurements in a soil column for a particular day, in space and commadelineated ascii. The input variables on one line are the measurement year, myr, the measurement day of year, mdoy, the tensiometer soil water hydraulic pressure measurements at depths of 30, 60, 90, 120 and 200 cm, pm(1) to pm(5) (cm), the soil temperature measurements at 10.16 and 30.48 cm (° C), tm(1) and tm(2), and the "water content" measurements from an electrode sensor, wm(1) and wm(2) (supposedly cm^{3}/cm^{3}). These data are compared to the endofday data in the model in subroutine output and used to construct objective functions for calibrating the model. (Since this work is not yet finished, it is subject to change.)
example:
91 309 37.92, 55.08, 61.60, 93.60, 46.10, 5.75, 6.67, 0.2045, 0.1879 (all on one line)
soils.dat (up)
This file contains soil hydraulic, temperature and chemical property information for the three soil layers allowed by the model, as well as other miscellaneous information that the program needs to run. Except where specified otherwise, the input format is FORTRAN *unformated. The program will read space or commadelineated ASCII numerical information until its needs are filled. The reader should refer to the definitions of variables already supplied for common blocks, if not supplied here.
Calibration grid point arrays for soil hydraulic and chemical parameters follow the scalar parameters. For each set, the number of values, nin (i3 format), is followed by separate lines of the depth coordinates and then the soil parameters, in order of increasing depth. On the depth and parameter lines, there must be at least two values, spanning the entire model column from the surface to the water table. The depth and parameter lines can each take up as many lines as necessary the program will read values for each until the limit, nin, is reached. The parameter arrays do not have to correspond with the modeling grid for either flow or transport. The program will use linear interpolation to fill out the arrays in the positions of the modeling grid. The parameter arrays used here, such as sci and bci, are dummy names, corresponding to the interpolated (sc and bc) arrays used at the model grid points.
line input
1 dtt, dzz, dzp  usersupplied time step (h), space step (cm), and profile output step (cm)
2 qm, qk, disp  maximum nitrogen uptake rate (ug/(cmh)) without temperature adjustment, Michaelis constant for root nitrogen uptake (ug/l), solute dispersion coefficient (cm^{2}/h)
3 cl  depth of modeled soil column (cm)
4 zl, pl, wk1  depth to water table (cm), hydraulic pressure at water table (cm), wk1 not used in this version, but read
5 dzg, tdg, tl, ztl  height of insulating grass (cm), thermal diffusion coefficient of grass (cm^{2}/h), temperature at constanttemperature boundary (°C), depth to constanttemperature boundary (cm)
6 tinf, twrite  time for infiltration (not used in this version but read), time between output file writes (h)
7 nin (i3 integer format + comment)  number of data points for saturated conductivity
8 x(1), ... x(nin)  depth values (cm) of the data points
9 sci(1), ... sci(nin)  soil saturated hydraulic conductivity values (cm/h) cda
10 nin  (i3 format) number of data points for the conductivity exponent
11 x(1), ... x(nin)  depth values (cm)
12 bci(1), ... bci(nin)  conductivity exponents (dimensionless)
13 nin  number of saturated porosities
14 x(1), ... x(nin)  depth values (cm)
15 thsi(1), ... thsi(nin)  saturated porosities (cm^{3}/cm^{3})
16 nin  number of residual saturations
17 x(1), ... x(nin)  depths in the soil profile (cm)
18 thri(1), ... thri(nin)  residual saturations (cm^{3}/cm^{3})
19 nin  number of air entry pressures
20 x(1), ... x(nin)  depth values (cm)
21 ati(1), ... ati(nin)  air entry suction pressures (cm, positive values)
22 nin  number of nexponents
23 x(1), ... x(nin)  depth values (cm)
24 vni(1), ... vni(nin)  van Genuchtenstyle exponent (dimensionless)
25 nin  number of van Genuchten mexponents
26 x(1), ... x(nin)  depth values (cm)
27 vmi(1), ... vmi(nin)  van Genuchtenstyle exponent (dimensionless)
28 nin  number of bulk densities
29 x(1), ... x(nin)  depth values (cm)
30 robi(1), ... robi(nin)  soil bulk density (g/cm^{3})
31 nin  number of ammonium distribution coefficients
32 x(1), ... x(nin)  depth values (cm)
33 rexi(1), ... rexi(nin)  ammonium distribution coefficient (cm^{3}/g)
34 nin  number of nitrification rates
35 x(1), ... x(nin)  depth values (cm)
36 rnti(1), ... rnti(nin)  nitrification rate (1/h)
37 nin  number of denitrification rates
38 x(1), ... x(nin)  depth values (cm)
39 rdni(1), ... rdni(nin)  denitrification rate (1/h)
example:
1.0d0 2.00d0 4.0d0
0.001d0 1.0d0 2.5d0
210.d0
5000.0d0 0.0d0 0.5d0
5.0d0 3.33d0 15.0d0 171.0d0
10.d0 24.d0
11 saturated conductivity, sc
0.d0 15.d0 30.d0 45.d0 61.d0 76.d0 91.d0 106.d0 122.d0 137.d0 5000.d0
3.493d0 11.522d0 37.826d0 27.706d0 8.729d0 3.537d0 1.735d0 0.9836d0
0.6084d0 0.6084d0 0.6084d0
11 conductivity exponent, bc
0.d0 15.d0 30.d0 45.d0 61.d0 76.d0 91.d0 106.d0 122.d0 137.d0 5000.d0
11.9978d0 12.1086d0 11.3102d0 12.651d0 10.1186 8.3603d0 7.8089d0 7.1767d0 7.5152d0 7.7875d0 7.7875d0
11 saturated porosity, ths
0.d0 15.d0 30.d0 45.d0 61.d0 76.d0 91.d0 106.d0 122.d0 137.d0 5000.d0
.537d0 .479d0 .461d0 .462d0 .449d0 .447d0 .458d0 .434d0 .422d0 .465d0
.465d0
11 residual porosity, thr
0.d0 15.d0 30.d0 45.d0 61.d0 76.d0 91.d0 106.d0 122.d0 137.d0 5000.d0
0.010703d0 0.023178d0 0.102071d0 0.110965d0 0.160129d0 0.185075d0 0.194355d0
0.025027d0 0.203067d0 0.21184d0 0.21184d0
11 air entry pressure, at
0.d0 15.d0 30.d0 45.d0 61.d0 76.d0 91.d0 106.d0 122.d0 137.d0 5000.d0
757.67d0 634.34d0 275.73d0 327.44d0 341.47d0 391.98d0 472.16d0 523.91d0
589.41d0 323.24d0 323.24d0
11 vG nexponent, vn
0.d0 15.d0 30.d0 45.d0 61.d0 76.d0 91.d0 106.d0 122.d0 137.d0 5000.d0
0.577482d0 0.541061d0 0.523747d0 0.423754d0 0.421374d0 0.403633d0 0.40068d0
0.426339d0 0.447182d0 0.479269d0 0.479269d0
11 vG mexponent, vm
0.d0 15.d0 30.d0 45.d0 61.d0 76.d0 91.d0 106.d0 122.d0 137.d0 5000.d0
1.001d0 1.04237d0 1.05353d0 1.03324d0 1.001d0 1.06708d0 1.08486d0 1.02654d0
1.001d0 1.00355d0 1.00355d0
11 bulk density, rob
0.d0 15.d0 30.d0 45.d0 61.d0 76.d0 91.d0 106.d0 122.d0 137.d0 5000.d0
1.28d0 1.38d0 1.38d0 1.44d0 1.52d0 1.51d0 1.48d0 1.53d0 1.5d0 1.39d0
1.39d0
4 ammonium dist. coef., rex
0.d0 45.d0 45.1d0 5000.d0
.15d0 .15d0 .25d0 .25d0
4 nitrification rate, rnt
0.d0 15.d0 15.1d0 5000.d0
.02d0 .02d0 .001d0 .001d0
2 denitrification rate, rdn
0.d0 5000.d0
.01d0 .01d0
sinit.dat (up)
This file contains the necessary initial soil profile data for soil water pressure head, ammonium concentration, nitrate concentration and soil temperature. The data need not match the model finite difference space grid, since they will be linearly interpolated to that grid. Nor do the data for separate variables have to match each other in depth, since they are interpolated from their own depth independent grids. The data can be taken by different means at different depth spacings for each variable.
The first eight lines are dummy or descriptive text comments. Each of the four data variables needs at least three lines of input. The first line contains the integer number of the number of (z,y) data points, nin. The next line contains the z depth ordinates. If that satisfies the nin requirement, the last line contains the y initial variable values. Since the input format is FORTRAN *unformatted, the program will keep reading lines as necessary until the data requirement is filled.
If one assumes that the data are sparse enough to fit on one line each, the remaining lines would be as follows.
line data
example:
Each set of data consists of three lines. 1st line
is number of soil measurements, 2nd line is soil depth
and third line is the associated soil data.
The soil data in each of the 3rd lines are initial
values in this order: pressure heads,
NH4N concentration, NO3N concentration, and
soil temperature.
7
7 22 37 52 67 82 120
5000 2000 1000 750 500 350 280
7
7 22 37 52 67 82 120
3.6 0.9 0.3 0.0 0.0 2.2 2.0
7
7 22 37 52 67 82 120
0.8 0.0 0.0 0.0 0.0 .2 .2
7
7 22 37 52 67 82 120
28.6 25 20 19 18 18 18
weather.dat (up)
This input file contains the date, air temperature, and daily rain information. The input data must be contiguous and consecutive from start to end date. The program will stop when it exhausts this file. The reader should refer to the common variable definitions already supplied. FORTRAN i/o format standards are applied. Each line contains the variables:
kyer(klm), kdoy(klm), tempmx(klm), tempmn(klm), crdaly(klm)
in the FORTRAN format (i2, i3, f3.0, f3.0, f5.0). Note that the input value of crdaly is in thousanths of an inch. So, 2000 means 2.000 inches. Directly after input, the program converts the value to centimeters.
example:
90 88 51 43 0
90 89 58 49 2000
90 90 56 47 100
90 91 64 46 25
90 92 76 41 0
90 93 59 31 0
90 94 62 38 0
90 95 77 46 0
90 96 63 37 0
90 97 51 28 0
90 98 61 35 0
90 99 62 52 0
90100 66 54 0
90101 55 35 0
90102 49 35 0
90103 62 40 0
90104 62 43 0
90105 69 46 1000
90106 69 46 0
90107 78 40 0
appinfo.dat (up)
This file contains the Natural Resource Conservation Service (NRCS) curve number for rain runoff in the first line, followed by lines describing the application of poultry litter, if any. The reader should refer to the common variable definitions already supplied. The program will read space or commadelineated ASCII numerical information until its needs are filled.
line variable(s)
1 cn  the NRCS curve number for rainfall runoff.
2 kyr, kday, aplr, percen, fci (1st application)
3 kyr, kday, aplr, percen, fci (2nd application)
...
n kyr, kday, aplr, percen, fci (nth application)
example:
71
90 88 4 3.79 0.15
90 100 4 3.79 0.15
unit# file
File outfs(1)//1.out  water, nitrogen and temperature soil profile data (disabled in this version)
This output file contains data for water, nitrogen and temperature in the soil profile. The first part is essentially a header that reflects the data from the soils.dat input file, including explanatory descriptions. The second part consists of three similar sections that repeat every day with rain. The first section gives profile and summary data at the very beginning of the rain day, showing how the soil water, temperature and nitrogen have redistributed since the last rain. The second section gives the same information for the end of the rain infiltration period (ten hours past midnight in this version). Because there is significant redistribution of soil water from the end ot the rain to the end of the day, the third section gives the same information at the end of the day.
Each section has two subsections, profile and summary data. The profile data reports at increasing depth from the soil surface to the bottom of soil layer 3 (z = cl) in the nearest finite difference grid steps to intervals of dzp (cm). Each line contains the variables:
z(i), p(i), th(i), v(i)*24, c(i), y(i), t(i), ck(i)*24
in the FORTRAN format:
(f6.1, 2x, f10.2, 5x, f8.4, 5x, f8.4, 5x, f8.3, 5x, f8.3, 2x, f5.1, 3f8.5)
where the variables are as defined in the section on common blocks.
In this version v(0) is taken to be the same as the upper boundary condition, a combination of evaporation and infiltration. The second subsection displays summary data for :
xno3, xnh4, enh4, xtnh4, xno3+xtnh4, dnit, Dplno3, Dplnh4 and gwn, where
File outfs(1)//2.out  soil nitrogen mass balance data (disabled in this version)
Each line after the header shows the following variables:
klm, iyr, imm, idd, nday, tninit/10, tnfin/10, csln/10, pln/10, accpln/10, dnit/10, gwn/10, tnbal/10, avpd/10, cslr/10
in FORTRAN format (1x, i4, 3i3, i4, 7f9.3, g13.3, 2f9.3), where
 tnbal = (tninit  tnfin + csln  pln  dnit  gwn), and
 the remaining variables are as defined earlier. Note that dividing the variables by 10 converts from (ug/cm^{2}) to (kg/ha).
File outfs(1)//3.out  soil water mass balance data
Each line after the header shows the following variables:
klm, iyr, imm, idd, nday, winit, wfin, crdaly(klm), xinfl(klm), dev, runof(klm), gwater, plnup, pet(klm), wbal
in FORTRAN format (1x, i2, 2i3, i4, 9f9.3, g13.3), where
dev = total soil surface evaporation (cm) during one day,
gwater = amount of water (cm) passing from the bottom of soil layer 3 to the ground water since the start of day,
plnup = amount of water (cm) taken up by plants during one day,
wbal = (winit  wfin + crdaly(klm)  runof(klm)  dev  plnup  gwater), the imbalance in soil profile water volume during one day, and the remaining variables are as defined earlier.
Note the dimension of (cm) is actually cm^{3} of soil water volume per cm^{2} of land surface (cm^{3}/cm^{2}).
File outfs(1)//4.out  volatilization, mineralization summary
Each line after the header shows the variables:
iyr, nday, napp, csinl/10, csin/10, avpd/10, csonl/10, cson/10, ampd/10, cam/10, csln/10, cson/10, tave
in FORTRAN format (i2, 2i4, 10f9.3),
where all the variables are as defined earlier. Note that dividing (ug/cm^{2}) converts to (kg/ha).
File outfs(1)//5.out  nutrient release to ground water (disabled in this version)
Each line after the header shows the following variables:
iyr, nday, (xno3+xnh4), c(n), y(n), gwn
in FORTRAN format (i4, i5, 4f12.3), where
c(n) = the concentration of NH_{4} (ug/ml) at the bottom of soil layer 3,
y(n) = the concentration of NO (ug/ml) at the bottom of soil layer 3, and the remaining variables are as defined before.
subroutine compute (ifc, noluck, cqin)
Calls the subroutines to calculate water and heat flow, and contaminant transport for one time step.
ifc  output, integer, the number of times compute has been called in the current simulation day, or, the number of time steps, dt, calculated in the simulation day.
noluck  output, failure flag for subroutines pwater and water; noluck = 1 ® Newton's iteration failed to converge in maxit tries, noluck = 0 ® success, noluck = 1 ® endless loop in pwater or water (no convergence), noluck = 3 ® number of time steps exceeds 100,000 in compute, noluck = 4 ® dt goes to zero in pwater or water as adaptive time step tries for covergence.
cqin  cumulative soil surface inflow (cm) from rain on rain day, used only for console display.
subroutine dgsl (n, c, d, e, b, info)
Solves the tridiagonal problem central to the finite difference solution of Richards' equation.
n  number of elements in the tridiagonal array
c  array elements for the subdiagonal, destroyed
d  array elements for the diagonal, destroyed
e  array elements for the superdiagonal, destroyed
b  array elements for the right hand side vector, returns the answer
info  output, integer, 0 if successful, k if the kth element of the diagonal becomes zero (failure).
function dink (p1, p2, sc, bc, at, vm, vn)
Calculates the integral mean hydraulic conductivity with respect to matric suction.
p1  matric suction (cm) at the lower grid point
p2  matric suction (cm) at the lower grid point
sc  mean saturated hydraulic conductivity (cm/h)
bc  mean conductivity exponent (dimensionless)
at  mean displacement pressure (cm)
vm  mean vanGenuchten exponent (dimensionless)
vn  mean vanGenuchten exponent (dimensionless)
subroutine dmkh (kk1, kk2, hh1, hh2, sc, bc, at, vm, vn, dz, wv)
Calculates the approximate Darcian intergrid conductivity mean km = wv*kk2 + (1wv)*kh, where kh is the integral mean of conductivity between grid points 1 and 2 with respect to hydraulic pressure head
kk1  hydraulic conductivity (cm/h) of the lower grid point (z1)
kk2  hydraulic conductivity (cm/h) of the upper grid point (z2)
hh1 = hydraulic pressure head (cm) of the soil water at the lower grid point
hh2  hydraulic pressure head (cm) of the soil water at the upper grid point
sc  mean saturated conductivity (cm/h) between the grid points
bc  mean conductivity exponent (dimensionless) between the grid points
at  mean displacement pressure (cm) between the grid points
vm  mean vanGenuchten exponent (dimensionless) between the grid points
vn  mean vanGenuchten exponent (dimensionless) between the grid points
dz  separation between grid points (cm)
wv  Darcian weight (dimensionless)
subroutine idist2 (sval)
sval  output, array of 1 ... n, the values of the soil profile variables are linearly interpolated from sparse input file data (sinit.dat) to the finite difference method grid positions, zi, i = 1 to n.
subroutine interp (z, v, zv, sval)
given the known data set, (z_{i}, v_{i}), i = 0 to n, this routine linearly interpolates from the known zvalue, zv, not in the set, to the vvalue, sval; used to interpolate between data points in the model soil column from z = 0 to z = cl.
subroutine nextapp (allok)
This subroutine reads information regarding the next poultry litter application and verifies compatibility with the current weather data.
allok  output, logical flag, set to .false. if the next litter application date from the input file precedes the current simulation date, but does not change from year 1999 to 2000 (not yet y2k compliant).
subroutine output (eod, sofp, soft, ifc)
Generates the output files, *1.out, *2.out, et cetera.
eod  input, logical flag, set to .true. if subroutine output has been called at the end of the simulation day; .false. suppresses output to files *2.out, *3.out, *4.out and *5.out to avoid filling them with partiallycalculated data.
sofp  sum of objective functions over field soil water pressure measurements
soft  sum of objective functions over field soil temperature measurements
ifc  input, integer, the number of times subroutine compute has been called in the current simulation day.
function ptc (ps, sc, bc, at, vm, vn)
Converts matric suction to hydraulic conductivity
ps  matric suction (cm)
sc  mean saturated hydraulic conductivity (cm/h)
bc  mean conductivity exponent (dimensionless)
at  mean displacement pressure (cm)
vm  mean vanGenuchten exponent (dimensionless)
vn  mean vanGenuchten exponent (dimensionless)
pwater (ifc, noluck)
Calculates soil water flow at the partial time step, prk*dt.
ifc  integer, the number of times subroutine compute has been called
noluck  integer, noluck = 1 ® Newton's iteration failed to converge in maxit tries, noluck = 0 ® success, noluck = 1 ® endless loop in pwater or water (no convergence), noluck = 4 ® dt goes to zero in pwater or water as adaptive time step tries for covergence.
subroutine readit (allok)
Reads in the next day's weather data.
allok  output, logical flag, set .false. if weather.dat file is exhausted
subroutine water (ifc, noluck, cqin, dtfl)
Calculates the soil water flow at the full time step, dt.
ifc  integer, number of time compute has been called
noluck  integer, noluck = 1 ® Newton's iteration failed to converge in maxit tries, noluck = 0 ® success, noluck = 1 ® endless loop in pwater or water (no convergence), noluck = 4 ® dt goes to zero in pwater or water as adaptive time step tries for covergence.
cqin  cumulative soil surface inflow (cm) from rain on rain day, used only for console display.
dtfl  flag, dtfl = 1.0 if the ponded infiltration on a rain day has just gone to zero, 0.0 otherwise, marks the exact time step in which infiltration completes.
subroutine weather (allok)
This subroutine reads in weather data from a dataset in an input data file it calls the readit subroutine. it also calculates some of the constants required by hargreaves formula for estimating evapotranspiration, and calls the evapo subroutine to calculate the daily evapotranspiration.
allok  output, logical flag, .true. if weather.dat file is not exhausted
subroutine wpset (ll, lu)
Calculates soil hydraulic and thermal characteristics at the grid points in the index range from ll to lu.
ll  input, integer, lowest depth position index of profile properties to be calculated
lu  input, integer, upper depth position index (farther from soil surface) to be calculated