﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
851	VERY IMPORTANT:  Consolidating Research Repositories with Released Version	arango		"I have several research repositories for several ongoing new algorithms that will be available in the future. I have so many exceptional flags to update the codes that sometimes one fails, and undesired changes appear in public released version of ROMS and erase features in the research versions.  To avoid doing that in the future, I am consolidating the research 4DVAR repository with the public version of the code. 

For the last two months, we have been developing the saddle-point 4D-Var. By far, one of the most technically tricky algorithms that Andy and I have put our hands on.  As formulated, the current available 4D-Var algorithms are sequential, and its inner loops cannot be parallelized in time to accelerate the analysis. The conjugate gradient solver used to minimize the cost function '''J''', depends sequentially on the previous iteration.

Fisher and Gürol (2017) proposed a new weak constraint 4D-Var algorithm based on the saddle-point formulation that can be parallelized in time. The time trajectory can be split into the solution of '''Nsaddle''' intervals that can run concurrently to reduce the 4D-Var computational cost.

To achieve these technically challenging computations, we need to make changes to several ROMS routines to:

* To split the MPI communicator to carry out disjointed and concurrent runs of the nonlinear, tangent linear, and adjoint ROMS kernels. Therefore, several of the routines of '''distribute.F''' have an optional argument to pass the desired MPI communicators that are defined in '''mod_parallel.F'''.

* Add optional arguments to output NetCDF routines '''nf_fwrite2d.F''', '''nf_fwrite2d_bry.F''', '''nf_fwrite3d.F''', '''nf_fwrite3d_bry.F''', and '''nf_fwrite4d.F''' to get the minimun and maximun values ot the written fields. 

* Include several new generic routines to manipulate ROMS state vector: '''ADfromTL.F''', '''def_state.F''', '''state_join.F''', '''state_read.F''', and '''wrt_state.F'''.

* No change is made to ROMS nonlinear, tangent linear, and adjoint time-stepping kernels.

* Added several routines from the LAPACK library that are needed for the Generalized Minimal Residual ('''GMRES''') minimization solver.

* The saddle-point algorithm with be released in the future when it is fully tested and we have the proper documentation and relevant publication.
"	upgrade	closed	major	Release ROMS/TOMS 3.9	Nonlinear	3.9	Done		
