[[PageOutline]] Last edited [[Timestamp]] Author : Gurvan Madec, Andrew Coward ticket : #1613 Branch : '''[https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5836_NOC3_vvl_by_default 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: [https://forge.ipsl.jussieu.fr/nemo/log/trunk/NEMOGCM?rev=5838 ​5836]) after the merge with [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​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 [https://forge.ipsl.jussieu.fr/nemo/log/branches/2015/dev_r5836_NOC3_vvl_by_default?rev= 5845] [[BR]] ===>>> small bug correction in in_out_manager.F90 ===>>> ''' OK''' see revision [https://forge.ipsl.jussieu.fr/nemo/log/branches/2015/dev_r5836_NOC3_vvl_by_default?rev= 5858] [[BR]] ===>>> correction of trunk bugs [https://forge.ipsl.jussieu.fr/nemo/log/trunk/NEMOGCM?rev= ​5860] and [https://forge.ipsl.jussieu.fr/nemo/log/trunk/NEMOGCM?rev= ​5861] + bug correction in non-vvl case===>>> ''' OK''' see revision [https://forge.ipsl.jussieu.fr/nemo/log/branches/2015/dev_r5836_NOC3_vvl_by_default?rev= 5862] [[BR]] [[BR]] ===>>> Not working in non vvl case (blow up in 10 time step !) error (tmask instead of umask in dlmvvl)[[BR]] ===>>> OK see revision [https://forge.ipsl.jussieu.fr/nemo/log/branches/2015/dev_r5836_NOC3_vvl_by_default?rev= 5863] [[BR]] ===>>> re-introduce changes in dynhpg.F90 ===>>> ''' OK''' see revision [https://forge.ipsl.jussieu.fr/nemo/log/branches/2015/dev_r5836_NOC3_vvl_by_default?rev= 5864] * dom_oce.F90 :[[BR]](1) systematic declaration of before/now/after vertical coordinate [[BR]](2) uniformisation of the name: hur (hvr) becomes r1_hu_n (r1_hv_n) ; idem for before and after[[BR]](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 revision [https://forge.ipsl.jussieu.fr/nemo/log/branches/2015/dev_r5836_NOC3_vvl_by_default?rev= 5864] == [[BR]]II. Non-linear free surface by default == ===>>> ''' (1)+(2)''' runs ORCA2_LIM and ORCA2_LIM3 (ln_linssh=T & =F) identical to the last digit with results of part I (rev 5864) and compilation with ORCA2_LIM_PISCES fine ===>>> ''' OK''' see revision [https://forge.ipsl.jussieu.fr/nemo/log/branches/2015/dev_r5836_NOC3_vvl_by_default?rev= 5868] [[BR]] ===>>> ''' (3) TRA''' runs ORCA2_LIM and ORCA2_LIM3 (ln_linssh=T & =F) OK, but solver modified (roundoff changes)  ===>>> '''OK''' see revision  [https://forge.ipsl.jussieu.fr/nemo/log/branches/2015/dev_r5836_NOC3_vvl_by_default?rev= 5883] === (1) replace lk_vvl by .NOT.ln_linssh everywhere === === (2) remove key_vvl and introduce ln_linssh in nam_zgr namelist === domain.F90 , dom_init : impose _b, _n, _a depth and vertical scale factors to be equal to _0 ones if ln_linssh=T[[BR]]domzgr.F90 : now only compute the _0 mesh (in particular remove the setting of _n fields in zgr_sco === (3) remove optimization associated with linear free surface ; promote test on ln_linssh in favor of test on .NOT.ln_linssh === * '''TRA''' (and TRC) : '''traadv_...''' : surface flux set systematically to zero for all tracers. compute for each tracer in ln_linssh case [[BR]]'''traqsr ''': ln_linssh desappears: always computed with now scale factors. introduction of np_RGB, np_2BD, etc ... Logical ln_traqsr moved from namtra_qsr to namsbc[[BR]]'''trazdf_exp & trazdf_imp''' : e3t & e3w always taken into account. No differences between ln_linssh=T or F[[BR]]'''trasbc''' : non-linear free surface calculation, and addition of concentration/dilution term only when ln_linssh=T[[BR]]'''tranxt''' : tra_nxt_fix cannot be removed as in tra_nxt_vvl the vertical scale factor used changes (asselin time filter on e3t....) [[BR]] ---- == Misc. issues also solved == * dynldf_lap_blp.F90 & sbcwaves.F90: correct the 2 bugs found in trunk (see trunk revision [https://forge.ipsl.jussieu.fr/nemo/log/trunk/NEMOGCM?rev= ​5860] and [https://forge.ipsl.jussieu.fr/nemo/log/trunk/NEMOGCM?rev= ​5861]): '''OK''' see revision [https://forge.ipsl.jussieu.fr/nemo/log/branches/2015/dev_r5836_NOC3_vvl_by_default?rev= 5862] * dynldf_lap_blp.F90 : add the correction on zdiv in AGRIF case: '''OK''' revision [https://forge.ipsl.jussieu.fr/nemo/log/branches/2015/dev_r5836_NOC3_vvl_by_default?rev= 5862] * domhpg.F90 : replace everywhere /e1u (/e2v) by *r1_e1u (*r1_e2v) ==>> put in comment !!gm to get same results '''OK''' * dynspg_flt.F90 : replace everywhere /e1u (/e2v) by *r1_e1u (*r1_e2v) '''OK''' * use nn_print test to bypass some control print. (domcfg.F90 ; ...) '''OK''' * remove the use of prihre, prihin, prizre ==>>> remove lib_print.f90 '''OK''' * sbcwave : move drag and stokes drift logical from namsbc to namsbc_wave. '''OK'''  see revision [https://forge.ipsl.jussieu.fr/nemo/log/branches/2015/dev_r5836_NOC3_vvl_by_default?rev= 5883] * merge traadv_lap.F90 & traadv_blp.F90 into traadv_lap_blp.F90 (as for the dynamics) + traldf.F90 & trcldf.F90 for USE traldf_lap_blp. '''OK''' see revision  [https://forge.ipsl.jussieu.fr/nemo/log/branches/2015/dev_r5836_NOC3_vvl_by_default?rev= 5883] * geo2ocean.F90 : simplification by removing the old and no more used repcmo & rep ere subroutines. '''OK''' see revision  [https://forge.ipsl.jussieu.fr/nemo/log/branches/2015/dev_r5836_NOC3_vvl_by_default?rev= 5883]