Skip to content

Commit ddbceaa

Browse files
authored
Merge branch 'swat-model:main' into src_upadates_0626
2 parents b133ba9 + a238807 commit ddbceaa

6 files changed

Lines changed: 76 additions & 106 deletions

File tree

data/Ames_sub1/carb_coefs.cbn

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,8 @@ prmt_21 1000.
2222
prmt_44 0.5
2323

2424
# Length of days that a tillage event will be effective
25-
till_eff_days 30
25+
till_eff_days 30
26+
27+
# Manure carbon coefficients
28+
rtof 0.5
29+
man_to_c 0.42

src/carbon_coef_read.f90

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,12 @@ subroutine carbon_coef_read
8383
case("till_eff_days")
8484
backspace (107)
8585
read (107,*,iostat=eof) var_name, till_eff_days
86+
case("rtof")
87+
backspace (107)
88+
read (107,*,iostat=eof) var_name, man_coef%rtof
89+
case("man_to_c")
90+
backspace (107)
91+
read (107,*,iostat=eof) var_name, man_coef%man_to_c
8692
case default
8793
write(*, fmt="(a,a,a)", advance="yes") "Error: The variable ", var_name, "in the input file carb_coefs.cbn is not a recognized variable."
8894
write(*, fmt="(a)") " and cannot be processed."

src/carbon_module.f90

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,14 @@ module carbon_module
6363
type (carbon_inputs), dimension(2) :: carbdb
6464
type (carbon_inputs) :: carbz
6565
logical :: carbon_coef_file = .false. ! !set to true if carbon_coef.cbn file exits.
66+
67+
type manure_coef
68+
real :: rtof = 0.5 !none |weighting factor used to partition the
69+
! |organic N & P concentration of septic effluent
70+
! |between the fresh organic and the stable organic pools
71+
real :: man_to_c = 0.42 ! |conversion of manure solids to carbon
72+
end type manure_coef
73+
type (manure_coef) :: man_coef
6674

6775
type organic_allocations
6876
! real :: abl = 0. ! |Fraction of microbial biomass loss due to leaching

src/pl_fert.f90

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ subroutine pl_fert (ifrt, frt_kg, fertop)
4545

4646
j = ihru
4747

48-
rtof = 0.5
48+
rtof = man_coef%rtof
4949
!! calculate c:n ratio for manure applications for SWAT-C
5050
if (bsn_cc%cswat == 2) then
5151
if (fertdb(ifrt)%forgn > 0. .or. fertdb(ifrt)%forgp > 0. ) then
@@ -54,7 +54,7 @@ subroutine pl_fert (ifrt, frt_kg, fertop)
5454

5555
if (manure_flag) then
5656
org_frt%m = frt_kg
57-
org_frt%c = 0.42 * frt_kg
57+
org_frt%c = man_coef%man_to_c * frt_kg
5858
org_frt%n = fertdb(ifrt)%forgn * frt_kg
5959
org_frt%p = fertdb(ifrt)%forgp * frt_kg
6060
c_n_rto = .175 * org_frt%c / (fertdb(ifrt)%fminn + fertdb(ifrt)%forgn + 1.e-5)
@@ -133,7 +133,7 @@ subroutine pl_fert (ifrt, frt_kg, fertop)
133133
soil1(j)%lig(l) = soil1(j)%lig(l) + 0.175 * pool_fr * org_frt
134134

135135
!! total residue pool is metabolic + structural
136-
soil1(j)%rsd(l) = soil1(j)%meta(l) + soil1(j)%str(l)
136+
! soil1(j)%rsd(l) = soil1(j)%meta(l) + soil1(j)%str(l)
137137

138138
end if
139139

src/soil_nutcarb_init.f90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ subroutine soil_nutcarb_init (isol)
5151

