<?xml version="1.0" encoding="UTF-8"?>
<Mission xmlns="Tethys"
       xmlns:Control="Tethys/Control"
       xmlns:Guidance="Tethys/Guidance"
       xmlns:Estimation="Tethys/Estimation"
       xmlns:Derivation="Tethys/Derivation"       
       xmlns:Sample="Tethys/Sample"       
       xmlns:Units="Tethys/Units"
       xmlns:Universal="Tethys/Universal"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="Tethys http://okeanids.mbari.org/tethys/Xml/Tethys.xsd
                           Tethys/Control http://okeanids.mbari.org/tethys/Xml/Control.xsd
                           Tethys/Guidance http://okeanids.mbari.org/tethys/Xml/Guidance.xsd
                           Tethys/Estimation http://okeanids.mbari.org/tethys/Xml/Estimation.xsd
                           Tethys/Derivation http://okeanids.mbari.org/tethys/Xml/Derivation.xsd
                           Tethys/Sample http://okeanids.mbari.org/tethys/Xml/Sample.xsd
                           Tethys/Units http://okeanids.mbari.org/tethys/Xml/Units.xsd
                           Tethys/Universal http://okeanids.mbari.org/tethys/Xml/Universal.xsd"
       Id="front_sampling">

    <Description>
        Detect the front and take samples at the front and on both sides of the
        front.
    </Description>

<!-- Almost every mission should start with an overall timeout and a NeedCommsTime. -->

    <DefineArg Name="NumSamplers"><Description>
        Total number of ESP cartridges (Maximum 60) or CANON samplers. Set to 0
        to disable sampling.
<!--debug	
    </Description><Units:count/><Value>5</Value></DefineArg>
-->
    </Description><Units:count/><Value>1</Value></DefineArg>

    <DefineArg Name="StartIndex"><Description>
        Start index in ESP settings. If re-running mission, can skip settings of
        already-completed samples. Default is 1 (no skipping).
    </Description><Units:count/><Value>1</Value></DefineArg>

    <DefineArg Name="MissionTimeout"><Description>
        Maximum duration of mission
    </Description><Units:hour/><Value>12</Value></DefineArg>

    <DefineArg Name="MaxDepth"><Description>
        Maximum depth for the entire mission.
    </Description><Units:meter/><Value>50</Value></DefineArg>

    <DefineArg Name="RepeatTransects"><Description>
        Number of times the vehicle should try to cycle through waypoints.
    </Description><Units:count/><Value>3</Value></DefineArg>

    <DefineArg Name="NeedCommsTimeTransit"><Description>
        How often to surface for commumications
    </Description><Units:minute/><Value>60</Value></DefineArg>

    <DefineArg Name="NeedCommsSampling"><Description>
        How often to surface for commumications during each sampling, in case
        something goes wrong during sampling.
    </Description><Units:hour/><Value>3</Value></DefineArg>

    <DefineArg Name="MaxWaitNoFiring"><Description>
        If no firing after more than MaxWaitNoFiring, terminate mission.
    </Description><Units:hour/><Value>2</Value></DefineArg>

    <DefineArg Name="MaxWaitNotAchievingDepth"><Description>
        Maximum wait time the vehicle cannot reach the targeted depth.
    </Description><Units:hour/><Value>0.5</Value></DefineArg>

    <DefineArg Name="FrontAutonomousDetection"><Description>
        Whether front detection is autonomous.
    </Description><True/></DefineArg>

<!--debug    
    </Description><False/></DefineArg>
-->

    <DefineArg Name="FromStratifiedToUpwelling"><Description>
        Used only when FrontAutonomousDetection is False. The starting
        direction.
    </Description><True/></DefineArg>

    <DefineArg Name="LonFrontMinDesignated"><Description>
        Used only when FrontAutonomousDetection is False. When the vehicle
        longitude falls within [LonFrontMinDesignated LonFrontMaxDesignated],
        front is detection is flagged.
<!--debug    
    </Description><Units:degree/><Value>-121.841</Value></DefineArg>
-->
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="LonFrontMaxDesignated"><Description>
        Used only when FrontAutonomousDetection is False. When the vehicle
        longitude falls within [LonFrontMinDesignated LonFrontMaxDesignated],
        front is detection is flagged.
<!--debug    
    </Description><Units:degree/><Value>-121.84</Value></DefineArg>
-->
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="Lat1"><Description>
        Latitude of the start waypoint of the 1st transect.
<!--debug      
    </Description><Units:degree/><Value>36.805</Value></DefineArg>
-->
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="Lon1"><Description>
        Longitude of the start waypoint of the 1st transect.
<!--debug    
    </Description><Units:degree/><Value>-121.815</Value></DefineArg>
-->
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="Lat2"><Description>
        Latitude of the end waypoint of the 1st transect.
<!--debug      
    </Description><Units:degree/><Value>36.805</Value></DefineArg>
-->
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="Lon2"><Description>
        Longitude of the end waypoint of the 1st transect.
<!--debug    
    </Description><Units:degree/><Value>-121.86</Value></DefineArg>
-->
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="LatUpwellingEnd"><Description>
        Latitude of the far end of upwelling water.
<!--debug    
    </Description><Units:degree/><Value>36.805</Value></DefineArg>
-->
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="LonUpwellingEnd"><Description>
        Longitude of the far end of upwelling water.
<!--debug    
    </Description><Units:degree/><Value>-121.86</Value></DefineArg>
-->
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="DeltaLatUpwellingSide1"><Description>
        Latitude of stratified-water side sampling location 1 = front latitude +
        DeltaLatUpwellingSide1. If NaN, this point is skipped.
<!--debug	
    </Description><Units:degree/><Value>0</Value></DefineArg>
-->
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="DeltaLonUpwellingSide1"><Description>
        Longitude of stratified-water side sampling location 1 = front longitude
        + DeltaLonUpwellingSide1. If NaN, this point is skipped.
<!--debug	
    </Description><Units:degree/><Value>-0.01</Value></DefineArg>
-->
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="DeltaLatUpwellingSide2"><Description>
        For stratified-water side sampling location 2
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="DeltaLonUpwellingSide2"><Description>
        For stratified-water side sampling location 2
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="DeltaLatUpwellingSide3"><Description>
        For stratified-water side sampling location 3
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="DeltaLonUpwellingSide3"><Description>
        For stratified-water side sampling location 3
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="DeltaLatUpwellingSide4"><Description>
        For stratified-water side sampling location 4
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="DeltaLonUpwellingSide4"><Description>
        For stratified-water side sampling location 4
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="LatStratifiedEnd"><Description>
        Latitude of the far end of stratified water.
<!--debug
    </Description><Units:degree/><Value>36.805</Value></DefineArg>
-->
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="LonStratifiedEnd"><Description>
        Longitude of the far end of stratified water.
<!--debug    
    </Description><Units:degree/><Value>-121.815</Value></DefineArg>
-->
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="DeltaLatStratifiedSide1"><Description>
        Latitude of stratified-water side sampling location 1 = front latitude +
        DeltaLatStratifiedSide1. If NaN, this point is skipped.
<!--debug	
    </Description><Units:degree/><Value>0</Value></DefineArg>
-->
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="DeltaLonStratifiedSide1"><Description>
        Longitude of stratified-water side sampling location 1 = front longitude
        + DeltaLonStratifiedSide1. If NaN, this point is skipped.
<!--debug	
    </Description><Units:degree/><Value>0.01</Value></DefineArg>
-->
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="DeltaLatStratifiedSide2"><Description>
        For stratified-water side sampling location 2
<!--debug      
    </Description><Units:degree/><Value>0</Value></DefineArg>
