[MITgcm-support] diagnosing problems with the adjoint

Holly Dail hdail at MIT.EDU
Wed Aug 12 11:14:38 EDT 2009


Hello all -

I'd like to use optimization with a regional North Atlantic setup.  As  
a first case, I started with the approach laid out in  
tutorial_global_oce_optim --
- cost based on (1) divergence of annual mean surface temperatures in  
the model from climatology and (2) reasonable magnitude of control  
vector
- control is a time-mean heat flux correction (2-d field)

My sensitivities are astronomical (i.e. adxx = 10^16), the gradient  
check seems to fail (as shown below, finite difference gradients seem  
okay, adjoint gradients not so much), and optim.x fails with message  
'the linesearch failed'.

(PID.TID 0000.0001) grdchk output:            procId                
I        ITIL  EPOS        JTILEPOS           LAYER             
X(I)      X(I)+/-EPS
(PID.TID 0000.0001) grdchk output:            FC              
FC1             FC2 FC1-FC2/(2*EPS)    ADJ GRAD(FC)   1-FDGRD/ADGRD
(PID.TID 0000.0001) grdchk output:                 0                
1             56              35               1 0.000000000D+00 -. 
100000000D+00
(PID.TID 0000.0001) grdchk output:                   0.261232434D+02  
0.261232444     D+02 0.261232340D+02 0.523051129D-04 -.115313924+108  
0.100000000D+01

I suppose this may mean the adjoint is blowing up?  I've tried  
reducing my time step and increasing viscosity and I checked that my  
climatology & error fields are defined at all wet points; are there  
other fixes folks have had success with?  Also if you have scripts  
that you use to diagnose your optimization runs that would be really  
appreciated.

Thanks -
Holly



More information about the MITgcm-support mailing list