= Name and subject of the action Last edition: '''[[Wikinfo(changed_ts)]]''' by '''[[Wikinfo(changed_by)]]''' The PI is responsible to closely follow the progress of the action, and especially to contact NEMO project manager if the delay on preview (or review) are longer than the 2 weeks expected. [[PageOutline(2, , inline)]] == Summary ||=Action || optimisation of the vertical scale factor e3 computation || ||=PI(S) || Techene, Madec || ||=Digest || compute e3 on the fly from e3_0(:,:,:,Ktl) * ( 1 + ssh(:,:,Ktl) / h_0( :,: ) * mask( :,:,: ) instead of storing e3t/u/v/w/f... || ||=Dependencies || If any || ||=Branch || source:/NEMO/branches/2020/dev_r{REV}_{ACTION_NAME} || ||=Previewer(s) || Madec || ||=Reviewer(s) || Madec || ||=Ticket || #2385 || === Description The current e3[P] at P-point computation uses interpolation of the r3t 4D table at P = {u-, v-, w-, f-, uw-, vw-} points. This means 7 4D tables stored in memory. The proposed optimisation consists in computing e3[P](ji,jj,jk,Ktl) on the fly using the r3[P] = ssh[P] / h_0 and the e3[P]_0. r3[P] is a 2D table, then this means only 4 2D tables stored in memory. z-tilde management is done through e3[P]_0 that may varies with time in the z-tilde case. Asselin filter management is done recomputing r3[P] directly with the filtered ssh. === Implementation {{{#!box width=35em help Describe flow chart of the changes in the code. \\ List the Fortran modules and subroutines to be created/edited/deleted. \\ Detailed list of new variables to be defined (including namelists), \\ give for each the chosen name and description wrt coding rules. }}} 1/ REFERENCE version change the way to compute the e3 using ssh instead of interpolating \\ For this we need to modify : \\ - cfgs/GYRE_PISCES/cpp_GYRE_PISCES.fcm (top de-activation) \\ - src/OCE/DOM/dom_oce.F90 (declaration and allocation of new variable) \\ - src/OCE/DOM/domain.F90 (initialisation of h new variables) \\ - src/OCE/DOM/dommsk.F90 (initialisation of mask new variable) \\ - src/OCE/DOM/domvvl.F90 (dom_vvl_interpol and dom_vvl interpol_3d) \\ - src/OCE/DYN/dynatf.F90 (change but no effect since ln_dynadv_vec = .true.) - src/OCE/TRA/traatf.F90 (change the e3t update with Asselin filter) - src/OCE/step.F90 (change the ordering ssh >> tra >> dyn) \\ 2/ ''...'' === Documentation updates {{{#!box width=55em help Using previous parts, define the main changes to be done in the NEMO literature (manuals, guide, web pages, …). }}} ''...'' == Preview {{{#!box width=50em info [[Include(wiki:Developers/DevProcess#preview_)]] }}} ''...'' == Tests {{{#!box width=50em info [[Include(wiki:Developers/DevProcess#tests)]] }}} ''...'' == Review {{{#!box width=50em info [[Include(wiki:Developers/DevProcess#review)]] }}} ''...''