Soil Water Balance (SWB2)
Loading...
Searching...
No Matches
crop_coefficients__fao56 Module Reference

Update crop coefficients for crop types in simulation. More...

Enumerations

enum  {
  l_doy_ini =1 , l_doy_dev , l_doy_mid , l_doy_late ,
  l_doy_fallow
}
enum  {
  gdd_plant =1 , gdd_ini , gdd_dev , gdd_mid ,
  gdd_late
}
enum  {
  planting_date =1 , enddate_ini , enddate_dev , enddate_mid ,
  enddate_late , enddate_fallow
}
enum  { kcb_ini =13 , kcb_mid , kcb_end , kcb_min }
enum  {
  jan = 1 , feb , mar , apr ,
  may , jun , jul , aug ,
  sep , oct , nov , dec
}
enum  { kcb_method_gdd = 1 , kcb_method_monthly_values , kcb_method_fao56 }

Functions/Subroutines

subroutine, public crop_coefficients_fao56_initialize ()
impure elemental real(c_float) function, public update_crop_coefficient_date_as_threshold (ilanduseindex)
 Update the current basal crop coefficient (Kcb) for a SINGLE irrigation table entry.
pure elemental real(c_float) function, public crop_coefficients_fao56_calculate_kcb_max (wind_speed_meters_per_sec, relative_humidity_min_pct, kcb, plant_height_meters)
impure elemental real(c_float) function, public update_crop_coefficient_gdd_as_threshold (ilanduseindex, fgdd)
 Update the current basal crop coefficient (Kcb), with GDD as the threhold.
subroutine, public crop_coefficients_fao56_update_growth_stage_dates ()
impure elemental subroutine, public crop_coefficients_fao56_calculate (kcb, landuse_index, gdd)
impure elemental subroutine, public crop_coefficients_fao56_update_growing_season (landuse_index, kcb, it_is_growing_season)

Variables

integer(c_int), dimension(:), allocatable landuse_code
real(c_float), dimension(:,:), allocatable, public kcb_l
integer(c_int), dimension(:), allocatable, public kcb_method
real(c_float), dimension(:), allocatable growth_stage_shift_days
real(c_float), dimension(:,:), allocatable, public growth_stage_length_in_days
real(c_float), dimension(:,:), allocatable growth_stage_gdd
type(datetime_t), dimension(:,:), allocatable, public growth_stage_date
integer(c_int) lu_soils_csv

Detailed Description

Update crop coefficients for crop types in simulation.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
l_doy_ini 
l_doy_dev 
l_doy_mid 
l_doy_late 
l_doy_fallow 

Definition at line 37 of file crop_coefficients__fao56.F90.

◆ anonymous enum

anonymous enum
private
Enumerator
gdd_plant 
gdd_ini 
gdd_dev 
gdd_mid 
gdd_late 

Definition at line 41 of file crop_coefficients__fao56.F90.

◆ anonymous enum

anonymous enum
private
Enumerator
planting_date 
enddate_ini 
enddate_dev 
enddate_mid 
enddate_late 
enddate_fallow 

Definition at line 45 of file crop_coefficients__fao56.F90.

◆ anonymous enum

anonymous enum
private
Enumerator
kcb_ini 
kcb_mid 
kcb_end 
kcb_min 

Definition at line 50 of file crop_coefficients__fao56.F90.

◆ anonymous enum

anonymous enum
private
Enumerator
jan 
feb 
mar 
apr 
may 
jun 
jul 
aug 
sep 
oct 
nov 
dec 

Definition at line 54 of file crop_coefficients__fao56.F90.

◆ anonymous enum

anonymous enum
private
Enumerator
kcb_method_gdd 
kcb_method_monthly_values 
kcb_method_fao56 

Definition at line 58 of file crop_coefficients__fao56.F90.

Function/Subroutine Documentation

◆ crop_coefficients_fao56_calculate()

impure elemental subroutine, public crop_coefficients__fao56::crop_coefficients_fao56_calculate ( real (c_float), intent(inout) kcb,
integer (c_int), intent(in) landuse_index,
real (c_float), intent(in), optional gdd )

Definition at line 623 of file crop_coefficients__fao56.F90.

Here is the call graph for this function:

◆ crop_coefficients_fao56_calculate_kcb_max()