-->
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="DeltaLonStratifiedSide2"><Description>
        For stratified-water side sampling location 2
<!--debug      
    </Description><Units:degree/><Value>0.02</Value></DefineArg>
-->
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="DeltaLatStratifiedSide3"><Description>
        For stratified-water side sampling location 3
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="DeltaLonStratifiedSide3"><Description>
        For stratified-water side sampling location 3
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="DeltaLatStratifiedSide4"><Description>
        For stratified-water side sampling location 4
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="DeltaLonStratifiedSide4"><Description>
        For stratified-water side sampling location 4
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="InitialDiveDuration"><Description>
        On the first dive for looking for the chl max, run at SpeedInitialDive
        for this duration (e.g., 1 m/s spiral to dive fast).
    </Description><Units:minute/><Value>1.0</Value></DefineArg>

    <DefineArg Name="SpeedTransit"><Description>
        Speed while performing the YoYo behavior.
    </Description><Units:meter_per_second/><Value>1</Value></DefineArg>

    <DefineArg Name="SpeedInitialDive"><Description>
        Vehicle speed during initial dive (for looking for the chl max over
        depth).
    </Description><Units:meter_per_second/><Value>1</Value></DefineArg>

    <DefineArg Name="SpeedFindChlPeakAndSample"><Description>
        Vehicle speed when looking for the chl max over depth.
    </Description><Units:meter_per_second/><Value>1</Value></DefineArg>

    <DefineArg Name="RudderAngleInitialDive"><Description>
        Rudder angle in initial spiral-down to leave surface. Initialized to 9
        degrees.
    </Description><Units:degree/><Value>9</Value></DefineArg>

    <DefineArg Name="RudderAngleFindChlPeakAndSample"><Description>
        Rudder angle spiraling looking for the chl max over depth.
    </Description><Units:degree/><Value>13</Value></DefineArg>

    <DefineArg Name="ShallowBoundChl"><Description>
        Shallow depth bound for chl-peak detection.
    </Description><Units:meter/><Value>3</Value></DefineArg>

    <DefineArg Name="DeepBoundChl"><Description>
        Deep depth bound for chl-peak detection.
    </Description><Units:meter/><Value>20</Value></DefineArg>

    <DefineArg Name="YoYoMinDepth"><Description>
        Minimum depth while performing the YoYo behavior.
    </Description><Units:meter/><Value>2</Value></DefineArg>

    <DefineArg Name="YoYoMaxDepth"><Description>
        Maximum depth while performing the YoYo behavior.
    </Description><Units:meter/><Value>30</Value></DefineArg>

    <DefineArg Name="YoYoMinAltitude"><Description>
        Minimum altitude while performing the YoYo behavior (for
        bottom-terminated YoYos).
    </Description><Units:meter/><Value>9</Value></DefineArg>

    <DefineArg Name="YoYoUpPitch"><Description>
        Vehicle up-pitch while performing the YoYo behavior.
    </Description><Units:degree/><Value>20</Value></DefineArg>

    <DefineArg Name="YoYoDownPitch"><Description>
        Vehicle down-pitch while performing the YoYo behavior.
    </Description><Units:degree/><Value>-20</Value></DefineArg>

    <DefineArg Name="MinAltitude"><Description>
        Minimum height above the sea floor for the entire mission.
    </Description><Units:meter/><Value>7</Value></DefineArg>

    <DefineArg Name="MinOffshore"><Description>
        Minimum offshore distance for the entire mission.
    </Description><Units:kilometer/><Value>2</Value></DefineArg>

    <DefineArg Name="WaitDepthUndulation"><Description>
        Wait duration for the depth undulation to damp down. Initialized to 10
        minutes.
    </Description><Units:minute/><Value>10</Value></DefineArg>

    <DefineArg Name="CartridgeType1"><Description>
        Sample 1. Cartridge type.
    </Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType2"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType3"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType4"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType5"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType6"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType7"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType8"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType9"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType10"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType11"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType12"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType13"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType14"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType15"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType16"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType17"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType18"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType19"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType20"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType21"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType22"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType23"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType24"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType25"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType26"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType27"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType28"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType29"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType30"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType31"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType32"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType33"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType34"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType35"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType36"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType37"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType38"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType39"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType40"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType41"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType42"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType43"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType44"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType45"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType46"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType47"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType48"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType49"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType50"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType51"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType52"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType53"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType54"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType55"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType56"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType57"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType58"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType59"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

    <DefineArg Name="CartridgeType60"><Description></Description><Units:count/><Value>-6</Value></DefineArg>

<!-- You probably do not need to change these. -->

    <DefineArg Name="MassDefault"><Control:VerticalControl.massDefault/></DefineArg>

    <DefineArg Name="BuoyancyNeutral"><Description>
        Buoyancy bladder position while performing the YoYo behavior. Defaults
        to buoyancyNeutral setting in the Config/Control.cfg file. Set to NaN cc
        for active buoyancy.
    </Description><Control:VerticalControl.buoyancyNeutral/></DefineArg>

    <DefineArg Name="LPWindowLength"><Description>
        Low-pass window length (based on depth sensor sampling interval 0.4
        second) for low-pass filtering.
    </Description><Units:count/><Value>20</Value></DefineArg>

    <DefineArg Name="MedianFilterLength"><Description>
        Median filter length (only for chlorophyll fluorescence which tends to
        have spikes). The median-filtered signal enters the succeeding low-pass
        filter. If set to 1, then no median filtering, i.e., the raw
        fluorescence signal directly enters the low-pass filter.
    </Description><Units:count/><Value>5</Value></DefineArg>

    <DefineArg Name="RiseFromTurningDepth"><Description>
        The peak chl detected on the initial dive is reported when the vehicle
        has turned from the deepest depth (i.e., the turning depth) onto the
        ascending profile at a depth that is RiseFromDeepTurningPoint shallower
        than the turning depth. For robustness, RiseFromTurningDepth =
        DepChangeThreshAttitudeFlip + 2 meters.
    </Description><Units:meter/><Value>5</Value></DefineArg>

    <DefineArg Name="DepChangeThreshAttitudeFlip"><Description>
        Depth change threshold for determining vehicle attitude flip.
    </Description><Units:meter/><Value>3</Value></DefineArg>

<!-- Use caution when changing these. -->

    <DefineArg Name="UpRate"><Description>
        Go-up depth rate (Negative depth rate means going up).
    </Description><Units:meter_per_second/><Value>-0.05</Value></DefineArg>

    <DefineArg Name="DownRate"><Description>
        Go-down depth rate (Positive depth rate means going down).
    </Description><Units:meter_per_second/><Value>0.2</Value></DefineArg>

