1.5 Minimization
The minimization problem involved in this 3D/4D-Var can be considered as large-scale, since the number of degrees of freedom in the control variable is of the order of 106. An efficient descent algorithm was provided by the Institut de Recherche en Informatique et Automatique (INRIA, France). It is a variable-storage quasi-Newton algorithm (M1QN3, auxlib) described in Gilbert and Lemaréchal (1989) and in an on-line postscript document. M1QN3 uses the available in-core memory to update an approximation of the Hessian of the cost function (the array ZVATRA, see CVA1). In practice, ten updates (NMUPD, namiomi) of this Hessian matrix are used. The approximation is modified during the minimization by deleting information from the oldest gradient and inserting information from the most recent one. Once per iteration M1QN3 calls the simulator SIM4D (Section 2.3). Sometimes extra simulations have to be performed in order to obtain a good step length for the descent. The number of iterations is limited to 70 (NITER, namvar) and the number of simulations to 80 (NSIMU, namvar). Normally, only very small adjustments of the analysis occur during the second half of the minimization. On the whole, the cost function is typically divided by a factor of two and the norm of the gradient by a factor of twenty (printed from EVCOST and SIM4D, respectively).
The approximation of the Hessian computed during a 3D/4D-Var minimization (read in by SUHESS) is used as a first estimate for a subsequent analysis, if the switch LWARM=.true. (namiomi). LWARM is only used in the second minimization of 4D-Var (see Section 3.3).