Here are today’s changes:

- I updated the codes to write out initial nonlinear model at observation locations and initial and final misfit (innovation) vectors. These vectors are written into output 4DVAR NetCDF file (MODname) in variables NLmodel_initial, misfit_initial and misfit_final, respectively. The misfit vectors at output are equal to the model minus the observations and then divided by the observation’s standard deviation (SQRT(ObsError(:))). They are nondimensional. See obs_write.F for more details. The initial nonlinear model vector is used to compute several model-observations comparison statistics. These misfit vectors can be plotted to evaluate the minimization.
- I changed the following files to compute the misfit vectors described above: mod_ncparam.F, def_mod.F, obs_write.F, s4dvar_ocean.h, is4dvar_ocean.h, w4dpsas_ocean.h, and w4dvar_ocean.h. Also, I changed varinfo.dat. Warning: you need to use the new varinfo.dat, otherwise you can get a segmentation fault when creating the output 4DVAR NetCDF file.
- Following Brian’s suggestion, I deactivated the bulk flux computations in the tangent linear, representer, and adjoint models. The model is blowing-up in all the 4DVAR drivers. The bulk fluxes are still computed in the basic state when calling the nonlinear model. For now, the BULK_FLUX_NOT_YET was added to tl_main3d.F, rp_main3d, ad_main3d.F, tl_bulk_flux.F, rp_bulk_flux.F, ad_bulk_flux.F, tl_rho_eos.F, rp_rho_eos.F, and ad_rho_eos.F
- Made a small change in get_state.F so the time variable is ignored in the tangent linear, representer, and adjoint models when different than dstart. Recall, that usually these models are initialized from a generic zero-field NetCDF file in mostly all our adjoint applications. If this is not the case, the user needs to make sure that ocean_time and dstart are the same.