/[MITgcm]/MITgcm_contrib/mlosch/optim_m1qn3/optim_sub.F
ViewVC logotype

Diff of /MITgcm_contrib/mlosch/optim_m1qn3/optim_sub.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.3 by mlosch, Mon May 7 12:07:09 2012 UTC revision 1.4 by mlosch, Wed May 9 18:33:38 2012 UTC
# Line 57  c     == local variables == Line 57  c     == local variables ==
57        _RL   adxx(nmax)        _RL   adxx(nmax)
58  #endif  #endif
59    
60        logical coldStart  CML      logical coldStart
61  c     formal parameters of m1qn3  c     formal parameters of m1qn3
62        integer reverse        integer reverse
63        integer impres,imode(3),omode,niter,nsim,iz(5),indic        integer impres,imode(3),omode,niter,nsim,iz(5),indic
# Line 138  c     initialise the dummy arguments tha Line 138  c     initialise the dummy arguments tha
138        rzs(1)=UNSET_RS        rzs(1)=UNSET_RS
139        dzs(1)=UNSET_RL        dzs(1)=UNSET_RL
140    
141        coldStart=.false.  c--   first read the model output into xx, adxx, and cost function
142    c     value into objf
143          do i = 1,nn
144           xx(i)   = 0.
145           adxx(i) = 0.
146          enddo
147    c
148          print *, ' OPTIM_SUB: read model state'
149          call optim_readdata( nn, ctrlname, .false., objf,   xx )
150          call optim_readdata( nn, costname, .false., objf, adxx )
151          print *, ' OPTIM_SUB after reading ',
152         &           ctrlname, ' and ', costname, ':'
153          print *, ' OPTIM_SUB      nn = ', nn
154          print *, ' OPTIM_SUB    objf = ', objf
155          print *, ' OPTIM_SUB   xx(1) = ', xx(1)
156          print *, ' OPTIM_SUB adxx(1) = ', adxx(1)
157          
158    c     compute expected decrease of cost function from objf and fmin;
159    c     this value is only used for a cold start of m1qn3_offline, for a
160    c     warm start df1 is overwritten with data from a restart file
161          df1=objf-fmin
162          if ( df1 .le. 0. ) then
163           print *, ' OPTIM_SUB: df1 = objf-fmin = ', df1, ' should be > 0.'
164           stop 'ABNORMAL in S/R OPTIM_SUB'
165          endif
166    
167    c     global variable coldStart is set in s/r optim_readparms
168    c     the default is false, always set it to true for the 0th cycle
169        if ( optimcycle .eq. 0 ) coldStart=.true.        if ( optimcycle .eq. 0 ) coldStart=.true.
170        if ( coldStart ) then        if ( coldStart ) then
171  c--   cold start  c--   cold start
# Line 148  c     this variable is the only one of t Line 175  c     this variable is the only one of t
175  c     that needs to be initialized here to make sure that we have a  c     that needs to be initialized here to make sure that we have a
176  c     clean start  c     clean start
177         reentry  = 0         reentry  = 0
 c     ff has be read in optim_readparms, so we do not read it here again  
        objf = ff  
        df1  = objf-fmin  
178  c     open output file for m1qn3  c     open output file for m1qn3
179         open(io,file=fname_m1qn3,status='unknown')         open(io,file=fname_m1qn3,status='unknown')
180        else        else
# Line 164  c     requires restoring the state of m1 Line 188  c     requires restoring the state of m1
188  c     re-open output file for m1qn3  c     re-open output file for m1qn3
189         open(io,file=fname_m1qn3,status='old',position='append')         open(io,file=fname_m1qn3,status='old',position='append')
190        endif        endif
 c--   read the model output into xx,adxx  
       if ( indic .eq. 4 ) then  
        do i = 1,nn  
         xx(i)   = 0.  
         adxx(i) = 0.  
        enddo  
 c  
        print *, ' OPTIM_SUB: read model state'  
        call optim_readdata( nn, ctrlname, .false., objf,   xx )  
        call optim_readdata( nn, costname, .false., objf, adxx )  
        print *, ' OPTIM_SUB after reading nn, objf = ', nn, objf,  
      &      xx(1), adxx(1)  
       else  
        print *, ' OPTIM_SUB: indic = ', indic, ' is not possible'  
        stop 'ABNORMAL in S/R OPTIM_SUB'  
       endif  
191    
192  c--   call the minimizer, a slightly modified version of m1qn3 v3.3  c--   call the minimizer, a slightly modified version of m1qn3 v3.3
193  c     (Gilbert & Lemarechal, 1989), downloaded in April 2012.  c     (Gilbert & Lemarechal, 1989), downloaded in April 2012.

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22