# [[PageOutline]] Last edited Timestamp?

Author : Christian Ethé

ticket : #1775

Branch : 2015/dev_r6946_Offline_vvl

WP2016 Action :

# Purpose :

Run passive tracers offline with linear free surface

# Method :

Compute ssh evolution and vertical scale factors at each time step using dynamical fields previously stored on files

# Hypothesis :

• zstar coordinate only
• in a first step : no time interpolation ===⇒ at least 5 days-mean fields are needed
```ssh(n+dt) = ssh(n) + dt * ( div2D(DT) - emp(DT) ) where div2D is the vertically integrated divergence transport and DT is the frequency of dynamical fields
```

# Dynamics :

• e3t, e3u, e3v, e3w : vertical scale factor
• U, V, W : effective transport ( e1*e2*e3 * u where u is velocity including eiv, mle etc …)
• hdiv * e3t : horizontal divergence
• emp
• 3D runoffs
• Kz
• T,S, qsr, mld

The time evolution of ssh and scale factor are then computed as :

```ssh_a = ssh_n - dt * ( div2D(DT) - emp(DT)/rau0 ) where div2D is the vertically integrated divergence transport and DT is the frequency of dynamical fields

e3t_a = e3t_0 * [ 1 + ssh_a / ht_0]

```

To be consistent with dynamics, we apply a leap-frog scheme with asselin time-filter on ssh, when swapping the array

```ssh_a = ssh_b - 2 * dt * [ ( div2d(DT) - ( emp(DT) + emp_b(DT) ) / ( 2 * rau0 ) ]

ssh_b = ssh_n + atfp * ( ssh_b - 2 * ssh_n + ssh_a  )

ssh_n = ssh_a

```

# Initial state :

Ideally, the initial state of sea surface height ssh_0 comes from the restart of the last year of the simulation of the dynamics.
For example if one uses the dynamics from 1948 to 2009, the initial ssh comes from the restart of year 1947

# Simulations :

• Climatological run : at each annual loop, restart from the ssh of the ocean restart file
• Interannual run : restart from ssh saved in passive tracers restart file. But when doing repeated cycle, restart from the 1st year of ocean restart file at the beginning of each cycle

# Next steps :

• Implement the case of time interpolation of dynamics :
```
ssh_a = ssh_n + Cste * dt * dt / 2 with Cste =  [div2D - emp]_n+1 -  [div2D - emp]_n / DT  where div2D is the vertically integrated divergence transport and DT is the frequency of dynamical fields
```
• Test the exisiting code in non linear free surface
• Check restartability / Reproducibility