subroutine SIMUL( I indic, I nn, I xx, O objf, O adxx & ) c ================================================================== c SUBROUTINE simul c ================================================================== c c o This routine is called by the large-scale optimization lsopt. c c Input : indic - Parameter (not used here). c nn - Number of control variables. c xx - Array of control variables. c c Output : objf - Value of objective function. c adxx - Gradients of objective function with respect c to the control variables. c c c started: Christian Eckert eckert@mit.edu 15-Feb-2000 c c changed: Christian Eckert eckert@mit.edu 10-Mar-2000 c c - Added ECCO layout. c c changed: Patrick Heimbach heimbach@mit.edu 19-Jun-2000 c - finished, revised and debugged c c ================================================================== c SUBROUTINE simul c ================================================================== implicit none c == global variables == #include "EEPARAMS.h" #include "SIZE.h" #include "ctrl.h" c == routine arguments == integer indic integer nn _RL xx(nn) _RL objf _RL adxx(nn) c == local variables == integer i _RL adobjf logical lheaderonly c == end of interface == print *, 'pathei-lsopt in simul' c-- Call the combined modified forward model and the adjoint model. do i = 1,nn adxx(i) = 0. enddo adobjf = 1. c lheaderonly = .false. print *, 'pathei-lsopt vor optim_readdata' call OPTIM_READDATA( nn, ctrlname, lheaderonly, objf, xx ) call OPTIM_READDATA( nn, costname, lheaderonly, objf, adxx ) indic = indic cph( print *, ' leaving simul with nn, objf = ', nn, objf print *, ' leaving simul with xx, adxx = ', xx(1), adxx(1) do i=1,nn c if (xx(i).EQ.'NaN') then c print *, 'pathei - out: i = ', i c end if end
do cph) return end