<!-- These are internal variables that should not be changed. -->

    <DefineOutput Name="ElapsedSinceStartOrLastSample"><Description>
        The mission sets this variable to reset the sample timer.
    </Description><Units:hour/><Value>0</Value></DefineOutput>

    <DefineOutput Name="ElapsedTime"><Description>
        Only for syslog.
    </Description><Units:hour/><Value>0</Value></DefineOutput>

    <DefineOutput Name="CartridgeType"><Description>
        Cartridge type. Initialized to -6.
    </Description><Units:count/><Value>-6</Value></DefineOutput>

    <DefineOutput Name="Lat3"><Description></Description><Units:degree/><Value>NaN</Value></DefineOutput>

    <DefineOutput Name="Lon3"><Description></Description><Units:degree/><Value>NaN</Value></DefineOutput>

    <DefineOutput Name="Lat4"><Description></Description><Units:degree/><Value>NaN</Value></DefineOutput>

    <DefineOutput Name="Lon4"><Description></Description><Units:degree/><Value>NaN</Value></DefineOutput>

    <DefineOutput Name="Lat5"><Description></Description><Units:degree/><Value>NaN</Value></DefineOutput>

    <DefineOutput Name="Lon5"><Description></Description><Units:degree/><Value>NaN</Value></DefineOutput>

    <DefineOutput Name="Lat6"><Description></Description><Units:degree/><Value>NaN</Value></DefineOutput>

    <DefineOutput Name="Lon6"><Description></Description><Units:degree/><Value>NaN</Value></DefineOutput>

    <DefineOutput Name="LatitudeFront"><Description>
        Initialized to NaN.
    </Description><Units:degree/><Value>NaN</Value></DefineOutput>

    <DefineOutput Name="LongitudeFront"><Description>
        Initialized to NaN.
    </Description><Units:degree/><Value>NaN</Value></DefineOutput>

    <DefineOutput Name="FirstPass"><Description></Description><True/></DefineOutput>

    <DefineOutput Name="FrontDetectionEnabled"><Description>
        Initialized to True.
    </Description><True/></DefineOutput>

    <DefineOutput Name="FrontCrossed"><Description>
        Initialized to False.
    </Description><False/></DefineOutput>

    <DefineOutput Name="FlagPeakChlDepthSet"><Description>
        Flag of peak-chl depth having been set (set to true when the chl-peak
        depth has been set. Initialized to false).
    </Description><False/></DefineOutput>

    <DefineOutput Name="FlagFirstDive"><Description>
        Flag of first dive to find the peak-chl (true only for the first dive;
        false afterwards).
    </Description><True/></DefineOutput>

    <DefineOutput Name="FlagSamplingOngoing"><Description>
        Flag of water sampling in process (initialized to false).
    </Description><False/></DefineOutput>

    <DefineOutput Name="PeakChlDepthSet"><Description>
        Peak-chl depth detected on a dive. Initialized to 10 meters.
    </Description><Units:meter/><Value>10.0</Value></DefineOutput>

    <DefineOutput Name="PeakChlSet"><Description>
        Peak-chl value detected on a dive.
    </Description><Units:microgram_per_liter/><Value>0.0</Value></DefineOutput>

    <DefineOutput Name="FlagGoUp"><Description>
        Go-up flag (set to true when going up. Initialized to false).
    </Description><False/></DefineOutput>

    <DefineOutput Name="FlagGoDown"><Description>
        Go-down flag (set to true when going down. Initialized to True).
    </Description><True/></DefineOutput>

    <DefineOutput Name="SyslogGoUp"><Description>
        Flag of logging "GoUp" in syslog (initialized to false).
    </Description><False/></DefineOutput>

    <DefineOutput Name="SyslogGoDown"><Description>
        Flag of logging "GoDown" in syslog (initialized to false).
    </Description><False/></DefineOutput>

    <DefineOutput Name="FlagInitialDiveCompleted"><Description>
        Flag of initial dive completed. Initialized to false.
    </Description><False/></DefineOutput>

    <DefineOutput Name="DepthLogged"><Description></Description><Units:meter/><Value>0.0</Value></DefineOutput>

    <DefineOutput Name="ChlLogged"><Description></Description><Units:microgram_per_liter/><Value>0.0</Value></DefineOutput>

    <DefineOutput Name="CntSamples"><Description>
        Count of water samples (initilized to 1).
    </Description><Units:count/><Value>1</Value></DefineOutput>

    <DefineOutput Name="SampleOptionsSet"><Description>
        Sample options (DepDiffFromPeakChl, ReportAtSurface, ReacquirePeak)
        already set. Initialized to false.
    </Description><False/></DefineOutput>

    <DefineOutput Name="SampleCompleted"><Description>
        Sampling completed. Initialized to false.
    </Description><False/></DefineOutput>

    <DefineOutput Name="StoppedForNoFiringForTooLong"><Description>
        Mission stopped because of no firing for too long. Initialized to false.
    </Description><False/></DefineOutput>

    <DefineOutput Name="SampleCountIncreased"><Description>
        Sample count is increased. Initialized to False.
    </Description><False/></DefineOutput>

    <DefineOutput Name="ReachedWpt1"><Description>
        Sampling completed. Initialized to false.
    </Description><False/></DefineOutput>

    <DefineOutput Name="ReachedWpt2"><Description>
        Sampling completed. Initialized to false.
    </Description><False/></DefineOutput>

    <DefineOutput Name="ReachedWpt3"><Description>
        Sampling completed. Initialized to false.
    </Description><False/></DefineOutput>

    <DefineOutput Name="ReachedWpt4"><Description>
        Sampling completed. Initialized to false.
    </Description><False/></DefineOutput>

<!-- Missions should almost always start with a timeout -->

    <Timeout Duration="MissionTimeout"/>

<!-- Most missions should use the NeedComms aggregate. -->

    <Insert Filename="Insert/NeedComms.xml" Id="NeedComms"/>

<!-- Missions should almost always start with standard safety envelopes; most missions should not expose the parameters of these envelopes. -->

    <Sample:AbortSample>
        <Parallel/>
    </Sample:AbortSample>

    <Insert Filename="Insert/StandardEnvelopes.xml"/>

    <Assign><Sequence/><Arg Name="StandardEnvelopes:MinAltitude"/><Arg Name="MinAltitude"/></Assign>

    <Assign><Sequence/><Arg Name="StandardEnvelopes:MaxDepth"/><Arg Name="MaxDepth"/></Assign>

    <Assign><Sequence/><Arg Name="StandardEnvelopes:MinOffshore"/><Arg Name="MinOffshore"/></Assign>

    <Insert Filename="Insert/SampleAtDepth.xml">
        <RedefineArg Name="MaxWaitNotReachingDepth"><Arg Name="MaxWaitNotAchievingDepth"/></RedefineArg>
    </Insert>

    <Insert Filename="Insert/Science.xml">
        <RedefineArg Name="PeakDetectChlActive"><True/></RedefineArg>
        <RedefineArg Name="LowPassWindowLength"><Arg Name="LPWindowLength"/></RedefineArg>
        <RedefineArg Name="MedianFilterLen"><Arg Name="MedianFilterLength"/></RedefineArg>
        <RedefineArg Name="PeakShallowBound"><Arg Name="ShallowBoundChl"/></RedefineArg>
        <RedefineArg Name="PeakDeepBound"><Arg Name="DeepBoundChl"/></RedefineArg>
        <RedefineArg Name="DepChangeThreshForAttitudeFlip"><Arg Name="DepChangeThreshAttitudeFlip"/></RedefineArg>
    </Insert>

