New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 13966 for NEMO – NEMO

Changeset 13966 for NEMO


Ignore:
Timestamp:
2020-12-02T10:30:33+01:00 (3 years ago)
Author:
smasson
Message:

dev_r13923_Tiling_Cleanup_MPI3_LoopFusion: update with trunk@13965

Location:
NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion

    • Property svn:externals
      •  

        old new  
        88 
        99# SETTE 
        10 ^/utils/CI/sette@13559        sette 
         10^/utils/CI/sette@13795        sette 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/doc/latex/NEMO/main/bibliography.bib

    r12377 r13966  
    19061906} 
    19071907 
     1908@Article{        love_PRSLA1909, 
     1909  author       = "A. E. H. Love", 
     1910  title        = "The Yielding of the Earth to Disturbing Forces", 
     1911  journal      = "Proc. R. Soc. Lond. A", 
     1912  year         = "1909", 
     1913  volume       = "82", 
     1914  pages        = "73-88", 
     1915  doi          = "10.1098/rspa.1909.0008" 
     1916} 
     1917 
    19081918@article{         losch_JGR08, 
    19091919  title         = "Modeling ice shelf cavities in a z coordinate Ocean 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/doc/latex/NEMO/subfiles/chap_DYN.tex

    r11693 r13966  
    12451245the atmospheric pressure is taken into account when computing the surface pressure gradient. 
    12461246 
    1247 (2) When \np[=.true.]{ln_tide_pot}{ln\_tide\_pot} and \np[=.true.]{ln_tide}{ln\_tide} (see \autoref{sec:SBC_tide}), 
     1247(2) When \np[=.true.]{ln_tide_pot}{ln\_tide\_pot} and \np[=.true.]{ln_tide}{ln\_tide} (see \autoref{sec:SBC_TDE}), 
    12481248the tidal potential is taken into account when computing the surface pressure gradient. 
    12491249 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/doc/latex/NEMO/subfiles/chap_LBC.tex

    r11693 r13966  
    1616    Release & Author(s) & Modifications \\ 
    1717    \hline 
     18    {\em  next} & {\em Simon M{\" u}ller} & {\em Minor update of \autoref{subsec:LBC_bdy_tides}} \\[2mm] 
    1819    {\em   4.0} & {\em ...} & {\em ...} \\ 
    1920    {\em   3.6} & {\em ...} & {\em ...} \\ 
     
    665666 
    666667Tidal forcing at open boundaries requires the activation of surface 
    667 tides (i.e., in \nam{_tide}{\_tide}, \np{ln_tide}{ln\_tide} needs to be set to 
    668 \forcode{.true.} and the required constituents need to be activated by 
    669 including their names in the \np{clname}{clname} array; see 
    670 \autoref{sec:SBC_tide}). Specific options related to the reading in of 
     668tides (i.e., in \nam{_tide}{\_tide}, \np[=.true.]{ln_tide}{ln\_tide} with the active tidal 
     669constituents listed in the \np{sn_tide_cnames}{sn\_tide\_cnames} array; see 
     670\autoref{sec:SBC_TDE}). The specific options related to the reading in of 
    671671the complex harmonic amplitudes of elevation (SSH) and barotropic 
    672 velocity (u,v) at open boundaries are defined through the 
    673 \nam{bdy_tide}{bdy\_tide} namelist parameters.\\ 
     672velocity components (u,v) at the open boundaries are defined through the 
     673\nam{bdy_tide}{bdy\_tide} namelist parameters.\par 
    674674 
    675675The tidal harmonic data at open boundaries can be specified in two 
    676676different ways, either on a two-dimensional grid covering the entire 
    677677model domain or along open boundary segments; these two variants can 
    678 be selected by setting \np{ln_bdytide_2ddta }{ln\_bdytide\_2ddta } to \forcode{.true.} or 
    679 \forcode{.false.}, respectively. In either case, the real and 
    680 imaginary parts of SSH and the two barotropic velocity components for 
    681 each activated tidal constituent \textit{tcname} have to be provided 
    682 separately: when two-dimensional data is used, variables 
    683 \textit{tcname\_z1} and \textit{tcname\_z2} for real and imaginary SSH, 
    684 respectively, are expected in input file \np{filtide}{filtide} with suffix 
    685 \ifile{\_grid\_T}, variables \textit{tcname\_u1} and 
    686 \textit{tcname\_u2} for real and imaginary u, respectively, are 
    687 expected in input file \np{filtide}{filtide} with suffix \ifile{\_grid\_U}, and 
    688 \textit{tcname\_v1} and \textit{tcname\_v2} for real and imaginary v, 
    689 respectively, are expected in input file \np{filtide}{filtide} with suffix 
    690 \ifile{\_grid\_V}; when data along open boundary segments is used, 
    691 variables \textit{z1} and \textit{z2} (real and imaginary part of SSH) 
    692 are expected to be available from file \np{filtide}{filtide} with suffix 
    693 \ifile{tcname\_grid\_T}, variables \textit{u1} and \textit{u2} (real 
    694 and imaginary part of u) are expected to be available from file 
    695 \np{filtide}{filtide} with suffix \ifile{tcname\_grid\_U}, and variables 
    696 \textit{v1} and \textit{v2} (real and imaginary part of v) are 
    697 expected to be available from file \np{filtide}{filtide} with suffix 
    698 \ifile{tcname\_grid\_V}. If \np{ln_bdytide_conj}{ln\_bdytide\_conj} is set to 
    699 \forcode{.true.}, the data is expected to be in complex conjugate 
    700 form. 
     678be selected by setting \np[=.true.]{ln_bdytide_2ddta}{ln\_bdytide\_2ddta} or 
     679\np[=.false.]{ln_bdytide_2ddta}{ln\_bdytide\_2ddta}, respectively. In either 
     680case, the real and imaginary parts of SSH, u, and v amplitudes associated with 
     681each activated tidal constituent \texttt{<constituent>} have to be provided 
     682separately as fields in input files with names based on 
     683\np[=<input>]{filtide}{filtide}: when two-dimensional data is used, variables 
     684\texttt{<constituent>\_z1} and \texttt{<constituent>\_z2} for the real and imaginary parts of 
     685SSH, respectively, are expected to be available in file 
     686\ifile{<input>\_grid\_T}, variables \texttt{<constituent>\_u1} and 
     687\texttt{<constituent>\_u2} for the real and imaginary parts of u, respectively, in file 
     688\ifile{<input>\_grid\_U}, and \texttt{<constituent>\_v1} and 
     689\texttt{<constituent>\_v2} for the real and imaginary parts of v, respectively, in file 
     690\ifile{<input>\_grid\_V}; when data along open boundary segments is used, 
     691variables \texttt{z1} and \texttt{z2} (real and imaginary part of SSH) are 
     692expected to be available in file \ifile{<input><constituent>\_grid\_T}, 
     693variables \texttt{u1} and \texttt{u2} (real and imaginary part of u) in file 
     694\ifile{<input><constituent>\_grid\_U}, and variables \texttt{v1} and \texttt{v2} 
     695(real and imaginary part of v) in file 
     696\ifile{<input><constituent>\_grid\_V}.\par 
    701697 
    702698Note that the barotropic velocity components are assumed to be defined 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/doc/latex/NEMO/subfiles/chap_SBC.tex

    r13165 r13966  
    55\begin{document} 
    66 
    7 \chapter{Surface Boundary Condition (SBC, SAS, ISF, ICB)} 
     7\chapter{Surface Boundary Condition (SBC, SAS, ISF, ICB, TDE)} 
    88\label{chap:SBC} 
    99 
     
    1818    Release & Author(s) & Modifications \\ 
    1919    \hline 
     20    {\em  next} & {\em Simon M{\" u}ller} & {\em Update of \autoref{sec:SBC_TDE}}\\[2mm] 
    2021    {\em   4.0} & {\em ...} & {\em ...} \\ 
    2122    {\em   3.6} & {\em ...} & {\em ...} \\ 
     
    10131014 
    10141015%% ================================================================================================= 
    1015 \section[Surface tides (\textit{sbctide.F90})]{Surface tides (\protect\mdl{sbctide})} 
    1016 \label{sec:SBC_tide} 
     1016\section{Surface tides (TDE)} 
     1017\label{sec:SBC_TDE} 
    10171018 
    10181019\begin{listing} 
     
    10221023\end{listing} 
    10231024 
    1024 The tidal forcing, generated by the gravity forces of the Earth-Moon and Earth-Sun sytems, 
    1025 is activated if \np{ln_tide}{ln\_tide} and \np{ln_tide_pot}{ln\_tide\_pot} are both set to \forcode{.true.} in \nam{_tide}{\_tide}. 
    1026 This translates as an additional barotropic force in the momentum \autoref{eq:MB_PE_dyn} such that: 
     1025\subsection{Tidal constituents} 
     1026Ocean model component TDE provides the common functionality for tidal forcing 
     1027and tidal analysis in the model framework. This includes the computation of the gravitational 
     1028surface forcing, as well as support for lateral forcing at open boundaries (see 
     1029\autoref{subsec:LBC_bdy_tides}) and tidal harmonic analysis (see 
     1030\autoref{subsec:DIA_diamlr} and \autoref{subsec:DIA_diadetide}). The module is 
     1031activated with \np[=.true.]{ln_tide}{ln\_tide} in namelist 
     1032\nam{_tide}{\_tide}. It provides the same 34 tidal constituents that are 
     1033included in the 
     1034\href{https://www.aviso.altimetry.fr/en/data/products/auxiliary-products/global-tide-fes.html}{FES2014 
     1035  ocean tide model}: Mf, Mm, Ssa, Mtm, Msf, Msqm, Sa, K1, O1, P1, Q1, J1, S1, 
     1036M2, S2, N2, K2, nu2, mu2, 2N2, L2, T2, eps2, lam2, R2, M3, MKS2, MN4, MS4, M4, 
     1037N4, S4, M6, and M8; see file \hf{tide} and \mdl{tide\_mod} for further 
     1038information and references\footnote{As a legacy option \np{ln_tide_var} can be 
     1039  set to \forcode{0}, in which case the 19 tidal constituents (M2, N2, 2N2, S2, 
     1040  K2, K1, O1, Q1, P1, M4, Mf, Mm, Msqm, Mtm, S1, MU2, NU2, L2, and T2; see file 
     1041  \hf{tide}) and associated parameters that have been available in NEMO version 
     1042  4.0 and earlier are available}. Constituents to be included in the tidal forcing 
     1043(surface and lateral boundaries) are selected by enumerating their respective 
     1044names in namelist array \np{sn_tide_cnames}{sn\_tide\_cnames}.\par 
     1045 
     1046\subsection{Surface tidal forcing} 
     1047Surface tidal forcing can be represented in the model through an additional 
     1048barotropic force in the momentum equation (\autoref{eq:MB_PE_dyn}) such that: 
    10271049\[ 
    1028   % \label{eq:SBC_PE_dyn_tides} 
    1029   \frac{\partial {\mathrm {\mathbf U}}_h }{\partial t}= ... 
    1030   +g\nabla (\Pi_{eq} + \Pi_{sal}) 
     1050  \frac{\partial {\mathrm {\mathbf U}}_h }{\partial t} = \ldots +g\nabla (\gamma 
     1051  \Pi_{eq} + \Pi_{sal}) 
    10311052\] 
    1032 where $\Pi_{eq}$ stands for the equilibrium tidal forcing and 
    1033 $\Pi_{sal}$ is a self-attraction and loading term (SAL). 
    1034  
    1035 The equilibrium tidal forcing is expressed as a sum over a subset of 
    1036 constituents chosen from the set of available tidal constituents 
    1037 defined in file \hf{SBC/tide} (this comprises the tidal 
    1038 constituents \textit{M2, N2, 2N2, S2, K2, K1, O1, Q1, P1, M4, Mf, Mm, 
    1039   Msqm, Mtm, S1, MU2, NU2, L2}, and \textit{T2}). Individual 
    1040 constituents are selected by including their names in the array 
    1041 \np{clname}{clname} in \nam{_tide}{\_tide} (e.g., \np{clname}{clname}\forcode{(1)='M2', } 
    1042 \np{clname}{clname}\forcode{(2)='S2'} to select solely the tidal consituents \textit{M2} 
    1043 and \textit{S2}). Optionally, when \np{ln_tide_ramp}{ln\_tide\_ramp} is set to 
    1044 \forcode{.true.}, the equilibrium tidal forcing can be ramped up 
    1045 linearly from zero during the initial \np{rdttideramp}{rdttideramp} days of the 
    1046 model run. 
     1053where $\gamma \Pi_{eq}$ stands for the equilibrium tidal forcing scaled by a spatially 
     1054uniform tilt factor $\gamma$, and $\Pi_{sal}$ is an optional 
     1055self-attraction and loading term (SAL). These additional terms are enabled when, 
     1056in addition to \np[=.true.]{ln_tide}{ln\_tide}), 
     1057\np[=.true.]{ln_tide_pot}{ln\_tide\_pot}.\par 
     1058 
     1059The equilibrium tidal forcing is expressed as a sum over the subset of 
     1060constituents listed in \np{sn_tide_cnames}{sn\_tide\_cnames} of 
     1061\nam{_tide} (e.g., 
     1062\begin{forlines} 
     1063      sn_tide_cnames(1) = 'M2' 
     1064      sn_tide_cnames(2) = 'K1' 
     1065      sn_tide_cnames(3) = 'S2' 
     1066      sn_tide_cnames(4) = 'O1' 
     1067\end{forlines} 
     1068to select the four tidal constituents of strongest equilibrium tidal 
     1069potential). The tidal tilt factor $\gamma = 1 + k - h$ includes the 
     1070Love numbers $k$ and $h$ \citep{love_prsla1909}; this factor is 
     1071configurable using \np{rn_tide_gamma} (default value 0.7). Optionally, 
     1072when \np[=.true.]{ln_tide_ramp}{ln\_tide\_ramp}, the equilibrium tidal 
     1073forcing can be ramped up linearly from zero during the initial 
     1074\np{rn_tide_ramp_dt}{rn\_tide\_ramp\_dt} days of the model run.\par 
    10471075 
    10481076The SAL term should in principle be computed online as it depends on 
    10491077the model tidal prediction itself (see \citet{arbic.garner.ea_DSR04} for a 
    1050 discussion about the practical implementation of this term). 
    1051 Nevertheless, the complex calculations involved would make this 
    1052 computationally too expensive. Here, two options are available: 
    1053 $\Pi_{sal}$ generated by an external model can be read in 
    1054 (\np[=.true.]{ln_read_load}{ln\_read\_load}), or a ``scalar approximation'' can be 
    1055 used (\np[=.true.]{ln_scal_load}{ln\_scal\_load}). In the latter case 
     1078discussion about the practical implementation of this term). The complex 
     1079calculations involved in such computations, however, are computationally very 
     1080expensive. Here, two mutually exclusive simpler variants are available: 
     1081amplitudes generated by an external model for oscillatory $\Pi_{sal}$ 
     1082contributions from each of the selected tidal constituents can be read in 
     1083(\np[=.true.]{ln_read_load}{ln\_read\_load}) from the file specified in 
     1084\np{cn_tide_load}{cn\_tide\_load} (the variable names are comprised of the 
     1085tidal-constituent name and suffixes \forcode{_z1} and \forcode{_z2} for the two 
     1086orthogonal components, respectively); alternatively, a ``scalar approximation'' 
     1087can be used (\np[=.true.]{ln_scal_load}{ln\_scal\_load}), where 
    10561088\[ 
    10571089  \Pi_{sal} = \beta \eta, 
    10581090\] 
    1059 where $\beta$ (\np{rn_scal_load}{rn\_scal\_load} with a default value of 0.094) is a 
    1060 spatially constant scalar, often chosen to minimize tidal prediction 
    1061 errors. Setting both \np{ln_read_load}{ln\_read\_load} and \np{ln_scal_load}{ln\_scal\_load} to 
    1062 \forcode{.false.} removes the SAL contribution. 
     1091with a spatially uniform coefficient $\beta$, which can be configured 
     1092via \np{rn_scal_load}{rn\_scal\_load} (default value 0.094) and is 
     1093often tuned to minimize tidal prediction errors.\par 
     1094 
     1095For diagnostic purposes, the forcing potential of the individual tidal 
     1096constituents (incl. load ptential, if activated) and the total forcing 
     1097potential (incl. load potential, if activated) can be made available 
     1098as diagnostic output by setting 
     1099\np[=.true.]{ln_tide_dia}{ln\_tide\_dia} (fields 
     1100\forcode{tide_pot_<constituent>} and \forcode{tide_pot}).\par 
    10631101 
    10641102%% ================================================================================================= 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/doc/namelists/nam_tide

    r10075 r13966  
    33!----------------------------------------------------------------------- 
    44   ln_tide     = .false.      ! Activate tides 
    5       ln_tide_pot   = .true.                !  use tidal potential forcing 
     5      nn_tide_var   = 1          !  Variant of tidal parameter set and tide-potential computation 
     6      !                          !     (1: default; 0: compatibility with previous versions) 
     7      ln_tide_dia   = .false.    !  Enable tidal diagnostic output 
     8      ln_tide_pot   = .false.               !  use tidal potential forcing 
     9         rn_tide_gamma = 0.7                   ! Tidal tilt factor 
    610         ln_scal_load  = .false.               ! Use scalar approximation for 
    711            rn_scal_load = 0.094               !     load potential 
    812         ln_read_load  = .false.               ! Or read load potential from file 
    913            cn_tide_load = 'tide_LOAD_grid_T.nc'  ! filename for load potential 
    10             !       
     14            ! 
    1115      ln_tide_ramp  = .false.               !  Use linear ramp for tides at startup 
    12          rdttideramp   =    0.                 !  ramp duration in days 
    13       clname(1)    = 'DUMMY'               !  name of constituent - all tidal components must be set in namelist_cfg 
     16         rn_tide_ramp_dt = 0.               !  ramp duration in days 
     17      sn_tide_cnames(1) = 'DUMMY'               !  name of constituent - all tidal components must be set in namelist_cfg 
    1418/ 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/doc/namelists/nambdy_tide

    r10075 r13966  
    44   filtide          = 'bdydta/amm12_bdytide_'   !  file name root of tidal forcing files 
    55   ln_bdytide_2ddta = .false.                   ! 
    6    ln_bdytide_conj  = .false.                   !  
    76/ 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/C1D/step_c1d.F90

    r13237 r13966  
    122122                        CALL dyn_atf    ( kstp, Nbb, Nnn, Naa , uu, vv, e3t, e3u, e3v )  ! time filtering of "now" fields 
    123123      IF(.NOT.ln_linssh)CALL ssh_atf    ( kstp, Nbb, Nnn, Naa , ssh )                    ! time filtering of "now" sea surface height 
     124      IF( kstp == nit000 .AND. ln_linssh) THEN 
     125         ssh(:,:,Naa) = ssh(:,:,Nnn)  ! init ssh after in ln_linssh case 
     126      ENDIF 
    124127      ! 
    125128      ! Swap time levels 
Note: See TracChangeset for help on using the changeset viewer.