Version 31 (modified by gm, 8 years ago) (diff) |
---|
Last edited Timestamp?
Author : Gurvan Madec, Andrew Coward
ticket : #1613
Branch : dev_r5836_NOC3_vvl_by_default
WP2015 Action : NOC-3
Description
Development branch related to NOC-3 system simplification actions of 2015 work plan : set the non-linear free surface (i.e. key_vvl) by default.
- suppression of domzgr_substitute.h90 : before, now and after e3 scale factors are systematically defined. All fse3… desappear from all NEMO modules.
- key_vvl is removed. A namelist logical (ln_linssh) is used.
- linear free surface (constant volume) case : e3 before, now and after are set equal one for all, and we use exactly the same calculation as in non-linear case (except that update of e3 at each time-step is by-passed)
- time stepping on tracers is performed systematically on thickness-weighted tracers (or possibly on volume-weighted tracers).
Starting from trunk (revision: 5836) after the merge with dev_r5721_CNRS9_NOC3_LDF
Strategy
Three steps:
I. Before/Now/After? vertical coordinate system by default
===>>> runs ORCA2_LIM3 trunk and this branch identical to the last digit ===>>> OK see revision 5845
===>>> small bug correction in in_out_manager.F90 ===>>> OK see revision 5858
===>>> correction of trunk bugs 5860 and 5861 + bug correction in non-vvl case===>>> OK see revision 5862
===>>> Not working in non vvl case (blow up in 10 time step !) error (tmask instead of umask in dlmvvl)
===>>> OK see revision 5863
===>>> re-introduce changes in dynhpg.F90 ===>>> OK see revision 5864
- dom_oce.F90 :
(1) systematic declaration of before/now/after vertical coordinate
(2) uniformisation of the name: hur (hvr) becomes r1_hu_n (r1_hv_n) ; idem for before and after
(3) gdep3w becomes gde3w === - all NEMO code: replace fs... by the the associated variable. When time-step is not prescribed, use _n variable (as was done in domzgr_substitute.h90). Results are identical when, in dynhpg.F90, the substitution of 1/e1u, 1/e2v by by r1_e1u, r1_e2v is removed ==>> last digit changes !)
- remove domzgr_substitute.h90 and its #include every where in the code. compilation OK (ORCA2_LIM3, ORCA2_LIM with/without AGRIF, ORCA2_LIM_PISCES,ORCA2_SAS_LIM, AMM12, C1D_PAPA, ORCA2_OFF_PISCES, GYRE_PISCES)
- domzgr.F90 : Add the initialization of "_b", "_n", "_a" vertical coordinate arrays to "_0" in cas of linear free surface (i.e. .not.lk_vvl)
- reintroduce in dynhpg.F90 the substitution of 1/e1u, 1/e2v by by r1_e1u, r1_e2v OK see evision 5864
II. Non-linear free surface by default
- replace lk_vvl by .NOT.ln_linssh everywhere
- remove key_vvl and introduce ln_linssh in nam_zgr namelist
Misc. issues also solved
- dynldf_lap_blp.F90 & sbcwaves.F90: correct the 2 bugs found in trunk (see trunk revision 5860 and 5861): OK see revision 5862
- dynldf_lap_blp.F90 : add the correction on zdiv in AGRIF case: OK revision 5862
- domhpg.F90 : replace everywhere /e1u (/e2v) by *r1_e1u (*r1_e2v) ==>> put in comment !!gm to get same results
- dynspg_flt.F90 : replace everywhere /e1u (/e2v) by *r1_e1u (*r1_e2v)
- use nn_print test to bypass some control print. (domcfg.F90 ; ...)
- remove the use of prihre, prihin, prizre ==>>> remove lib_print.f90