<!-- Many missions will keep mass position and buoyancy volume fixed at defaults. -->

    <Guidance:Pitch>
        <Parallel/>
        <Setting><Guidance:Pitch.massPosition/><Arg Name="MassDefault"/></Setting>
    </Guidance:Pitch>

    <Guidance:Buoyancy>
        <Parallel/>
        <Setting><Guidance:Buoyancy.position/><Arg Name="BuoyancyNeutral"/></Setting>
    </Guidance:Buoyancy>

    <Guidance:DepthEnvelope>
        <Description>
            Another depth envelope for the YoYo behavior. This envelope should
            fall within the limits of the standard safety envelopes in
            Insert/StandardEnvelopes.xml in order to avoid commanding high pitch
            angles for depth-terminated YoYos.
        </Description>
        <Parallel/>
        <Setting><Guidance:DepthEnvelope.minDepth/><Arg Name="YoYoMinDepth"/></Setting>
        <Setting><Guidance:DepthEnvelope.maxDepth/><Arg Name="YoYoMaxDepth"/></Setting>
        <Setting><Guidance:DepthEnvelope.upPitch/><Arg Name="YoYoUpPitch"/></Setting>
        <Setting><Guidance:DepthEnvelope.downPitch/><Arg Name="YoYoDownPitch"/></Setting>
    </Guidance:DepthEnvelope>

    <Guidance:AltitudeEnvelope>
        <Description>
            Another altitude envelope for the YoYo behavior. This envelope
            should fall within the limits of the standard safety envelopes in
            Insert/StandardEnvelopes.xml in order to avoid commanding high pitch
            angles for bottom-terminated YoYos.
        </Description>
        <Parallel/>
        <Setting><Guidance:AltitudeEnvelope.minAltitude/><Arg Name="YoYoMinAltitude"/></Setting>
        <Setting><Guidance:AltitudeEnvelope.pitch/><Arg Name="YoYoUpPitch"/></Setting>
    </Guidance:AltitudeEnvelope>

    <Guidance:YoYo>
        <Parallel/>
        <Setting><Guidance:YoYo.upPitch/><Arg Name="YoYoUpPitch"/></Setting>
        <Setting><Guidance:YoYo.downPitch/><Arg Name="YoYoDownPitch"/></Setting>
    </Guidance:YoYo>

    <Aggregate Id="SetSampleOptions">

        <When>
            <Called/>
        </When>

        <Aggregate Id="SetOptionsOfSample1">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>1</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType1"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample2">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>2</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType2"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample3">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>3</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType3"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample4">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>4</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType4"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample5">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>5</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType5"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample6">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>6</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType6"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample7">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>7</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType7"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample8">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>8</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType8"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample9">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>9</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType9"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample10">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>10</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType10"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample11">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>11</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType11"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample12">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>12</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType12"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample13">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>13</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType13"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample14">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>14</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType14"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample15">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>15</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType15"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample16">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>16</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType16"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample17">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>17</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType17"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample18">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>18</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType18"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample19">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>19</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType19"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample20">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>20</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType20"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample21">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>21</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType21"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample22">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>22</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType22"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample23">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>23</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType23"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample24">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>24</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType24"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample25">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>25</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType25"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample26">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>26</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType26"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample27">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>27</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType27"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample28">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>28</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType28"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample29">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>29</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType29"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample30">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>30</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType30"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample31">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>31</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType31"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample32">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>32</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType32"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample33">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>33</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType33"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample34">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>34</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType34"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample35">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>35</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType35"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample36">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>36</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType36"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample37">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>37</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType37"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample38">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>38</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType38"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample39">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>39</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType39"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample40">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>40</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType40"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample41">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>41</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType41"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample42">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>42</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType42"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample43">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>43</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType43"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample44">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>44</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType44"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample45">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>45</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType45"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample46">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>46</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType46"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample47">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>47</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType47"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample48">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>48</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType48"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample49">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>49</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType49"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample50">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>50</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType50"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample51">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>51</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType51"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample52">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>52</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType52"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample53">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>53</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType53"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample54">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>54</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType54"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample55">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>55</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType55"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample56">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>56</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType56"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample57">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>57</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType57"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample58">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>58</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType58"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample59">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>59</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType59"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="SetOptionsOfSample60">

            <When>
                <Arg Name="CntSamples"/>
                <Add><Arg Name="StartIndex"/></Add>

                <Sub><Units:count/><Value>1</Value></Sub>

                <Eq><Units:count/><Value>60</Value></Eq>
                <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
            </When>

            <Assign><Sequence/><Arg Name="CartridgeType"/><Arg Name="CartridgeType60"/></Assign>

            <Assign><Sequence/><Arg Name="SampleOptionsSet"/><True/></Assign>

        </Aggregate>

    </Aggregate>

    <Aggregate Id="FindPeakChlVerticalAndSample">

        <When>
            <Called/>
        </When>

        <Break><Arg Name="SampleCountIncreased"/>
            <Or><Arg Name="CntSamples"/><Gt><Arg Name="NumSamplers"/></Gt></Or>
        </Break>

        <Aggregate Id="SetSpeedRudderAngleInitialDive">

            <Sequence/>

            <When>
                <Not><Arg Name="FlagInitialDiveCompleted"/></Not>
            </When>

            <Guidance:SetSpeed>
                <Parallel/>
                <Setting><Guidance:SetSpeed.speed/><Arg Name="SpeedInitialDive"/></Setting>
            </Guidance:SetSpeed>

            <Guidance:Point>
                <Parallel/>
                <Setting><Guidance:Point.rudderAngle/><Arg Name="RudderAngleInitialDive"/></Setting>
            </Guidance:Point>

            <Guidance:Wait>
                <Sequence/>
                <Setting><Guidance:Wait.duration/><Arg Name="InitialDiveDuration"/></Setting>
            </Guidance:Wait>

            <Assign><Sequence/><Arg Name="FlagInitialDiveCompleted"/><True/></Assign>

        </Aggregate>

        <Aggregate Id="FindPeakTakeSample">

            <Sequence/>

            <Guidance:SetSpeed>
                <Parallel/>
                <Setting><Guidance:SetSpeed.speed/><Arg Name="SpeedFindChlPeakAndSample"/></Setting>
            </Guidance:SetSpeed>

            <Guidance:Point>
                <Parallel/>
                <Setting><Guidance:Point.rudderAngle/><Arg Name="RudderAngleFindChlPeakAndSample"/></Setting>
            </Guidance:Point>

            <Aggregate Id="NoFiringForTooLong">

                <When>
                    <Elapsed><Arg Name="ElapsedSinceStartOrLastSample"/></Elapsed>
                    <Gt><Arg Name="MaxWaitNoFiring"/></Gt>
                    <And><Not><Arg Name="FlagSamplingOngoing"/></Not></And>
                    <And><Not><Arg Name="StoppedForNoFiringForTooLong"/></Not></And>
                </When>

                <Assign><Sequence/><Arg Name="ElapsedTime"/><Elapsed><Arg Name="ElapsedSinceStartOrLastSample"/></Elapsed></Assign>

                <Syslog Severity="Important">No firing for too long. Stopping mission. ElapsedTime, MaxWaitNoFiring = <Arg Name="ElapsedTime"/><Units:minute/>, <Arg Name="MaxWaitNoFiring"/><Units:minute/></Syslog>

                <Guidance:Execute>
                    <Sequence/>
                    <Setting><Guidance:Execute.command/><String>stop</String></Setting>
                </Guidance:Execute>

                <Assign><Sequence/><Arg Name="StoppedForNoFiringForTooLong"/><True/></Assign>

            </Aggregate>

            <Aggregate Id="SetDepthRateGoDown">

                <While>
                    <Arg Name="FlagGoDown"/>
                </While>

                <Guidance:Pitch>
                    <Parallel/>
                    <Setting><Guidance:Pitch.depthRate/><Arg Name="DownRate"/></Setting>
                </Guidance:Pitch>

            </Aggregate>

            <Aggregate Id="SetDepthRateGoUp">

                <While>
                    <Arg Name="FlagGoUp"/>
                </While>

                <Guidance:Pitch>
                    <Parallel/>
                    <Setting><Guidance:Pitch.depthRate/><Arg Name="UpRate"/></Setting>
                </Guidance:Pitch>

            </Aggregate>

            <Aggregate Id="LogGoDown">

                <When>
                    <Arg Name="FlagGoDown"/>
                    <And><Not><Arg Name="SyslogGoDown"/></Not></And>
                </When>

                <Assign><Sequence/><Arg Name="DepthLogged"/><Universal:depth/></Assign>

                <Syslog Severity="Important">Go down from <Arg Name="DepthLogged"/><Units:meter/></Syslog>

                <Assign><Sequence/><Arg Name="SyslogGoDown"/><True/></Assign>

            </Aggregate>

            <Aggregate Id="SetFlagGoUp">

                <When>
                    <Arg Name="FlagFirstDive"/>
                    <And><Universal:depth/><Gt><Arg Name="DeepBoundChl"/></Gt></And>
                    <And><Not><Arg Name="FlagGoUp"/></Not></And>
                </When>

                <Assign><Sequence/><Arg Name="FlagGoUp"/><True/></Assign>

                <Assign><Sequence/><Arg Name="FlagGoDown"/><False/></Assign>

                <Assign><Sequence/><Arg Name="SyslogGoDown"/><False/></Assign>

            </Aggregate>

            <Aggregate Id="LogGoUp">

                <When>
                    <Arg Name="FlagGoUp"/>
                    <And><Not><Arg Name="SyslogGoUp"/></Not></And>
                </When>

                <Assign><Sequence/><Arg Name="DepthLogged"/><Universal:depth/></Assign>

                <Syslog Severity="Important">Go up from <Arg Name="DepthLogged"/><Units:meter/></Syslog>

                <Assign><Sequence/><Arg Name="SyslogGoUp"/><True/></Assign>

            </Aggregate>

            <Aggregate Id="SetChlPeakDepth">

                <When>
                    <Not><Arg Name="FlagPeakChlDepthSet"/></Not>
                    <And><Arg Name="FlagGoUp"/></And>
                    <And><Universal:depth/><Lt><Arg Name="DeepBoundChl"/><Sub><Arg Name="RiseFromTurningDepth"/></Sub></Lt></And>
                    <And><Arg Name="Science:PeakChlDepth"/><Gt><Arg Name="ShallowBoundChl"/></Gt></And>
                </When>

                <Assign><Sequence/><Arg Name="PeakChlDepthSet"/><Arg Name="Science:PeakChlDepth"/></Assign>

                <Assign><Sequence/><Arg Name="PeakChlSet"/><Arg Name="Science:PeakChl"/></Assign>

                <Assign><Sequence/><Arg Name="FlagFirstDive"/><False/></Assign>

                <Assign><Sequence/><Arg Name="DepthLogged"/><Universal:depth/></Assign>

                <Assign><Sequence/><Arg Name="ChlLogged"/><Universal:mass_concentration_of_chlorophyll_in_sea_water/></Assign>

                <Assign><Sequence/><Arg Name="FlagGoUp"/><False/></Assign>

                <Assign><Sequence/><Arg Name="FlagGoDown"/><False/></Assign>

                <Assign><Sequence/><Arg Name="SyslogGoUp"/><False/></Assign>

                <Assign><Sequence/><Arg Name="SyslogGoDown"/><False/></Assign>

                <Syslog Severity="Important">Set peak-chl depth. DepthLogged, ChlLogged, PeakChlDepthSet, PeakChlSet = <Arg Name="DepthLogged"/><Units:meter/>, <Arg Name="ChlLogged"/><Units:microgram_per_liter/>, <Arg Name="PeakChlDepthSet"/><Units:meter/>, <Arg Name="PeakChlSet"/><Units:microgram_per_liter/></Syslog>

                <Assign><Sequence/><Arg Name="FlagPeakChlDepthSet"/><True/></Assign>

            </Aggregate>

            <Aggregate Id="SetCartridgeType">

                <When>
                    <Arg Name="FlagPeakChlDepthSet"/>
                    <And><Not><Arg Name="FlagGoUp"/></Not></And>
                    <And><Not><Arg Name="FlagGoDown"/></Not></And>
                    <And><Not><Arg Name="FlagSamplingOngoing"/></Not></And>
                    <And><Arg Name="CntSamples"/><Le><Arg Name="NumSamplers"/></Le></And>
                    <And><Not><Arg Name="SampleOptionsSet"/></Not></And>
                    <And><Not><Arg Name="SampleCompleted"/></Not></And>
                </When>

                <Call Id="SampleOptions" RefId="SetSampleOptions"/>

            </Aggregate>

            <Aggregate Id="FiringOnDepth">

                <When>
                    <Arg Name="FlagPeakChlDepthSet"/>
                    <And><Not><Arg Name="FlagGoUp"/></Not></And>
                    <And><Not><Arg Name="FlagGoDown"/></Not></And>
                    <And><Not><Arg Name="FlagSamplingOngoing"/></Not></And>
                    <And><Arg Name="CntSamples"/><Le><Arg Name="NumSamplers"/></Le></And>
                    <And><Arg Name="SampleOptionsSet"/></And>
                    <And><Not><Arg Name="SampleCompleted"/></Not></And>
                </When>

                <Assign><Sequence/><Arg Name="SampleAtDepth:TargetDepth"/><Arg Name="PeakChlDepthSet"/></Assign>

                <Assign><Sequence/><Arg Name="SampleAtDepth:SettleTime"/><Arg Name="WaitDepthUndulation"/></Assign>

                <Assign><Sequence/><Arg Name="FlagSamplingOngoing"/><True/></Assign>

                <Assign><Sequence/><Arg Name="SampleCountIncreased"/><False/></Assign>

                <Syslog Severity="Important">Taking sample No.<Arg Name="CntSamples"/><Units:count/>. Latitude, longitude = <Universal:latitude/><Units:degree/>, <Universal:longitude/><Units:degree/>. Target depth = <Arg Name="PeakChlDepthSet"/><Units:meter/>.</Syslog>

                <Syslog Severity="Important">Requesting ESP cartridge type:<Arg Name="CartridgeType"/><Units:count/></Syslog>

                <Aggregate Id="TriggerOnDepth">

                    <Break>
                        <IsNaN><Arg Name="CartridgeType"/>
                        </IsNaN>
                    </Break>

                    <Assign><Sequence/><Arg Name="SampleAtDepth:ESPCartridgeType"/><Arg Name="CartridgeType"/></Assign>

                    <Call Id="Sampling" RefId="SampleAtDepth"/>

                    <Assign><Sequence/><Arg Name="ElapsedSinceStartOrLastSample"/><Units:hour/><Value>0</Value></Assign>

                    <Syslog Severity="Important">Sample No.<Arg Name="CntSamples"/><Units:count/> completed.</Syslog>

                    <Assign><Sequence/><Arg Name="FlagSamplingOngoing"/><False/></Assign>

                    <Assign><Sequence/><Arg Name="SampleCompleted"/><True/></Assign>

                    <Assign><Sequence/><Arg Name="FlagPeakChlDepthSet"/><False/></Assign>

                </Aggregate>

            </Aggregate>

            <Aggregate Id="IncreaseSampleCount">

                <When>
                    <Arg Name="SampleCompleted"/>
                    <And><Not><Arg Name="SampleCountIncreased"/></Not></And>
                </When>

                <Assign><Sequence/><Arg Name="CntSamples"/><Arg Name="CntSamples"/><Add><Units:count/> <Value>1</Value></Add></Assign>

                <Assign><Sequence/><Arg Name="SampleCompleted"/><False/></Assign>

                <Assign><Sequence/><Arg Name="SampleCountIncreased"/><True/></Assign>

            </Aggregate>

        </Aggregate>

    </Aggregate>

    <Aggregate Id="WaypointSampling">

        <When>
            <Called/>
        </When>

        <Call Id="Wpt1NeedComms" RefId="NeedComms"/>

        <Assign><Sequence/><Arg Name="SampleOptionsSet"/><False/></Assign>

        <Assign><Sequence/><Arg Name="SampleCountIncreased"/><False/></Assign>

        <Assign><Sequence/><Arg Name="FlagPeakChlDepthSet"/><False/></Assign>

        <Assign><Sequence/><Arg Name="FlagGoDown"/><True/></Assign>

        <Assign><Sequence/><Arg Name="FlagFirstDive"/><True/></Assign>

        <Assign><Sequence/><Arg Name="ElapsedSinceStartOrLastSample"/><Units:hour/><Value>0</Value></Assign>

        <Assign><Sequence/><Arg Name="NeedComms:DiveInterval"/><Arg Name="NeedCommsSampling"/></Assign>

        <Call Id="SampleAtWaypoint" RefId="FindPeakChlVerticalAndSample"/>

        <Assign><Sequence/><Arg Name="NeedComms:DiveInterval"/><Arg Name="NeedCommsTimeTransit"/></Assign>

    </Aggregate>

    <Aggregate Id="SettingsCrossFront">

        <When>
            <Called/>
        </When>

        <Assign><Sequence/><Arg Name="FrontDetectionEnabled"/><False/></Assign>

        <Assign><Sequence/><Arg Name="SampleOptionsSet"/><False/></Assign>

        <Assign><Sequence/><Arg Name="SampleCountIncreased"/><False/></Assign>

        <Assign><Sequence/><Arg Name="FlagPeakChlDepthSet"/><False/></Assign>

        <Assign><Sequence/><Arg Name="FlagGoDown"/><True/></Assign>

        <Assign><Sequence/><Arg Name="FlagFirstDive"/><True/></Assign>

        <Assign><Sequence/><Arg Name="FirstPass"/><False/></Assign>

        <Assign><Sequence/><Arg Name="FrontCrossed"/><True/></Assign>

        <Assign><Sequence/><Arg Name="ReachedWpt1"/><False/></Assign>

        <Assign><Sequence/><Arg Name="ReachedWpt2"/><False/></Assign>

        <Assign><Sequence/><Arg Name="ReachedWpt3"/><False/></Assign>

        <Assign><Sequence/><Arg Name="ReachedWpt4"/><False/></Assign>

    </Aggregate>

    <Call Id="StartingMission" RefId="NeedComms"/>

    <Aggregate Id="BackAndForth">

        <Sequence Repeat="RepeatTransects"/>

        <Break><Arg Name="CntSamples"/>
            <Gt><Arg Name="NumSamplers"/></Gt>
        </Break>

        <Assign><Sequence/><Arg Name="FrontCrossed"/><False/></Assign>

        <Aggregate Id="Waypoints">

            <Sequence/>

            <Break><Arg Name="FrontCrossed"/>
            </Break>

            <Assign><Sequence/><Arg Name="NeedComms:DiveInterval"/><Arg Name="NeedCommsTimeTransit"/></Assign>

            <Guidance:SetSpeed>
                <Parallel/>
                <Setting><Guidance:SetSpeed.speed/><Arg Name="SpeedTransit"/></Setting>
            </Guidance:SetSpeed>

            <Aggregate Id="SampleFrontFirstPass">

                <Break>
                    <Not><Arg Name="FirstPass"/></Not>
                </Break>

                <Aggregate Id="Wpt1">

                    <Sequence/>

                    <Guidance:Waypoint>
                        <Sequence/>
                        <Setting><Guidance:Waypoint.latitude/><Arg Name="Lat1"/></Setting>
                        <Setting><Guidance:Waypoint.longitude/><Arg Name="Lon1"/></Setting>
                    </Guidance:Waypoint>

                </Aggregate>

                <Aggregate Id="Wpt2">

                    <Sequence/>

                    <Guidance:Waypoint>
                        <Sequence/>
                        <Setting><Guidance:Waypoint.latitude/><Arg Name="Lat2"/></Setting>
                        <Setting><Guidance:Waypoint.longitude/><Arg Name="Lon2"/></Setting>
                    </Guidance:Waypoint>

                </Aggregate>

                <Aggregate Id="Wpt3">

                    <Sequence/>

                    <Guidance:Waypoint>
                        <Sequence/>
                        <Setting><Guidance:Waypoint.latitude/><Arg Name="Lat3"/></Setting>
                        <Setting><Guidance:Waypoint.longitude/><Arg Name="Lon3"/></Setting>
                    </Guidance:Waypoint>

                </Aggregate>

                <Aggregate Id="Wpt4">

                    <Sequence/>

                    <Guidance:Waypoint>
                        <Sequence/>
                        <Setting><Guidance:Waypoint.latitude/><Arg Name="Lat4"/></Setting>
                        <Setting><Guidance:Waypoint.longitude/><Arg Name="Lon4"/></Setting>
                    </Guidance:Waypoint>

                </Aggregate>

                <Aggregate Id="Wpt5">

                    <Sequence/>

                    <Guidance:Waypoint>
                        <Sequence/>
                        <Setting><Guidance:Waypoint.latitude/><Arg Name="Lat5"/></Setting>
                        <Setting><Guidance:Waypoint.longitude/><Arg Name="Lon5"/></Setting>
                    </Guidance:Waypoint>

                </Aggregate>

                <Aggregate Id="Wpt6">

                    <Sequence/>

                    <Guidance:Waypoint>
                        <Sequence/>
                        <Setting><Guidance:Waypoint.latitude/><Arg Name="Lat6"/></Setting>
                        <Setting><Guidance:Waypoint.longitude/><Arg Name="Lon6"/></Setting>
                    </Guidance:Waypoint>

                </Aggregate>

            </Aggregate>

            <Aggregate Id="SampleFrontNotFirstPass">

                <Break><Arg Name="FirstPass"/>
                </Break>

                <Aggregate Id="Wpt1">

                    <Sequence/>

                    <When>
                        <Arg Name="Lat1"/>
                        <Ge><Units:degree/><Value>0</Value></Ge>
                        <Or><Arg Name="Lat1"/><Lt><Units:degree/><Value>0</Value></Lt></Or>
                        <And><Arg Name="Lon1"/><Ge><Units:degree/><Value>0</Value></Ge><Or><Arg Name="Lon1"/><Lt><Units:degree/><Value>0</Value></Lt></Or></And>
                    </When>

                    <Break><Arg Name="ReachedWpt1"/>
                    </Break>

                    <Guidance:Waypoint>
                        <Sequence/>
                        <Setting><Guidance:Waypoint.latitude/><Arg Name="Lat1"/></Setting>
                        <Setting><Guidance:Waypoint.longitude/><Arg Name="Lon1"/></Setting>
                    </Guidance:Waypoint>

                    <Call Id="SamplingWpt1" RefId="WaypointSampling"/>

                    <Assign><Sequence/><Arg Name="ReachedWpt1"/><True/></Assign>

                </Aggregate>

                <Aggregate Id="Wpt2">

                    <Sequence/>

                    <When>
                        <Arg Name="Lat2"/>
                        <Ge><Units:degree/><Value>0</Value></Ge>
                        <Or><Arg Name="Lat2"/><Lt><Units:degree/><Value>0</Value></Lt></Or>
                        <And><Arg Name="Lon2"/><Ge><Units:degree/><Value>0</Value></Ge><Or><Arg Name="Lon2"/><Lt><Units:degree/><Value>0</Value></Lt></Or></And>
                    </When>

                    <Break>
                        <Not><Arg Name="ReachedWpt1"/></Not>
                        <Or><Arg Name="ReachedWpt2"/></Or>
                    </Break>

                    <Guidance:Waypoint>
                        <Sequence/>
                        <Setting><Guidance:Waypoint.latitude/><Arg Name="Lat2"/></Setting>
                        <Setting><Guidance:Waypoint.longitude/><Arg Name="Lon2"/></Setting>
                    </Guidance:Waypoint>

                    <Call Id="SamplingWpt2" RefId="WaypointSampling"/>

                    <Assign><Sequence/><Arg Name="ReachedWpt2"/><True/></Assign>

                </Aggregate>

                <Aggregate Id="Wpt3">

                    <Sequence/>

                    <When>
                        <Arg Name="Lat3"/>
                        <Ge><Units:degree/><Value>0</Value></Ge>
                        <Or><Arg Name="Lat3"/><Lt><Units:degree/><Value>0</Value></Lt></Or>
                        <And><Arg Name="Lon3"/><Ge><Units:degree/><Value>0</Value></Ge><Or><Arg Name="Lon3"/><Lt><Units:degree/><Value>0</Value></Lt></Or></And>
                    </When>

                    <Break>
                        <Not><Arg Name="ReachedWpt2"/></Not>
                        <Or><Arg Name="ReachedWpt3"/></Or>
                    </Break>

                    <Guidance:Waypoint>
                        <Sequence/>
                        <Setting><Guidance:Waypoint.latitude/><Arg Name="Lat3"/></Setting>
                        <Setting><Guidance:Waypoint.longitude/><Arg Name="Lon3"/></Setting>
                    </Guidance:Waypoint>

                    <Call Id="SamplingWpt3" RefId="WaypointSampling"/>

                    <Assign><Sequence/><Arg Name="ReachedWpt3"/><True/></Assign>

                </Aggregate>

                <Aggregate Id="Wpt4">

                    <Sequence/>

                    <When>
                        <Arg Name="Lat4"/>
                        <Ge><Units:degree/><Value>0</Value></Ge>
                        <Or><Arg Name="Lat4"/><Lt><Units:degree/><Value>0</Value></Lt></Or>
                        <And><Arg Name="Lon4"/><Ge><Units:degree/><Value>0</Value></Ge><Or><Arg Name="Lon4"/><Lt><Units:degree/><Value>0</Value></Lt></Or></And>
                    </When>

                    <Break>
                        <Not><Arg Name="ReachedWpt3"/></Not>
                        <Or><Arg Name="ReachedWpt4"/></Or>
                    </Break>

                    <Guidance:Waypoint>
                        <Sequence/>
                        <Setting><Guidance:Waypoint.latitude/><Arg Name="Lat4"/></Setting>
                        <Setting><Guidance:Waypoint.longitude/><Arg Name="Lon4"/></Setting>
                    </Guidance:Waypoint>

                    <Call Id="SamplingWpt4" RefId="WaypointSampling"/>

                    <Assign><Sequence/><Arg Name="ReachedWpt4"/><True/></Assign>

                </Aggregate>

                <Aggregate Id="Wpt5">

                    <Sequence/>

                    <Guidance:Waypoint>
                        <Sequence/>
                        <Setting><Guidance:Waypoint.latitude/><Arg Name="Lat5"/></Setting>
                        <Setting><Guidance:Waypoint.longitude/><Arg Name="Lon5"/></Setting>
                    </Guidance:Waypoint>

                    <Assign><Sequence/><Arg Name="FrontDetectionEnabled"/><True/></Assign>

                </Aggregate>

                <Aggregate Id="Wpt6">

                    <Sequence/>

                    <Guidance:Waypoint>
                        <Sequence/>
                        <Setting><Guidance:Waypoint.latitude/><Arg Name="Lat6"/></Setting>
                        <Setting><Guidance:Waypoint.longitude/><Arg Name="Lon6"/></Setting>
                    </Guidance:Waypoint>

                </Aggregate>

            </Aggregate>

        </Aggregate>

    </Aggregate>

    <Aggregate Id="CrossFrontFromStratifiedToUpwelling">

        <Sequence/>

