Skip to content

Commit b5c414e

Browse files
authored
Merge pull request #35 from tugraskan/jeffs
12/23 - changes to MUSLE C factor and some carbon updates
2 parents 6dfe431 + 2416697 commit b5c414e

File tree

10 files changed

+212
-216
lines changed

10 files changed

+212
-216
lines changed

.vs/cmake.db

-92 KB
Binary file not shown.

src/cal_parmchg_read.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ subroutine cal_parmchg_read
115115
case ("cha")
116116
cal_upd(i)%num_elem = sp_ob%chan
117117
case ("swq")
118-
cal_upd(i)%num_elem = sp_ob%chan
118+
cal_upd(i)%num_elem = db_mx%ch_nut
119119
case ("res")
120120
cal_upd(i)%num_elem = sp_ob%res
121121
case ("sdc")

src/cbn_zhang2.f90

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -292,13 +292,8 @@ subroutine cbn_zhang2
292292
!!calculate c/n dynamics for each soil layer
293293
!!===========================================
294294
do k = 1, soil(j)%nly
295-
if (k == 1) then
296-
!10 cm / 1000 = 0.01m; 1 ha = 10000 m2; ton/m3; * 1000 --> final unit is kg/ha; rock fraction is considered
297-
sol_mass = (10) / 1000.* 10000. * soil(j)%phys(k)%bd * 1000. * (1. - soil(j)%phys(k)%rock / 100.)
298-
else
299-
sol_mass = (soil(j)%phys(k)%d - soil(j)%phys(k-1)%d) / 1000. * 10000. * soil(j)%phys(k)%bd * 1000. * &
300-
(1- soil(j)%phys(k)%rock / 100.)
301-
end if
295+
!! mm / 1000 * 10000 m2 / ha * ton/m3 * 1000 kg/ha -> kg/ha; rock fraction is considered
296+
sol_mass = 10000. * soil(j)%phys(k)%thick * soil(j)%phys(k)%bd * (1 - soil(j)%phys(k)%rock / 100.)
302297

303298
! if k = 1, then using temperature, soil moisture in layer 2 to calculate decomposition factor
304299
if (k == 1) then

src/ero_cfactor.f90

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,10 @@ subroutine ero_cfactor
6666
end if
6767
else
6868
!! new method using residue and biomass cover
69-
rsd_sumfac = 0.
7069
grnd_sumfac = 0.
70+
rsd_sumfac = pldb(idp)%rsd_pctcov * (soil1(j)%rsd(1)%m +1.) / 1000.
7171
do ipl = 1, pcom(j)%npl
7272
idp = pcom(j)%plcur(ipl)%idplt
73-
rsd_sumfac = rsd_sumfac + pldb(idp)%rsd_pctcov * (soil1(j)%rsd(1)%m +1.) / 1000.
7473
if (pl_mass(j)%ab_gr(ipl)%m > 1.e-6) then
7574
ab_gr_t = pl_mass(j)%ab_gr(ipl)%m / 1000.
7675
grnd_sumfac = grnd_sumfac + 100. * pldb(idp)%usle_c / ab_gr_t
@@ -97,25 +96,30 @@ subroutine ero_cfactor
9796
grnd_covfact = max (0., grnd_covfact)
9897

9998
!! ***jga
100-
grnd_covfact = 1.34 + 0.225 * log(pldb(idp)%usle_c)
101-
grnd_covfact = amin1 (1., grnd_covfact)
102-
grnd_covfact = max (0., grnd_covfact)
99+
!grnd_covfact = 1.34 + 0.225 * log(pldb(idp)%usle_c)
100+
!grnd_covfact = amin1 (1., grnd_covfact)
101+
!grnd_covfact = max (0., grnd_covfact)
103102
c = Max(1.e-10, rsd_covfact * can_covfact * grnd_covfact)
104103