5252
do ly = 1, nly
5353
if (ly == 1) then
54-
soil1(ihru)%cbn(ly) = max(0.001, soil(isol)%phys(ly)%cbn) !! assume 0.001% carbon if zero
54+
soil1(ihru)%cbn(ly) = max(0.001, soil(ihru)%phys(ly)%cbn) !! assume 0.001% carbon if zero
5555
else
56-
soil1(ihru)%cbn(ly) = soil(isol)%phys(ly)%cbn
56+
soil1(ihru)%cbn(ly) = soil(ihru)%phys(ly)%cbn
5757
endif
5858
enddo
5959

src/soils_init.f90

Lines changed: 52 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,19 @@ subroutine soils_init
2929
integer :: n = 0 ! |count to use to compute an average
3030
real :: dep_new1 = 0. !mm |depth of top of septic layer
3131
real :: dep_new2 = 0. !mm |depth of bottom of septic layer
32-
real :: sum = 0. ! |temporary sum to do and average with
32+
real :: sum_bd = 0. ! |temporary sum to do weighted average with
33+
real :: sum_awc = 0. ! |temporary sum to do weighted average with
34+
real :: sum_cbn = 0. ! |temporary sum to do weighted average with
35+
real :: sum_k = 0. ! |temporary sum to do weighted average with
36+
real :: sum_clay = 0. ! |temporary sum to do weighted average with
37+
real :: sum_silt = 0. ! |temporary sum to do weighted average with
38+
real :: sum_sand = 0. ! |temporary sum to do weighted average with
39+
real :: sum_rock = 0. ! |temporary sum to do weighted average with
40+
real :: sum_alb = 0. ! |temporary sum to do weighted average with
41+
real :: sum_usle_k = 0. ! |temporary sum to do weighted average with
42+
real :: sum_ec = 0. ! |temporary sum to do weighted average with
43+
real :: sum_cal = 0. ! |temporary sum to do weighted average with
44+
real :: sum_ph = 0. ! |temporary sum to do weighted average with
3345
logical :: i_exist !none |check to determine if a file exists
3446
character (len=500) :: header = "" ! |header of file
3547
character (len=80) :: titldum = "" ! |title of file
@@ -209,110 +221,50 @@ subroutine soils_init
209221
sol(isol)%phys(i)%d = csld
210222
endif
211223

212-
sum = 0.0
213224
n = 0
214-
do j = pcd, csld
215-
sum = sum + sol_mm_db(1)%ly(j)%bd
216-
n = n + 1
217-
end do
218-
sol(isol)%phys(i)%bd = sum/n
219-
220-
sum = 0.0
221-
n = 0
222-
do j = pcd, csld
223-
sum = sum + sol_mm_db(1)%ly(j)%awc
224-
n = n + 1
225-
end do
226-
sol(isol)%phys(i)%awc = sum/n
227-
228-
229-
sum = 0.0
230-
n = 0
231-
do j = pcd, csld
232-
sum = sum + sol_mm_db(1)%ly(j)%k
233-
n = n + 1
234-
end do
235-
sol(isol)%phys(i)%k = sum/n
236-
237-
sum = 0.0
238-
n = 0
239-
do j = pcd, csld
240-
sum = sum + sol_mm_db(1)%ly(j)%cbn
241-
n = n + 1
242-
end do
243-
sol(isol)%phys(i)%cbn = sum/n
244-
245-
sum = 0.0
246-
n = 0
247-
do j = pcd, csld
248-
sum = sum + sol_mm_db(1)%ly(j)%clay
249-
n = n + 1
250-
end do
251-
sol(isol)%phys(i)%clay = sum/n
225+
sum_bd = 0.
226+
sum_awc = 0.
227+
sum_cbn = 0.
228+
sum_k = 0.
229+
sum_clay = 0.
230+
sum_silt = 0.
231+
sum_sand = 0.
232+
sum_rock = 0.
233+
sum_alb = 0.
234+
sum_usle_k = 0.
235+
sum_ec = 0.
236+
sum_cal = 0.
237+
sum_ph = 0.
252238