<!--Note: <And><Estimation:StratificationFrontDetector.stratified/></And> below is correct, due to the one-profile delay of homogeneous/stratified flag flipping in behavior code.-->

        <When>
            <Arg Name="FrontAutonomousDetection"/>
            <And><Estimation:StratificationFrontDetector.loadAtStartup/></And>
            <And><Estimation:StratificationFrontDetector.front/></And>
            <And><Estimation:StratificationFrontDetector.stratified/></And>
            <And><Arg Name="FrontDetectionEnabled"/></And>
            <And><Not><Arg Name="FrontCrossed"/></Not></And>
            <Or><Not><Arg Name="FrontAutonomousDetection"/></Not><And><Arg Name="FromStratifiedToUpwelling"/></And><And><Universal:longitude/><Ge><Arg Name="LonFrontMinDesignated"/></Ge></And><And><Universal:longitude/><Le><Arg Name="LonFrontMaxDesignated"/></Le></And><And><Arg Name="FrontDetectionEnabled"/></And><And><Not><Arg Name="FrontCrossed"/></Not></And></Or>
        </When>

        <Call Id="CrossFrontNeedComms" RefId="NeedComms"/>

        <Assign><Sequence/><Arg Name="LatitudeFront"/><Universal:latitude/></Assign>

        <Assign><Sequence/><Arg Name="LongitudeFront"/><Universal:longitude/></Assign>

        <Assign><Sequence/><Arg Name="Lat1"/><Arg Name="LatitudeFront"/><Add><Arg Name="DeltaLatUpwellingSide1"/></Add></Assign>

        <Assign><Sequence/><Arg Name="Lon1"/><Arg Name="LongitudeFront"/><Add><Arg Name="DeltaLonUpwellingSide1"/></Add></Assign>

        <Assign><Sequence/><Arg Name="Lat2"/><Arg Name="LatitudeFront"/><Add><Arg Name="DeltaLatUpwellingSide2"/></Add></Assign>

        <Assign><Sequence/><Arg Name="Lon2"/><Arg Name="LongitudeFront"/><Add><Arg Name="DeltaLonUpwellingSide2"/></Add></Assign>

        <Assign><Sequence/><Arg Name="Lat3"/><Arg Name="LatitudeFront"/><Add><Arg Name="DeltaLatUpwellingSide3"/></Add></Assign>

        <Assign><Sequence/><Arg Name="Lon3"/><Arg Name="LongitudeFront"/><Add><Arg Name="DeltaLonUpwellingSide3"/></Add></Assign>

        <Assign><Sequence/><Arg Name="Lat4"/><Arg Name="LatitudeFront"/><Add><Arg Name="DeltaLatUpwellingSide4"/></Add></Assign>

        <Assign><Sequence/><Arg Name="Lon4"/><Arg Name="LongitudeFront"/><Add><Arg Name="DeltaLonUpwellingSide4"/></Add></Assign>

