66 | | correct bugs and missing calls for variable volume revisit free-surface time-splitting algorithm to reach stability and satisfying results |
67 | | |
68 | | have vvl option available for all type of coordinates (z, zps, s) This part has induced a full restructuration of the code (even when not using vvl option) , since we made the choice to compute the ssh at the beginning of each time step (from continuity equation), instead of deducing it immediately from barotropic contribution as it was done before (dynspg_* routines). As a consequence, ssh should not be corrected in the rest of the code, which is a bit doubtful for obc and agrif cases (key_obc or key_agrif). |
69 | | |
70 | | Repartition on the whole water column, so key_sigma_vll has been suppressed. Reference coordinate is referred as e3t_0 for instance, and pre-processing (in domzgr_substitute.h90) is used to define before, now, after scale factors, for instance : |
71 | | # define fsdept_n(i,j,k) (fsdept_0(i,j,k)*(1+sshn(i,j)*mut(i,j,k))) For use of vvl, we introduced, time varying scale factors(_b,_n_a). Without vvl, we have obviously : fse3t_a = fse3t_n = fse3t_b = fse3t When using vvl, it would be more consistent to use exactly corresponding scale factors (for instance before for diffusion). It has been done only vertical diffusion for tracers at this time. Time stepping routines (tranxt and dynnxt) have been modified to work either on vertically averaged values in vvl case. Regarding the time-splitting algorithm : - for stability reason, we came back to an average on 2 time steps (2*nn_baro) - because of vvl, we are now computing velocities instead of transport. BDY routines have been changed in consequence, OBC not. It has been tested with bdy (zps*) and on global ORCA025 configuration. VVL restartability is not ensured. |
72 | | |
73 | | * Improved time-stepping achitecture |
74 | | |
75 | | ... |
| 66 | * Purpose |
| 67 | * correct bugs and missing calls for variable volume |
| 68 | * revisit free-surface time-splitting algorithm to reach stability and satisfying results |
| 69 | * have vvl option available for all type of coordinates (z, zps, s) |
| 70 | This part has induced a full restructuration of the code (even when not using vvl option) , since we made the choice to compute the ssh at the beginning of each time step (from continuity equation), instead of deducing it immediately from barotropic contribution as it was done before (dynspg_* routines). As a consequence, ssh should not be corrected in the rest of the code, which is still a bit doubtful for obc and agrif cases (key_obc or key_agrif) and to be checked for 3.3. |
| 71 | |
| 72 | * In practice |
| 73 | * The repartition of ssh is now done on the whole water column, so key_sigma_vll has been suppressed. |
| 74 | * Reference coordinate is referred as e3t_0 for instance, and pre-processing (in domzgr_substitute.h90) is used to define before, now, after scale factors, for instance : |
| 75 | |
| 76 | # define fsdept_n(i,j,k) (fsdept_0(i,j,k)*(1+sshn(i,j)*mut(i,j,k))) |
| 77 | * we introduced, time varying scale factors(_b,_n_a). Without vvl, we have obviously : fse3t_a = fse3t_n = fse3t_b = fse3t |
| 78 | |
| 79 | When using vvl, it would be more consistent to use exactly corresponding scale factors (for instance before for diffusion). It has been done only vertical diffusion for tracers at this time. Time stepping routines (tranxt and dynnxt) have been modified to work either on vertically averaged values in vvl case. Regarding the time-splitting algorithm : - for stability reason, we came back to an average on 2 time steps (2*nn_baro) - because of vvl, we are now computing velocities instead of transport. BDY routines have been changed in consequence, OBC not. It has been tested with bdy (zps*) and on global ORCA025 configuration. VVL restartability is not ensured. |
| 80 | |
| 81 | |
| 82 | ---- |