= ENHANCE-14_smueller_OSMOSIS_streamlining 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 || ENHANCE-14_smueller_OSMOSIS_streamlining || ||=PIs || S. Müller, G. Nurser || ||=Digest || Standardisation and optimisation of the OSMOSIS OBL scheme implementation || ||=Dependencies || || ||=Branch || source:/NEMO/branches/{YEAR}/dev_r{REV}_{ACTION_NAME} || ||=Previewer || M. Bell || ||=Reviewer || M. Bell || ||=Ticket || #2353 || === Description Action [[wiki:2020WP/ENHANCE-14_smueller_OSMOSIS_streamlining|ENHANCE-14_smueller_OSMOSIS_streamlining]] forms one of two strands of work (action [[wiki:2020WP/PHYPRO-01_agn_OSMOSIS_science|PHYPRO-01_agn_OSMOSIS_science]] being the other) that follow up the 2019-WP action [[wiki:2019WP/VALID-02_GeorgeN-evalOSMOSIS|VALID-02-GeorgeN-evalOSMOSIS]], whose code developments have not yet been merged back into the trunk. This new action aims to update the implementation of the OSMOSIS surface-boundary-layer scheme resulting from action [[wiki:2019WP/VALID-02_GeorgeN-evalOSMOSIS|VALID-02_GeorgeN-evalOSMOSIS]] (as implemented in [source:/NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/OCE/ZDF/zdfosm.F90]) by improving its computational efficiency, by making it compilable in `AGRIF`-enabled configurations, by improving its compliance with NEMO coding standards and readability, and by including it in the `SETTE` test suite. === Implementation The development branch for 2019-WP action [[wiki:2019WP/VALID-02_GeorgeN-evalOSMOSIS|VALID-02_GeorgeN-evalOSMOSIS]] has recently been synchronized with source:/NEMO/trunk@12925 (changesets [12928] and [12934]). Thus, it should be readily possible to cleanly transfer the code developments made in action [[wiki:2019WP/VALID-02_GeorgeN-evalOSMOSIS|VALID-02_GeorgeN-evalOSMOSIS]] into a new development branch that branches off from an up-to-date version of source:/NEMO/trunk in order to form the basis for the source-code "streamlining" activities of action [[wiki:2020WP/ENHANCE-14_smueller_OSMOSIS_streamlining]]. The main purpose of action [[wiki:2020WP/ENHANCE-14_smueller_OSMOSIS_streamlining|ENHANCE-14_smueller_OSMOSIS_streamlining]] is the computational-efficiency enhancement of subroutine `zdf_osm` of module `zdfosm`. A preliminary analysis in the context of action [[wiki:2019WP/VALID-02_GeorgeN-evalOSMOSIS|VALID-02_GeorgeN-evalOSMOSIS]] suggested a substantial computational cost resulting from the replacement of the established vertical-mixing scheme by the version of the OSMOSIS surface-boundary-layer scheme developed in this 2019-WP action. In [[wiki:2020WP/ENHANCE-14_smueller_OSMOSIS_streamlining|ENHANCE-14_smueller_OSMOSIS_streamlining]], using a suitable model configuration, a detailed timing analysis of subroutine `zdf_osm` is planned to be carried out, followed by a thorough review of the source code of module `zdfosm`. Based on this analysis and the source-code review, an exploration of modifications with apparent potential to reduce computational cost of subroutine `zdf_osm`, followed by the implementation of suitable computational-efficiency improvements, is proposed. Fruther "streamlining" of the source code of subroutine `zdf_osm` is proposed. This includes enhancements of the conformance with NEMO coding conventions and of code readability, as well as the enabling of the compilation of the `zdfosm` module in AGRIF-enabled configurations (the current version from the 2019-WP action [[wiki:2019WP/VALID-02_GeorgeN-evalOSMOSIS|VALID-02_GeorgeN-evalOSMOSIS]] fails to compile in the `SETTE` test configurations `AGRIF`, `ICE_AGRIF', and 'VORTEX'). Finally, activation of the OSMOSIS surface-boundary-layer scheme in at least one configuration of the `SETTE` test suite is proposed. === Documentation updates No or only minor documentation updates are expected to result from this action. The "streamlining" activities are expected to transform the source code of module `zdfosm` without changing its function, and thus should not prompt any modification of the NEMO manual or user guide. However, inclusion of the `OSMOSIS` scheme in `SETTE`, for example through its activation in a reference configuration, may require minor updates of the respective documentation. == 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)]] }}} ''...''