lpmorenoc / dssat-csm-os Goto Github PK
View Code? Open in Web Editor NEWThis project forked from dssat/dssat-csm-os
DSSAT Cropping System Model
License: BSD 3-Clause "New" or "Revised" License
This project forked from dssat/dssat-csm-os
DSSAT Cropping System Model
License: BSD 3-Clause "New" or "Revised" License
Originally posted in: https://github.com/danipilze/dssat-csm/issues/99
Based on the report from James:
something is going wrong with the shading effect on leaf life. It should be causing a particular cohort of leaves to fall about one week after being in 95% shade as determined by the cohorts higher in the canopy and using (1-ekLAI) to determine the levels. With the k values we are using for cassava this should correspond to LAIs of close to 4, not less than 2.5. Daniel and I changed k in the model to see if it had any effect: it did not, so something is not working properly. Our concerns are also reinforced by the PAR interception curves below which show that we are only getting about 90% of less, and hence shading effects should not be operational. When I look at Chart 11 I see we are doing a pretty good job with LAI until we star getting the shading effect at 100 plus days, after that we go haywire!
After Julian’s comments and some feedback from the researchers in Thailand where they were not getting LAI greater than 4. I tested different values for k and I think the Lambert-Beer law does not apply to cassava and it is more for other crops that intercept 95% of the light with a LAI of 4. As result, we are forced to use low k values that does not look logical to get high LAI.
Review results from Keating and the model from Fukai and Hammer (1987). There is an increase in SLA due to temperature. Check issue #10 to use some parameters.
Currently the leaf appearance curve works ok with branching varieties but it underestimates the number of leaves for the non-branching varieties (see example below for TME 419).
James suggested to use a linear curve and reduce the leaf appearance rate when the assimilates, water or nitrogen are not enough to supply the demand. Currently we are reducing the leaf appearance when there is water stress and nitrogen stress.
These are some testing for non-branching varieties using linear regression (in Excel):
And the model Wang-Engel:
The values of the canopy height (m) (CHTD) in the files PlantGr2.OUT are too high with values above 10 m.
Model printing every day after harvesting a warning when the A and T file are not available.
warning.txt
Currently the model considers an increase in the branching during long days but it does not include the increased leaf appearance. Keating mentioned that some varieties increase the rate of leaf production (under constant temperature and different photoperiod), the leaf size and the fibrous root weight but those effects are not included in the model.
Currently S#AD in plantgro.out has two decimal places and if the value has more than 3 digits at the end of the growing season it generates outputs for this variable as the following:
0.00256.00 0.00****** 0.00****** 0.00****** 0.00****** 0.00****** 0.00******
The curve for potential leaf size works ok for non-branching varieties but it underestimates the leaf size for non-branching varieties which usually reduces the leaf size just in a 50% (see below example for MCol 72-non branching variety)
Tan, L.S., Cock, J.H., 1979. Cassava plant forms and their associated morpho-physiological characters. MARDI Res Bull 7, 55–69.
Tan, L.S., Cock, J.H., 1979. Branching habit as a yield determinant in cassava. F. Crop. Res. 2, 281–289. https://doi.org/10.1016/0378-4290(79)90029-7
Originally in: https://github.com/danipilze/dssat-csm/issues/30
The variables NPOOLR, NPOOLS, and NPOOLL are estimated as N pools but the are not used anymore in the code. How could be use them? to provide additional N when there is not enough supply in another time during the growing season?
Originally in: https://github.com/danipilze/dssat-csm/issues/96
The stem leaf area index is not necessary. Also, the growth stages no related to cassava or branching times should be removed.
This parameter shows low sensitivity to the outputs of the model so it has to be reviewed.
Originally in: https://github.com/danipilze/dssat-csm/issues/33
James suggested to use an absolute light level considering an average of 10 days or 1 week instead of the percentage or light intercepted to define the leaf senescence of lower leaves.
This is represented by the LINTUL model and I think it is supported by Connor.
Originally in: https://github.com/danipilze/dssat-csm/issues/98
Based on the report from James:
... we found one variety (Mven 77) with a maximum leaf area of 900 cm2. I personally have never seen a cassava leaf that big and wonder where these data for very large leaves comes from. We discovered these very large leaves when we were trying to track down excessive leaf (and stem) production in MCol 22 in the later stages of growth
I think that probably it is the result of temperature or water stress restrictions in the experiments where it was necessary to put those high potential values to get the actual leaf area reported in the experiments.
There is an increase of leaf senescence due to low temperatures. This is represented by the Brazilians model (Gabriel et al., 2014) and also defined by Fukai. See issue #10 to consider some parameters.
Rapid defoliation under high water stress (Ezui's model). It is also mentioned by Veltkamp, Mejía de Tafur (1991), Porto (1989) and Yao (1988) (Yao mentioned that it happens when the LAI was greater than 3). See issue #10 to consider some parameters.
Originally in: https://github.com/danipilze/dssat-csm/issues/89
change this
AMAX1(0.0,AMIN1(1.0,x))
to this
validateFactor(x)
Cassava model does not run when start of simulation and planting dates are from different years and there is a file T. If the file T is removed, the model runs without any issues. Reported by Diego Magalhães ([email protected])
Some ideas:
Originally in: https://github.com/danipilze/dssat-csm/issues/54
Review code from Myles and its implementation
Originally posted in https://github.com/danipilze/dssat-csm/issues/101
From the report of James:
Basically, what they do is restrict the length of nodes if in the leaf expansion phase there is water, nitrogen or CHO stress in exactly the same manner as for leaf expansion. The node length is then fixed when leaf expansion ceases, and the subsequent potential increase in node weight is determined by the standard curve corrected for the decrease in node length due to the stresses in the expansion phase.
The incorporation of the last part of this idea as an algorithm would imply that the stresses would be considered double for stem growth because currently, the stem weight is reduced due to stresses...
Currently the thermal time to fourth branching is using the same as B23ND but there is an option to define the number of branches up to the 4th branching level so it is recommended to add B34ND as a cultivar coefficient.
Originally in: https://github.com/danipilze/dssat-csm/issues/57
Some aspects of nitrogen and CO2 effect need revision. Discuss the following parameters and how they are used in the model:
Nitrogen does affect plant age or just leaf appearance and branching time? Currently is just affecting the leaf size...and for the data from Sara's MSc thesis, the stress of the plant was already overestimated.
I think maturity reached alert shouldn't exist in cassava, I got this message when i tried to run treatment with 631 days from planting until harvest.
it also causes the next treatments not to run (if I run the other treatments without the problematic treatment it works fine).
Review if all the parameters in the SPE file are used and if they have proper values
Experiment is not creating output for HWAH
IIBE1601.txt
Originally in: https://github.com/danipilze/dssat-csm/issues/34
Both stem and leaf N content vary through the growing period. In the case of the leaves, we are handling partially for the lower leaves which translocate the N when they are close to fall. However, the stems change the N concentration even in the upper stem (new nodes) through the growing season and it is not properly managed in the model (see table below based on Howeler data (2011) and the image from the same publication (Figure 5).
The reserves stress factor (RSFP) is currently in the photosynthesis equation but it is not used:
CARBOTMPRHR(hour) = AMAX1(0.0,(PARMJFAC*RADHR(hour)*3.6/1000.)*PARU*CO2FP*TFP* RSFP * VPD%get_YCA_VPDFPHR(hour) * SLPF *WFP)
RSFPU and RSFPL are not defined so RSFP is always 1:
IF (RSFPU > 0.0.AND.RSFPU > 0.0) THEN
RSFP = 1.-AMIN1(1.,AMAX1(0.,(RSCD-RSFPL)/(RSFPU-RSFPL))) !EQN 260
ELSE
RSFP = 1.0
ENDIF
work.out have 2143 lines writing in this file and it is created even when IDETL = 0 (zero). This is not ideal for multiple simulations (e.g. HiPerGator).
This is implemented by the model of Gutierrez et al. (1988) and could be considered as an improvement to avoid high number of apices.
This file is generated even when IDETL = 0 (zero). This is not ideal for multiple simulations (e.g. HiPerGator).
Currently @fabiooliveira72 is looking for options to edit/modify the code:
YCA_Runinit.f90
Line: 261-266
Code:
CALL Getlun('READS.OUT',fnumrea)
! Close and re-open Reads file
CLOSE (FNUMREA, STATUS = 'DELETE')
OPEN (UNIT = FNUMREA,FILE = 'READS.OUT', STATUS = 'NEW', ACTION = 'READWRITE')
WRITE(fnumrea,*)' '
WRITE(fnumrea,*)' File closed and re-opened to avoid generating huge file’
Description: This code is just getting the unit number (FNUMREA), after that the file is deleted if exists and a new one is reopened. Just one message is written in this subroutine nothing else. Similar previous file code.
Note that, first it is just creating the READS.OUT file and then the subroutines below write the outputs in the file:
CSREADS.for
Line: There are 138 lines using READS.OUT file.
The following subroutines are used as utilities for the CSCER,CSCAS,CSCRP and CSYCA models.
Subroutine: XREADT
Code:
IF (FNUMFLAG.NE.'Y')THEN
CALL Getlun('READS.OUT',fnumrea)
CALL GETLUN('FILETMP',FILENUM)
INQUIRE (FILE='READS.OUT',OPENED=fopen)
IF (.NOT.fopen) OPEN(UNIT=fnumrea,FILE='READS.OUT')
FNUMFLAG = 'Y'
ENDIF
WRITE(fnumrea,*)’ '
WRITE(fnumrea,*)'FILE ',FILENAME(1:FILELEN)
WRITE(fnumrea,*)' TREATMENT: ‘,COL1
Description: This pieces of code open the READS.OUT and use as debbuging file writing some variables values.
Subroutine: AREADT
Code:
IF (FNUMFLAG.NE.'Y')THEN
CALL Getlun('READS.OUT',fnumrea)
INQUIRE (FILE='READS.OUT',OPENED=fopen)
IF (.NOT.fopen) OPEN(UNIT=fnumrea,FILE='READS.OUT')
FNUMFLAG = 'Y'
ENDIF
! Read abbreviation file
WRITE(fnumrea,*)’ '
WRITE(fnumrea,*)' Reading abbrev file: ',abvfile(1:55)
Description: This pieces of code open the READS.OUT and use as debbuging file writing some variables values.
Subroutine: CUREADT
Code:
IF (FNUMFLAG.NE.'Y')THEN
CALL Getlun('READS.OUT',fnumrea)
INQUIRE (FILE='READS.OUT',OPENED=fopen)
IF (.NOT.fopen) OPEN(UNIT=fnumrea,FILE='READS.OUT')
FNUMFLAG = 'Y'
ENDIF
…
! WRITE(FNUMREA,*) 'CODE,TXTO ',CODE,TXTO
…
Description: This pieces of code open the READS.OUT and use as debbuging. The part that writes in READS.OUT is commented.
Subroutine: CUREADT
Code:
IF (FNUMFLAG.NE.'Y')THEN
CALL Getlun('READS.OUT',fnumrea)
INQUIRE (FILE='READS.OUT',OPENED=fopen)
IF (.NOT.fopen) OPEN(UNIT=fnumrea,FILE='READS.OUT')
FNUMFLAG = 'Y'
ENDIF
Description: This pieces of code open the READS.OUT and use as debbuging file. This subroutine never writes in the output file.
Subroutine: SPREADT
Code:
IF (FNUMFLAG.NE.'Y')THEN
CALL Getlun('READS.OUT',fnumrea)
CALL GETLUN('FILETMP',FILENUM)
INQUIRE (FILE='READS.OUT',OPENED=fopen)
IF (.NOT.fopen) OPEN(UNIT=fnumrea,FILE='READS.OUT')
FNUMFLAG = 'Y'
ENDIF
WRITE(fnumrea,*)' '
WRITE(fnumrea,*)'FILE ',SPDIRFLE(1:FILELEN)
DO TVI3=1,DATANUM
WRITE(fnumrea,'(I6,A2,A60)')tvi3,' ',datarray(TVI3)(1:60)
ENDDO
Description: This pieces of code open the READS.OUT and use as debbuging file writing some variables values.
Subroutine: SLREADT
Code:
IF (FNUMFLAG.NE.'Y')THEN
CALL Getlun('READS.OUT',fnumrea)
CALL GETLUN('FILETMP',FILENUM)
INQUIRE (FILE='READS.OUT',OPENED=fopen)
IF (.NOT.fopen) OPEN(UNIT=fnumrea,FILE='READS.OUT')
FNUMFLAG = 'Y'
ENDIF
WRITE(fnumrea,*)' '
WRITE(fnumrea,*)' SOIL FILENAME ',SLDIRFLE(1:60)
WRITE(fnumrea,*)' SOIL CODE ',SLCODE
Description: This pieces of code open the READS.OUT and use as debbuging file writing some variables values.
Subroutine: SMREADT
Code:
IF (FNUMFLAG.NE.'Y')THEN
CALL Getlun('READS.OUT',fnumrea)
INQUIRE (FILE='READS.OUT',OPENED=fopen)
IF (.NOT.fopen) OPEN(UNIT=fnumrea,FILE='READS.OUT')
FNUMFLAG = 'Y'
ENDIF
! WRITE(FNUMREA,*) 'CODE,TXTO ',CODE,TXTO
Description: This pieces of code open the READS.OUT and use as debbuging. The part that writes in READS.OUT is commented.
Originally in: https://github.com/danipilze/dssat-csm/issues/56
We have to discuss the following parameters currently not used but with potential use with James:
LLOSA Leaf dry matter loss, accelerated senescence (fr)
SLATS Specific leaf area,temperature standard (C)
SLATR Specific leaf area,temperature response (fr change per oC)
WFSU Water factor,senescence,upper (fr)
LLOSA could be considered for a rapid defoliation under high water stress (Ezui's model) or low temperatures (Brazilians model).
SLATS and SLATR could be used because according to results fo Keating and Fukai and Hammer model (1987) there is an increase in SLA due to temperature.
WFSU could be considered for a rapid defoliation under high water stress (Ezui's model)
Review if it is implemented.
Currently the hourly estimation of "photosynthesis" use the daily temperature stress factor (TFP) and instead it could be using a daily value.
CARBOTMPRHR(hour) = AMAX1(0.0,(PARMJFAC*RADHR(hour)*3.6/1000.)*PARU*CO2FP*TFP* RSFP * VPD%get_YCA_VPDFPHR(hour) * SLPF *WFP)
Based on: https://github.com/danipilze/dssat-csm/issues/97
The N concentration (as % of weight) changes in the leaves based on the plant age and leaf age.
This could be related to the issue #24 and would require a state variable for the fresh weight with reduced dry matter when there is remobilization of assimilates
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.