﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
344	Corrected release of Lagrangian drifters and parallel bug	arango	arango	"Corrected the release of new floats.  The floats were released twice during two consecutive time steps.  The conditional for release needs to be:
{{{
       HalfDT=0.5_r8*dt(ng)
       DO l=Lstr,Lend
         IF (.not.bounded(l).and.                                        &
      &      (time(ng)-HalfDT.le.Tinfo(itstr,l).and.                     &
      &       time(ng)+HalfDT.gt.Tinfo(itstr,l))) THEN
           ...
         END IF
       END DO
}}}
Previously, we have a '''dt(ng)''' instead of '''HalfDT'''. This triggered the consecutive release.

To facilitate error tracking the routine '''interp_floats''' is now inside of a module. So the arguments to this routine were changed to follow modules rules.

Also corrected a major parallel bug in the vertical random walk. We have been hunting for this bug for days.  It was very frustrating since the bug desappeared several times.  Well, after all this was a random process.  Anyway, the major parallel bug was actually in '''step3d_t.F''' when computing the vertical diffusivity gradient.  Rats..., I have been looking at the drifters routines for days instead.  This one was nasty, it has been in ROMS since its implementation!

The float's vertical random walk is now computed in a separated new module, '''vwalk_floats.F'''.  This facilitated the predictor/corrector for the float vertical position.  It is assumed that the vertical diffusivity and its gradient remains constant during the corrector step.  The correction is done only in the float spatial positions. The old forward step is still possible by activating new option '''VWALK_FORWARD'''."	bug	closed	major	Release ROMS/TOMS 3.3	Nonlinear	3.3	Fixed		
