Version 4 (modified by gm, 14 years ago) (diff) |
---|
Last edited Timestamp?
Author
Matthieu Leclair & Gurvan Madec
Branch
DEV_r1837_MLF
Description
Introduce the modified Leap-Frog -- Robert-Asselin filter (LF-RA) to fit the one presented in Leclair and Madec Ocean Modelling (2009). The scheme allows a exact conservation of the heat and salt contents when using variable volume thickness (key_vvl). The non-conservation of the standard LF-RA due to the time diffusion of the forcing through the filter. In the modified scheme the exact conservation is achieved by removing the forcing from the filter. Furthermore, the scheme allows to use a much smaller Asselin filter parameter (10-4 instead of 10-1) decreasing the damping effect of the LF-RA scheme, so that it is actually a quasi second order scheme.
The LF-RA flow chart of step is the one introduce in the trunk after the v3.1, to restore the key_vvl option. Its main characteristic is that the ssh is time-stepped first, followed immediately by the computation of the now vertical velocity (see figure below).
Step routine flow chart, form Leclair and Madec (OM 2009).
This update is part of the LOCEAN.8 task (Update of the ocean physics) due by June 25th 2010.
The main remaining modifications concern :
(1) forcing terms as a mean between time step n-1/2 and n+1/2 (sbcmod.F90, sbc.F90, trasbc.F90, dynzdf....F90)
Illustration of forcing integration methods. Old formulation (top) and new formulation (bottom).
At each time a forcing term appears in the 3 time evolution equations solved in NEMO/OPA (ssh, dynamics and tracer). The mean of kt+1/2 and kt+1/2 has to be used in order to remove the largest source of divergence of two consecutive time step. Therefore, the surface module (including the sea-ice!) must now provide both kt+1/2 and kt-1/2 forcing fields, and all the module involving a forcing term have to be modified. Note that TKE equation is solved with a two level time stepping scheme : no need of a before field for its forcing term (i.e. taum)
sbc_oce.F90 : add "before" forcing fields (denoted by a '_b' sufix) for all ocean forcing components (utau_b, vtau_b, qns_b, qsr_b, emp_b, emps_b) sbcmod.F90 : add the swap of surface fields and the read/write in the restart file.
Beginning of sbs routine, introduce the swap, but only for kt >= nit000+1. If no restart, the '_b' fields is known only at the end of the sbc calculation. Therefore we have choosen to regroup the setting of '_b' fields at nit000 at the end of sbc routine. CAUTION : here the swap must be done at each kt, what ever the nn_fsbc value is. Otherwise the ocean forcing will be wrong.
(2) Asselin filter: remove the forcing from the filter (dynnxt (?), tranxt, traqsr)
(3) tranxt.F90 : semi-implicit hydrostatic pressure gradient : change the coefficients to take into account the Asselin filter parameter
time mean T and S for the semi implicit hpg computation was (ta+2*tn + tb) / 4 . It is now replaced by
rbcp*ta+(2-rbcp)*tn+rbcp*tb
with rbcp=(1+atfp)*(1+atfp*atfp) / 4, and atfp is the Asselin filter parameter.
The change extend further the stability limit of the time stepping scheme when ln_dynhpg_imp = T
Open questions
(2) Do we need to remove the stress component from the filter in dynnxt?
(3) in vvl case : thickness weighted tracer in the time mean, do we need to compute and use a time mean thickness in the hpg computation?
Testing
Testing could consider (where appropriate) other configurations in addition to NVTK].
NVTK Tested | '''YES/NO''' |
Other model configurations | '''YES/NO''' |
Processor configurations tested | [ Enter processor configs tested here ] |
If adding new functionality please confirm that the New code doesn't change results when it is switched off and ''works'' when switched on | '''YES/NO/NA''' |
(Answering UNSURE is likely to generate further questions from reviewers.)
'Please add further summary details here'
- Processor configurations tested
- etc----
Bit Comparability
Does this change preserve answers in your tested standard configurations (to the last bit) ? | '''YES/NO ''' |
Does this change bit compare across various processor configurations. (1xM, Nx1 and MxN are recommended) | '''YES/NO''' |
Is this change expected to preserve answers in all possible model configurations? | '''YES/NO''' |
Is this change expected to preserve all diagnostics? ,,''Preserving answers in model runs does not necessarily imply preserved diagnostics. '' | '''YES/NO''' |
If you answered '''NO''' to any of the above, please provide further details:
- Which routine(s) are causing the difference?
- Why the changes are not protected by a logical switch or new section-version
- What is needed to achieve regression with the previous model release (e.g. a regression branch, hand-edits etc). If this is not possible, explain why not.
- What do you expect to see occur in the test harness jobs?
- Which diagnostics have you altered and why have they changed?Please add details here........
System Changes
Does your change alter namelists? | '''YES/NO ''' |
Does your change require a change in compiler options? | '''YES/NO ''' |
If any of these apply, please document the changes required here.......
Resources
''Please ''summarize'' any changes in runtime or memory use caused by this change......''
IPR issues
Has the code been wholly (100%) produced by NEMO developers staff working exclusively on NEMO? | '''YES/ NO ''' |
If No:
- Identify the collaboration agreement details
- Ensure the code routine header is in accordance with the agreement, (Copyright/Redistribution? etc).Add further details here if required..........
Attachments (2)
-
NEW_LF_RA.jpg
(53.6 KB) -
added by gm 14 years ago.
step flowchart for the modified LF-RA scheme
-
NEW_LF_RA_FlowCart.jpg
(79.1 KB) -
added by gm 14 years ago.
step flowchart for the modified LF-RA scheme
Download all attachments as: .zip