<!-- Reach the endpoint in upwelling water -->

        <Assign><Sequence/><Arg Name="Lat5"/><Arg Name="LatUpwellingEnd"/></Assign>

        <Assign><Sequence/><Arg Name="Lon5"/><Arg Name="LonUpwellingEnd"/></Assign>

<!-- Turn around to stratified water -->

        <Assign><Sequence/><Arg Name="Lat6"/><Arg Name="LatStratifiedEnd"/></Assign>

        <Assign><Sequence/><Arg Name="Lon6"/><Arg Name="LonStratifiedEnd"/></Assign>

        <Syslog Severity="Important">Crossed the front from stratified to upwelling. VTHI = <Derivation:VerticalHomogeneityIndexCalculator.vertical_temperature_homogeneity_index/><Units:celsius/>. VSHI = <Derivation:VerticalHomogeneityIndexCalculator.vertical_salinity_homogeneity_index/><Units:psu/>. Front latitude, longitude = <Arg Name="LatitudeFront"/><Units:degree/>, <Arg Name="LongitudeFront"/><Units:degree/>. Lat1, Lon1 = <Arg Name="Lat1"/><Units:degree/>, <Arg Name="Lon1"/><Units:degree/>. Lat2, Lon2 = <Arg Name="Lat2"/><Units:degree/>, <Arg Name="Lon2"/><Units:degree/>. Lat3, Lon3 = <Arg Name="Lat3"/><Units:degree/>, <Arg Name="Lon3"/><Units:degree/>. Lat4, Lon4 = <Arg Name="Lat4"/><Units:degree/>, <Arg Name="Lon4"/><Units:degree/>. Lat5, Lon5 = <Arg Name="Lat5"/><Units:degree/>, <Arg Name="Lon5"/><Units:degree/>. Lat6, Lon6 = <Arg Name="Lat6"/><Units:degree/>, <Arg Name="Lon6"/><Units:degree/>. Sample count = <Arg Name="CntSamples"/><Units:count/>.</Syslog>

        <Call Id="SettingsCrossFrontFromUpwellingToStratified" RefId="SettingsCrossFront"/>

        <Assign><Sequence/><Arg Name="ElapsedSinceStartOrLastSample"/><Units:hour/><Value>0</Value></Assign>

        <Assign><Sequence/><Arg Name="NeedComms:DiveInterval"/><Arg Name="NeedCommsSampling"/></Assign>

        <Call Id="SampleAtFrontFromUpwellingToStratified" RefId="FindPeakChlVerticalAndSample"/>

        <Assign><Sequence/><Arg Name="NeedComms:DiveInterval"/><Arg Name="NeedCommsTimeTransit"/></Assign>

        <Assign><Sequence/><Arg Name="FromStratifiedToUpwelling"/><False/></Assign>

    </Aggregate>

    <Aggregate Id="CrossFrontFromUpwellingToStratified">

        <Sequence/>

