APSIM component communications

SWIM Plant Communications

<type name="WaterUptakes">
   <field name="Uptakes" array="T">
      <field name="Name" kind="string"/>
      <field name="Amount" kind="double" unit="mm" array="T"/>
   </field>
</type>

Arbitrator Communications

Notes: Arbitrator could be more than one component, for example, light arbitration might be in a separate component to water and nutrient arbitration.

<type name=”CohortCanopy”>
   <field name="CohortID" kind="string"/>
   <field name="RowAngle" kind="double" unit=”radian”/>
   <field name="RowDistance " kind="double" unit=”m”/>
   <field name="RowOffset " kind="double" unit=”m”/>
   <field name="ColumnDistance " kind="double" unit=”m”/>
   <field name="ColumnOffset " kind="double" unit=”m”/>
   <type name="CanopyLayer" array=”T”>
      <field name="Top" kind="double" unit=”m”/>
      <field name="RowExtent" kind="double" unit=”m”/>
      <field name="ColumnExtent" kind="double" unit=”m”/>
      <field name="LiveAI" kind="double" unit=”m^2/m^”/>
      <field name="DeadAI" kind="double" unit=”m^2/m^”/>
      <field name="LiveK" kind="double" unit=”-“/>
      <field name="DeadK" kind="double" unit=”-“/>
      <field name="Albedo" kind="double" unit=”-“/>
      <field name="Transmission" kind="double" unit=”-“/>
      <field name=”Emissivity" kind="double" unit=”-“/>
      <field name="StomatalGMax" kind="double" unit=”m/s”/>
      <field name="StomatalGHalfSat" kind="double" unit=”J/m^2/s”/>
   </type>
</type>
<type name=”CohortWaterDemand”>
   <field name="CohortID" kind="string" />     e.g. seedling, plant
   <field name="Demand" kind="double" unit=”kg/m^2”/>
   <field name="PsiXylemMin" kind="double" unit=”MPa”/>
   <type name=”RootSystemLayer” array=”T”>
          <field name="Bottom" kind="double" unit=”m”/>
          <field name="LL" kind="double" unit=”m^3/m^3”/>
          <field name="KL" kind="double" unit=”/day”/>
          <field name="RootLengthDensity" kind="double" unit=”m/m^3”/>
          <field name="RootRadius" kind="double" unit=”mm”/>
          <field name="RootConductance" kind="double" unit=””/>
    </type>
</type>
    
<type name=”CohortNutrientDemand”>
   <field name="CohortID" kind="string" />     e.g. seedling, plant
   <field name="Demand" kind="double" unit=”kg/ha”/>
   <type name=”RootSystemLayer” array=”T”>
      <field name="Bottom" kind="double" unit=”m”/>
      <field name="MaxUptakeN" kind="double" unit=”kg/ha”/>
      <field name="MaxUptakeP" kind="double" unit=”kg/ha”/>
      <field name="MaxUptakeS" kind="double" unit=”kg/ha”/>
      <field name="MaxUptakeAshAlk" kind="double" unit=”mol/ha”/>
   </type>
</type>
<type name=”CanopyArbitration”>
   <field name="CohortID" kind="string"/>
   <type name="CanopyLayer" array=”T”>
      <field name="AbsorbedRadiation" kind="double" unit=”MJ/m^2”/>
      <field name="WaterDemand" kind="double" unit=”kg/m^2”/>
      <field name="Inteception" kind="double" unit=”kg/m^2“/>
   </type>
</type>
<type name=”CohortWaterSupply”>
   <field name="CohortID" kind="string" />     e.g. seedling, plant
   <type name=”RootSystemLayer” array=”T”>
      <field name="Bottom" kind="double" unit=”m”/>
      <field name="Supply" kind="double" unit=”kg/m^2”/>
   </type>
