Time stepping procedure and split-explicit method

Dear,

I am currently trying to understand in details how the time stepping procedure does work in Nemo 4.2.1 when using the modified Leapfrog algorithm with a non-linear split-explicit free surface.

First, I wonder if there exist somewhere a summary of the equations solved in the barotropic substepping. Specifically, I could not find in the ROMS paper of Shchepetkin 2005 and the paper of Leclair 2009 how we update the baroclinic trend after having solved the barotropic equations.

Secondly, I’ve read that the forcing terms are in someways taken at half-integer timesteps in order to have full conservation of active tracers (manual 4.2.1 p20-21 and Leclair 2009). I wonder where does it appear in the code ? It seems like the forcing put in krhs are always based on the fields at kbb and kmm which for me are integer timesteps. I also wonder if the forcing are taken at half integer timestep only for the tracers equations or also for the momentum equations.

Finally, I tried to compare the tracer and momentum update equations. If I understood correctly, the fields are updated in dynldf.F90 and traldf.F90.

In the case of the momentum equation, there is first an update of puu, pvv at kaa with an explicit equation. Then an implicit equation is solved to add the vertical diffusion trend. The first update equation use the time step rDt (which should be 2 \Delta t according to the manual, with the Leapfrog method). Surprisingly, the second update seems to use rDt divided by 2 (variable zDt). Why is it the case ?

In the case of the tracer equation, in traldf.F90, there is no explicit equations solved before the implicit one. And this time, the implicit equation uses rDt instead of rDt divided by 2. Why is it different than the momentum equation ?

I hope I explained my problem clearly enough,

Thank you for your help,

Guillaume