In many modules, especially the economic module and the two elaborated sectoral modules, IFs relies upon an adjustment function to alter key variables (e.g., demand, prices, trade, and investment) in the pursuit of equilibrium. The adjustment function compares the level of some stock type variable (most often either inventory levels or prices, but including other variables such as international indebtedness) with a desired level, and adjusts the dependent variable.
IFs computes a difference (DIFF1) between the actual and desired levels and scales that difference with a scaling base (SCALINGBASE) value (for instance, total production in an economic sector might be a reasonable scaling base value against which to gauge the importance of a deviation of inventories from desired levels). In addition, the adjustment mechanism uses a second-order difference (DIFF2) to compare the level of the stock-type driving variable with its value in the previous time cycle, relying upon the same scaling base.
Non-zero differences result in a multiplier value (MUL) that deviates from "1" depending on the magnitude of two elasticities (EL1 and EL2). Specifically, the formulation is
This mechanism is represented in a function called the adjuster (ADJSTR) that the model calls at numerous locations. The magnitude of the two parameters will, of course, differ depending on the model variable in which equilibrium is being pursued. Experience has shown, however, that EL1 normally takes absolute values between 0.2 and 0.4, while EL2 is most often two times the value of EL1 and thus varies most often between 0.4 and 0.8. The values of EL1 and EL2 have been determined experimentally, in order to be large enough to maintain approximate equilibrium and small enough to avoid unreasonably rapid or extreme oscillation. There will inevitably be some oscillation in equilibrium-seeking processes, and in some cases (such as inventory levels), the values could be set so as to provide an oscillation consistent with known cycles (such as business cycles). Because IFs is a long-term rather than a short-term model, however, we have generally devoted little attention in scaling to the oscillation cycle, focusing instead on long-term stability in the face of shocks introduced by scenarios of model users.
This kind of adjustment mechanism is sometimes called a PID controller, that is, an adjustment process that responds proportionately (the adjustment parameters) to the integral of the error (the stock discrepancy) and to the derivative of the error (the change in stock term). We shall see many PID controllers in IFs. For more information see the books by Chang (1961) and by Mishkin and Braun (1961) in the bibliography. An early version of this adjustment mechanism was developed by Thomas Shook for the Mesarovic-Pestel modeling project.