105104
!! newer method using residue and biomass cover
106-
!rsd_sumfac = 0.
107-
!grnd_sumfac = 0.
108-
!can_covfact = 10000.
109-
!do ipl = 1, pcom(j)%npl
110-
! ab_gr_t = pl_mass(j)%ab_gr(ipl)%m / 1000.
111-
! grnd_sumfac = grnd_sumfac + ab_gr_t
112-
! rsd_sumfac = rsd_sumfac + (soil1(j)%rsd(1)%m +1.) / 1000.
113-
! can_covfact = amin1 (can_covfact, pcom(j)%plg(ipl)%cht)
114-
!end do
105+
rsd_sumfac = (soil1(j)%rsd(1)%m +1.) / 1000.
106+
grnd_covfact = 0.
107+
can_covfact = 10000.
108+
do ipl = 1, pcom(j)%npl
109+
idp = pcom(j)%plcur(ipl)%idplt
110+
ab_gr_t = pl_mass(j)%ab_gr(ipl)%m / 1000.
111+
!grnd_sumfac = grnd_sumfac + ab_gr_t
112+
grnd_covfact = grnd_covfact + pldb(idp)%usle_c * ab_gr_t / (ab_gr_t + exp(1.175 - 1.748 * ab_gr_t))
113+
can_covfact = amin1 (can_covfact, pcom(j)%plg(ipl)%cht)
114+
end do
115115
!grnd_covfact = grnd_sumfac / (grnd_sumfac + exp(1.175 - 1.748 * grnd_sumfac))
116-
!rsd_covfact = exp(-0.75 * rsd_sumfac)
117-
!bio_covfac = 1. - grnd_covfact * exp(-0.1 * can_covfact)
118-
!c = Max(1.e-10, rsd_covfact * bio_covfac)
116+
rsd_covfact = exp(-0.75 * rsd_sumfac)
117+
118+
can_frcov = amin1 (1., pcom(j)%lai_sum / 3.)
119+
can_covfact = 1. - can_frcov * Exp(-.328 * pcom(j)%cht_mx)
120+
121+
bio_covfac = 1. - grnd_covfact * exp(-0.1 * can_covfact)
122+
c = Max(1.e-10, rsd_covfact * grnd_covfact * bio_covfac)
119123

120124
!! erosion output variables
121125
ero_output(j)%ero_d%c = c

src/hyd_connect.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ subroutine hyd_connect
413413
do while (idone == 0)
414414
do i = 1, sp_ob%objs
415415

416-
if (iord > 1000) then
416+
if (iord > 5000) then
417417
open (9002,file="looping.con",recl = 8000)
418418
write (9002, *) "LOOPING.CON CHECKING INFINITE LOOPS"
419419
do iob = 1, sp_ob%objs

src/nut_orgnc2.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ subroutine nut_orgnc2
164164
end if
165165
sol_thick = 0.
166166
sol_thick = soil(j)%phys(k)%d-soil(j)%phys(k-1)%d
167-
soil1(j)%tot(1)%c = soil1(j)%str(k)%c + soil1(j)%meta(k)%c + soil1(j)%hp(k)%c + soil1(j)%hs(k)%c
167+
soil1(j)%tot(1)%c = soil1(j)%hp(k)%c + soil1(j)%hs(k)%c
168168
Y1 = soil1(j)%microb(k)%c + VBC
169169
VBC=0.
170170
IF(Y1>=.01)THEN

src/res_nutrient.f90

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,14 @@ subroutine res_nutrient (iob)
5151
phosk = amin1 (phosk, 1.)
5252
phosk = max (phosk, 0.)
5353

54-
!! remove nutrients from reservoir by settling
54+
!! remove nutrients from reservoir by settling - exclude soluble nutrients
5555
!! other part of equation 29.1.3 in SWAT manual
56-
wbody%solp = wbody%solp * (1. - phosk)
56+
!wbody%solp = wbody%solp * (1. - phosk)
5757
wbody%sedp = wbody%sedp * (1. - phosk)
5858
wbody%orgn = wbody%orgn * (1. - nitrok)
59-
wbody%no3 = wbody%no3 * (1. - nitrok)
60-
wbody%nh3 = wbody%nh3 * (1. - nitrok)
61-
wbody%no2 = wbody%no2 * (1. - nitrok)
59+
!wbody%no3 = wbody%no3 * (1. - nitrok)
60+
!wbody%nh3 = wbody%nh3 * (1. - nitrok)
61+
!wbody%no2 = wbody%no2 * (1. - nitrok)
6262

6363
!! calculate chlorophyll-a and water clarity
6464
chlaco = 0.

src/soil_nutcarb_write.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ subroutine soil_nutcarb_write(out_freq)
4949

5050
!! sum the output for the entire soil profile
5151
do j = 1, sp_ob%hru
52-
iob = sp_ob1%hru + j - 1 !!!!!! added for new output write !!nbs
52+
iob = sp_ob1%hru + j - 1
5353
soil1(j)%tot_org = soil_org_z
5454
soil_prof_hact = soil_org_z
5555
soil_prof_hsta = soil_org_z

0 commit comments

Comments
 (0)