{\scriptsize \begin{verbatim} ... ... | ) | (---- store new values xx(i), gg(i) to OPWARMD (first 2 entries) | )---- >>> if ifail = 7,8,9 <<< | ( goto 1000 | ) | (---- compute new pointers jmin, jmax to include latest values | ) gg(i)-gg(i-1), xx(i)-xx(i-1) to Hessian matrix estimate | (---- store gg(i)-gg(i-1), xx(i)-xx(i-1) to OPWARMD | ) (entries 2*jmax+2, 2*jmax+3) | ( | )---- CALL DGSCALE | ( | | ) |---- call dostore | ( | | | ) | |---- read preconditioner of previous iteration diag(i-1) | ( | from OPWARMD (3rd entry) | ) | | ( |---- compute new preconditioner diag(i), based upon diag(i-1), | ) | gg(i)-gg(i-1), xx(i)-xx(i-1) | ( | | ) |---- call dostore | ( | | ) |---- write new preconditioner diag(i) to OPWARMD (3rd entry) | ( |---- \\\ end of optimization iteration loop | | | |---- CALL OUTSTORE | | | |---- store gnorm0, ff(i), current pointers jmin, jmax, iterabs to OPWARMI | |---- >>> if OFFLINE version <<< | xx(i+1) needs to be computed as input for offline optimization | | | |---- CALL LSUPDXX | | | | | |---- compute dd(i), tact(i) -> xdiff(i+1) = x(i) + tact(i)*dd(i) | | | |---- CALL WRITE_CONTROL | | | | | |---- write xdiff(i+1) to special file for offline optim. | |---- print final information | O \end{verbatim} }