Open BrianCollinss opened 5 years ago
I suspect it's because swim requires an estimate of Et at the start of the day - @hut104 would know for sure.
If that is the case, can we skip the second call if we have another photosyhtnesis model linked, which internally calculates water demand? I guess for RUE model it does make a difference. My guess is it's not needed if a photosynthesis module if it internally calculates water demand. I commented it out for such a model and nothing changed.
The following is with the RUE model.
With second call:
ApsimVersion = 7.10 rcfea03d9df461ae2c4efd18b8270414f50a44a0f
Title = New
Date biomass yield grain_protein grain_size CO2
(dd/mm/yyyy) (kg/ha) (kg/ha) (%) (g) ()
10/10/1941 11499.9 4464.2 12.528 0.034 350.000
29/09/1942 6670.8 2642.5 15.721 0.041 350.000
18/10/1943 13085.4 5264.3 15.192 0.036 350.000
11/10/1944 12089.1 4260.4 16.333 0.041 350.000
10/10/1945 10063.1 3503.3 16.427 0.041 350.000
14/10/1946 12064.4 4422.9 16.780 0.033 350.000
15/10/1947 14056.6 5529.7 12.769 0.040 350.000
Without second call:
ApsimVersion = 7.10 rcfea03d9df461ae2c4efd18b8270414f50a44a0f
Title = New
Date biomass yield grain_protein grain_size CO2
(dd/mm/yyyy) (kg/ha) (kg/ha) (%) (g) ()
10/10/1941 11503.3 4464.2 12.528 0.034 350.000
29/09/1942 6688.3 2642.5 15.724 0.041 350.000
18/10/1943 13099.7 5270.1 15.170 0.036 350.000
11/10/1944 12131.9 4260.4 16.326 0.041 350.000
10/10/1945 10127.3 3503.3 16.427 0.041 350.000
14/10/1946 12227.7 4474.2 16.782 0.033 350.000
15/10/1947 13988.3 5408.1 12.681 0.039 350.000
In APSIM Classic, plants need to calculate potential water use in the prepare phase for SWIM to do water uptake, and potential growth and N demands to allow SWIM to do N uptake.
From: Ben (Behnam) Ababaei notifications@github.com Sent: Monday, 14 October 2019 9:30 AM To: APSIMInitiative/APSIMClassic APSIMClassic@noreply.github.com Cc: Huth, Neil (A&F, Toowoomba) Neil.Huth@csiro.au; Mention mention@noreply.github.com Subject: Re: [APSIMInitiative/APSIMClassic] Potential photosynthesis is calculated twice in Plant.cpp (#1763)
If that is the case, can we skip the first call if we have another photosyhtnesis model linked, which internally calculates water demand?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/APSIMInitiative/APSIMClassic/issues/1763?email_source=notifications&email_token=AC2UVWTMM23TLEEOGIUKGZDQOOVP7A5CNFSM4I7Y75E2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBDC3YA#issuecomment-541470176, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AC2UVWTYZRN3TSWZ3XO5Z73QOOVP7ANCNFSM4I7Y75EQ.
Thanks @hut104 and @peter-devoil . But I think the second call is not needed and should be removed. I tested it using Continuous Wheat from Examples. When the second call exists, since phenology().process()
is called a couple of lines before that, APSIM uses RUE for the next day, which is smaller than the current day at the end of grain filling. Simply put, APSIM uses a smaller RUE than it must when the second call is made, leading to lower biomass. OR perhaps phenology().process()
should be called within OnPrepare and before the first call to plant.doDmPotRUE()
.
onPrepare
RUE1.2400
onProcess
RUE1.2400
onPrepare
RUE1.2400
6 October 1941(Day of year=279), paddock.wheat:
stage 8.0 end_grain_fill
onProcess
RUE1.2400
biomass = 1149.99 (g/m^2) lai = 0.675 (m^2/m^2)
stover N conc = 0.31 (%) extractable sw = 58.76 (mm)
onPrepare
RUE1.2400
onProcess
RUE0.0257
Here is an example (Continuous Wheat)
With the second call:
ApsimVersion = 7.10 rcfea03d9df461ae2c4efd18b8270414f50a44a0f
Title = New
Date biomass yield grain_protein grain_size CO2
(dd/mm/yyyy) (kg/ha) (kg/ha) (%) (g) ()
10/10/1941 11499.9 4464.2 12.528 0.034 350.000
29/09/1942 6670.8 2642.5 15.721 0.041 350.000
18/10/1943 13085.4 5264.3 15.192 0.036 350.000
Without the second call:
ApsimVersion = 7.10 rcfea03d9df461ae2c4efd18b8270414f50a44a0f
Title = New
Date biomass yield grain_protein grain_size CO2
(dd/mm/yyyy) (kg/ha) (kg/ha) (%) (g) ()
10/10/1941 11503.3 4464.2 12.528 0.034 350.000
29/09/1942 6688.3 2642.5 15.724 0.041 350.000
18/10/1943 13099.7 5270.1 15.170 0.036 350.000
In Plant, Line 374 and Line 424, potential photosynthesis is calculated:
plant.doDmPotRUE();
Is there any reason for this repetation? With RUE model it doesn't make a difference. But with models that use swSupply, it does.