253-
sum = 0.0
254-
n = 0
255-
do j = pcd, csld
256-
sum = sum + sol_mm_db(1)%ly(j)%silt
257-
n = n + 1
258-
end do
259-
sol(isol)%phys(i)%silt = sum/n
260-
261-
sum = 0.0
262-
n = 0
263-
do j = pcd, csld
264-
sum = sum + sol_mm_db(1)%ly(j)%sand
265-
n = n + 1
266-
end do
267-
sol(isol)%phys(i)%sand = sum/n
268-
269-
sum = 0.0
270-
n = 0
271-
do j = pcd, csld
272-
sum = sum + sol_mm_db(1)%ly(j)%rock
273-
n = n + 1
274-
end do
275-
sol(isol)%phys(i)%rock = sum/n
276-
277-
sum = 0.0
278-
n = 0
279-
do j = pcd, csld
280-
sum = sum + sol_mm_db(1)%ly(j)%alb
281-
n = n + 1
282-
end do
283-
sol(isol)%ly(i)%alb = sum/n
284-
285-
sum = 0.0
286-
n = 0
287-
do j = pcd, csld
288-
sum = sum + sol_mm_db(1)%ly(j)%usle_k
289-
n = n + 1
290-
end do
291-
sol(isol)%ly(i)%usle_k = sum/n
292-
293-
sum = 0.0
294-
n = 0
295-
do j = pcd, csld
296-
sum = sum + sol_mm_db(1)%ly(j)%ec
297-
n = n + 1
298-
end do
299-
sol(isol)%ly(i)%ec = sum/n
300-
301-
sum = 0.0
302-
n = 0
303-
do j = pcd, csld
304-
sum = sum + sol_mm_db(1)%ly(j)%cal
305-
n = n + 1
306-
end do
307-
sol(isol)%ly(i)%cal = sum/n
308-
309-
sum = 0.0
310-
n = 0
311239
do j = pcd, csld
312-
sum = sum + sol_mm_db(1)%ly(j)%ph
240+
sum_bd = sum_bd + sol_mm_db(1)%ly(j)%bd
241+
sum_awc = sum_awc + sol_mm_db(1)%ly(j)%awc
242+
sum_k = sum_k + sol_mm_db(1)%ly(j)%k
243+
sum_cbn = sum_cbn + sol_mm_db(1)%ly(j)%cbn
244+
sum_clay = sum_clay + sol_mm_db(1)%ly(j)%clay
245+
sum_silt = sum_silt + sol_mm_db(1)%ly(j)%silt
246+
sum_sand = sum_sand + sol_mm_db(1)%ly(j)%sand
247+
sum_rock = sum_rock + sol_mm_db(1)%ly(j)%rock
248+
sum_alb = sum_alb + sol_mm_db(1)%ly(j)%alb
249+
sum_usle_k = sum_usle_k + sol_mm_db(1)%ly(j)%usle_k
250+
sum_ec = sum_ec + sol_mm_db(1)%ly(j)%ec
251+
sum_cal = sum_cal + sol_mm_db(1)%ly(j)%cal
252+
sum_ph = sum_ph + sol_mm_db(1)%ly(j)%ph
313253
n = n + 1
314254
end do
315-
sol(isol)%ly(i)%ph = sum/n
255+
sol(isol)%phys(i)%bd = sum_bd/n
256+
sol(isol)%phys(i)%awc = sum_awc/n
257+
sol(isol)%phys(i)%k = sum_k/n
258+
sol(isol)%phys(i)%cbn = sum_cbn/n
259+
sol(isol)%phys(i)%clay = sum_clay/n
260+
sol(isol)%phys(i)%silt = sum_silt/n
261+
sol(isol)%phys(i)%sand = sum_sand/n
262+
sol(isol)%phys(i)%rock = sum_rock/n
263+
sol(isol)%ly(i)%alb = sum_alb/n
264+
sol(isol)%ly(i)%usle_k = sum_usle_k/n
265+
sol(isol)%ly(i)%ec = sum_ec/n
266+
sol(isol)%ly(i)%cal = sum_cal/n
267+
sol(isol)%ly(i)%ph = sum_ph/n
316268

317269
pcd = csld + 1
318270
end do

0 commit comments

Comments
 (0)