pure elemental real (c_float) function, public crop_coefficients__fao56::crop_coefficients_fao56_calculate_kcb_max ( real (c_float), intent(in) wind_speed_meters_per_sec,
real (c_float), intent(in) relative_humidity_min_pct,
real (c_float), intent(in) kcb,
real (c_float), intent(in) plant_height_meters )

Definition at line 452 of file crop_coefficients__fao56.F90.

◆ crop_coefficients_fao56_initialize()

subroutine, public crop_coefficients__fao56::crop_coefficients_fao56_initialize

create string list that allows for alternate heading identifiers for the landuse code

Determine how many landuse codes are present

Todo
Implement thorough input error checking: are all soils in grid included in table values? is soil suffix vector continuous?

@TODO What should happen if the TEW / REW header entries do not fall in a logical sequence of values? In other words, if the user has columns named REW_1, REW_3, REW_5, only the values associated with "REW_1" would be retrieved. Needless to say, this would be catastrophic.

@TODO Add more logic here to perform checks on the validity of this data.

@TODO Need to handle missing values. WHat do we do if an entire column of values is missing?

Definition at line 78 of file crop_coefficients__fao56.F90.

Here is the call graph for this function:

◆ crop_coefficients_fao56_update_growing_season()

impure elemental subroutine, public crop_coefficients__fao56::crop_coefficients_fao56_update_growing_season ( integer (c_int), intent(in) landuse_index,
real (c_float), intent(in) kcb,
logical (c_bool), intent(out) it_is_growing_season )

Definition at line 645 of file crop_coefficients__fao56.F90.

◆ crop_coefficients_fao56_update_growth_stage_dates()

subroutine, public crop_coefficients__fao56::crop_coefficients_fao56_update_growth_stage_dates

Definition at line 555 of file crop_coefficients__fao56.F90.

◆ update_crop_coefficient_date_as_threshold()

impure elemental real (c_float) function, public crop_coefficients__fao56::update_crop_coefficient_date_as_threshold ( integer (c_int), intent(in) ilanduseindex)

Update the current basal crop coefficient (Kcb) for a SINGLE irrigation table entry.

Parameters
[in,out]pIRRIGATIONpointer to a single line of information in the irrigation file.
[in]iThresholdeither the current day of year or the number of growing degree days.
Return values
rKcbBasal crop coefficient given the irrigation table entries and the current threshold values.

Definition at line 384 of file crop_coefficients__fao56.F90.

◆ update_crop_coefficient_gdd_as_threshold()

impure elemental real (c_float) function, public crop_coefficients__fao56::update_crop_coefficient_gdd_as_threshold ( integer (c_int), intent(in) ilanduseindex,
real (c_float), intent(in) fgdd )

Update the current basal crop coefficient (Kcb), with GDD as the threhold.

Parameters
[in]fGDDcurrent growing degree day value associated with the cell.
Return values
fKcbBasal crop coefficient given the irrigation table entries and the current threshold values.

Definition at line 489 of file crop_coefficients__fao56.F90.

Variable Documentation

◆ growth_stage_date

type (datetime_t), dimension(:,:), allocatable, public crop_coefficients__fao56::growth_stage_date

Definition at line 72 of file crop_coefficients__fao56.F90.

◆ growth_stage_gdd

real (c_float), dimension(:,:), allocatable crop_coefficients__fao56::growth_stage_gdd
private

Definition at line 71 of file crop_coefficients__fao56.F90.

◆ growth_stage_length_in_days

real (c_float), dimension(:,:), allocatable, public crop_coefficients__fao56::growth_stage_length_in_days

Definition at line 70 of file crop_coefficients__fao56.F90.

◆ growth_stage_shift_days

real (c_float), dimension(:), allocatable crop_coefficients__fao56::growth_stage_shift_days
private

Definition at line 69 of file crop_coefficients__fao56.F90.

◆ kcb_l

real (c_float), dimension(:,:), allocatable, public crop_coefficients__fao56::kcb_l

Definition at line 67 of file crop_coefficients__fao56.F90.

◆ kcb_method

integer (c_int), dimension(:), allocatable, public crop_coefficients__fao56::kcb_method

Definition at line 68 of file crop_coefficients__fao56.F90.

◆ landuse_code

integer (c_int), dimension(:), allocatable crop_coefficients__fao56::landuse_code
private

Definition at line 64 of file crop_coefficients__fao56.F90.

◆ lu_soils_csv

integer (c_int) crop_coefficients__fao56::lu_soils_csv
private

Definition at line 74 of file crop_coefficients__fao56.F90.