35 integer,
parameter :: rk = kind(1.0d0)
36 real(kind=rk),
dimension(state_dim),
intent(inout) :: x
40 if(
allocated(xb))
deallocate(xb)
41 allocate(xb(state_dim))
43 vardata%total_timesteps = 1
49 select case (vardata%opt_method)
52 call
subroutine_cg(vardata%cg_method,vardata%n,vardata%cg_eps,vardata%x0)
55 call
lbfgs_sub(vardata%n,vardata%lbfgs_factr,vardata%lbfgs_pgtol,vardata%x0)
59 call
lbfgsb_sub(vardata%n,vardata%lbfgs_factr,vardata%lbfgs_pgtol,&
60 vardata%x0,vardata%nbd,vardata%l,vardata%u)
63 write(emp_e,*)
'three_d_var ERROR: vardata%opt_method incorrect. Stopping'
subroutine allocate_vardata
subroutine to allocate space for 4denvar
subroutine deallocate_vardata
subroutine to deallocate space for 4denvar
Module that stores the information about the outputting from empire.
subroutine lbfgsb_sub(n, factr_in, pgtol_in, x, nbd, l, u)
Limited memory BFGS bound constrained optimization code as callable subroutine.
Module that stores the dimension of observation and state spaces.
module to store stuff for 3DVar
subroutine three_d_var(x)
subroutine subroutine_cg(method, n, epsin, x)
Nonlinear Conjugate gradient method as callable subroutine.
subroutine read_lbfgsb_bounds
subroutine to somehow read in bounds data
subroutine lbfgs_sub(n, factr_in, pgtol_in, x)
Limited memory BFGS unconstrained optimization code as callable subroutine.
module holding data for variational problems