# Changeset 11435 for NEMO/trunk/doc/latex/NEMO/subfiles/chap_SBC.tex

Ignore:
Timestamp:
2019-08-14T14:45:08+02:00 (2 years ago)
Message:

Various corrections on chapters

Cleaning the indexes by fixing/removing wrong entries (or appending a ? to unknown items) and
improve the classification with new index definitions for CPP keys and namelist blocks:

• from \key{...} cmd, key_ prefix no longer precedes the index entry
• namelist block declaration moves from \ngn{nam...} to \nam{...} (i.e. \ngn{namtra\_ldf}\nam{tra\_ldf}) The expected prefix nam is added to the printed word but not the index entry.

Now we have indexes with a better sorting instead of all CPP keys under 'K' and namelists blocks under 'N'.

Fix missing space issues with alias commands by adding a trailing backslash (\NEMO\, \ie\, \eg\, …).
There is no perfect solution for this, and I prefer not using a particular package to solve it.

Review the initial LaTeX code snippet for the historic changes in chapters

Finally, for readability and future diff visualisations, please avoid writing paragraphs with continuous lines.
Break the lines around 80 to 100 characters long

File:
1 edited

### Legend:

Unmodified
 r11338 % ================================================================ % Chapter —— Surface Boundary Condition (SBC, SAS, ISF, ICB) % Chapter —— Surface Boundary Condition (SBC, SAS, ISF, ICB) % ================================================================ \chapter{Surface Boundary Condition (SBC, SAS, ISF, ICB)} \label{chap:SBC} \minitoc \chaptertoc \newpage Four different ways are available to provide the seven fields to the ocean. They are controlled by namelist \ngn{namsbc} variables: namelist \nam{sbc} variables: \begin{itemize} a user defined formulation (\np{ln\_usr}\forcode{ = .true.}). \end{itemize} The frequency at which the forcing fields have to be updated is given by the \np{nn\_fsbc} namelist parameter. a neutral drag coefficient is read from an external wave model (\np{ln\_cdgw}\forcode{ = .true.}), \item the Stokes drift from an external wave model is accounted for (\np{ln\_sdw}\forcode{ = .true.}), \item the choice of the Stokes drift profile parameterization (\np{nn\_sdrift}\forcode{ = 0..2}), the Stokes drift from an external wave model is accounted for (\np{ln\_sdw}\forcode{ = .true.}), \item the choice of the Stokes drift profile parameterization (\np{nn\_sdrift}\forcode{ = 0..2}), \item the surface stress given to the ocean is modified by surface waves (\np{ln\_tauwoc}\forcode{ = .true.}), the Stokes-Coriolis term is included (\np{ln\_stcor}\forcode{ = .true.}), \item the light penetration in the ocean (\np{ln\_traqsr}\forcode{ = .true.} with namelist \ngn{namtra\_qsr}), \item the atmospheric surface pressure gradient effect on ocean and ice dynamics (\np{ln\_apr\_dyn}\forcode{ = .true.} with namelist \ngn{namsbc\_apr}), the light penetration in the ocean (\np{ln\_traqsr}\forcode{ = .true.} with namelist \nam{tra\_qsr}), \item the atmospheric surface pressure gradient effect on ocean and ice dynamics (\np{ln\_apr\_dyn}\forcode{ = .true.} with namelist \nam{sbc\_apr}), \item the effect of sea-ice pressure on the ocean (\np{ln\_ice\_embd}\forcode{ = .true.}). In this chapter, we first discuss where the surface boundary conditions appear in the model equations. Then we present the three ways of providing the surface boundary conditions, followed by the description of the atmospheric pressure and the river runoff. Then we present the three ways of providing the surface boundary conditions, followed by the description of the atmospheric pressure and the river runoff. Next, the scheme for interpolation on the fly is described. Finally, the different options that further modify the fluxes applied to the ocean are discussed. One of these is modification by icebergs (see \autoref{sec:ICB_icebergs}), which act as drifting sources of fresh water. Another example of modification is that due to the ice shelf melting/freezing (see \autoref{sec:SBC_isf}), Another example of modification is that due to the ice shelf melting/freezing (see \autoref{sec:SBC_isf}), which provides additional sources of fresh water. the momentum vertical mixing trend (see \autoref{eq:dynzdf_sbc} in \autoref{sec:DYN_zdf}). As such, it has to be provided as a 2D vector interpolated onto the horizontal velocity ocean mesh, \ie resolved onto the model (\textbf{i},\textbf{j}) direction at $u$- and $v$-points. \ie\ resolved onto the model (\textbf{i},\textbf{j}) direction at $u$- and $v$-points. The surface heat flux is decomposed into two parts, a non solar and a solar heat flux, $Q_{ns}$ and $Q_{sr}$, respectively. The former is the non penetrative part of the heat flux (\ie the sum of sensible, latent and long wave heat fluxes plus (\ie\ the sum of sensible, latent and long wave heat fluxes plus the heat content of the mass exchange between the ocean and sea-ice). It is applied in \mdl{trasbc} module as a surface boundary condition trend of \np{ln\_traqsr}\forcode{ = .true.}. The way the light penetrates inside the water column is generally a sum of decreasing exponentials (see \autoref{subsec:TRA_qsr}). (see \autoref{subsec:TRA_qsr}). The surface freshwater budget is provided by the \textit{emp} field. It affects the ocean in two different ways: $(i)$  it changes the volume of the ocean, and therefore appears in the sea surface height equation as      %GS: autoref ssh equation to be added a volume flux, and a volume flux, and $(ii)$ it changes the surface temperature and salinity through the heat and salt contents of the mass exchanged with atmosphere, sea-ice and ice shelves. %\colorbox{yellow}{Miss: } % %A extensive description of all namsbc namelist (parameter that have to be %A extensive description of all namsbc namelist (parameter that have to be %created!) % %Especially the \np{nn\_fsbc}, the \mdl{sbc\_oce} module (fluxes + mean sst sss ssu %ssv) \ie information required by flux computation or sea-ice %Especially the \np{nn\_fsbc}, the \mdl{sbc\_oce} module (fluxes + mean sst sss ssu %ssv) \ie\ information required by flux computation or sea-ice % %\mdl{sbc\_oce} containt the definition in memory of the 7 fields (6+runoff), add %\mdl{sbc\_oce} containt the definition in memory of the 7 fields (6+runoff), add %a word on runoff: included in surface bc or add as lateral obc{\ldots}. % %Sbcmod manage the providing'' (fourniture) to the ocean the 7 fields % %Fluxes update only each nf{\_}sbc time step (namsbc) explain relation %between nf{\_}sbc and nf{\_}ice, do we define nf{\_}blk??? ? only one %nf{\_}sbc %Fluxes update only each nf\_sbc time step (namsbc) explain relation %between nf\_sbc and nf\_ice, do we define nf\_blk??? ? only one %nf\_sbc % %Explain here all the namlist namsbc variable{\ldots}. % % % explain : use or not of surface currents % The ocean model provides, at each time step, to the surface module (\mdl{sbcmod}) the surface currents, temperature and salinity. the surface currents, temperature and salinity. These variables are averaged over \np{nn\_fsbc} time-step (\autoref{tab:ssm}), and these averaged fields are used to compute the surface fluxes at the frequency of \np{nn\_fsbc} time-steps. Ocean variables provided by the ocean to the surface module (SBC). The variable are averaged over \np{nn\_fsbc} time-step, \ie the frequency of computation of surface fluxes. \ie\ the frequency of computation of surface fluxes. } \end{center} %-------------------------------------------------------------------------------------------------------------- %\colorbox{yellow}{Penser a} mettre dans le restant l'info nn{\_}fsbc ET nn{\_}fsbc*rdt de sorte de reinitialiser la moyenne si on change la frequence ou le pdt % ================================================================ %       Input Data %\colorbox{yellow}{Penser a} mettre dans le restant l'info nn\_fsbc ET nn\_fsbc*rdt de sorte de reinitialiser la moyenne si on change la frequence ou le pdt % ================================================================ %       Input Data % ================================================================ \section{Input data generic interface} (2D or 3D fields, like surface forcing or ocean T and S) are specified in \NEMO. This task is achieved by \mdl{fldread}. The module is designed with four main objectives in mind: The module is designed with four main objectives in mind: \begin{enumerate} \item \item provide a simple user interface and a rather simple developer interface by limiting the number of prerequisite informations. limiting the number of prerequisite informations. \end{enumerate} and simply call \rou{fld\_read} to obtain the desired input field at the model time-step and grid points. The only constraints are that the input file is a NetCDF file, the file name follows a nomenclature The only constraints are that the input file is a NetCDF file, the file name follows a nomenclature (see \autoref{subsec:SBC_fldread}), the period it cover is one year, month, week or day, and, if on-the-fly interpolation is used, a file of weights must be supplied (see \autoref{subsec:SBC_iof}). The structure associated with an input variable contains the following information: \begin{forlines} !  file name  ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! land/sea mask ! !  file name  ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! land/sea mask ! !             !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! filename      ! \end{forlines} where \begin{description} where \begin{description} \item[File name]: the stem name of the NetCDF file to be opened. This stem will be completed automatically by the model, with the addition of a '.nc' at its end and by date information and possibly a prefix (when using AGRIF). Tab.\autoref{tab:fldread} provides the resulting file name in all possible cases according to \autoref{tab:fldread} provides the resulting file name in all possible cases according to whether it is a climatological file or not, and to the open/close frequency (see below for definition). The stem name is assumed to be 'fn'. For weekly files, the 'LLL' corresponds to the first three letters of the first day of the week (\ie 'sun','sat','fri','thu','wed','tue','mon'). (\ie\ 'sun','sat','fri','thu','wed','tue','mon'). The 'YYYY', 'MM' and 'DD' should be replaced by the actual year/month/day, always coded with 4 or 2 digits. Note that (1) in mpp, if the file is split over each subdomain, the suffix '.nc' is replaced by '\_PPPP.nc', \end{table} %-------------------------------------------------------------------------------------------------------------- \item[Record frequency]: Records are assumed to be dated at the middle of the forcing period. For example, when using a daily forcing with time interpolation, linear interpolation will be performed between mid-day of two consecutive days. linear interpolation will be performed between mid-day of two consecutive days. \item[Climatological forcing]: or an interannual forcing which will requires additional files if the period covered by the simulation exceeds the one of the file. See the above file naming strategy which impacts the expected name of the file to be opened. See the above file naming strategy which impacts the expected name of the file to be opened. \item[Open/close frequency]: For example with \np{nn\_fsbc}\forcode{ = 3}, the surface module will be called at time-steps 1, 4, 7, etc. The date used for the time interpolation is thus redefined to the middle of \np{nn\_fsbc} time-step period. In the previous example, this leads to: 1h30'00", 4h30'00", 7h30'00", etc. \\ In the previous example, this leads to: 1h30'00", 4h30'00", 7h30'00", etc. \\ (2) For code readablility and maintenance issues, we don't take into account the NetCDF input file calendar. The calendar associated with the forcing field is build according to the information provided by (3) If a time interpolation is requested, the code will pick up the needed data in the previous (next) file when interpolating data with the first (last) record of the open/close period. For example, if the input file specifications are ''yearly, containing daily data to be interpolated in time'', For example, if the input file specifications are ''yearly, containing daily data to be interpolated in time'', the values given by the code between 00h00'00" and 11h59'59" on Jan 1st will be interpolated values between Dec 31st 12h00'00" and Jan 1st 12h00'00". we do accept that the file related to year Y-1 is not existing. The value of Jan 1st will be used as the missing one for Dec 31st of year Y-1. If the file of year Y-1 exists, the code will read its last record. If the file of year Y-1 exists, the code will read its last record. Therefore, this file can contain only one record corresponding to Dec 31st, a useful feature for user considering that it is too heavy to manipulate the complete file for year Y-1. \label{subsec:SBC_iof_lim} \begin{enumerate} \begin{enumerate} \item The case where input data grids are not logically rectangular (irregular grid case) has not been tested. In some circumstances, it may be useful to avoid calculating the 3D temperature, salinity and velocity fields and simply read them in from a previous run or receive them from OASIS. salinity and velocity fields and simply read them in from a previous run or receive them from OASIS. For example: The Standalone Surface scheme provides this capacity. Its options are defined through the \ngn{namsbc\_sas} namelist variables. Its options are defined through the \nam{sbc\_sas} namelist variables. A new copy of the model has to be compiled with a configuration based on ORCA2\_SAS\_LIM. However, no namelist parameters need be changed from the settings of the previous run (except perhaps nn{\_}date0). However, no namelist parameters need be changed from the settings of the previous run (except perhaps nn\_date0). In this configuration, a few routines in the standard model are overriden by new versions. Routines replaced are: This has been cut down and now only calculates surface forcing and the ice model required. New surface modules that can function when only the surface level of the ocean state is defined can also be added (\eg icebergs). (\eg\ icebergs). \item \mdl{daymod}: so calls to restart functions have been removed. This also means that the calendar cannot be controlled by time in a restart file, so the user must check that nn{\_}date0 in the model namelist is correct for his or her purposes. so the user must check that nn\_date0 in the model namelist is correct for his or her purposes. \item \mdl{stpctl}: This module initialises the input files needed for reading temperature, salinity and velocity arrays at the surface. These filenames are supplied in namelist namsbc{\_}sas. These filenames are supplied in namelist namsbc\_sas. Unfortunately, because of limitations with the \mdl{iom} module, the full 3D fields from the mean files have to be read in and interpolated in time, The user can also choose in the \ngn{namsbc\_sas} namelist to read the mean (nn\_fsbc time-step) fraction of solar net radiation absorbed in the 1st T level using The user can also choose in the \nam{sbc\_sas} namelist to read the mean (nn\_fsbc time-step) fraction of solar net radiation absorbed in the 1st T level using (\np{ln\_flx}\forcode{ = .true.}) and to provide 3D oceanic velocities instead of 2D ones (\np{ln\_flx}\forcode{ = .true.}). In that last case, only the 1st level will be read in. % ================================================================ % Flux formulation % Flux formulation % ================================================================ \section[Flux formulation (\textit{sbcflx.F90})] %------------------------------------------namsbc_flx---------------------------------------------------- \nlst{namsbc_flx} \nlst{namsbc_flx} %------------------------------------------------------------------------------------------------------------- In the flux formulation (\np{ln\_flx}\forcode{ = .true.}), the surface boundary condition fields are directly read from input files. The user has to define in the namelist \ngn{namsbc{\_}flx} the name of the file, The user has to define in the namelist \nam{sbc\_flx} the name of the file, the name of the variable read in the file, the time frequency at which it is given (in hours), and a logical setting whether a time interpolation to the model time step is required for this field. %-------------------------------------------------------------------------------------------------------------- In the bulk formulation, the surface boundary condition fields are computed with bulk formulae using atmospheric fields In the bulk formulation, the surface boundary condition fields are computed with bulk formulae using atmospheric fields and ocean (and sea-ice) variables averaged over \np{nn\_fsbc} time-step. In forced mode, when a sea-ice model is used, a specific bulk formulation is used. Therefore, different bulk formulae are used for the turbulent fluxes computation over the ocean and over sea-ice surface. For the ocean, four bulk formulations are available thanks to the \href{https://brodeau.github.io/aerobulk/}{Aerobulk} package (\citet{brodeau.barnier.ea_JPO16}): over the ocean and over sea-ice surface. For the ocean, four bulk formulations are available thanks to the \href{https://brodeau.github.io/aerobulk/}{Aerobulk} package (\citet{brodeau.barnier.ea_JPO16}): the NCAR (formerly named CORE), COARE 3.0, COARE 3.5 and ECMWF bulk formulae. The choice is made by setting to true one of the following namelist variable: a constant transfer coefficient (1.4e-3; default value), \citet{lupkes.gryanik.ea_JGR12} (\np{ln\_Cd\_L12}), and \citet{lupkes.gryanik_JGR15} (\np{ln\_Cd\_L15}) parameterizations Common options are defined through the \ngn{namsbc\_blk} namelist variables. Common options are defined through the \nam{sbc\_blk} namelist variables. The required 9 input fields are: The \np{sn\_wndi}, \np{sn\_wndj}, \np{sn\_qsr}, \np{sn\_qlw}, \np{sn\_tair}, \np{sn\_humi}, \np{sn\_prec}, \np{sn\_snow}, \np{sn\_tdif} parameters describe the fields and the way they have to be used (spatial and temporal interpolations). (spatial and temporal interpolations). \np{cn\_dir} is the directory of location of bulk files \np{rn\_zu}: is the height of wind measurements (m) Three multiplicative factors are available: Three multiplicative factors are available: \np{rn\_pfac} and \np{rn\_efac} allow to adjust (if necessary) the global freshwater budget by increasing/reducing the precipitations (total and snow) and or evaporation, respectively. As for the flux formulation, information about the input data required by the model is provided in the namsbc\_blk namelist (see \autoref{subsec:SBC_fldread}). the namsbc\_blk namelist (see \autoref{subsec:SBC_fldread}). %        Ocean-Atmosphere Bulk formulae % ------------------------------------------------------------------------------------------------------------- \subsection{Ocean-Atmosphere Bulk formulae} %\subsection[Ocean-Atmosphere Bulk formulae (\textit{sbcblk_algo\{\_ncar,\_coare,\_coare3p5,\_ecmwf}.F90})] \subsection[Ocean-Atmosphere Bulk formulae (\textit{sbcblk\_algo\_coare.F90, sbcblk\_algo\_coare3p5.F90, sbcblk\_algo\_ecmwf.F90, sbcblk\_algo\_ncar.F90})] {Ocean-Atmosphere Bulk formulae (\mdl{sbcblk\_algo\_coare}, \mdl{sbcblk\_algo\_coare3p5}, \mdl{sbcblk\_algo\_ecmwf}, \mdl{sbcblk\_algo\_ncar})} \label{subsec:SBC_blk_ocean} Four different bulk algorithms are available to compute surface turbulent momentum and heat fluxes over the ocean. COARE 3.0, COARE 3.5 and ECMWF schemes mainly differ by their roughness lenghts computation and consequently COARE 3.0, COARE 3.5 and ECMWF schemes mainly differ by their roughness lenghts computation and consequently their neutral transfer coefficients relationships with neutral wind. \begin{itemize} This is the so-called DRAKKAR Forcing Set (DFS) \citep{brodeau.barnier.ea_OM10}. \item COARE 3.0 (\np{ln\_COARE\_3p0}\forcode{ = .true.}): COARE 3.0 (\np{ln\_COARE\_3p0}\forcode{ = .true.}): See \citet{fairall.bradley.ea_JC03} for more details \item COARE 3.5 (\np{ln\_COARE\_3p5}\forcode{ = .true.}): COARE 3.5 (\np{ln\_COARE\_3p5}\forcode{ = .true.}): See \citet{edson.jampana.ea_JPO13} for more details \item ECMWF (\np{ln\_ECMWF}\forcode{ = .true.}): ECMWF (\np{ln\_ECMWF}\forcode{ = .true.}): Based on \href{https://www.ecmwf.int/node/9221}{IFS (Cy31)} implementation and documentation. Surface roughness lengths needed for the Obukhov length are computed following \citet{beljaars_QJRMS95}. \end{itemize} % ------------------------------------------------------------------------------------------------------------- %        Ice-Atmosphere Bulk formulae % ------------------------------------------------------------------------------------------------------------- \subsection{ Ice-Atmosphere Bulk formulae } \subsection{Ice-Atmosphere Bulk formulae} \label{subsec:SBC_blk_ice} \citet{lupkes.gryanik.ea_JGR12} (\np{ln\_Cd\_L12}\forcode{ = .true.}): This scheme adds a dependency on edges at leads, melt ponds and flows of the constant neutral air-ice drag. After some approximations, of the constant neutral air-ice drag. After some approximations, this can be resumed to a dependency on ice concentration (A). This drag coefficient has a parabolic shape (as a function of ice concentration) \item \citet{lupkes.gryanik_JGR15} (\np{ln\_Cd\_L15}\forcode{ = .true.}): Alternative turbulent transfer coefficients formulation between sea-ice and atmosphere with distinct momentum and heat coefficients depending Alternative turbulent transfer coefficients formulation between sea-ice and atmosphere with distinct momentum and heat coefficients depending on sea-ice concentration and atmospheric stability (no melt-ponds effect for now). The parameterization is adapted from ECHAM6 atmospheric model. %------------------------------------------namsbc_cpl---------------------------------------------------- \nlst{namsbc_cpl} \nlst{namsbc_cpl} %------------------------------------------------------------------------------------------------------------- It is currently interfaced with OASIS-3-MCT versions 1 to 4 (\key{oasis3}). An additional specific CPP key (\key{oa3mct\_v1v2}) is needed for OASIS-3-MCT versions 1 and 2. It has been successfully used to interface \NEMO to most of the European atmospheric GCM It has been successfully used to interface \NEMO\ to most of the European atmospheric GCM (ARPEGE, ECHAM, ECMWF, HadAM, HadGAM, LMDz), as well as to \href{http://wrf-model.org/}{WRF} (Weather Research and Forecasting Model). When PISCES biogeochemical model (\key{top}) is also used in the coupled system, When PISCES biogeochemical model (\key{top}) is also used in the coupled system, the whole carbon cycle is computed. In this case, CO$_2$ fluxes will be exchanged between the atmosphere and the ice-ocean system (and need to be activated in \ngn{namsbc{\_}cpl} ). (and need to be activated in \nam{sbc\_cpl} ). The namelist above allows control of various aspects of the coupling fields (particularly for vectors) and now allows for any coupling fields to have multiple sea ice categories (as required by LIM3 and CICE). When indicating a multi-category coupling field in \ngn{namsbc{\_}cpl}, the number of categories will be determined by When indicating a multi-category coupling field in \nam{sbc\_cpl}, the number of categories will be determined by the number used in the sea ice model. In some limited cases, it may be possible to specify single category coupling fields even when %------------------------------------------namsbc_apr---------------------------------------------------- \nlst{namsbc_apr} \nlst{namsbc_apr} %------------------------------------------------------------------------------------------------------------- The optional atmospheric pressure can be used to force ocean and ice dynamics (\np{ln\_apr\_dyn}\forcode{ = .true.}, \ngn{namsbc} namelist). The input atmospheric forcing defined via \np{sn\_apr} structure (\ngn{namsbc\_apr} namelist) (\np{ln\_apr\_dyn}\forcode{ = .true.}, \nam{sbc} namelist). The input atmospheric forcing defined via \np{sn\_apr} structure (\nam{sbc\_apr} namelist) can be interpolated in time to the model time step, and even in space when the interpolation on-the-fly is used. When used to force the dynamics, the atmospheric pressure is further transformed into A value of $101,000~N/m^2$ is used unless \np{ln\_ref\_apr} is set to true. In this case, $P_o$ is set to the value of $P_{atm}$ averaged over the ocean domain, \ie the mean value of $\eta_{ib}$ is kept to zero at all time steps. \ie\ the mean value of $\eta_{ib}$ is kept to zero at all time steps. The gradient of $\eta_{ib}$ is added to the RHS of the ocean momentum equation (see \mdl{dynspg} for the ocean). When using time-splitting and BDY package for open boundaries conditions, the equivalent inverse barometer sea surface height $\eta_{ib}$ can be added to BDY ssh data: the equivalent inverse barometer sea surface height $\eta_{ib}$ can be added to BDY ssh data: \np{ln\_apr\_obc}  might be set to true. The tidal forcing, generated by the gravity forces of the Earth-Moon and Earth-Sun sytems, is activated if \np{ln\_tide} and \np{ln\_tide\_pot} are both set to \forcode{.true.} in \ngn{nam\_tide}. is activated if \np{ln\_tide} and \np{ln\_tide\_pot} are both set to \forcode{.true.} in \nam{\_tide}. This translates as an additional barotropic force in the momentum equations \ref{eq:PE_dyn} such that: $where \Pi_{eq} stands for the equilibrium tidal forcing and \Pi_{sal} is a self-attraction and loading term (SAL). The equilibrium tidal forcing is expressed as a sum over a subset of constituents chosen from the set of available tidal constituents defined in file \textit{SBC/tide.h90} (this comprises the tidal defined in file \hf{SBC/tide} (this comprises the tidal constituents \textit{M2, N2, 2N2, S2, K2, K1, O1, Q1, P1, M4, Mf, Mm, Msqm, Mtm, S1, MU2, NU2, L2}, and \textit{T2}). Individual constituents are selected by including their names in the array \np{clname} in \ngn{nam\_tide} (e.g., \np{clname(1) = 'M2', clname(2)='S2'} to select solely the tidal consituents \textit{M2} \np{clname} in \nam{\_tide} (e.g., \np{clname}\forcode{(1) = 'M2', } \np{clname}\forcode{(2) = 'S2'} to select solely the tidal consituents \textit{M2} and \textit{S2}). Optionally, when \np{ln\_tide\_ramp} is set to \forcode{.true.}, the equilibrium tidal forcing can be ramped up computationally too expensive. Here, two options are available: \Pi_{sal} generated by an external model can be read in (\np{ln\_read\_load=.true.}), or a scalar approximation'' can be used (\np{ln\_scal\_load=.true.}). In the latter case (\np{ln\_read\_load}\forcode{ =.true.}), or a scalar approximation'' can be used (\np{ln\_scal\_load}\forcode{ =.true.}). In the latter case \[ \Pi_{sal} = \beta \eta, %------------------------------------------namsbc_rnf---------------------------------------------------- \nlst{namsbc_rnf} \nlst{namsbc_rnf} %------------------------------------------------------------------------------------------------------------- %River runoff generally enters the ocean at a nonzero depth rather than through the surface. %River runoff generally enters the ocean at a nonzero depth rather than through the surface. %Many models, however, have traditionally inserted river runoff to the top model cell. %This was the case in \NEMO prior to the version 3.3. The switch toward a input of runoff %throughout a nonzero depth has been motivated by the numerical and physical problems %that arise when the top grid cells are of the order of one meter. This situation is common in %coastal modelling and becomes more and more often open ocean and climate modelling %This was the case in \NEMO\ prior to the version 3.3. The switch toward a input of runoff %throughout a nonzero depth has been motivated by the numerical and physical problems %that arise when the top grid cells are of the order of one meter. This situation is common in %coastal modelling and becomes more and more often open ocean and climate modelling %\footnote{At least a top cells thickness of 1~meter and a 3 hours forcing frequency are %required to properly represent the diurnal cycle \citep{bernie.woolnough.ea_JC05}. see also \autoref{fig:SBC_dcy}.}. %To do this we need to treat evaporation/precipitation fluxes and river runoff differently in the %\mdl{tra\_sbc} module. We decided to separate them throughout the code, so that the variable %\textit{emp} represented solely evaporation minus precipitation fluxes, and a new 2d variable %rnf was added which represents the volume flux of river runoff (in kg/m2s to remain consistent with %emp). This meant many uses of emp and emps needed to be changed, a list of all modules which use %To do this we need to treat evaporation/precipitation fluxes and river runoff differently in the %\mdl{tra\_sbc} module. We decided to separate them throughout the code, so that the variable %\textit{emp} represented solely evaporation minus precipitation fluxes, and a new 2d variable %rnf was added which represents the volume flux of river runoff (in kg/m2s to remain consistent with %emp). This meant many uses of emp and emps needed to be changed, a list of all modules which use %emp or emps and the changes made are below: River runoff generally enters the ocean at a nonzero depth rather than through the surface. Many models, however, have traditionally inserted river runoff to the top model cell. This was the case in \NEMO prior to the version 3.3, This was the case in \NEMO\ prior to the version 3.3, and was combined with an option to increase vertical mixing near the river mouth. However, with this method numerical and physical problems arise when the top grid cells are of the order of one meter. This situation is common in coastal modelling and is becoming more common in open ocean and climate modelling This situation is common in coastal modelling and is becoming more common in open ocean and climate modelling \footnote{ At least a top cells thickness of 1~meter and a 3 hours forcing frequency are required to along with the depth (in metres) which the river should be added to. Namelist variables in \ngn{namsbc\_rnf}, \np{ln\_rnf\_depth}, \np{ln\_rnf\_sal} and Namelist variables in \nam{sbc\_rnf}, \np{ln\_rnf\_depth}, \np{ln\_rnf\_sal} and \np{ln\_rnf\_temp} control whether the river attributes (depth, salinity and temperature) are read in and used. If these are set as false the river is added to the surface box only, assumed to be fresh (0~psu), and/or taken as surface temperature respectively. The runoff value and attributes are read in in sbcrnf. The runoff value and attributes are read in in sbcrnf. For temperature -999 is taken as missing data and the river temperature is taken to be the surface temperatue at the river point. For the depth parameter a value of -1 means the river is added to the surface box only, and a value of -999 means the river is added through the entire water column. For the depth parameter a value of -1 means the river is added to the surface box only, and a value of -999 means the river is added through the entire water column. After being read in the temperature and salinity variables are multiplied by the amount of runoff (converted into m/s) to give the heat and salt content of the river runoff. The variable \textit{h\_dep} is then calculated to be the depth (in metres) of the bottom of the lowest box the river water is being added to (\ie the total depth that river water is being added to in the model). (\ie\ the total depth that river water is being added to in the model). The mass/volume addition due to the river runoff is, at each relevant depth level, added to This increases the diffusion term in the vicinity of the river, thereby simulating a momentum flux. The sea surface height is calculated using the sum of the horizontal divergence terms, and so the river runoff indirectly forces an increase in sea surface height. and so the river runoff indirectly forces an increase in sea surface height. The \textit{hdivn} terms are used in the tracer advection modules to force vertical velocities. This is done in the same way for both vvl and non-vvl. The temperature and salinity are increased through the specified depth according to the heat and salt content of the river. the heat and salt content of the river. In the non-linear free surface case (vvl), It is also possible for runnoff to be specified as a negative value for modelling flow through straits, \ie modelling the Baltic flow in and out of the North Sea. \ie\ modelling the Baltic flow in and out of the North Sea. When the flow is out of the domain there is no change in temperature and salinity, regardless of the namelist options used, as the ocean water leaving the domain removes heat and salt (at the same concentration) with it. %\colorbox{yellow}{Nevertheless, Pb of vertical resolution and 3D input : increase vertical mixing near river mouths to mimic a 3D river as the ocean water leaving the domain removes heat and salt (at the same concentration) with it. %\colorbox{yellow}{Nevertheless, Pb of vertical resolution and 3D input : increase vertical mixing near river mouths to mimic a 3D river %All river runoff and emp fluxes are assumed to be fresh water (zero salinity) and at the same temperature as the sea surface.} %\gmcomment{ word doc of runoffs: % %In the current \NEMO setup river runoff is added to emp fluxes, these are then applied at just the sea surface as a volume change (in the variable volume case this is a literal volume change, and in the linear free surface case the free surface is moved) and a salt flux due to the concentration/dilution effect. There is also an option to increase vertical mixing near river mouths; this gives the effect of having a 3d river. All river runoff and emp fluxes are assumed to be fresh water (zero salinity) and at the same temperature as the sea surface. %Our aim was to code the option to specify the temperature and salinity of river runoff, (as well as the amount), along with the depth that the river water will affect. This would make it possible to model low salinity outflow, such as the Baltic, and would allow the ocean temperature to be affected by river runoff. %In the current \NEMO\ setup river runoff is added to emp fluxes, these are then applied at just the sea surface as a volume change (in the variable volume case this is a literal volume change, and in the linear free surface case the free surface is moved) and a salt flux due to the concentration/dilution effect. There is also an option to increase vertical mixing near river mouths; this gives the effect of having a 3d river. All river runoff and emp fluxes are assumed to be fresh water (zero salinity) and at the same temperature as the sea surface. %Our aim was to code the option to specify the temperature and salinity of river runoff, (as well as the amount), along with the depth that the river water will affect. This would make it possible to model low salinity outflow, such as the Baltic, and would allow the ocean temperature to be affected by river runoff. %The depth option makes it possible to have the river water affecting just the surface layer, throughout depth, or some specified point in between. %-------------------------------------------------------------------------------------------------------- The namelist variable in \ngn{namsbc}, \np{nn\_isf}, controls the ice shelf representation. Description and result of sensitivity test to \np{nn\_isf} are presented in \citet{mathiot.jenkins.ea_GMD17}. The namelist variable in \nam{sbc}, \np{nn\_isf}, controls the ice shelf representation. Description and result of sensitivity test to \np{nn\_isf} are presented in \citet{mathiot.jenkins.ea_GMD17}. The different options are illustrated in \autoref{fig:SBC_isf}. The ice shelf cavity is represented (\np{ln\_isfcav}\forcode{ = .true.} needed). The fwf and heat flux are depending of the local water properties. Two different bulk formulae are available: \item[\np{nn\_isfblk}\forcode{ = 2}]: The melt rate and the heat flux are based on a 3 equations formulation (a heat flux budget at the ice base, a salt flux budget at the ice base and a linearised freezing point temperature equation). (a heat flux budget at the ice base, a salt flux budget at the ice base and a linearised freezing point temperature equation). A complete description is available in \citet{jenkins_JGR91}. \end{description} Temperature and salinity used to compute the melt are the average temperature in the top boundary layer \citet{losch_JGR08}. Temperature and salinity used to compute the melt are the average temperature in the top boundary layer \citet{losch_JGR08}. Its thickness is defined by \np{rn\_hisf\_tbl}. The fluxes and friction velocity are computed using the mean temperature, salinity and velocity in the the first \np{rn\_hisf\_tbl} m. If \np{rn\_hisf\_tbl} smaller than top e_{3}t, the top boundary layer thickness is set to the top cell thickness.\\ Each melt bulk formula depends on a exchange coeficient (\Gamma^{T,S}) between the ocean and the ice. Each melt bulk formula depends on a exchange coeficient (\Gamma^{T,S}) between the ocean and the ice. There are 3 different ways to compute the exchange coeficient: \begin{description} \item[\np{nn\_gammablk}\forcode{ = 0}]: The salt and heat exchange coefficients are constant and defined by \np{rn\_gammas0} and \np{rn\_gammat0}. The salt and heat exchange coefficients are constant and defined by \np{rn\_gammas0} and \np{rn\_gammat0}. \[ % \label{eq:sbc_isf_gamma_iso} The salt and heat exchange coefficients are velocity dependent and defined as \[ \gamma^{T} = \np{rn\_gammat0} \times u_{*} \gamma^{T} = \np{rn\_gammat0} \times u_{*}$ $The salt and heat exchange coefficients are velocity and stability dependent and defined as: \[ \gamma^{T,S} = \frac{u_{*}}{\Gamma_{Turb} + \Gamma^{T,S}_{Mole}} \gamma^{T,S} = \frac{u_{*}}{\Gamma_{Turb} + \Gamma^{T,S}_{Mole}}$ where $u_{*}$ is the friction velocity in the top boundary layer (ie first \np{rn\_hisf\_tbl} meters), $\Gamma_{Turb}$ the contribution of the ocean stability and $\Gamma^{T,S}_{Mole}$ the contribution of the molecular diffusion. See \citet{holland.jenkins_JPO99} for all the details on this formulation. This formulation has not been extensively tested in NEMO (not recommended). See \citet{holland.jenkins_JPO99} for all the details on this formulation. This formulation has not been extensively tested in \NEMO\ (not recommended). \end{description} \item[\np{nn\_isf}\forcode{ = 2}]: This can be useful if the water masses on the shelf are not realistic or the resolution (horizontal/vertical) are too coarse to have realistic melting or for studies where you need to control your heat and fw input.\\ for studies where you need to control your heat and fw input.\\ The ice shelf melt is implemented as a volume flux as for the runoff. \item[Step 1]: the ice sheet model send a new bathymetry and ice shelf draft netcdf file. \item[Step 2]: a new domcfg.nc file is built using the DOMAINcfg tools. \item[Step 3]: NEMO run for a specific period and output the average melt rate over the period. \item[Step 3]: \NEMO\ run for a specific period and output the average melt rate over the period. \item[Step 4]: the ice sheet model run using the melt rate outputed in step 4. \item[Step 5]: go back to 1. mask, T/S, U/V and ssh are set to 0. Furthermore, U/V into the water column are modified to satisfy ($bt_b=bt_n$). \item[Wet a cell]: \item[Wet a cell]: mask is set to 1, T/S is extrapolated from neighbours, $ssh_n = ssh_b$ and U/V set to 0. If no neighbours, T/S is extrapolated from old top cell value. If no neighbours, T/S is extrapolated from old top cell value. If no neighbours along i,j and k (both previous test failed), T/S/U/V/ssh and mask are set to 0. \item[Dry a column]: The default number is set up for the MISOMIP idealised experiments. This coupling procedure is able to take into account grounding line and calving front migration. However, it is a non-conservative processe. However, it is a non-conservative processe. This could lead to a trend in heat/salt content and volume.\\ a simple conservation scheme is available with \np{ln\_hsb}\forcode{ = .true.}. The heat/salt/vol. gain/loss is diagnosed, as well as the location. A correction increment is computed and apply each time step during the next \np{rn\_fiscpl} time steps. A correction increment is computed and apply each time step during the next \np{rn\_fiscpl} time steps. For safety, it is advised to set \np{rn\_fiscpl} equal to the coupling period (smallest increment possible). The corrective increment is apply into the cell itself (if it is a wet cell), the neigbouring cells or the closest wet cell (if the cell is now dry). %------------------------------------------------------------------------------------------------------------- Icebergs are modelled as lagrangian particles in NEMO \citep{marsh.ivchenko.ea_GMD15}. Icebergs are modelled as lagrangian particles in \NEMO\ \citep{marsh.ivchenko.ea_GMD15}. Their physical behaviour is controlled by equations as described in \citet{martin.adcroft_OM10} ). (Note that the authors kindly provided a copy of their code to act as a basis for implementation in NEMO). (Note that the authors kindly provided a copy of their code to act as a basis for implementation in \NEMO). Icebergs are initially spawned into one of ten classes which have specific mass and thickness as described in the \ngn{namberg} namelist: \np{rn\_initial\_mass} and \np{rn\_initial\_thickness}. described in the \nam{berg} namelist: \np{rn\_initial\_mass} and \np{rn\_initial\_thickness}. Each class has an associated scaling (\np{rn\_mass\_scaling}), which is an integer representing how many icebergs of this class are being described as one lagrangian point At each time step, a test is performed to see if there is enough ice mass to calve an iceberg of each class in order (1 to 10). Note that this is the initial mass multiplied by the number each particle represents (\ie the scaling). Note that this is the initial mass multiplied by the number each particle represents (\ie\ the scaling). If there is enough ice, a new iceberg is spawned and the total available ice reduced accordingly. \end{description} or (if \np{rn\_bits\_erosion\_fraction}~$>$~0) into melt and additionally small ice bits which are assumed to propagate with their larger parent and thus delay fluxing into the ocean. Melt water (and other variables on the configuration grid) are written into the main NEMO model output files. Melt water (and other variables on the configuration grid) are written into the main \NEMO\ model output files. Extensive diagnostics can be produced. %------------------------------------------------------------------------------------------------------------- Ocean waves represent the interface between the ocean and the atmosphere, so NEMO is extended to incorporate physical processes related to ocean surface waves, namely the surface stress modified by growth and dissipation of the oceanic wave field, the Stokes-Coriolis force and the Stokes drift impact on mass and tracer advection; moreover the neutral surface drag coefficient from a wave model can be used to evaluate Ocean waves represent the interface between the ocean and the atmosphere, so \NEMO\ is extended to incorporate physical processes related to ocean surface waves, namely the surface stress modified by growth and dissipation of the oceanic wave field, the Stokes-Coriolis force and the Stokes drift impact on mass and tracer advection; moreover the neutral surface drag coefficient from a wave model can be used to evaluate the wind stress. Physical processes related to ocean surface waves can be accounted by setting the logical variable \np{ln\_wave} \forcode{= .true.} in \ngn{namsbc} namelist. In addition, specific flags accounting for Physical processes related to ocean surface waves can be accounted by setting the logical variable \np{ln\_wave}\forcode{ = .true.} in \nam{sbc} namelist. In addition, specific flags accounting for different processes should be activated as explained in the following sections. Wave fields can be provided either in forced or coupled mode: \begin{description} \item[forced mode]: wave fields should be defined through the \ngn{namsbc\_wave} namelist for external data names, locations, frequency, interpolation and all the miscellanous options allowed by Input Data generic Interface (see \autoref{sec:SBC_input}). \item[coupled mode]: NEMO and an external wave model can be coupled by setting \np{ln\_cpl} \forcode{= .true.} in \ngn{namsbc} namelist and filling the \ngn{namsbc\_cpl} namelist. \item[forced mode]: wave fields should be defined through the \nam{sbc\_wave} namelist for external data names, locations, frequency, interpolation and all the miscellanous options allowed by Input Data generic Interface (see \autoref{sec:SBC_input}). \item[coupled mode]: \NEMO\ and an external wave model can be coupled by setting \np{ln\_cpl} \forcode{= .true.} in \nam{sbc} namelist and filling the \nam{sbc\_cpl} namelist. \end{description} \label{subsec:SBC_wave_cdgw} The neutral surface drag coefficient provided from an external data source (\ie a wave model), can be used by setting the logical variable \np{ln\_cdgw} \forcode{= .true.} in \ngn{namsbc} namelist. Then using the routine \rou{sbcblk\_algo\_ncar} and starting from the neutral drag coefficent provided, the drag coefficient is computed according to the stable/unstable conditions of the air-sea interface following \citet{large.yeager_rpt04}. The neutral surface drag coefficient provided from an external data source (\ie\ a wave model), can be used by setting the logical variable \np{ln\_cdgw} \forcode{= .true.} in \nam{sbc} namelist. Then using the routine \rou{sbcblk\_algo\_ncar} and starting from the neutral drag coefficent provided, the drag coefficient is computed according to the stable/unstable conditions of the air-sea interface following \citet{large.yeager_rpt04}. \label{subsec:SBC_wave_sdw} The Stokes drift is a wave driven mechanism of mass and momentum transport \citep{stokes_ibk09}. It is defined as the difference between the average velocity of a fluid parcel (Lagrangian velocity) and the current measured at a fixed point (Eulerian velocity). As waves travel, the water particles that make up the waves travel in orbital motions but without a closed path. Their movement is enhanced at the top of the orbit and slowed slightly at the bottom, so the result is a net forward motion of water particles, referred to as the Stokes drift. An accurate evaluation of the Stokes drift and the inclusion of related processes may lead to improved The Stokes drift is a wave driven mechanism of mass and momentum transport \citep{stokes_ibk09}. It is defined as the difference between the average velocity of a fluid parcel (Lagrangian velocity) and the current measured at a fixed point (Eulerian velocity). As waves travel, the water particles that make up the waves travel in orbital motions but without a closed path. Their movement is enhanced at the top of the orbit and slowed slightly at the bottom, so the result is a net forward motion of water particles, referred to as the Stokes drift. An accurate evaluation of the Stokes drift and the inclusion of related processes may lead to improved representation of surface physics in ocean general circulation models. %GS: reference needed The Stokes drift velocity $\mathbf{U}_{st}$ in deep water can be computed from the wave spectrum and may be written as: The Stokes drift velocity $\mathbf{U}_{st}$ in deep water can be computed from the wave spectrum and may be written as:  where: ${\theta}$ is the wave direction, $f$ is the wave intrinsic frequency, $\mathrm{S}($f$,\theta)$ is the 2D frequency-direction spectrum, $k$ is the mean wavenumber defined as: where: ${\theta}$ is the wave direction, $f$ is the wave intrinsic frequency, $\mathrm{S}($f$,\theta)$ is the 2D frequency-direction spectrum, $k$ is the mean wavenumber defined as: $k=\frac{2\pi}{\lambda}$ (being $\lambda$ the wavelength). \\ In order to evaluate the Stokes drift in a realistic ocean wave field, the wave spectral shape is required and its computation quickly becomes expensive as the 2D spectrum must be integrated for each vertical level. In order to evaluate the Stokes drift in a realistic ocean wave field, the wave spectral shape is required and its computation quickly becomes expensive as the 2D spectrum must be integrated for each vertical level. To simplify, it is customary to use approximations to the full Stokes profile. Three possible parameterizations for the calculation for the approximate Stokes drift velocity profile are included in the code through the \np{nn\_sdrift} parameter once provided the surface Stokes drift $\mathbf{U}_{st |_{z=0}}$ which is evaluated by an external wave model that accurately reproduces the wave spectra and makes possible the estimation of the surface Stokes drift for random directional waves in Three possible parameterizations for the calculation for the approximate Stokes drift velocity profile are included in the code through the \np{nn\_sdrift} parameter once provided the surface Stokes drift $\mathbf{U}_{st |_{z=0}}$ which is evaluated by an external wave model that accurately reproduces the wave spectra and makes possible the estimation of the surface Stokes drift for random directional waves in realistic wave conditions: \begin{description} \item[\np{nn\_sdrift} = 0]: exponential integral profile parameterization proposed by \item[\np{nn\_sdrift} = 0]: exponential integral profile parameterization proposed by \citet{breivik.janssen.ea_JPO14}: $% \label{eq:sbc_wave_sdw_0a} \mathbf{U}_{st} \cong \mathbf{U}_{st |_{z=0}} \frac{\mathrm{e}^{-2k_ez}} {1-8k_ez} \mathbf{U}_{st} \cong \mathbf{U}_{st |_{z=0}} \frac{\mathrm{e}^{-2k_ez}} {1-8k_ez}$ k_e = \frac{|\mathbf{U}_{\left.st\right|_{z=0}}|} {|T_{st}|} \quad \text{and }\ T_{st} = \frac{1}{16} \bar{\omega} H_s^2 T_{st} = \frac{1}{16} \bar{\omega} H_s^2 \] where $H_s$ is the significant wave height and $\omega$ is the wave frequency. \item[\np{nn\_sdrift} = 1]: velocity profile based on the Phillips spectrum which is considered to be a \item[\np{nn\_sdrift} = 1]: velocity profile based on the Phillips spectrum which is considered to be a reasonable estimate of the part of the spectrum mostly contributing to the Stokes drift velocity near the surface \citep{breivik.bidlot.ea_OM16}: where $erf$ is the complementary error function and $k_p$ is the peak wavenumber. \item[\np{nn\_sdrift} = 2]: velocity profile based on the Phillips spectrum as for \np{nn\_sdrift} = 1 \item[\np{nn\_sdrift} = 2]: velocity profile based on the Phillips spectrum as for \np{nn\_sdrift} = 1 but using the wave frequency from a wave model. \end{description} The Stokes drift enters the wave-averaged momentum equation, as well as the tracer advection equations and its effect on the evolution of the sea-surface height ${\eta}$ is considered as follows: The Stokes drift enters the wave-averaged momentum equation, as well as the tracer advection equations and its effect on the evolution of the sea-surface height ${\eta}$ is considered as follows:  The tracer advection equation is also modified in order for Eulerian ocean models to properly account for unresolved wave effect. The divergence of the wave tracer flux equals the mean tracer advection that is induced by the three-dimensional Stokes velocity. The advective equation for a tracer $c$ combining the effects of the mean current and sea surface waves can be formulated as follows: The tracer advection equation is also modified in order for Eulerian ocean models to properly account for unresolved wave effect. The divergence of the wave tracer flux equals the mean tracer advection that is induced by the three-dimensional Stokes velocity. The advective equation for a tracer $c$ combining the effects of the mean current and sea surface waves can be formulated as follows: \[ \label{subsec:SBC_wave_stcor} In a rotating ocean, waves exert a wave-induced stress on the mean ocean circulation which results in a force equal to $\mathbf{U}_{st}$×$f$, where $f$ is the Coriolis parameter. This additional force may have impact on the Ekman turning of the surface current. In order to include this term, once evaluated the Stokes drift (using one of the 3 possible approximations described in \autoref{subsec:SBC_wave_sdw}), In a rotating ocean, waves exert a wave-induced stress on the mean ocean circulation which results in a force equal to $\mathbf{U}_{st}$×$f$, where $f$ is the Coriolis parameter. This additional force may have impact on the Ekman turning of the surface current. In order to include this term, once evaluated the Stokes drift (using one of the 3 possible approximations described in \autoref{subsec:SBC_wave_sdw}), \np{ln\_stcor}\forcode{ = .true.} has to be set. \label{subsec:SBC_wave_tauw} The surface stress felt by the ocean is the atmospheric stress minus the net stress going into the waves \citep{janssen.breivik.ea_rpt13}. Therefore, when waves are growing, momentum and energy is spent and is not available for forcing the mean circulation, while in the opposite case of a decaying sea state, more momentum is available for forcing the ocean. Only when the sea state is in equilibrium, the ocean is forced by the atmospheric stress, but in practice, an equilibrium sea state is a fairly rare event. So the atmospheric stress felt by the ocean circulation $\tau_{oc,a}$ can be expressed as: The surface stress felt by the ocean is the atmospheric stress minus the net stress going into the waves \citep{janssen.breivik.ea_rpt13}. Therefore, when waves are growing, momentum and energy is spent and is not available for forcing the mean circulation, while in the opposite case of a decaying sea state, more momentum is available for forcing the ocean. Only when the sea state is in equilibrium, the ocean is forced by the atmospheric stress, but in practice, an equilibrium sea state is a fairly rare event. So the atmospheric stress felt by the ocean circulation $\tau_{oc,a}$ can be expressed as: \[ where: $c_p$ is the phase speed of the gravity waves, $S_{in}$, $S_{nl}$ and $S_{diss}$ are three source terms that represent the physics of ocean waves. The first one, $S_{in}$, describes the generation of ocean waves by wind and therefore represents the momentum and energy transfer from air to ocean waves; the second term $S_{nl}$ denotes the nonlinear transfer by resonant four-wave interactions; while the third term $S_{diss}$ describes the dissipation of waves by processes such as white-capping, large scale breaking $S_{in}$, $S_{nl}$ and $S_{diss}$ are three source terms that represent the physics of ocean waves. The first one, $S_{in}$, describes the generation of ocean waves by wind and therefore represents the momentum and energy transfer from air to ocean waves; the second term $S_{nl}$ denotes the nonlinear transfer by resonant four-wave interactions; while the third term $S_{diss}$ describes the dissipation of waves by processes such as white-capping, large scale breaking eddy-induced damping. The wave stress derived from an external wave model can be provided either through the normalized wave stress into the ocean by setting \np{ln\_tauwoc}\forcode{ = .true.}, or through the zonal and The wave stress derived from an external wave model can be provided either through the normalized wave stress into the ocean by setting \np{ln\_tauwoc}\forcode{ = .true.}, or through the zonal and meridional stress components by setting \np{ln\_tauw}\forcode{ = .true.}. %------------------------------------------namsbc------------------------------------------------------------- % \nlst{namsbc} \nlst{namsbc} %------------------------------------------------------------------------------------------------------------- as higher frequency variations can be reconstructed from them, assuming that the diurnal cycle of SWF is a scaling of the top of the atmosphere diurnal cycle of incident SWF. The \cite{bernie.guilyardi.ea_CD07} reconstruction algorithm is available in \NEMO by setting \np{ln\_dm2dc}\forcode{ = .true.} (a \textit{\ngn{namsbc}} namelist variable) when The \cite{bernie.guilyardi.ea_CD07} reconstruction algorithm is available in \NEMO\ by setting \np{ln\_dm2dc}\forcode{ = .true.} (a \textit{\nam{sbc}} namelist variable) when using a bulk formulation (\np{ln\_blk}\forcode{ = .true.}) or the flux formulation (\np{ln\_flx}\forcode{ = .true.}). a given time step is the mean value of the analytical cycle over this time step (\autoref{fig:SBC_diurnal}). The use of diurnal cycle reconstruction requires the input SWF to be daily (\ie a frequency of 24 hours and a time interpolation set to true in \np{sn\_qsr} namelist parameter). (\ie\ a frequency of 24 hours and a time interpolation set to true in \np{sn\_qsr} namelist parameter). Furthermore, it is recommended to have a least 8 surface module time steps per day, that is  $\rdt \ nn\_fsbc < 10,800~s = 3~h$. be defined relative to a rectilinear grid. To activate this option, a non-empty string is supplied in the rotation pair column of the relevant namelist. The eastward component must start with "U" and the northward component with "V". The eastward component must start with "U" and the northward component with "V". The remaining characters in the strings are used to identify which pair of components go together. So for example, strings "U1" and "V1" next to "utau" and "vtau" would pair the wind stress components together and %------------------------------------------namsbc_ssr---------------------------------------------------- \nlst{namsbc_ssr} \nlst{namsbc_ssr} %------------------------------------------------------------------------------------------------------------- Options are defined through the \ngn{namsbc\_ssr} namelist variables. Options are defined through the \nam{sbc\_ssr} namelist variables. On forced mode using a flux formulation (\np{ln\_flx}\forcode{ = .true.}), a feedback term \emph{must} be added to the surface heat flux $Q_{ns}^o$: $T$ is the model surface layer temperature and $\frac{dQ}{dT}$ is a negative feedback coefficient usually taken equal to $-40~W/m^2/K$. For a $50~m$ mixed-layer depth, this value corresponds to a relaxation time scale of two months. This term ensures that if $T$ perfectly matches the supplied SST, then $Q$ is equal to $Q_o$. For a $50~m$ mixed-layer depth, this value corresponds to a relaxation time scale of two months. This term ensures that if $T$ perfectly matches the supplied SST, then $Q$ is equal to $Q_o$. In the fresh water budget, a feedback term can also be added. The presence at the sea surface of an ice covered area modifies all the fluxes transmitted to the ocean. There are several way to handle sea-ice in the system depending on the value of the \np{nn\_ice} namelist parameter found in \ngn{namsbc} namelist. the value of the \np{nn\_ice} namelist parameter found in \nam{sbc} namelist. \begin{description} \item[nn{\_}ice = 0] \item[nn\_ice = 0] there will never be sea-ice in the computational domain. This is a typical namelist value used for tropical ocean domain. The surface fluxes are simply specified for an ice-free ocean. No specific things is done for sea-ice. \item[nn{\_}ice = 1] \item[nn\_ice = 1] sea-ice can exist in the computational domain, but no sea-ice model is used. An observed ice covered area is read in a file. This manner of managing sea-ice area, just by using a IF case, is usually referred as the \textit{ice-if} model. It can be found in the \mdl{sbcice{\_}if} module. \item[nn{\_}ice = 2 or more] It can be found in the \mdl{sbcice\_if} module. \item[nn\_ice = 2 or more] A full sea ice model is used. This model computes the ice-ocean fluxes, provide the surface averaged ocean fluxes. Note that the activation of a sea-ice model is done by defining a CPP key (\key{si3} or \key{cice}). The activation automatically overwrites the read value of nn{\_}ice to its appropriate value (\ie $2$ for SI3 or $3$ for CICE). The activation automatically overwrites the read value of nn\_ice to its appropriate value (\ie\ $2$ for SI3 or $3$ for CICE). \end{description} \label{subsec:SBC_cice} It is possible to couple a regional or global NEMO configuration (without AGRIF) It is possible to couple a regional or global \NEMO\ configuration (without AGRIF) to the CICE sea-ice model by using \key{cice}. The CICE code can be obtained from \href{http://oceans11.lanl.gov/trac/CICE/}{LANL} and the additional 'hadgem3' drivers will be required, even with the latest code release. Input grid files consistent with those used in NEMO will also be needed, Input grid files consistent with those used in \NEMO\ will also be needed, and CICE CPP keys \textbf{ORCA\_GRID}, \textbf{CICE\_IN\_NEMO} and \textbf{coupled} should be used (seek advice from UKMO if necessary). Currently, the code is only designed to work when using the NCAR forcing option for NEMO %GS: still true ? Currently, the code is only designed to work when using the NCAR forcing option for \NEMO\ %GS: still true ? (with \textit{calc\_strair}\forcode{ = .true.} and \textit{calc\_Tsfc}\forcode{ = .true.} in the CICE name-list), or alternatively when NEMO is coupled to the HadGAM3 atmosphere model or alternatively when \NEMO\ is coupled to the HadGAM3 atmosphere model (with \textit{calc\_strair}\forcode{ = .false.} and \textit{calc\_Tsfc}\forcode{ = false}). The code is intended to be used with \np{nn\_fsbc} set to 1 the user should check that results are not significantly different to the standard case). There are two options for the technical coupling between NEMO and CICE. There are two options for the technical coupling between \NEMO\ and CICE. The standard version allows complete flexibility for the domain decompositions in the individual models, but this is at the expense of global gather and scatter operations in the coupling which become very expensive on larger numbers of processors. The alternative option (using \key{nemocice\_decomp} for both NEMO and CICE) ensures that The alternative option (using \key{nemocice\_decomp} for both \NEMO\ and CICE) ensures that the domain decomposition is identical in both models (provided domain parameters are set appropriately, and \textit{processor\_shape~=~square-ice} and \textit{distribution\_wght~=~block} in the CICE name-list) and % ------------------------------------------------------------------------------------------------------------- %        Freshwater budget control %        Freshwater budget control % ------------------------------------------------------------------------------------------------------------- \subsection[Freshwater budget control (\textit{sbcfwb.F90})] prevent unrealistic drift of the sea surface height due to inaccuracy in the freshwater fluxes. In \NEMO, two way of controlling the freshwater budget are proposed: \begin{description} \item[\np{nn\_fwb}\forcode{ = 0}] The mean sea level is free to drift, and will certainly do so. \item[\np{nn\_fwb}\forcode{ = 1}] global mean \textit{emp} set to zero at each model time step. global mean \textit{emp} set to zero at each model time step. %GS: comment below still relevant ? %Note that with a sea-ice model, this technique only controls the mean sea level with linear free surface and no mass flux between ocean and ice (as it is implemented in the current ice-ocean coupling). %Note that with a sea-ice model, this technique only controls the mean sea level with linear free surface and no mass flux between ocean and ice (as it is implemented in the current ice-ocean coupling). \item[\np{nn\_fwb}\forcode{ = 2}] freshwater budget is adjusted from the previous year annual mean budget which is read in the \textit{EMPave\_old.dat} file. As the model uses the Boussinesq approximation, the annual mean fresh water budget is simply evaluated from the change in the mean sea level at January the first and saved in the \textit{EMPav.dat} file. the change in the mean sea level at January the first and saved in the \textit{EMPav.dat} file. \end{description} % Griffies doc: % When running ocean-ice simulations, we are not explicitly representing land processes, % such as rivers, catchment areas, snow accumulation, etc. However, to reduce model drift, % it is important to balance the hydrological cycle in ocean-ice models. % We thus need to prescribe some form of global normalization to the precipitation minus evaporation plus river runoff. % The result of the normalization should be a global integrated zero net water input to the ocean-ice system over % a chosen time scale. % How often the normalization is done is a matter of choice. In mom4p1, we choose to do so at each model time step, % so that there is always a zero net input of water to the ocean-ice system. % Others choose to normalize over an annual cycle, in which case the net imbalance over an annual cycle is used % to alter the subsequent year�s water budget in an attempt to damp the annual water imbalance. % Note that the annual budget approach may be inappropriate with interannually varying precipitation forcing. % When running ocean-ice coupled models, it is incorrect to include the water transport between the ocean % and ice models when aiming to balance the hydrological cycle. % The reason is that it is the sum of the water in the ocean plus ice that should be balanced when running ocean-ice models, % not the water in any one sub-component. As an extreme example to illustrate the issue, % consider an ocean-ice model with zero initial sea ice. As the ocean-ice model spins up, % there should be a net accumulation of water in the growing sea ice, and thus a net loss of water from the ocean. % The total water contained in the ocean plus ice system is constant, but there is an exchange of water between % the subcomponents. This exchange should not be part of the normalization used to balance the hydrological cycle % in ocean-ice models. % When running ocean-ice simulations, we are not explicitly representing land processes, % such as rivers, catchment areas, snow accumulation, etc. However, to reduce model drift, % it is important to balance the hydrological cycle in ocean-ice models. % We thus need to prescribe some form of global normalization to the precipitation minus evaporation plus river runoff. % The result of the normalization should be a global integrated zero net water input to the ocean-ice system over % a chosen time scale. % How often the normalization is done is a matter of choice. In mom4p1, we choose to do so at each model time step, % so that there is always a zero net input of water to the ocean-ice system. % Others choose to normalize over an annual cycle, in which case the net imbalance over an annual cycle is used % to alter the subsequent year�s water budget in an attempt to damp the annual water imbalance. % Note that the annual budget approach may be inappropriate with interannually varying precipitation forcing. % When running ocean-ice coupled models, it is incorrect to include the water transport between the ocean % and ice models when aiming to balance the hydrological cycle. % The reason is that it is the sum of the water in the ocean plus ice that should be balanced when running ocean-ice models, % not the water in any one sub-component. As an extreme example to illustrate the issue, % consider an ocean-ice model with zero initial sea ice. As the ocean-ice model spins up, % there should be a net accumulation of water in the growing sea ice, and thus a net loss of water from the ocean. % The total water contained in the ocean plus ice system is constant, but there is an exchange of water between % the subcomponents. This exchange should not be part of the normalization used to balance the hydrological cycle % in ocean-ice models.