</type>
<type name=”CohortNutrientSupply”>
   <field name="CohortID" kind="string" />     e.g. seedling, plant
   <type name=”RootSystemLayer” array=”T”>
      <field name="Bottom" kind="double" unit=”m”/>
      <field name="SupplyNO3" kind="double" unit=”kg/ha” />
      <field name="SupplyNH4" kind="double" unit=”kg/ha” />
      <field name="SupplyPOx" kind="double" unit=”kg/ha” />
      <field name="SupplySO4" kind="double" unit=”kg/ha” />
      <field name="SupplyAshAlk" kind="double" unit=”mol/ha” />
   </type>
</type>

 

Grazing Communications

<type name="CohortAvailableToAnimal">
   <field name="CohortID"       kind="string"/>   e.g. seedling
   <field name="Organ"              kind=”string” /> e.g.  leaf, stem
   <field name="AgeID"            kind="string" />  e.g.  “secondleaf”, “live”, “dead”
   <field name="Bottom"           kind="double" unit="mm"  />
   <field name="Top"                  kind="double" unit="mm"  />
   <field name="Chem"              kind=”string” />     e.g.  digestible, indigestible
   <field name="Weight”            kind=”double” unit=”kg/ha” />   
   <field name="N”                      kind=”double” unit=”kg/ha” />   
   <field name="P”                     kind=”double” unit=”kg/ha” />   
   <field name="S”                      kind=”double” unit=”kg/ha” />   
   <field name="AshAlk”           kind=”double” unit=”mol/ha” />   
</type>
<type name="CohortRemovedByAnimal">
   <field name="CohortID"       kind="string"/>   e.g. seedling
   <field name="Organ"              kind=”string” /> e.g.  leaf, stem
   <field name="AgeID"            kind="string" />  e.g.  “secondleaf”, “live”, “dead”
   <field name="Bottom"           kind="double" unit="mm"  />
   <field name="Top"                  kind="double" unit="mm"  />
   <field name="Chem"              kind=”string” />     e.g.  digestible, indigestible
   <field name="WeightRemoved”            kind=”double” unit=”kg/ha” />   
</type>

 

Jobs:

Implement in PLANT2 – DH
Change STOCK – AM
PASTURE – AM
Delete Stock Science Converter? DH
Implement in GRASP – PdeV
Move AgPasture into PLANT2 – Frank Li

Excreta Return Communications

<type name="AddFaeces">
   <field name="Defaecations"  unit="-"  kind="double"/>
   <field name="VolumePerDefaecation"  unit="m^3"  kind="double"/>
   <field name="AreaPerDefaecation"  unit="m^2"  kind="double"/>
   <field name="Eccentricity"  unit="-"  kind="double"/>
   <field name="OMWeight"  unit="kg/ha"  kind="double"/>
   <field name="OMN"       unit="kg/ha"  kind="double"/>
   <field name="OMP"       unit="kg/ha"  kind="double"/>
   <field name="OMS"       unit="kg/ha"  kind="double"/>
   <field name="OMAshAlk" unit="mol/ha" kind="double"/>
   <field name="NO3N"  unit="kg/ha"  kind="double"/>
   <field name="NH4N"  unit="kg/ha"  kind="double"/>
   <field name="POXP"  unit="kg/ha"  kind="double"/>
   <field name="SO4S"  unit="kg/ha"  kind="double"/>
</type>
<type name = "AddUrine">
   <field name="Urinations"  unit="-"  kind="double"/>
   <field name="VolumePerUrination"  unit="m^3"  kind="double"/>
   <field name="AreaPerUrination"  unit="m^2"  kind="double"/>
   <field name="Eccentricity"  unit="-"  kind="double"/>
   <field name="Urea"    unit="kg/ha"  kind="double"/>
   <field name="POX"     unit="kg/ha"  kind="double"/>
   <field name="SO4"     unit="kg/ha"  kind="double"/>
   <field name="AshAlk" unit="mol/ha" kind="double"/>
</type>

Jobs by September:
AM – Stock changed to send AddFaeces and AddUrine.
EZ – SurfaceOm to change to accept AddFaeces
BJ – SurfaceOrganicMatter to change to accept AddFaeces
EZ – SoilN to change to accept AddUrine
BJ / VS – SoilNitrogen to change to accept AddUrine and to include urine patch algorithm.
DH – StockHerbageConverter – remove faeces and urine code.