<!--Note: <And><Estimation:StratificationFrontDetector.homogeneous/></And> below is correct, due to the one-profile delay of homogeneous/stratified flag flipping in behavior code.-->

        <When>
            <Arg Name="FrontAutonomousDetection"/>
            <And><Estimation:StratificationFrontDetector.loadAtStartup/></And>
            <And><Estimation:StratificationFrontDetector.front/></And>
            <And><Estimation:StratificationFrontDetector.homogeneous/></And>
            <And><Arg Name="FrontDetectionEnabled"/></And>
            <And><Not><Arg Name="FrontCrossed"/></Not></And>
            <Or><Not><Arg Name="FrontAutonomousDetection"/></Not><And><Not><Arg Name="FromStratifiedToUpwelling"/></Not></And><And><Universal:longitude/><Ge><Arg Name="LonFrontMinDesignated"/></Ge></And><And><Universal:longitude/><Le><Arg Name="LonFrontMaxDesignated"/></Le></And><And><Arg Name="FrontDetectionEnabled"/></And><And><Not><Arg Name="FrontCrossed"/></Not></And></Or>
        </When>

        <Call Id="CrossFrontNeedComms" RefId="NeedComms"/>

        <Assign><Sequence/><Arg Name="LatitudeFront"/><Universal:latitude/></Assign>

        <Assign><Sequence/><Arg Name="LongitudeFront"/><Universal:longitude/></Assign>

        <Assign><Sequence/><Arg Name="Lat1"/><Arg Name="LatitudeFront"/><Add><Arg Name="DeltaLatStratifiedSide1"/></Add></Assign>

        <Assign><Sequence/><Arg Name="Lon1"/><Arg Name="LongitudeFront"/><Add><Arg Name="DeltaLonStratifiedSide1"/></Add></Assign>

        <Assign><Sequence/><Arg Name="Lat2"/><Arg Name="LatitudeFront"/><Add><Arg Name="DeltaLatStratifiedSide2"/></Add></Assign>

        <Assign><Sequence/><Arg Name="Lon2"/><Arg Name="LongitudeFront"/><Add><Arg Name="DeltaLonStratifiedSide2"/></Add></Assign>

        <Assign><Sequence/><Arg Name="Lat3"/><Arg Name="LatitudeFront"/><Add><Arg Name="DeltaLatStratifiedSide3"/></Add></Assign>

        <Assign><Sequence/><Arg Name="Lon3"/><Arg Name="LongitudeFront"/><Add><Arg Name="DeltaLonStratifiedSide3"/></Add></Assign>

        <Assign><Sequence/><Arg Name="Lat4"/><Arg Name="LatitudeFront"/><Add><Arg Name="DeltaLatStratifiedSide4"/></Add></Assign>

        <Assign><Sequence/><Arg Name="Lon4"/><Arg Name="LongitudeFront"/><Add><Arg Name="DeltaLonStratifiedSide4"/></Add></Assign>

