Dear Swat Users
I am facing problem regarding management operation in swat. I want to grow winter wheat in some HRUs. Crop starts in november and ends in febuary. When I assign it, model lose its continuity in crop growth. Value of Leaf area index and biomass growth has not picked from last time step when model cross the year (From december to january).
In another run when I grow crop within the year (between jan to Dec), It works well, But another problem I found that using daily timestep I donot get any value for yield component (always zero) but when I run model with monthly time step, I get some yield values.
What can be the reason?
I would be very much greatful if someone suggest solution for my problem.
Thanks and regards
Kaushal
Attached is mgt file for irrigated cotton production in Australia
which also runs across the year change. Maybe you can see what you do
different.
Willem
I have no clear idea why it would not give you continuity without
checking out your whole model. The file does not seem to be wrong.
Except for the fact that you have not given IRRNO, so the model does
not know where to get any irrigation water, but I assumed you edited
that later. It should be the number of the reservoir
Try running the file without a crop growing at the beginning of the
simulation: i.e. IGRO = 0 and see if it does everything right in the
second year of the simulation.
Maybe you reach your heat units earlier?
If all else fails: download the source code and start digging.
Willem
On 10/28/07, Kaushal Garg <garg...@gmail.com> wrote:
> Dear Willem
> I have again problem about management inputs. As you know that my query was
> when year crosses, the continuity of crop growth get disturb. Model starts
> calculating Yield and biomass again from beginning but not from previous
> timestep. You sent me mgt file for
> cotton crop, simulation made for Australia.
>
> I am not getting crop continuity when I run it for sugarcane crop. Plz look
> at this file (12 months duration, starting from July and ends at June). It
> would be great if you please describe how to fix it?
>
> Thanks for your support and help.
>
> Regards
> Kaushal
>
>
>
> On 10/26/07, Kaushal Garg <garg...@gmail.com > wrote:
> >
> > Dear Willem
> > Thanks for your prompt reply and help. It is working now.
> > Thanks a lot
> > Regards
> > Kaushal
---------- Forwarded message ----------
From: Kaushal Garg <garg...@gmail.com>
Date: Oct 31, 2007 4:28 AM
Subject: Re: [SWAT-user:774] regarding crop growth
To: willem vervoort <willemv...@gmail.com>
Dear Willem
Please find the files in attachment as I wote in previous mail.
Thanks and regards
kaushal
Secondly. I am not sure. I don't see any real stress in the crop, I
only see that the LAI suddenly goes to 0 (i.e. the crop loses all its
leaves and ability to synthesise). Maybe you should have a good look
at the entries in crop.dat, maybe there is something wrong there. I am
not sure.
Willem
On Oct 31, 2007 4:07 AM, Kaushal Garg <garg...@gmail.com> wrote:
>
>
> Dear Willem
>
> I again need your help regarding crop growth in SWAT. In another approach, I
> tried to take sugarcane crop in between Jan to Dec (with in single year). I
> see an unexpected result in this simulation. Biomass value and crop yield
> subsequently increased during first six to seven months (from Jan to July)
> but in later months (after July) no growth was found; despite that I applied
> fertilizer and irrigation throughout the year. I have tried to run the
> model by changing many parameters like heat units from its low value to very
> high values but result are found more or less same. (I assign management
> inputs by date wise).
>
>
>
> In case of sugarcane crop, I do expect yield value in range of 50-60 metric
> ton/ha. But here I found the yield is just in range of 2-10 ton/ha, which is
> indigestible to me. Can you please suggest me that:
>
> What are the parameters in crop growth module those can actuate the crop
> yield? Or in other words, what are the parameters those can be changed to
> get desirable out put (In case of Sugarcane, high biomass and high yield).
>
> What may be reason that crop only grows well during first 6-7 months and
> then growth found to be ceased in simulation run?
>
>
>
> I have attached output file obtained from the run. We can find biomass and
> yield accumulation till June/July but no sugarcane growth in later months.
> Results for other crops are found ok.
>
>
>
> Thanks Willem for your previous replies. Your help is really appreciable.
>
> Regards
>
> Kaushal
>
>
>
>
> On 10/29/07, willem vervoort <willemv...@gmail.com > wrote:
> > Dear kaushal,
> > I have had a look at your management file. It seems to me you have a
> > crop which grows from 1 July to 15 June the next year. Is this
> > correct?
> >
> > I have no clear idea why it would not give you continuity without
> > checking out your whole model. The file does not seem to be wrong.
> > Except for the fact that you have not given IRRNO, so the model does
> > not know where to get any irrigation water, but I assumed you edited
> > that later. It should be the number of the reservoir
> >
> > Try running the file without a crop growing at the beginning of the
> > simulation: i.e . IGRO = 0 and see if it does everything right in the
Willem
Thanks for your input, I had another look at the theory, input
instructions and the source code. I think once I had a look at the
source code I understand the input instructions better. The source
code says (in "simulate.f"):
(Note the first two lines are comments from the programmer)
!! if crop is growing, reset values for accumulated heat units,
!! etc. to zero in northern hemisphere
if (igro(j) == 1) then
if (sub_lat(hru_sub(j)) > 0.) then
phuacc(j) = 0.
laimxfr(j) = 0.
hvstiadj(j) = 0.
endif
phu_plt(nro(j),icr(j),j) = phu_plt(iix,iiz,j)
idplt(nro(j),icr(j),j) = idplt(iix,iiz,j)
hi_targ(nro(j),icr(j),j) = hi_targ(iix,iiz,j)
ncrops(iix,iiz,j) = ncrops(iix,iiz,j) + 1
end if
I think the comments are crucial (and I think the northern hemisphere
is not important here). What this suggests is that I have been
misreading the input instructions (p 232 and 233 in the SWAT 2005
input manual). I think what this means is that:
If IGRO ==1:
Than PHU_PLT is not the normal amount of heat units, but the heat
units that _are_still_needed_ to mature the crop. i.e. "total needed
heat units" - "already accumulated heat units"
However this seems odd, how would you know this as a standard value,
as depending on the year past, this value might change. I think that
phu_acc needs to keep counting if IGRO is 1 and in this case PHU_PLT =
HEAT UNITS in the plant operation.
Anyone from the SWAT developers care to comment??
Willem
On Nov 16, 2007 11:04 AM, Yi <luoy...@gmail.com> wrote:
> Hi Willem,
>
> For crop growth, calculation of LAI is based on the optimal LAI curve
> which is a function of the fraction of the PHU (consult the
> theoretical document of swat2000, pp275-277). The PHU is defined for
> each crop/vegeation in the crop2000.dat file. When fraction of the PHU
> is zero, the LAI is equal to zero. The SWAT2000 model discontinues
> accumulation of PHU at end of the calendar year and restart at the
> beginning of the following year ( simulate.f file ). So, LAI starts
> from zero again. So, you lose continuty of crop growth.
>
> The crop growth simulation in SWAT is based on PHU (plant heat unit),
> rather than date. Operations such as planting, harvesting, irrigation
> and etc. maybe scheduled on either date or plant heat unit. When
> scheduled on date, crop growth may be discontinued before maturity.
> For over-year crop, when the total plant heat unit is assigned on
> basis of its total growth season and harvest operation is scheduled on
> fraction of heat unit, the fraction should be carefully calibrated,
> otherwise, the crop may need more days to reach maturity than usual
> provided that a near unit 1 value is used which is generally proper
> for one-year crop.
>
> For over-year crop, how to define its total plant heat unit and the
> fraction of PHU for harvest is not dscribed in SWAT documents ( theory
> and user's manual). Any users would like to share their experiences?
> Meanwhile, inter-season variability of crop parameters remains an
> issue to be discussed. Any comments from other users in this group?
>
> Cheers,
>
> Yi
>
>
> On Nov 16, 4:55 pm, "willem vervoort" <willemvervo...@gmail.com>
> > > > Kaushal- Hide quoted text -
> >
> > - Show quoted text -
>
I had another read of the io manual: ch 20 p 232 and 233
The parameter IGRO is only supposed to operate at the beginning of the
simulation, so not at beginning of each year. So I think what goes
wrong is that this piece of code is at the wrong place. It should be
as part of the initialisation of the whole year. It might have even
been added because something is going wrong with the heat units. It
seems to me that it depends on where you are. If this is the first
year of the simulation than the heat units should accumulate to
phuplt, otherwise it should accumulate to HEAT UNITS under mgt
operation = 1 (mgt 4 in readmgt.f)
This is the "pseudocode" of what I think should be happening:
Begin simulation for n years
year 1
If IGRO = 1,
phuacc=0,
accumulate heat units until the crop is matured (this means
PHU_PLT has to be total heat units for crop maturity - some
long term average accumulated heat units for previous year
(prior to simulation))
if mgt operation = 5 or 8,
igro = 0
if mgt operation = 1
phuacc = 0
igro = 1
year = 2 - n
if igro =1
phuacc(yr[i+1])(day[1]) = phuacc(yr[i])(day[365 or 366])
(or the end value of the previous year)
if mgt operation = 5 or 8,
igro = 0
if mgt operation = 1
phuacc = 0
igro = 1
I found another bit of code and I will do a bit more study on that
this is "readmgt.f"
!! set values for cover/crop already growing
if (igro(ihru) == 1) then
igrow = 1
idplt(1,1,ihru) = ncrp
idplt(1,2,ihru) = ncrp
lcr = ncrp
phuacc(ihru) = .1
npl = 1
nhv = 0
Note that phuacc is in fractions, so phuacc = 1 means maturity. But
why is phuacc set to 0.1 when a crop is growing. I think if my
interpretation of phu_plt is correctly it should be set 0.
The other thing I don't understand is that the heat units don't seem
to be allowed to be lower than 700 or larger than 3500. In the code
that I use from readmgt.f:
if (mgt4 < 700.) mgt4 = 1700.
if (mgt4 > 3500.) mgt4 = 3500.
Is this correct? Can anyone explain this, I am not an expert in crop
growth and am just trying to interpret the code. Maybe crops can only
have heat units between 1700 and 3500. Is there a typo? should it be <
1700 rather than < 700??
Willem