in fig1 a - 1b , a downhole flow device 100 has a housing 110 , a sliding sleeve 120 , a ported sleeve 170 , a landing 180 , and a seal 200 . as shown , the housing ( indicated generally by 110 ) can have a number of interconnecting housing portions 110 a - f that facilitate assembly . in the present implementation , the flow device 100 is a reservoir control tool that couples at uphole and downhole ends 102 / 104 to other tubing components ( not shown ), although the teachings of the present disclosure may be used on any other downhole flow device , such as a sliding sleeve , a downhole control valve , a crossover tool , etc . when used for reservoir control , the tool 100 operates as a hydraulically - actuated variable choke valve and can adjust the rate of production or injection of fluid through the tool 100 . for example , the tool 100 can be run as part of a completion tubing string in the well . once deployed , operators can operate the tool 100 to variably choke back the production from the well &# 39 ; s annulus into the tool 100 . this may be done to reduce the rate of water produced from the well or to balance the rate of production ( and the rate of pressure drop ) of one producing zone against another . in some cases , each production zone could have a corresponding tool 100 that can be varied . as opposed to production , the tool 100 may also be used for varied injection of fluids from the tubing string into the annulus of the well . the ported sleeve 170 has a plurality of ports 174 a - g disposed on an axis of the sleeve 170 . exposure of more or less of the ports 174 a - g increases or decreases the flow through the tool 100 . although shown having several separate ports 174 a - g , the ported sleeve 170 can have one or more ports disposed along the axis of the sleeve 174 so that more or less exposure of the one or more ports can increase or decrease flow through the tool 100 . for example , the ported sleeve 170 can having one port that increases in size along the axis of the ported sleeve 170 and can have any desirable shape . to choke the flow into or out of the tool 100 completely , the sliding sleeve 120 fits all the way onto the ported sleeve 170 as shown in fig1 a - 1 b so that none of the ports 174 a - g in the ported sleeve 170 are exposed . as shown , the seal 200 on the closed sleeves 120 / 170 seals flow into ( or out of ) the tool 100 when the sliding sleeve 120 is in a closed position on the ported sleeve 170 . to achieve variable choking , the tool &# 39 ; s sliding sleeve 120 can be hydraulically moved relative to the ported sleeve 170 , and the changing position of the sliding sleeve 120 controls the flow into ( or out of ) the sleeve &# 39 ; s bore 172 by disengaging the seal 200 and exposing more or less ports 174 in the ported sleeve 170 . when the sliding sleeve 120 is moved , for example , the seal 200 separates , and the sliding sleeve 120 opens relative to the ports 174 to allow fluid to flow from a surrounding annulus through windows 106 in the tool &# 39 ; s housing 110 ( i . e ., portion 110 e ) and into the ported sleeve &# 39 ; s bore 172 ( or vice versa ). as best shown in fig1 b , the ports 174 a - g defined in the ported sleeve 170 generally increase in size ( diameter ) along the axis of the sleeve 170 . therefore , the first ports 174 a ( four of which are defined around the circumference of the ported sleeve 170 ) have a first diameter , while the other ports 174 b - e above them have a slightly greater diameter . the next highest port 174 f has an even greater diameter , and the last port 174 g has the largest diameter . in this way , as the sliding sleeve 120 moves along the ported sleeve 170 , the sliding sleeve 120 successively reveals more of the ports 174 a - g , which increases the flow through the tool 100 . in the current arrangement , the tool 100 can operate at eight discrete positions to control the amount of flow area through the tool 100 . these positions are defined in percentages of the flow area of the tubing string ( specifically the diameter of the ported sleeve &# 39 ; s bore 172 ). for example , the tool &# 39 ; s positions can be defined as follows : 0 % closed , 1 % open , 3 % open , 5 % open , 7 % open , 9 % open , 15 % open , and 100 % open . therefore , with the tool 100 set at the 5 % position , the ports 174 a - c are exposed , and the flow area through the tool 100 is 5 % of the flow area through comparably sized tubing . as will be appreciated , these values are illustrative . the actual size and number of ports 174 a - g for an implementation depends on the overall size of the tool 100 and the desired or expected flow characteristics as well as other implementation specific details . in other examples , the tool 100 may have more or less ports , and some or all of the ports may have the same diameters . as best shown in fig1 b , the seal 200 has first and second seal components 210 / 250 that mate with one another when the sliding sleeve 120 is closed . the first ( moving ) component 210 moves with the sliding sleeve 210 , while the second ( stationary ) component 250 remains stationary . either one or both of these components 210 / 250 can be incorporated into its respective sleeve ( as is the stationary component 250 ) or can be an independent component affixed onto its respective sleeve ( as is the movable component 210 ). as discussed below , the seal components 210 / 250 are intended to reduce damage to the seal 200 , and the design of the seal 200 is such that it resists erosion and is self - protecting . details of the seal 200 are shown in fig2 . the moving component 210 has a first inner shelf 212 , a first inner ledge 214 , a second inner shelf 216 , and a second inner ledge 218 — each of which face inward toward the ported sleeve ( not shown ). the stationary component 250 has a somewhat complimentary configuration , including a first outer shelf 252 , a first outer ledge 254 , a second outer shelf 256 , and a second outer ledge 258 — each of which face outward from the ported sleeve ( not shown ). the stationary component 250 may also define a well 255 where the second outer shelf 256 mates with the first outer ledge 254 . the shelves 212 / 252 define a first flow passage 202 , the first ledges 214 / 254 define a second flow passage 204 , and the second shelves 216 / 256 define a third flow passage 206 through which fluid can flow through the seal 200 . the flow passages 202 , 204 , and 206 create seal points between the metal - to - metal seal produced between the components 210 / 250 . engagement between the first ledges 214 / 254 produces the primary sealing function when the components 210 / 250 are closed against one another . with an understanding of the seal 200 and its components 210 / 250 , discussion now turns to how the seal 200 achieves pressure assisted and erosion resistant sealing on the tool 100 . the seal 200 is assisted closed in metal - to - metal engagement by either internal pressure acting inside the tool 100 or by external pressure acting outside the tool 100 . in fig4 a - 4b , the tool 100 is shown closed , and the seal components 210 / 250 are shown mated with one another . a lower packing element or seal 178 seals between the ported sleeve 170 and the housing 110 ( i . e ., portion 110 f ) and isolates fluid pressure inside the tool 100 from outside the tool 100 . as noted previously , the primary sealing function of the closed seal 200 is provided by engagement of ledges 214 / 254 . as constructed , the engagement 214 / 254 are set at a circumference that matches a centerline circumference of the lower packing seal 178 on the tool 100 . as described below , the arrangement of the ledges 214 / 254 , centerline , the packing seal 178 , and other features give pressure assistance to the seal 200 regardless of whether the tool 100 is exposed to internal or external pressure differentials . in fig4 a , an internal pressure differential in the bore 112 is shown acting on the tool 100 . fluid pressure is capable of acting against the distal end of the ported sleeve 120 , which is exposed and unsealed relative to the fluid pressure in the bore 112 . as a consequence , the fluid pressure can act against the lower shoulder of the packing seal 178 . this fluid pressure creates a piston effect on the ported sleeve 170 . the resulting pressure pushes the ported sleeve 170 and its seal component 250 toward the sliding sleeve 120 and its seal component 210 , thereby assisting the sealing engagement between them . in fig4 b , an external pressure differential is shown acting on the tool 100 , but the seal 200 is also pressure assisted in this circumstance . the external fluid pressure acts against the upper shoulder of the packing seal 178 . this moves the packing seal 178 away from the ported sleeve &# 39 ; s adjacent shoulder so that the seal 178 abuts a landing 180 unconnected to the ported sleeve 170 . as a consequence , the fluid pressure can act against the ported sleeve &# 39 ; s shoulder . again , this tends to create a piston effect on the ported sleeve 170 that attempts to push the ported sleeve 170 and its seal component 250 toward the sliding sleeve 120 and its seal component 210 . therefore , the seal 200 and configuration of the ledges 214 / 254 and seal 178 help pressure assist the seal produced regardless of whether exposed to an internal or external pressure differential . as noted previously , the tool 100 can encounter problems caused by erosive damage to seals and metal components when varying flow therethrough . the seal 200 of the present disclosure is intended to control the velocities of abrasive flow and isolates portion of the seal 200 from the flow as much as possible to mitigate erosive damage . returning to fig2 , the first flow passage 202 from the shelves 212 / 252 creates a very small choke when the components 210 / 250 are closed or slightly open . the second shelves 216 / 256 providing the second flow passage 206 also provide a secondary choke that reduces the flow possible through the seal components 210 / 250 . at the instant the seal components 210 / 250 start to separate and break the seal between the ledges 214 / 254 , the first flow passage 202 allows fluid to flow through the seal 200 , but the small gap between the shelves 212 / 252 defines the smallest available flow area through the seal 200 . this secondary choke from the sealing ledges 214 / 254 also limits the detrimental flow when the seal components 210 / 250 are first separated . the limited flow area through the first flow passage 202 means that any sudden erosive flow from fluids flowing from the annulus into the tool ( or vice versa ) mainly interacts with the shelves 212 / 252 . accordingly , the shelves 212 / 252 take the brunt of the erosive flow rather than the sealing ledges 214 / 254 themselves , which are susceptible to detrimental erosion . in this way , the seal 200 can be self - protecting by making erosion occur away from the sealing ledges 214 / 254 at initial opening of the seal 200 . as the sliding sleeve 120 is moved on the ported sleeve 170 , the area of the flow through passages 202 , 204 , 206 changes . details of how the flow area changes are shown in fig3 , which graphs some calculations for a tool 100 having an internal diameter of about 5 - in . as evident from fig3 , the first flow passage 202 defines a limiting flow area through the tool 100 as the seal 200 is initially opened ( i . e ., when the sleeve 120 has traveled from 0 to 1 - in .). in one implementation , the sliding sleeve ( 120 ) travels approximately 0 . 5 - in . open from the ported sleeve ( 170 ) to expose the first port ( 174 a ) and allow 1 % of flow through the tool 100 . in this way , the shelves 212 / 252 act to choke the flow and take the brunt of any erosive flow until the valve is 1 % open . even after that point , the first inner ledge 214 is already moved clear of the first port ( 174 a ) so the ledge 214 can avoid erosive flow , as detailed below . fig5 - 9 show some initial conditions of the seal 200 as the tool 100 opens ( or closes in the reverse ). in the closed condition shown in fig5 , the flow area is zero , and the sliding sleeve 120 has not moved . although the flow passages 202 , 206 ( shown in fig2 ) may allow for some amount of flow , the second flow passage 204 closes off the seal 200 when the ledges 214 / 254 are engaged . in a first open condition shown in fig6 , the sliding sleeve 120 is moved upward . the ported sleeve 170 also moved upward because the landing 180 moves by the bias of the spring 182 and pushes the ported sleeve 170 upward . this keeps the seal 200 closed . eventually , the pins 176 a in the sleeve &# 39 ; s slots 176 b limit the travel of the sleeve 170 and landing 180 . as the sliding sleeve 120 continues to open , it reaches a first equalizing condition shown in fig7 when the sleeve 120 travels from 0 . 00 - in . to about 0 . 125 - in . the ledges 214 / 254 move apart . the length and diametric gap of the ledges 214 / 254 provides for an orifice effect of any flow through the seal 200 . this helps to protect the metal seal surfaces during initial unloading of pressure and flow as described previously . the timing of this orifice effect is minimal as it is needed only during the first movement of separation of the two seal components 210 / 250 . however , the flow passage 202 ( see also , fig2 ) from the shelves 212 / 252 act to choke the flow , thereby limiting the actual flow that travels through the seal 200 . the first flow passage 202 from the first shelves 212 / 252 is extended in comparison to the others so that these shelves 212 / 252 can define a sacrificial component during initial unloading of pressure . as the two sealing components 210 / 250 continue to separate , the external extension from the first flow passage 202 maintains a tight clearance and creates an orifice effect of any flow therethrough . as the sealing shelves 212 / 252 move further apart , the volume and area increases between the two seal components 210 / 250 , thus causing a low pressure area and a drop in flow to develop . the choke effect from the shelves 212 / 252 continues until the moving component 210 has moved until its distal ledge 211 reaches the end of the first outer shelf 252 as shown in fig8 . beyond this position , the seal 200 reaches a second equalizing condition when the distal ledge 211 comes to separate from the ledge 254 . when this occurs , the first inner ledge 214 has preferably already passed free of the first ports 174 a in the ported sleeve 170 . therefore , erosive damage to the ledge 214 used for closed sealing can be reduced . the shelves 212 / 252 and the distal ledge 211 , although they may be subject to more of the erosive flow , are more suited places for such damage to occur . once the two sealing shelves 212 / 252 slide far enough apart , the movable component 210 becomes disengaged , allowing full flow into the flow port 172 a . at a subsequent opened conditions after fig8 , the flow through the seal 200 increases as flow ports 174 a are further revealed . finally , at the opened condition shown in fig9 when the sliding sleeve 120 has traveled to about 2 . 00 - in ., the flow area through the ports 174 a is 1 % of the flow possible through the diameter of the ported sleeve 170 . with further movement of the sliding sleeve 120 , more of the ports 174 in the ported sleeve 170 can be revealed . again , as note previously , the tool has eight discrete positions in which the sliding sleeve 120 can reveal ports 174 on the ported sleeve 170 to control flow between 0 %, 1 %, 3 %, 5 %, 7 %, 9 %, 15 %, and 100 %. details on how the sliding sleeve 120 is moved relative to the ported sleeve 170 are discussed below . as noted previously , the sliding sleeve 120 is moved relative to the ported sleeve 170 . in general , the sliding sleeve 120 can be moved by any of the techniques conventionally used in the art for a flow device . for example , the sliding sleeve 120 can be moved manually using an appropriate pulling tool , hydraulically by a piston arrangement , or other suitable mechanism . in the current implementation , the disclose tool 100 uses a hydraulically actuated ratcheting motion to move the sliding sleeve 120 relative to the ported sleeve 170 . details of how the tool 100 operates hydraulically are provided in fig1 - 14 . in fig1 , portion of the tool 100 is shown in its closed condition so that the sliding sleeve 120 engages the ported sleeve ( not shown ) with the sealing arrangement as discussed previously . as shown in fig1 , two control lines 103 a - b connect to hydraulic connections 130 ( only one shown ) on the tool 100 . control fluid in the control lines 103 a - b hydraulically move the sliding sleeve 120 relative to the ported sleeve ( 170 ). these control lines 103 a - b run from surface equipment down the tubing string to the tool 100 . when operators apply pressure to an open control line 103 a , the tool &# 39 ; s sliding sleeve 120 moves from its current position to a next open position ( in the order listed previously ). when operators apply pressure to a close control line 103 a , the tool &# 39 ; s sliding sleeve 120 moves back completely to its closed position . in the opening procedure , for example , pressure from the open control line 130 a enters an open port 135 in the housing 110 ( i . e ., portion 110 b ) and travels to an outlet at a first chamber 132 between the sliding sleeve 120 and the housing portion 110 b . the first chamber 132 is formed by upper and lower seals 123 a - b between the sliding sleeve 120 and housing portions 110 a - b . fluid pressure fills this first chamber 132 and acts against a shoulder at upper seal 123 b to force the sliding sleeve 120 upward in the housing 110 ( i . e ., the sleeve 120 moves to the left in fig1 ). at the same time , fluid pressure from the open port 135 fills a second chamber 134 at another of the port &# 39 ; s outlets . fluid pressure fills this second chamber 134 and acts against a trigger or unlocking sleeve 140 disposed on the sliding sleeve 120 . this unlocking sleeve 140 having a shape of a sleeve seals against the housing portions 110 b - c with upper and lower seals 143 a - b . the fluid pressure moves the unlocking sleeve 140 upward in the housing 110 along the sliding sleeve 120 ( i . e ., to the left in fig1 ). when moved , the unlocking sleeve 140 acts against the bias of a spring 124 . the results of this movement are shown in fig1 . as the open control line 130 a supplies fluid pressure to the chambers 132 and 134 , the sliding sleeve 120 moves a first extent inside the housing 110 , and the unlocking sleeve 140 also moves along with the sliding sleeve 120 against the bias of the spring 124 . a catch 150 having dogs 155 is also disposed on the sleeve 120 . this catch 150 has the shape of a sleeve and has windows for the dogs 155 . as the fluid pressure moves the sliding sleeve 120 , the catch 150 remains in position relative to the housing 110 due to the bias of another spring 126 . eventually , the sliding sleeve 120 moves a certain distance so that the dogs 155 in the catch 150 engage a shoulder of the first slot 125 a in the sliding sleeve 120 , as shown in fig1 . continued pressure at the open control lines 103 a moves the sleeve 120 further in the housing 110 . the catch 150 engaged by dogs 155 in the first groove 125 a also moves upward as shown in fig1 . once the catch 150 reaches its topmost stroke , it engages an internal shoulder 138 in the housing portion 110 c . this prevents further movement upward of the sliding sleeve 120 . at this point , the sliding sleeve 120 has opened to its first position ( i . e ., 1 % open ) to expose the first ports ( 174 a ) on the ported sleeve ( 170 ) ( see fig9 ). to be able to open further , the mechanism is reset . to do this , fluid pressure at the open control line 103 a is released . the trigger 150 is now freed from upward pressure , and the spring 124 biases the trigger or unlocking sleeve 140 downward ( i . e ., to the right in fig1 ). the end of the unlocking sleeve 140 engages the dogs 155 , freeing them from the slot 125 a as shown in fig1 . although fluid pressure at the open control line 130 a is released , the sliding sleeve 120 does not move back downward in the housing 110 . as noted previously and as shown in fig1 a , a pair of c - rings 128 a - b help to hold the sliding sleeve 120 when positioned at varying stages along the ported sleeve 170 . a larger c - ring 128 b engages a circumferential groove in the housing portion 110 d to hold the sliding sleeve 120 when in the closed position . the smaller c - ring 128 a engages in a series of smaller circumferential grooves 115 in the housing portion 110 d as the sliding sleeve 120 is moved in stages along the ported sleeve 170 . returning to fig1 , the unlocking sleeve 140 engaging the dogs 155 and moved by the spring 124 frees the dogs 155 from the slot 125 a . this allows the catch 150 to reset . as shown in fig1 , the spring 126 pushes the freed catch 150 downward until the dogs 155 engage in the next circumferential slot 125 b on the sliding sleeve 120 . further opening of the sliding sleeve 120 can then be achieved through the same process outlined above . pressure can again be applied to the open control line 103 a , and the sliding sleeve 120 can be ratcheted upward in the housing to the next slotted position by the repeated actions . release of pressure at the open control line 103 a can then reset the hydraulic components for the next movement . operated in this manner , the tool 100 can be set to any open condition to vary and control the flow from 1 % to 100 % at the discrete positions in the present example . in any of the open conditions , the sliding sleeve 120 can be fully closed on the ported sleeve ( 170 ) to stop flow . as best shown in fig1 , the close control line 103 b connects by another port 137 to a chamber . in this case , the chamber is formed by upper seal 123 a between the sliding sleeve 120 and housing portion 110 a and by lower seal ( 123 c ; fig1 a & amp ; 9 ) between the sleeve 120 and housing portion 110 d . when operators apply pressure to the close control line 103 b at any time , the tool &# 39 ; s sleeve 120 moves back to its fully closed position , which isolates the tubing from the annulus and stops flow through the tool 100 . in the catch 150 , the dogs 155 with their angled edges simply ratchet past the various slots 125 along the sleeve 120 as the sleeve 120 can return to its closed position . likewise , the c - rings 128 a - b shown in fig1 a also ride along the respective grooves 115 in the housing 110 until the larger c - ring 128 b engages in the lowest groove when the sleeve 120 has fully closed . the tool 100 can then be opened by applying pressure to the open control line 103 a according to the previous procedures . in the current implementation , applying pressure to the close line 103 b closes the tool 100 all the way no matter what current position the sliding sleeve 120 has . in some implementations , closing at discrete positions may be desired . to do this , an entire reverse assembly of a catch , trigger , dogs , chambers , and slots can be provided on the tool 100 opposite to those already shown . when hydraulic pressure is applied to the close line 103 b , these reverse components can operate in the same manner described above , but only in the reverse direction . in this way , the sliding sleeve 120 can ratchet closed in discrete positions . to operate , the reverse ( downward ) components must accommodate the upward movement of the sliding sleeve 120 from the ( upward ) components ( i . e ., catch , trigger , dogs , etc . described previously ) and vice versa . the foregoing description of preferred and other embodiments is not intended to limit or restrict the scope or applicability of the inventive concepts conceived of by the applicants . in exchange for disclosing the inventive concepts contained herein , the applicants desire all patent rights afforded by the appended claims . therefore , it is intended that the appended claims include all modifications and alterations to the full extent that they come within the scope of the following claims or the equivalents thereof .