<!-- Reach the endpoint in stratified water -->

        <Assign><Sequence/><Arg Name="Lat5"/><Arg Name="LatStratifiedEnd"/></Assign>

        <Assign><Sequence/><Arg Name="Lon5"/><Arg Name="LonStratifiedEnd"/></Assign>

<!-- Turn around to upwelling water -->

        <Assign><Sequence/><Arg Name="Lat6"/><Arg Name="LatUpwellingEnd"/></Assign>

        <Assign><Sequence/><Arg Name="Lon6"/><Arg Name="LonUpwellingEnd"/></Assign>

        <Syslog Severity="Important">Crossed the front from upwelling to stratified. VTHI = <Derivation:VerticalHomogeneityIndexCalculator.vertical_temperature_homogeneity_index/><Units:celsius/>. VSHI = <Derivation:VerticalHomogeneityIndexCalculator.vertical_salinity_homogeneity_index/><Units:psu/>. Front latitude, longitude = <Arg Name="LatitudeFront"/><Units:degree/>, <Arg Name="LongitudeFront"/><Units:degree/>. Lat1, Lon1 = <Arg Name="Lat1"/><Units:degree/>, <Arg Name="Lon1"/><Units:degree/>. Lat2, Lon2 = <Arg Name="Lat2"/><Units:degree/>, <Arg Name="Lon2"/><Units:degree/>. Lat3, Lon3 = <Arg Name="Lat3"/><Units:degree/>, <Arg Name="Lon3"/><Units:degree/>. Lat4, Lon4 = <Arg Name="Lat4"/><Units:degree/>, <Arg Name="Lon4"/><Units:degree/>. Lat5, Lon5 = <Arg Name="Lat5"/><Units:degree/>, <Arg Name="Lon5"/><Units:degree/>. Lat6, Lon6 = <Arg Name="Lat6"/><Units:degree/>, <Arg Name="Lon6"/><Units:degree/>. Sample count = <Arg Name="CntSamples"/><Units:count/></Syslog>

        <Call Id="SettingsCrossFrontFromUpwellingToStratified" RefId="SettingsCrossFront"/>

        <Assign><Sequence/><Arg Name="ElapsedSinceStartOrLastSample"/><Units:hour/><Value>0</Value></Assign>

        <Assign><Sequence/><Arg Name="NeedComms:DiveInterval"/><Arg Name="NeedCommsSampling"/></Assign>

        <Call Id="SampleAtFrontFromUpwellingToStratified" RefId="FindPeakChlVerticalAndSample"/>

        <Assign><Sequence/><Arg Name="NeedComms:DiveInterval"/><Arg Name="NeedCommsTimeTransit"/></Assign>

        <Assign><Sequence/><Arg Name="FromStratifiedToUpwelling"/><True/></Assign>

    </Aggregate>

</Mission>
