= '''''ENHANCE-5_Gurvan — RK-3 time stepping''''' == Summary == #summary || '''Action''' || ENHANCE-5_Gurvan — RK-3 time stepping || || '''PI(S)''' || Gurvan Madec || {{{#!td '''Digest''' }}} {{{#!td Introduce an optional RK3 time-stepping scheme. The scheme will: 1. be a valuable alternative to the current Modified Leap-Frog (MLF, Leclair and Madec OM2009) scheme, 1. prepare the futur introduction of a compensated time-space scheme, 1. allow [http://agrif.imag.fr/ AGRIF] to be exactly conservative, and 1. make much more easier to use time coarsening of TRC and OFF-line variable volume calculation 1. make feasible to properly implement an implicit computation of top and bottom friction (properly means consistent with the ssh time splitting scheme) As such a change will impact many module of OPA, it has been preferred to develop the RK3 version in a separate directory, RK3_SRC, put at the same level as OPA_SRC and being a copy of OPA_SRC as starting point. In addition to the RK3 scheme, a Forward-Bacward Scheme (FBS) will be introduced. The goals associated with FBS are the following: '' (i)'' FB scheme is also a two levels time-stepping scheme but much simpler than a RK3. Its implementation will prepare all the required environment for the RK3 scheme, while been much easier to develop and test. '' (ii)'' FB scheme may be a valuable alternative for low resolution simulations (in particular ORCA 2° and 1°) which do not necessarily need a high order time-stepping scheme, although FB scheme requires to used UBS scheme on advection of both dynamics and tracers. In practice the work is to :[[BR]] • start from the trunk, updated with HPC09 branch (i.e. ZDF modifications)[[BR]] • update with the ICEMODEL branch (i.e. new sea-ice model)[[BR]] [[BR]] [[BR]] Postponed to 2018 workplan:[[BR]] • create RK3_SRC directory a a copy of OPA_SRC[[BR]] • implement the FB scheme in a stp_fbs routine (found either in step.F90 or in stpfbs.F90), i.e. changes in most of SBC, TRA, DYN and ZDF modules[[BR]] • implement the RK3 scheme in a stp_rk3 routine (found either in step.F90 or stprk3.F90) [[BR]] }}} |- || '''Dependencies''' || no || || '''Target''' || 2017 merge party || || '''Trac Ticket''' || #1911 || || '''SVN branch''' || [browser:branches/2017/dev_r7881_ENHANCE09_RK3 dev_r7881_ENHANCE09_RK3] || || '''Previewer(s)''' || ''Names'' || || '''Reviewer(s)''' || ''Names'' || || '''Status''' || To be developed || || '''Link''' || [[ExtractUrl(.)]] || == == {{{#!comment DON'T REMOVE THIS VOID HEADING OR IT WILL BREAK THE INCLUDE FEATURE BETWEEN WIKI PAGES }}} {{{#!Fold title=Abstract tag=h2 [=#abstract] This section should be completed before starting to develop the code, in order to find agreement on the method beforehand. {{{#!TracForm #!subcontext abstract #!submit_label 'Save Abstract' #!keep_history yes === Description [tf.textarea:description -id=piform -class=taform 'Describe the goal of development, and the methodology.\n\nAdd reference documents or publications if relevant.' 0 20] === Implementation [tf.textarea:implementation -id=piform -class=taform 'Describe flow chart of the changes in the code.\n\nList the .F90 files and modules to be changed.\n\nDetailed list of new variables (including namelists) to be defined.\nGive for each the chosen name (following coding rules) and definition.' 0 20] === Reference manual and web pages updates [tf.textarea:manual -id=piform -class=taform 'Using part 1 and 2, define the summary of changes to be done in the NEMO reference manual (tex files), and in the content of web pages.' 0 20] '''''Updated on [tf.form_updated_on:] by [tf.form_updater:]''''' }}} Once the PI has completed this section, he should send a mail to the previewer(s) asking them to preview the work within two weeks. }}} {{{#!Fold title=Preview tag=h2 [=#preview] Since the preview step must be completed before the PI starts the coding, the previewer(s) answers are expected to be completed within the two weeks after the PI has sent his request.[[BR]]For each question, an iterative process should take place between PI and previewer(s) in order to reach a "YES" answer for each of the following questions. {{{#!TracForm #!subcontext preview_ #!submit_label 'Save Preview' || Questions || Answer || Comment || || Does the previewer agree with the proposed methodology? || [tf.select:2.1 -id=preform '' Yes No NR] || [tf.textarea:2.1c -id=preform 'Add a comment?' 50 10] || || Does the previewer agree with the proposed flowchart and list of routines to be changed? || [tf.select:2.2 -id=preform '' Yes No NR] || [tf.textarea:2.2c -id=preform 'Add a comment?' 50 10] || || Does the previewer agree with the proposed new list of variables, including agreement with coding rules? || [tf.select:2.3 -id=preform '' Yes No NR] || [tf.textarea:2.3c -id=preform 'Add a comment?' 50 10] || || Does the previewer agree with the proposed summary of updates in reference manual? || [tf.select:2.4 -id=preform '' Yes No NR] || [tf.textarea:2.4c -id=preform 'Add a comment?' 50 10] || || ... ... ... || [tf.select:2.X -id=preform '' Yes No NR] || [tf.textarea:2.Xc -id=preform 'Add a comment?' 50 10] || '''''Updated on [tf.form_updated_on:] by [tf.form_updater:]''''' }}} Once all "YES" have been reached, the PI can start the development into his development branch. }}} {{{#!Fold title=Tests tag=h2 [=#tests] Once the development is done, the PI should complete this section below and ask the reviewers to start their review in the lower section. {{{#!TracForm #!subcontext tests #!submit_label 'Save Tests' || Questions || Answer || Comment || || Can this change be shown to produce expected impact? (if option activated)? || [tf.select:3.1 -id=piform '' Yes No NR] || [tf.textarea:3.1c -id=piform 'Add a comment?' 50 10] || || Can this change be shown to have a null impact? (if option not activated) || [tf.select:3.2 -id=piform '' Yes No NR] || [tf.textarea:3.2c -id=piform 'Add a comment?' 50 10] || || Detailed results of restartability and reproducibility when the option is activated. Please indicate the configuration used for this test || [tf.select:3.3 -id=piform '' Yes No NR] || [tf.textarea:3.3c -id=piform 'Add a comment?' 50 10] || || Detailed results of SETTE tests (restartability and reproducibility for each of the reference configuration) || [tf.select:3.4 -id=piform '' Yes No NR] || [tf.textarea:3.4c -id=piform 'Add a comment?' 50 10] || || Results of the required bit comparability tests been run: Are there no differences when activating the development? || [tf.select:3.5 -id=piform '' Yes No NR] || [tf.textarea:3.5c -id=piform 'Add a comment?' 50 10] || || If some differences appear, is reason for the change valid/understood? || [tf.select:3.6 -id=piform '' Yes No NR] || [tf.textarea:3.6c -id=piform 'Add a comment?' 50 10] || || If some differences appear, is the !ticket describing in detail the impact this change will have on model configurations? || [tf.select:3.7 -id=piform '' Yes No NR] || [tf.textarea:3.7c -id=piform 'Add a comment?' 50 10] || || Is this change expected to preserve all diagnostics? || [tf.select:3.8 -id=piform '' Yes No NR] || [tf.textarea:3.8c -id=piform 'Add a comment?' 50 10] || || If no, is reason for the change valid/understood? || [tf.select:3.9 -id=piform '' Yes No NR] || [tf.textarea:3.9c -id=piform 'Add a comment?' 50 10] || || Are there significant changes in run time/memory? || [tf.select:3.10 -id=piform '' Yes No NR] || [tf.textarea:3.10c -id=piform 'Add a comment?' 50 10] || || ... ... ... || [tf.select:3.XX -id=piform '' Yes No NR] || [tf.textarea:3.XXc -id=piform 'Add a comment?' 50 10] || '''''Updated on [tf.form_updated_on:] by [tf.form_updater:]''''' }}} }}} {{{#!Fold title=Review tag=h2 [=#review] A successful review is needed to schedule the merge of this development into the future NEMO release during next Merge Party (usually in November). {{{#!TracForm #!subcontext review #!submit_label 'Save Review' === Code changes and documentation || Question || Answer || Comment || || Is the proposed methodology now implemented? || [tf.select:3.11 -id=revform '' Yes No NR] || [tf.textarea:3.11c -id=revform 'Add a comment?' 50 10] || || Are the code changes in agreement with the flowchart defined at Preview step? || [tf.select:3.12 -id=revform '' Yes No NR] || [tf.textarea:3.12c -id=revform 'Add a comment?' 50 10] || || Are the code changes in agreement with list of routines and variables as proposed at Preview step?[[BR]]If not, are the discrepancies acceptable? || [tf.select:3.13 -id=revform '' Yes No NR] || [tf.textarea:3.13c -id=revform 'Add a comment?' 50 10] || || Is the in-line documentation accurate and sufficient? || [tf.select:3.14 -id=revform '' Yes No NR] || [tf.textarea:3.14c -id=revform 'Add a comment?' 50 10] || || Do the code changes comply with NEMO coding standards? || [tf.select:3.15 -id=revform '' Yes No NR] || [tf.textarea:3.15c -id=revform 'Add a comment?' 50 10] || || Is the !ticket of development documented with sufficient details for others to understand the impact of the change? || [tf.select:3.16 -id=revform '' Yes No NR] || [tf.textarea:3.16c -id=revform 'Add a comment?' 50 10] || || Are the reference manual tex files now updated following the proposed summary in preview section? || [tf.select:3.17 -id=revform '' Yes No NR] || [tf.textarea:3.17c -id=revform 'Add a comment?' 50 10] || || Is there a need for some documentation on the web pages (in addition to in-line and reference manual)?[[BR]]If yes, please describe and ask PI. A yes answer must include all documentation available. || [tf.select:3.18 -id=revform '' Yes No NR] || [tf.textarea:3.18c -id=revform 'Add a comment?' 50 10] || || ... ... ... || [tf.select:3.XX -id=revform '' Yes No NR] || [tf.textarea:3.XXc -id=revform 'Add a comment?' 50 10] || ==== Review Summary Is the review fully successful? [tf.select:status -id=revform '' Yes No] [tf.textarea:comment -id=revform 'If not, please indicate what is still missing.' 50 10] '''''Updated on [tf.form_updated_on:] by [tf.form_updater:]''''' }}} Once review is successful, the development must be scheduled for merge during next Merge Party Meeting. }}}