Changeset 10354 for NEMO/trunk/doc/latex/NEMO/subfiles/chap_SBC.tex
- Timestamp:
- 2018-11-21T17:59:55+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/doc/latex/NEMO/subfiles/chap_SBC.tex
r10146 r10354 18 18 The ocean needs six fields as surface boundary condition: 19 19 \begin{itemize} 20 \item the two components of the surface ocean stress $\left( {\tau _u \;,\;\tau _v} \right)$ 21 \item the incoming solar and non solar heat fluxes $\left( {Q_{ns} \;,\;Q_{sr} } \right)$ 22 \item the surface freshwater budget $\left( {\textit{emp}} \right)$ 23 \item the surface salt flux associated with freezing/melting of seawater $\left( {\textit{sfx}} \right)$ 20 \item 21 the two components of the surface ocean stress $\left( {\tau _u \;,\;\tau _v} \right)$ 22 \item 23 the incoming solar and non solar heat fluxes $\left( {Q_{ns} \;,\;Q_{sr} } \right)$ 24 \item 25 the surface freshwater budget $\left( {\textit{emp}} \right)$ 26 \item 27 the surface salt flux associated with freezing/melting of seawater $\left( {\textit{sfx}} \right)$ 24 28 \end{itemize} 25 29 plus an optional field: … … 28 32 \end{itemize} 29 33 30 Five different ways to provide the first six fields to the ocean are available which 31 are controlled by namelist \ngn{namsbc} variables: an analytical formulation (\np{ln\_ana}\forcode{ = .true.}), 32 a flux formulation (\np{ln\_flx}\forcode{ = .true.}), a bulk formulae formulation (CORE 33 (\np{ln\_blk\_core}\forcode{ = .true.}), CLIO (\np{ln\_blk\_clio}\forcode{ = .true.}) or MFS 34 \footnote { Note that MFS bulk formulae compute fluxes only for the ocean component} 35 (\np{ln\_blk\_mfs}\forcode{ = .true.}) bulk formulae) and a coupled or mixed forced/coupled formulation 36 (exchanges with a atmospheric model via the OASIS coupler) (\np{ln\_cpl} or \np{ln\_mixcpl}\forcode{ = .true.}). 37 When used ($i.e.$ \np{ln\_apr\_dyn}\forcode{ = .true.}), the atmospheric pressure forces both ocean and ice dynamics. 38 39 The frequency at which the forcing fields have to be updated is given by the \np{nn\_fsbc} namelist parameter. 40 When the fields are supplied from data files (flux and bulk formulations), the input fields 41 need not be supplied on the model grid. Instead a file of coordinates and weights can 42 be supplied which maps the data from the supplied grid to the model points 43 (so called "Interpolation on the Fly", see \autoref{subsec:SBC_iof}). 34 Five different ways to provide the first six fields to the ocean are available which are controlled by 35 namelist \ngn{namsbc} variables: 36 an analytical formulation (\np{ln\_ana}\forcode{ = .true.}), 37 a flux formulation (\np{ln\_flx}\forcode{ = .true.}), 38 a bulk formulae formulation (CORE (\np{ln\_blk\_core}\forcode{ = .true.}), 39 CLIO (\np{ln\_blk\_clio}\forcode{ = .true.}) or 40 MFS \footnote { Note that MFS bulk formulae compute fluxes only for the ocean component} 41 (\np{ln\_blk\_mfs}\forcode{ = .true.}) bulk formulae) and 42 a coupled or mixed forced/coupled formulation (exchanges with a atmospheric model via the OASIS coupler) 43 (\np{ln\_cpl} or \np{ln\_mixcpl}\forcode{ = .true.}). 44 When used ($i.e.$ \np{ln\_apr\_dyn}\forcode{ = .true.}), 45 the atmospheric pressure forces both ocean and ice dynamics. 46 47 The frequency at which the forcing fields have to be updated is given by the \np{nn\_fsbc} namelist parameter. 48 When the fields are supplied from data files (flux and bulk formulations), 49 the input fields need not be supplied on the model grid. 50 Instead a file of coordinates and weights can be supplied which maps the data from the supplied grid to 51 the model points (so called "Interpolation on the Fly", see \autoref{subsec:SBC_iof}). 44 52 If the Interpolation on the Fly option is used, input data belonging to land points (in the native grid), 45 can be masked to avoid spurious results in proximity of the coasts as large sea-land gradients characterize46 most of the atmospheric variables.47 48 In addition, the resulting fields can be further modified using several namelist options. 53 can be masked to avoid spurious results in proximity of the coasts as 54 large sea-land gradients characterize most of the atmospheric variables. 55 56 In addition, the resulting fields can be further modified using several namelist options. 49 57 These options control 50 58 \begin{itemize} 51 \item the rotation of vector components supplied relative to an east-north 52 coordinate system onto the local grid directions in the model ; 53 \item the addition of a surface restoring term to observed SST and/or SSS (\np{ln\_ssr}\forcode{ = .true.}) ; 54 \item the modification of fluxes below ice-covered areas (using observed ice-cover or a sea-ice model) (\np{nn\_ice}\forcode{ = 0..3}) ; 55 \item the addition of river runoffs as surface freshwater fluxes or lateral inflow (\np{ln\_rnf}\forcode{ = .true.}) ; 56 \item the addition of isf melting as lateral inflow (parameterisation) or as fluxes applied at the land-ice ocean interface (\np{ln\_isf}) ; 57 \item the addition of a freshwater flux adjustment in order to avoid a mean sea-level drift (\np{nn\_fwb}\forcode{ = 0..2}) ; 58 \item the transformation of the solar radiation (if provided as daily mean) into a diurnal cycle (\np{ln\_dm2dc}\forcode{ = .true.}) ; 59 and a neutral drag coefficient can be read from an external wave model (\np{ln\_cdgw}\forcode{ = .true.}). 59 \item 60 the rotation of vector components supplied relative to an east-north coordinate system onto 61 the local grid directions in the model; 62 \item 63 the addition of a surface restoring term to observed SST and/or SSS (\np{ln\_ssr}\forcode{ = .true.}); 64 \item 65 the modification of fluxes below ice-covered areas (using observed ice-cover or a sea-ice model) 66 (\np{nn\_ice}\forcode{ = 0..3}); 67 \item 68 the addition of river runoffs as surface freshwater fluxes or lateral inflow (\np{ln\_rnf}\forcode{ = .true.}); 69 \item 70 the addition of isf melting as lateral inflow (parameterisation) or 71 as fluxes applied at the land-ice ocean interface (\np{ln\_isf}) ; 72 \item 73 the addition of a freshwater flux adjustment in order to avoid a mean sea-level drift 74 (\np{nn\_fwb}\forcode{ = 0..2}); 75 \item 76 the transformation of the solar radiation (if provided as daily mean) into a diurnal cycle 77 (\np{ln\_dm2dc}\forcode{ = .true.}); 78 and a neutral drag coefficient can be read from an external wave model (\np{ln\_cdgw}\forcode{ = .true.}). 60 79 \end{itemize} 61 80 The latter option is possible only in case core or mfs bulk formulas are selected. 62 81 63 In this chapter, we first discuss where the surface boundary condition appears in the 64 model equations.Then we present the five ways of providing the surface boundary condition,82 In this chapter, we first discuss where the surface boundary condition appears in the model equations. 83 Then we present the five ways of providing the surface boundary condition, 65 84 followed by the description of the atmospheric pressure and the river runoff. 66 85 Next the scheme for interpolation on the fly is described. 67 86 Finally, the different options that further modify the fluxes applied to the ocean are discussed. 68 One of these is modification by icebergs (see \autoref{sec:ICB_icebergs}), which act as drifting sources of fresh water. 87 One of these is modification by icebergs (see \autoref{sec:ICB_icebergs}), 88 which act as drifting sources of fresh water. 69 89 Another example of modification is that due to the ice shelf melting/freezing (see \autoref{sec:SBC_isf}), 70 90 which provides additional sources of fresh water. … … 77 97 \label{sec:SBC_general} 78 98 79 The surface ocean stress is the stress exerted by the wind and the sea-ice 80 on the ocean. It is applied in \mdl{dynzdf} module as a surface boundary condition of the 81 computation of the momentum vertical mixing trend (see \autoref{eq:dynzdf_sbc} in \autoref{sec:DYN_zdf}). 82 As such, it has to be provided as a 2D vector interpolated 83 onto the horizontal velocity ocean mesh, $i.e.$ resolved onto the model 84 (\textbf{i},\textbf{j}) direction at $u$- and $v$-points. 85 86 The surface heat flux is decomposed into two parts, a non solar and a solar heat 87 flux, $Q_{ns}$ and $Q_{sr}$, respectively. The former is the non penetrative part 88 of the heat flux ($i.e.$ the sum of sensible, latent and long wave heat fluxes 89 plus the heat content of the mass exchange with the atmosphere and sea-ice). 90 It is applied in \mdl{trasbc} module as a surface boundary condition trend of 91 the first level temperature time evolution equation (see \autoref{eq:tra_sbc} 92 and \autoref{eq:tra_sbc_lin} in \autoref{subsec:TRA_sbc}). 93 The latter is the penetrative part of the heat flux. It is applied as a 3D 94 trends of the temperature equation (\mdl{traqsr} module) when \np{ln\_traqsr}\forcode{ = .true.}. 95 The way the light penetrates inside the water column is generally a sum of decreasing 96 exponentials (see \autoref{subsec:TRA_qsr}). 99 The surface ocean stress is the stress exerted by the wind and the sea-ice on the ocean. 100 It is applied in \mdl{dynzdf} module as a surface boundary condition of the computation of 101 the momentum vertical mixing trend (see \autoref{eq:dynzdf_sbc} in \autoref{sec:DYN_zdf}). 102 As such, it has to be provided as a 2D vector interpolated onto the horizontal velocity ocean mesh, 103 $i.e.$ resolved onto the model (\textbf{i},\textbf{j}) direction at $u$- and $v$-points. 104 105 The surface heat flux is decomposed into two parts, a non solar and a solar heat flux, 106 $Q_{ns}$ and $Q_{sr}$, respectively. 107 The former is the non penetrative part of the heat flux 108 ($i.e.$ the sum of sensible, latent and long wave heat fluxes plus 109 the heat content of the mass exchange with the atmosphere and sea-ice). 110 It is applied in \mdl{trasbc} module as a surface boundary condition trend of 111 the first level temperature time evolution equation 112 (see \autoref{eq:tra_sbc} and \autoref{eq:tra_sbc_lin} in \autoref{subsec:TRA_sbc}). 113 The latter is the penetrative part of the heat flux. 114 It is applied as a 3D trends of the temperature equation (\mdl{traqsr} module) when 115 \np{ln\_traqsr}\forcode{ = .true.}. 116 The way the light penetrates inside the water column is generally a sum of decreasing exponentials 117 (see \autoref{subsec:TRA_qsr}). 97 118 98 119 The surface freshwater budget is provided by the \textit{emp} field. 99 It represents the mass flux exchanged with the atmosphere (evaporation minus precipitation) 100 and possibly with the sea-ice and ice shelves (freezing minus melting of ice). 101 It affects both the ocean in two different ways: 102 $(i)$ it changes the volume of the ocean and therefore appears in the sea surface height103 equation asa volume flux, and104 $(ii)$ it changes the surface temperature and salinity through the heat and salt contents105 ofthe mass exchanged with the atmosphere, the sea-ice and the ice shelves.120 It represents the mass flux exchanged with the atmosphere (evaporation minus precipitation) and 121 possibly with the sea-ice and ice shelves (freezing minus melting of ice). 122 It affects both the ocean in two different ways: 123 $(i)$ it changes the volume of the ocean and therefore appears in the sea surface height equation as 124 a volume flux, and 125 $(ii)$ it changes the surface temperature and salinity through the heat and salt contents of 126 the mass exchanged with the atmosphere, the sea-ice and the ice shelves. 106 127 107 128 … … 129 150 %\colorbox{yellow}{End Miss } 130 151 131 The ocean model provides, at each time step, to the surface module (\mdl{sbcmod}) 152 The ocean model provides, at each time step, to the surface module (\mdl{sbcmod}) 132 153 the surface currents, temperature and salinity. 133 These variables are averaged over \np{nn\_fsbc} time-step (\autoref{tab:ssm}), 134 and it is these averaged fields which are used to computes the surface fluxes 135 at a frequency of \np{nn\_fsbc} time-step. 154 These variables are averaged over \np{nn\_fsbc} time-step (\autoref{tab:ssm}), and 155 it is these averaged fields which are used to computes the surface fluxes at a frequency of \np{nn\_fsbc} time-step. 136 156 137 157 … … 145 165 Sea surface salinty & sss\_m & $psu$ & T \\ \hline 146 166 \end{tabular} 147 \caption{ \protect\label{tab:ssm} 148 Ocean variables provided by the ocean to the surface module (SBC). 149 The variable are averaged over nn{\_}fsbc time step, 150 $i.e.$ the frequency of computation of surface fluxes.}167 \caption{ \protect\label{tab:ssm} 168 Ocean variables provided by the ocean to the surface module (SBC). 169 The variable are averaged over nn{\_}fsbc time step, 170 $i.e.$ the frequency of computation of surface fluxes.} 151 171 \end{center} \end{table} 152 172 %-------------------------------------------------------------------------------------------------------------- … … 161 181 \label{sec:SBC_input} 162 182 163 A generic interface has been introduced to manage the way input data (2D or 3D fields, 164 like surface forcing or ocean T and S) are specify in \NEMO. This task is archieved by \mdl{fldread}. 183 A generic interface has been introduced to manage the way input data 184 (2D or 3D fields, like surface forcing or ocean T and S) are specify in \NEMO. 185 This task is archieved by \mdl{fldread}. 165 186 The module was design with four main objectives in mind: 166 \begin{enumerate} 167 \item optionally provide a time interpolation of the input data at model time-step, 168 whatever their input frequency is, and according to the different calendars available in the model. 169 \item optionally provide an on-the-fly space interpolation from the native input data grid to the model grid. 170 \item make the run duration independent from the period cover by the input files. 171 \item provide a simple user interface and a rather simple developer interface by limiting the 172 number of prerequisite information. 187 \begin{enumerate} 188 \item 189 optionally provide a time interpolation of the input data at model time-step, whatever their input frequency is, 190 and according to the different calendars available in the model. 191 \item 192 optionally provide an on-the-fly space interpolation from the native input data grid to the model grid. 193 \item 194 make the run duration independent from the period cover by the input files. 195 \item 196 provide a simple user interface and a rather simple developer interface by 197 limiting the number of prerequisite information. 173 198 \end{enumerate} 174 199 175 As a results the user have only to fill in for each variable a structure in the namelist file 176 to defined the input data file and variable names, the frequency of the data (in hours or months), 177 whether its is climatological data or not, the period covered by the input file (one year, month, week or day), 178 and three additional parameters for on-the-fly interpolation. When adding a new input variable,179 the developer has to add the associated structure in the namelist, read this information 180 by mirroring the namelist read in \rou{sbc\_blk\_init} for example, and simply call \rou{fld\_read} 181 to obtain the desired input field at the model time-step and grid points.200 As a results the user have only to fill in for each variable a structure in the namelist file to 201 define the input data file and variable names, the frequency of the data (in hours or months), 202 whether its is climatological data or not, the period covered by the input file (one year, month, week or day), 203 and three additional parameters for on-the-fly interpolation. 204 When adding a new input variable, the developer has to add the associated structure in the namelist, 205 read this information by mirroring the namelist read in \rou{sbc\_blk\_init} for example, 206 and simply call \rou{fld\_read} to obtain the desired input field at the model time-step and grid points. 182 207 183 208 The only constraints are that the input file is a NetCDF file, the file name follows a nomenclature 184 (see \autoref{subsec:SBC_fldread}), the period it cover is one year, month, week or day, and, if on-the-fly 185 interpolation is used, a file of weights must be supplied (see \autoref{subsec:SBC_iof}). 186 187 Note that when an input data is archived on a disc which is accessible directly 188 from the workspace where the code is executed, then the use can set the \np{cn\_dir} 189 to the pathway leading to the data. By default, the data are assumed to have been 190 copied so that cn\_dir='./'. 209 (see \autoref{subsec:SBC_fldread}), the period it cover is one year, month, week or day, and, 210 if on-the-fly interpolation is used, a file of weights must be supplied (see \autoref{subsec:SBC_iof}). 211 212 Note that when an input data is archived on a disc which is accessible directly from the workspace where 213 the code is executed, then the use can set the \np{cn\_dir} to the pathway leading to the data. 214 By default, the data are assumed to have been copied so that cn\_dir='./'. 191 215 192 216 % ------------------------------------------------------------------------------------------------------------- … … 203 227 where 204 228 \begin{description} 205 \item[File name]: the stem name of the NetCDF file to be open. 206 This stem will be completed automatically by the model, with the addition of a '.nc' at its end 207 and by date information and possibly a prefix (when using AGRIF). 208 Tab.\autoref{tab:fldread} provides the resulting file name in all possible cases according to whether 209 it is a climatological file or not, and to the open/close frequency (see below for definition). 229 \item[File name]: 230 the stem name of the NetCDF file to be open. 231 This stem will be completed automatically by the model, with the addition of a '.nc' at its end and 232 by date information and possibly a prefix (when using AGRIF). 233 Tab.\autoref{tab:fldread} provides the resulting file name in all possible cases according to 234 whether it is a climatological file or not, and to the open/close frequency (see below for definition). 210 235 211 236 %--------------------------------------------------TABLE-------------------------------------------------- … … 219 244 \end{tabular} 220 245 \end{center} 221 \caption{ \protect\label{tab:fldread} naming nomenclature for climatological or interannual input file, 222 as a function of the Open/close frequency. The stem name is assumed to be 'fn'. 223 For weekly files, the 'LLL' corresponds to the first three letters of the first day of the week ($i.e.$ 'sun','sat','fri','thu','wed','tue','mon'). The 'YYYY', 'MM' and 'DD' should be replaced by the 224 actual year/month/day, always coded with 4 or 2 digits. Note that (1) in mpp, if the file is split 225 over each subdomain, the suffix '.nc' is replaced by '\_PPPP.nc', where 'PPPP' is the 226 process number coded with 4 digits; (2) when using AGRIF, the prefix 227 '\_N' is added to files, 228 where 'N' is the child grid number.} 246 \caption{ \protect\label{tab:fldread} 247 naming nomenclature for climatological or interannual input file, as a function of the Open/close frequency. 248 The stem name is assumed to be 'fn'. 249 For weekly files, the 'LLL' corresponds to the first three letters of the first day of the week 250 ($i.e.$ 'sun','sat','fri','thu','wed','tue','mon'). 251 The 'YYYY', 'MM' and 'DD' should be replaced by the actual year/month/day, always coded with 4 or 2 digits. 252 Note that (1) in mpp, if the file is split over each subdomain, the suffix '.nc' is replaced by '\_PPPP.nc', 253 where 'PPPP' is the process number coded with 4 digits; 254 (2) when using AGRIF, the prefix '\_N' is added to files, where 'N' is the child grid number.} 229 255 \end{table} 230 256 %-------------------------------------------------------------------------------------------------------------- 231 257 232 258 233 \item[Record frequency]: the frequency of the records contained in the input file. 234 Its unit is in hours if it is positive (for example 24 for daily forcing) or in months if negative 235 (for example -1 for monthly forcing or -12 for annual forcing). 236 Note that this frequency must really be an integer and not a real. 237 On some computers, seting it to '24.' can be interpreted as 240! 238 239 \item[Variable name]: the name of the variable to be read in the input NetCDF file. 240 241 \item[Time interpolation]: a logical to activate, or not, the time interpolation. If set to 'false', 242 the forcing will have a steplike shape remaining constant during each forcing period. 243 For example, when using a daily forcing without time interpolation, the forcing remaining 244 constant from 00h00'00'' to 23h59'59". If set to 'true', the forcing will have a broken line shape. 245 Records are assumed to be dated the middle of the forcing period. 246 For example, when using a daily forcing with time interpolation, linear interpolation will 247 be performed between mid-day of two consecutive days. 248 249 \item[Climatological forcing]: a logical to specify if a input file contains climatological forcing 250 which can be cycle in time, or an interannual forcing which will requires additional files 251 if the period covered by the simulation exceed the one of the file. See the above the file 252 naming strategy which impacts the expected name of the file to be opened. 253 254 \item[Open/close frequency]: the frequency at which forcing files must be opened/closed. 255 Four cases are coded: 'daily', 'weekLLL' (with 'LLL' the first 3 letters of the first day of the week), 256 'monthly' and 'yearly' which means the forcing files will contain data for one day, one week, 257 one month or one year. Files are assumed to contain data from the beginning of the open/close period. 258 For example, the first record of a yearly file containing daily data is Jan 1st even if the experiment 259 is not starting at the beginning of the year. 260 261 \item[Others]: 'weights filename', 'pairing rotation' and 'land/sea mask' are associted with on-the-fly interpolation 262 which is described in \autoref{subsec:SBC_iof}. 259 \item[Record frequency]: 260 the frequency of the records contained in the input file. 261 Its unit is in hours if it is positive (for example 24 for daily forcing) or in months if negative 262 (for example -1 for monthly forcing or -12 for annual forcing). 263 Note that this frequency must really be an integer and not a real. 264 On some computers, seting it to '24.' can be interpreted as 240! 265 266 \item[Variable name]: 267 the name of the variable to be read in the input NetCDF file. 268 269 \item[Time interpolation]: 270 a logical to activate, or not, the time interpolation. 271 If set to 'false', the forcing will have a steplike shape remaining constant during each forcing period. 272 For example, when using a daily forcing without time interpolation, the forcing remaining constant from 273 00h00'00'' to 23h59'59". 274 If set to 'true', the forcing will have a broken line shape. 275 Records are assumed to be dated the middle of the forcing period. 276 For example, when using a daily forcing with time interpolation, 277 linear interpolation will be performed between mid-day of two consecutive days. 278 279 \item[Climatological forcing]: 280 a logical to specify if a input file contains climatological forcing which can be cycle in time, 281 or an interannual forcing which will requires additional files if 282 the period covered by the simulation exceed the one of the file. 283 See the above the file naming strategy which impacts the expected name of the file to be opened. 284 285 \item[Open/close frequency]: 286 the frequency at which forcing files must be opened/closed. 287 Four cases are coded: 288 'daily', 'weekLLL' (with 'LLL' the first 3 letters of the first day of the week), 'monthly' and 'yearly' which 289 means the forcing files will contain data for one day, one week, one month or one year. 290 Files are assumed to contain data from the beginning of the open/close period. 291 For example, the first record of a yearly file containing daily data is Jan 1st even if 292 the experiment is not starting at the beginning of the year. 293 294 \item[Others]: 295 'weights filename', 'pairing rotation' and 'land/sea mask' are associated with 296 on-the-fly interpolation which is described in \autoref{subsec:SBC_iof}. 263 297 264 298 \end{description} 265 299 266 300 Additional remarks:\\ 267 (1) The time interpolation is a simple linear interpolation between two consecutive records of 268 the input data. The only tricky point is therefore to specify the date at which we need to do 269 the interpolation and the date of the records read in the input files.270 Following \citet{Leclair_Madec_OM09}, the date of a time step is set at the middle of the 271 time step. For example, for an experiment starting at 0h00'00" with a one hour time-step, 301 (1) The time interpolation is a simple linear interpolation between two consecutive records of the input data. 302 The only tricky point is therefore to specify the date at which we need to do the interpolation and 303 the date of the records read in the input files. 304 Following \citet{Leclair_Madec_OM09}, the date of a time step is set at the middle of the time step. 305 For example, for an experiment starting at 0h00'00" with a one hour time-step, 272 306 a time interpolation will be performed at the following time: 0h30'00", 1h30'00", 2h30'00", etc. 273 However, for forcing data related to the surface module, values are not needed at every274 time-step but at every \np{nn\_fsbc} time-step. For example with \np{nn\_fsbc}\forcode{ = 3}, 275 the surface module will be called at time-steps 1, 4, 7, etc. The date used for the time interpolation 276 is thus redefined to be at the middle of \np{nn\_fsbc} time-step period. In the previous example, 277 this leads to: 1h30'00", 4h30'00", 7h30'00", etc. \\278 (2) For code readablility and maintenance issues, we don't take into account the NetCDF input file 279 calendar. The calendar associated with the forcing field is build according to the information 280 provided by user in the record frequency, the open/close frequency and the type of temporal interpolation. 281 For example, the first record of a yearly file containing daily data that will be interpolated in time 282 is assumed tobe start Jan 1st at 12h00'00" and end Dec 31st at 12h00'00". \\283 (3) If a time interpolation is requested, the code will pick up the needed data in the previous (next) file 284 when interpolating data with the first (last) record of the open/close period. 307 However, for forcing data related to the surface module, 308 values are not needed at every time-step but at every \np{nn\_fsbc} time-step. 309 For example with \np{nn\_fsbc}\forcode{ = 3}, the surface module will be called at time-steps 1, 4, 7, etc. 310 The date used for the time interpolation is thus redefined to be at the middle of \np{nn\_fsbc} time-step period. 311 In the previous example, this leads to: 1h30'00", 4h30'00", 7h30'00", etc. \\ 312 (2) For code readablility and maintenance issues, we don't take into account the NetCDF input file calendar. 313 The calendar associated with the forcing field is build according to the information provided by 314 user in the record frequency, the open/close frequency and the type of temporal interpolation. 315 For example, the first record of a yearly file containing daily data that will be interpolated in time is assumed to 316 be start Jan 1st at 12h00'00" and end Dec 31st at 12h00'00". \\ 317 (3) If a time interpolation is requested, the code will pick up the needed data in the previous (next) file when 318 interpolating data with the first (last) record of the open/close period. 285 319 For example, if the input file specifications are ''yearly, containing daily data to be interpolated in time'', 286 the values given by the code between 00h00'00" and 11h59'59" on Jan 1st will be interpolated values 287 between Dec 31st 12h00'00" and Jan 1st 12h00'00". If the forcing is climatological, Dec and Jan will 288 be keep-up from the same year. However, if the forcing is not climatological, at the end of the 289 open/close period the code will automatically close the current file and open the next one. 290 Note that, if the experiment is starting (ending) at the beginning (end) of an open/close period 291 we do accept that the previous (next) file is not existing. In this case, the time interpolation 292 will be performed between two identical values. For example, when starting an experiment on 293 Jan 1st of year Y with yearly files and daily data to be interpolated, we do accept that the file 294 related to year Y-1 is not existing. The value of Jan 1st will be used as the missing one for 295 Dec 31st of year Y-1. If the file of year Y-1 exists, the code will read its last record. 296 Therefore, this file can contain only one record corresponding to Dec 31st, a useful feature for 297 user considering that it is too heavy to manipulate the complete file for year Y-1. 320 the values given by the code between 00h00'00" and 11h59'59" on Jan 1st will be interpolated values between 321 Dec 31st 12h00'00" and Jan 1st 12h00'00". 322 If the forcing is climatological, Dec and Jan will be keep-up from the same year. 323 However, if the forcing is not climatological, at the end of 324 the open/close period the code will automatically close the current file and open the next one. 325 Note that, if the experiment is starting (ending) at the beginning (end) of 326 an open/close period we do accept that the previous (next) file is not existing. 327 In this case, the time interpolation will be performed between two identical values. 328 For example, when starting an experiment on Jan 1st of year Y with yearly files and daily data to be interpolated, 329 we do accept that the file related to year Y-1 is not existing. 330 The value of Jan 1st will be used as the missing one for Dec 31st of year Y-1. 331 If the file of year Y-1 exists, the code will read its last record. 332 Therefore, this file can contain only one record corresponding to Dec 31st, 333 a useful feature for user considering that it is too heavy to manipulate the complete file for year Y-1. 298 334 299 335 … … 304 340 \label{subsec:SBC_iof} 305 341 306 Interpolation on the Fly allows the user to supply input files required 307 for the surface forcing on grids other than the model grid. 308 To do this he or she must supply, in addition to the source data file, 309 a file of weights to be used to interpolate from the data grid to the model grid. 310 The original development of this code used the SCRIP package (freely available 311 \href{http://climate.lanl.gov/Software/SCRIP}{here} under a copyright agreement). 312 In principle, any package can be used to generate the weights, but the 313 variables in the input weights file must have the same names and meanings as 314 assumed by the model. 342 Interpolation on the Fly allows the user to supply input files required for the surface forcing on 343 grids other than the model grid. 344 To do this he or she must supply, in addition to the source data file, a file of weights to be used to 345 interpolate from the data grid to the model grid. 346 The original development of this code used the SCRIP package 347 (freely available \href{http://climate.lanl.gov/Software/SCRIP}{here} under a copyright agreement). 348 In principle, any package can be used to generate the weights, but the variables in 349 the input weights file must have the same names and meanings as assumed by the model. 315 350 Two methods are currently available: bilinear and bicubic interpolation. 316 Prior to the interpolation, providing a land/sea mask file, the user can decide to 317 remove land points from the input file and substitute the corresponding values 318 with the average of the 8 neighbouring points in the native external grid. 319 Only "sea points" are considered for the averaging. The land/sea mask file must 320 be provided in the structure associated with the input variable. 321 The netcdf land/sea mask variable name must be 'LSM' it must have the same 322 horizontal and vertical dimensions of the associated variable and should 323 be equal to 1 over land and 0 elsewhere. 324 The procedure can be recursively applied setting nn\_lsm > 1 in namsbc namelist. 351 Prior to the interpolation, providing a land/sea mask file, the user can decide to remove land points from 352 the input file and substitute the corresponding values with the average of the 8 neighbouring points in 353 the native external grid. 354 Only "sea points" are considered for the averaging. 355 The land/sea mask file must be provided in the structure associated with the input variable. 356 The netcdf land/sea mask variable name must be 'LSM' it must have the same horizontal and vertical dimensions of 357 the associated variable and should be equal to 1 over land and 0 elsewhere. 358 The procedure can be recursively applied setting nn\_lsm > 1 in namsbc namelist. 325 359 Note that nn\_lsm=0 forces the code to not apply the procedure even if a file for land/sea mask is supplied. 326 360 … … 328 362 \label{subsec:SBC_iof_bilinear} 329 363 330 The input weights file in this case has two sets of variables: src01, src02,331 src0 3, src04 and wgt01, wgt02, wgt03, wgt04.332 The "src" variables correspond to the point in the input grid to which the weight 333 "wgt" is to be applied. Each src value is an integer corresponding to the index of a 334 point in the input grid when written as a one dimensional array. For example, for an input grid 335 of size 5x10, point (3,2) is referenced as point 8, since (2-1)*5+3=8.364 The input weights file in this case has two sets of variables: 365 src01, src02, src03, src04 and wgt01, wgt02, wgt03, wgt04. 366 The "src" variables correspond to the point in the input grid to which the weight "wgt" is to be applied. 367 Each src value is an integer corresponding to the index of a point in the input grid when 368 written as a one dimensional array. 369 For example, for an input grid of size 5x10, point (3,2) is referenced as point 8, since (2-1)*5+3=8. 336 370 There are four of each variable because bilinear interpolation uses the four points defining 337 371 the grid box containing the point to be interpolated. 338 All of these arrays are on the model grid, so that values src01(i,j) and 339 wgt01(i,j) are used togenerate a value for point (i,j) in the model.372 All of these arrays are on the model grid, so that values src01(i,j) and wgt01(i,j) are used to 373 generate a value for point (i,j) in the model. 340 374 341 375 Symbolically, the algorithm used is: 342 343 376 \begin{equation} 344 377 f_{m}(i,j) = f_{m}(i,j) + \sum_{k=1}^{4} {wgt(k)f(idx(src(k)))} … … 361 394 \end{split} 362 395 \end{equation*} 363 The gradients here are taken with respect to the horizontal indices and not distances since the spatial dependency has been absorbed into the weights. 396 The gradients here are taken with respect to the horizontal indices and not distances since 397 the spatial dependency has been absorbed into the weights. 364 398 365 399 \subsubsection{Implementation} 366 400 \label{subsec:SBC_iof_imp} 367 401 368 To activate this option, a non-empty string should be supplied in the weights filename column 369 of the relevant namelist; if this is left as an empty string no action is taken. 370 In the model, weights files are read in and stored in a structured type (WGT) in the fldread 371 module, as and when they are first required. 372 This initialisation procedure determines whether the input data grid should be treated 373 as cyclical or not by inspecting a global attribute stored in the weights input file. 402 To activate this option, a non-empty string should be supplied in 403 the weights filename column of the relevant namelist; 404 if this is left as an empty string no action is taken. 405 In the model, weights files are read in and stored in a structured type (WGT) in the fldread module, 406 as and when they are first required. 407 This initialisation procedure determines whether the input data grid should be treated as cyclical or not by 408 inspecting a global attribute stored in the weights input file. 374 409 This attribute must be called "ew\_wrap" and be of integer type. 375 410 If it is negative, the input non-model grid is assumed not to be cyclic. … … 378 413 if longitudes are 0.5, 2.5, .... , 358.5, 360.5, 362.5, ew\_wrap should be 2. 379 414 If the model does not find attribute ew\_wrap, then a value of -999 is assumed. 380 In this case the \rou{fld\_read} routine defaults ew\_wrap to value 0 and therefore the grid381 is assumed to be cyclic with no overlapping columns.415 In this case the \rou{fld\_read} routine defaults ew\_wrap to value 0 and 416 therefore the grid is assumed to be cyclic with no overlapping columns. 382 417 (In fact this only matters when bicubic interpolation is required.) 383 Note that no testing is done to check the validity in the model, since there is no way384 of knowing the name used for the longitude variable,418 Note that no testing is done to check the validity in the model, 419 since there is no way of knowing the name used for the longitude variable, 385 420 so it is up to the user to make sure his or her data is correctly represented. 386 421 387 422 Next the routine reads in the weights. 388 Bicubic interpolation is assumed if it finds a variable with name "src05", otherwise 389 bilinear interpolation is used. The WGT structure includes dynamic arrays both for 390 the storage of the weights (on the model grid), and when required, for reading in 391 the variable to be interpolated (on the input data grid). 392 The size of the input data array is determined by examining the values in the "src" 393 arrays to find the minimum and maximum i and j values required. 394 Since bicubic interpolation requires the calculation of gradients at each point on the grid, 423 Bicubic interpolation is assumed if it finds a variable with name "src05", otherwise bilinear interpolation is used. 424 The WGT structure includes dynamic arrays both for the storage of the weights (on the model grid), 425 and when required, for reading in the variable to be interpolated (on the input data grid). 426 The size of the input data array is determined by examining the values in the "src" arrays to 427 find the minimum and maximum i and j values required. 428 Since bicubic interpolation requires the calculation of gradients at each point on the grid, 395 429 the corresponding arrays are dimensioned with a halo of width one grid point all the way around. 396 When the array of points from the data file is adjacent to an edge of the data grid, 397 the halo is either a copy of the row/column next to it (non-cyclical case), or is a copy398 o f one from the first few columns on the opposite side of the grid (cyclical case).430 When the array of points from the data file is adjacent to an edge of the data grid, 431 the halo is either a copy of the row/column next to it (non-cyclical case), 432 or is a copy of one from the first few columns on the opposite side of the grid (cyclical case). 399 433 400 434 \subsubsection{Limitations} … … 402 436 403 437 \begin{enumerate} 404 \item The case where input data grids are not logically rectangular has not been tested. 405 \item This code is not guaranteed to produce positive definite answers from positive definite inputs 406 when a bicubic interpolation method is used. 407 \item The cyclic condition is only applied on left and right columns, and not to top and bottom rows. 408 \item The gradients across the ends of a cyclical grid assume that the grid spacing between 409 the two columns involved are consistent with the weights used. 410 \item Neither interpolation scheme is conservative. (There is a conservative scheme available 411 in SCRIP, but this has not been implemented.) 438 \item 439 The case where input data grids are not logically rectangular has not been tested. 440 \item 441 This code is not guaranteed to produce positive definite answers from positive definite inputs when 442 a bicubic interpolation method is used. 443 \item 444 The cyclic condition is only applied on left and right columns, and not to top and bottom rows. 445 \item 446 The gradients across the ends of a cyclical grid assume that the grid spacing between 447 the two columns involved are consistent with the weights used. 448 \item 449 Neither interpolation scheme is conservative. (There is a conservative scheme available in SCRIP, 450 but this has not been implemented.) 412 451 \end{enumerate} 413 452 … … 416 455 417 456 % to be completed 418 A set of utilities to create a weights file for a rectilinear input grid is available 457 A set of utilities to create a weights file for a rectilinear input grid is available 419 458 (see the directory NEMOGCM/TOOLS/WEIGHTS). 420 459 … … 430 469 %-------------------------------------------------------------------------------------------------------------- 431 470 432 In some circumstances it may be useful to avoid calculating the 3D temperature, salinity and velocity fields433 and simply read them in from a previous run or receive them from OASIS.471 In some circumstances it may be useful to avoid calculating the 3D temperature, 472 salinity and velocity fields and simply read them in from a previous run or receive them from OASIS. 434 473 For example: 435 474 436 475 \begin{itemize} 437 \item Multiple runs of the model are required in code development to see the effect of different algorithms in 438 the bulk formulae. 439 \item The effect of different parameter sets in the ice model is to be examined. 440 \item Development of sea-ice algorithms or parameterizations. 441 \item spinup of the iceberg floats 442 \item ocean/sea-ice simulation with both media running in parallel (\np{ln\_mixcpl}\forcode{ = .true.}) 476 \item 477 Multiple runs of the model are required in code development to 478 see the effect of different algorithms in the bulk formulae. 479 \item 480 The effect of different parameter sets in the ice model is to be examined. 481 \item 482 Development of sea-ice algorithms or parameterizations. 483 \item 484 Spinup of the iceberg floats 485 \item 486 Ocean/sea-ice simulation with both media running in parallel (\np{ln\_mixcpl}\forcode{ = .true.}) 443 487 \end{itemize} 444 488 … … 446 490 Its options are defined through the \ngn{namsbc\_sas} namelist variables. 447 491 A new copy of the model has to be compiled with a configuration based on ORCA2\_SAS\_LIM. 448 However no namelist parameters need be changed from the settings of the previous run (except perhaps nn{\_}date0) 492 However no namelist parameters need be changed from the settings of the previous run (except perhaps nn{\_}date0). 449 493 In this configuration, a few routines in the standard model are overriden by new versions. 450 494 Routines replaced are: 451 495 452 496 \begin{itemize} 453 \item \mdl{nemogcm} : This routine initialises the rest of the model and repeatedly calls the stp time stepping routine (\mdl{step}) 454 Since the ocean state is not calculated all associated initialisations have been removed. 455 \item \mdl{step} : The main time stepping routine now only needs to call the sbc routine (and a few utility functions). 456 \item \mdl{sbcmod} : This has been cut down and now only calculates surface forcing and the ice model required. New surface modules 457 that can function when only the surface level of the ocean state is defined can also be added (e.g. icebergs). 458 \item \mdl{daymod} : No ocean restarts are read or written (though the ice model restarts are retained), so calls to restart functions 459 have been removed. This also means that the calendar cannot be controlled by time in a restart file, so the user 460 must make sure that nn{\_}date0 in the model namelist is correct for his or her purposes. 461 \item \mdl{stpctl} : Since there is no free surface solver, references to it have been removed from \rou{stp\_ctl} module. 462 \item \mdl{diawri} : All 3D data have been removed from the output. The surface temperature, salinity and velocity components (which 463 have been read in) are written along with relevant forcing and ice data. 497 \item 498 \mdl{nemogcm}: 499 This routine initialises the rest of the model and repeatedly calls the stp time stepping routine (\mdl{step}). 500 Since the ocean state is not calculated all associated initialisations have been removed. 501 \item 502 \mdl{step}: 503 The main time stepping routine now only needs to call the sbc routine (and a few utility functions). 504 \item 505 \mdl{sbcmod}: 506 This has been cut down and now only calculates surface forcing and the ice model required. 507 New surface modules that can function when only the surface level of the ocean state is defined can also be added 508 (e.g. icebergs). 509 \item 510 \mdl{daymod}: 511 No ocean restarts are read or written (though the ice model restarts are retained), 512 so calls to restart functions have been removed. 513 This also means that the calendar cannot be controlled by time in a restart file, 514 so the user must make sure that nn{\_}date0 in the model namelist is correct for his or her purposes. 515 \item 516 \mdl{stpctl}: 517 Since there is no free surface solver, references to it have been removed from \rou{stp\_ctl} module. 518 \item 519 \mdl{diawri}: 520 All 3D data have been removed from the output. 521 The surface temperature, salinity and velocity components (which have been read in) are written along with 522 relevant forcing and ice data. 464 523 \end{itemize} 465 524 … … 467 526 468 527 \begin{itemize} 469 \item \mdl{sbcsas} : This module initialises the input files needed for reading temperature, salinity and velocity arrays at the surface. 470 These filenames are supplied in namelist namsbc{\_}sas. Unfortunately because of limitations with the \mdl{iom} module, 471 the full 3D fields from the mean files have to be read in and interpolated in time, before using just the top level. 472 Since fldread is used to read in the data, Interpolation on the Fly may be used to change input data resolution. 528 \item 529 \mdl{sbcsas}: 530 This module initialises the input files needed for reading temperature, salinity and 531 velocity arrays at the surface. 532 These filenames are supplied in namelist namsbc{\_}sas. 533 Unfortunately because of limitations with the \mdl{iom} module, 534 the full 3D fields from the mean files have to be read in and interpolated in time, 535 before using just the top level. 536 Since fldread is used to read in the data, Interpolation on the Fly may be used to change input data resolution. 473 537 \end{itemize} 474 538 … … 492 556 493 557 The analytical formulation of the surface boundary condition is the default scheme. 494 In this case, all the six fluxes needed by the ocean are assumed to 495 be uniform in space. They take constant values given in the namelist 496 \ngn{namsbc{\_}ana} by the variables \np{rn\_utau0}, \np{rn\_vtau0}, \np{rn\_qns0}, 497 \np{rn\_qsr0}, and \np{rn\_emp0} ($\textit{emp}=\textit{emp}_S$). The runoff is set to zero. 498 In addition, the wind is allowed to reach its nominal value within a given number 499 of time steps (\np{nn\_tau000}).500 501 If a user wants to apply a different analytical forcing, the \mdl{sbcana}502 module can be modified to use another scheme. As an example, 503 the \mdl{sbc\_ana\_gyre} routine provides the analytical forcing for the 504 GYRE configuration(see GYRE configuration manual, in preparation).558 In this case, all the six fluxes needed by the ocean are assumed to be uniform in space. 559 They take constant values given in the namelist \ngn{namsbc{\_}ana} by 560 the variables \np{rn\_utau0}, \np{rn\_vtau0}, \np{rn\_qns0}, \np{rn\_qsr0}, and \np{rn\_emp0} 561 ($\textit{emp}=\textit{emp}_S$). 562 The runoff is set to zero. 563 In addition, the wind is allowed to reach its nominal value within a given number of time steps (\np{nn\_tau000}). 564 565 If a user wants to apply a different analytical forcing, 566 the \mdl{sbcana} module can be modified to use another scheme. 567 As an example, the \mdl{sbc\_ana\_gyre} routine provides the analytical forcing for the GYRE configuration 568 (see GYRE configuration manual, in preparation). 505 569 506 570 … … 515 579 %------------------------------------------------------------------------------------------------------------- 516 580 517 In the flux formulation (\np{ln\_flx}\forcode{ = .true.}), the surface boundary 518 condition fields are directly read from input files. The user has to define 519 in the namelist \ngn{namsbc{\_}flx} the name of the file, the name of the variable 520 read in the file, the time frequency at which it is given (in hours), and a logical 521 setting whether a time interpolation to the model time step is required 522 for this field. See \autoref{subsec:SBC_fldread} for a more detailed description of the parameters. 523 524 Note that in general, a flux formulation is used in associated with a 525 restoring term to observed SST and/or SSS. See \autoref{subsec:SBC_ssr} for its 526 specification. 581 In the flux formulation (\np{ln\_flx}\forcode{ = .true.}), 582 the surface boundary condition fields are directly read from input files. 583 The user has to define in the namelist \ngn{namsbc{\_}flx} the name of the file, 584 the name of the variable read in the file, the time frequency at which it is given (in hours), 585 and a logical setting whether a time interpolation to the model time step is required for this field. 586 See \autoref{subsec:SBC_fldread} for a more detailed description of the parameters. 587 588 Note that in general, a flux formulation is used in associated with a restoring term to observed SST and/or SSS. 589 See \autoref{subsec:SBC_ssr} for its specification. 527 590 528 591 … … 534 597 \label{sec:SBC_blk} 535 598 536 In the bulk formulation, the surface boundary condition fields are computed 537 using bulk formulae and atmospheric fields and ocean (and ice) variables. 538 539 The atmospheric fields used depend on the bulk formulae used. Three bulk formulations 540 are available : the CORE, the CLIO and the MFS bulk formulea. The choice is made by setting to true 541 one of the following namelist variable : \np{ln\_core} ; \np{ln\_clio} or \np{ln\_mfs}. 542 543 Note : in forced mode, when a sea-ice model is used, a bulk formulation (CLIO or CORE) have to be used. 544 Therefore the two bulk (CLIO and CORE) formulea include the computation of the fluxes over both 545 an ocean and an ice surface. 599 In the bulk formulation, the surface boundary condition fields are computed using bulk formulae and atmospheric fields and ocean (and ice) variables. 600 601 The atmospheric fields used depend on the bulk formulae used. 602 Three bulk formulations are available: 603 the CORE, the CLIO and the MFS bulk formulea. 604 The choice is made by setting to true one of the following namelist variable: 605 \np{ln\_core} ; \np{ln\_clio} or \np{ln\_mfs}. 606 607 Note: 608 in forced mode, when a sea-ice model is used, a bulk formulation (CLIO or CORE) have to be used. 609 Therefore the two bulk (CLIO and CORE) formulea include the computation of the fluxes over 610 both an ocean and an ice surface. 546 611 547 612 % ------------------------------------------------------------------------------------------------------------- … … 555 620 %------------------------------------------------------------------------------------------------------------- 556 621 557 The CORE bulk formulae have been developed by \citet{Large_Yeager_Rep04}. 558 They have been designed to handle the CORE forcing, a mixture of NCEP 559 reanalysis and satellite data. They use an inertial dissipative method to compute 560 the turbulent transfer coefficients (momentum, sensible heat and evaporation) 561 from the 10 metre wind speed, air temperature and specific humidity. 562 This \citet{Large_Yeager_Rep04} dataset is available through the 563 \href{http://nomads.gfdl.noaa.gov/nomads/forms/mom4/CORE.html}{GFDL web site}. 564 565 Note that substituting ERA40 to NCEP reanalysis fields 566 does not require changes in the bulk formulea themself. 567 This is the so-called DRAKKAR Forcing Set (DFS) \citep{Brodeau_al_OM09}. 622 The CORE bulk formulae have been developed by \citet{Large_Yeager_Rep04}. 623 They have been designed to handle the CORE forcing, a mixture of NCEP reanalysis and satellite data. 624 They use an inertial dissipative method to compute the turbulent transfer coefficients 625 (momentum, sensible heat and evaporation) from the 10 metre wind speed, air temperature and specific humidity. 626 This \citet{Large_Yeager_Rep04} dataset is available through 627 the \href{http://nomads.gfdl.noaa.gov/nomads/forms/mom4/CORE.html}{GFDL web site}. 628 629 Note that substituting ERA40 to NCEP reanalysis fields does not require changes in the bulk formulea themself. 630 This is the so-called DRAKKAR Forcing Set (DFS) \citep{Brodeau_al_OM09}. 568 631 569 632 Options are defined through the \ngn{namsbc\_core} namelist variables. … … 589 652 %-------------------------------------------------------------------------------------------------------------- 590 653 591 Note that the air velocity is provided at a tracer ocean point, not at a velocity ocean 592 point ($u$- and $v$-points). It is simpler and faster (less fields to be read), 593 but it is not the recommended method when the ocean grid size is the same 594 or larger than the one of the input atmospheric fields. 595 596 The \np{sn\_wndi}, \np{sn\_wndj}, \np{sn\_qsr}, \np{sn\_qlw}, \np{sn\_tair}, \np{sn\_humi}, 597 \np{sn\_prec}, \np{sn\_snow}, \np{sn\_tdif} parameters describe the fields 598 and the way they have to be used (spatial and temporal interpolations). 654 Note that the air velocity is provided at a tracer ocean point, not at a velocity ocean point ($u$- and $v$-points). 655 It is simpler and faster (less fields to be read), but it is not the recommended method when 656 the ocean grid size is the same or larger than the one of the input atmospheric fields. 657 658 The \np{sn\_wndi}, \np{sn\_wndj}, \np{sn\_qsr}, \np{sn\_qlw}, \np{sn\_tair}, \np{sn\_humi}, \np{sn\_prec}, 659 \np{sn\_snow}, \np{sn\_tdif} parameters describe the fields and the way they have to be used 660 (spatial and temporal interpolations). 599 661 600 662 \np{cn\_dir} is the directory of location of bulk files … … 603 665 \np{rn\_zu}: is the height of wind measurements (m) 604 666 605 Three multiplicative factors are availables 606 \np{rn\_pfac} and \np{rn\_efac} allows to adjust (if necessary) the global freshwater budget 607 byincreasing/reducing the precipitations (total and snow) and or evaporation, respectively.608 The third one,\np{rn\_vfac}, control to which extend the ice/ocean velocities are taken into account 609 in the calculation of surface wind stress. Its range should be between zero and one, 610 and it is recommended to set it to 0.667 Three multiplicative factors are availables: 668 \np{rn\_pfac} and \np{rn\_efac} allows to adjust (if necessary) the global freshwater budget by 669 increasing/reducing the precipitations (total and snow) and or evaporation, respectively. 670 The third one,\np{rn\_vfac}, control to which extend the ice/ocean velocities are taken into account in 671 the calculation of surface wind stress. 672 Its range should be between zero and one, and it is recommended to set it to 0. 611 673 612 674 % ------------------------------------------------------------------------------------------------------------- … … 620 682 %------------------------------------------------------------------------------------------------------------- 621 683 622 The CLIO bulk formulae were developed several years ago for the 623 Louvain-la-neuve coupled ice-ocean model(CLIO, \cite{Goosse_al_JGR99}).624 They are simpler bulk formulae. They assume the stress to be known and625 compute the radiative fluxes from a climatological cloud cover.684 The CLIO bulk formulae were developed several years ago for the Louvain-la-neuve coupled ice-ocean model 685 (CLIO, \cite{Goosse_al_JGR99}). 686 They are simpler bulk formulae. 687 They assume the stress to be known and compute the radiative fluxes from a climatological cloud cover. 626 688 627 689 Options are defined through the \ngn{namsbc\_clio} namelist variables. … … 647 709 %-------------------------------------------------------------------------------------------------------------- 648 710 649 As for the flux formulation, information about the input data required by the 650 model is provided in the namsbc\_blk\_core or namsbc\_blk\_clio 651 namelist (see \autoref{subsec:SBC_fldread}). 711 As for the flux formulation, information about the input data required by the model is provided in 712 the namsbc\_blk\_core or namsbc\_blk\_clio namelist (see \autoref{subsec:SBC_fldread}). 652 713 653 714 % ------------------------------------------------------------------------------------------------------------- … … 661 722 %---------------------------------------------------------------------------------------------------------- 662 723 663 The MFS (Mediterranean Forecasting System) bulk formulae have been developed by 664 \citet{Castellari_al_JMS1998}. 665 They have been designed to handle the ECMWF operational data and are currently 666 in use in the MFS operational system \citep{Tonani_al_OS08}, \citep{Oddo_al_OS09}. 724 The MFS (Mediterranean Forecasting System) bulk formulae have been developed by \citet{Castellari_al_JMS1998}. 725 They have been designed to handle the ECMWF operational data and are currently in use in 726 the MFS operational system \citep{Tonani_al_OS08}, \citep{Oddo_al_OS09}. 667 727 The wind stress computation uses a drag coefficient computed according to \citet{Hellerman_Rosenstein_JPO83}. 668 The surface boundary condition for temperature involves the balance between surface solar radiation, 669 net long-wave radiation, the latent and sensible heat fluxes. 670 Solar radiation is dependent on cloud cover and is computed by means of 671 an astronomical formula \citep{Reed_JPO77}. Albedo monthly values are from \citet{Payne_JAS72} 672 as means of the values at $40^{o}N$ and $30^{o}N$ for the Atlantic Ocean (hence the same latitudinal 673 band of the Mediterranean Sea). The net long-wave radiation flux 674 \citep{Bignami_al_JGR95} is a function of 728 The surface boundary condition for temperature involves the balance between 729 surface solar radiation, net long-wave radiation, the latent and sensible heat fluxes. 730 Solar radiation is dependent on cloud cover and is computed by means of an astronomical formula \citep{Reed_JPO77}. 731 Albedo monthly values are from \citet{Payne_JAS72} as means of the values at $40^{o}N$ and $30^{o}N$ for 732 the Atlantic Ocean (hence the same latitudinal band of the Mediterranean Sea). 733 The net long-wave radiation flux \citep{Bignami_al_JGR95} is a function of 675 734 air temperature, sea-surface temperature, cloud cover and relative humidity. 676 Sensible heat and latent heat fluxes are computed by classical 677 bulk formulae parameterised according to\citet{Kondo1975}.735 Sensible heat and latent heat fluxes are computed by classical bulk formulae parameterised according to 736 \citet{Kondo1975}. 678 737 Details on the bulk formulae used can be found in \citet{Maggiore_al_PCE98} and \citet{Castellari_al_JMS1998}. 679 738 680 Options are defined through the 681 The required 7 input fields must be provided on the model Grid-T and 739 Options are defined through the \ngn{namsbc\_mfs} namelist variables. 740 The required 7 input fields must be provided on the model Grid-T and are: 682 741 \begin{itemize} 683 742 \item Zonal Component of the 10m wind ($ms^{-1}$) (\np{sn\_windi}) … … 700 759 %------------------------------------------------------------------------------------------------------------- 701 760 702 In the coupled formulation of the surface boundary condition, the fluxes are703 provided by the OASIS coupler at a frequency which is defined in the OASIS coupler, 704 while sea and ice surface temperature, ocean and ice albedo, and ocean currents 705 are sent tothe atmospheric component.706 707 A generalised coupled interface has been developed. 708 It is currently interfaced with OASIS-3-MCT (\key{oasis3}). 709 It has been successfully used to interface \NEMO to most of the European atmospheric 710 GCM (ARPEGE, ECHAM, ECMWF, HadAM, HadGAM, LMDz), 711 as well as to \href{http://wrf-model.org/}{WRF}(Weather Research and Forecasting Model).712 713 Note that in addition to the setting of \np{ln\_cpl} to true, the \key{coupled} have to be defined. 714 The CPP key is mainly used in sea-ice to ensure that the atmospheric fluxes are 715 actually recieved bythe ice-ocean system (no calculation of ice sublimation in coupled mode).761 In the coupled formulation of the surface boundary condition, 762 the fluxes are provided by the OASIS coupler at a frequency which is defined in the OASIS coupler, 763 while sea and ice surface temperature, ocean and ice albedo, and ocean currents are sent to 764 the atmospheric component. 765 766 A generalised coupled interface has been developed. 767 It is currently interfaced with OASIS-3-MCT (\key{oasis3}). 768 It has been successfully used to interface \NEMO to most of the European atmospheric GCM 769 (ARPEGE, ECHAM, ECMWF, HadAM, HadGAM, LMDz), as well as to \href{http://wrf-model.org/}{WRF} 770 (Weather Research and Forecasting Model). 771 772 Note that in addition to the setting of \np{ln\_cpl} to true, the \key{coupled} have to be defined. 773 The CPP key is mainly used in sea-ice to ensure that the atmospheric fluxes are actually received by 774 the ice-ocean system (no calculation of ice sublimation in coupled mode). 716 775 When PISCES biogeochemical model (\key{top} and \key{pisces}) is also used in the coupled system, 717 the whole carbon cycle is computed by defining \key{cpl\_carbon\_cycle}. In this case, 718 CO$_2$ fluxes will be exchanged between the atmosphere and the ice-ocean system (and need to be activated in \ngn{namsbc{\_}cpl} ). 719 720 The namelist above allows control of various aspects of the coupling fields (particularly for 721 vectors) and now allows for any coupling fields to have multiple sea ice categories (as required by LIM3 722 and CICE). When indicating a multi-category coupling field in namsbc{\_}cpl the number of categories will be 723 determined by the number used in the sea ice model. In some limited cases it may be possible to specify 724 single category coupling fields even when the sea ice model is running with multiple categories - in this 725 case the user should examine the code to be sure the assumptions made are satisfactory. In cases where 726 this is definitely not possible the model should abort with an error message. The new code has been tested using 727 ECHAM with LIM2, and HadGAM3 with CICE but although it will compile with \key{lim3} additional minor code changes 728 may be required to run using LIM3. 776 the whole carbon cycle is computed by defining \key{cpl\_carbon\_cycle}. 777 In this case, CO$_2$ fluxes will be exchanged between the atmosphere and the ice-ocean system 778 (and need to be activated in \ngn{namsbc{\_}cpl} ). 779 780 The namelist above allows control of various aspects of the coupling fields (particularly for vectors) and 781 now allows for any coupling fields to have multiple sea ice categories (as required by LIM3 and CICE). 782 When indicating a multi-category coupling field in namsbc{\_}cpl the number of categories will be determined by 783 the number used in the sea ice model. 784 In some limited cases it may be possible to specify single category coupling fields even when 785 the sea ice model is running with multiple categories - 786 in this case the user should examine the code to be sure the assumptions made are satisfactory. 787 In cases where this is definitely not possible the model should abort with an error message. 788 The new code has been tested using ECHAM with LIM2, and HadGAM3 with CICE but 789 although it will compile with \key{lim3} additional minor code changes may be required to run using LIM3. 729 790 730 791 … … 739 800 %------------------------------------------------------------------------------------------------------------- 740 801 741 The optional atmospheric pressure can be used to force ocean and ice dynamics 742 (\np{ln\_apr\_dyn}\forcode{ = .true.}, \textit{\ngn{namsbc}} namelist ). 743 The input atmospheric forcing defined via \np{sn\_apr} structure (\textit{namsbc\_apr} namelist) 744 can be interpolated in time to the model time step, and even in space when the 745 interpolation on-the-fly is used. When used to force the dynamics, the atmospheric 746 pressure is further transformed into an equivalent inverse barometer sea surface height, 747 $\eta_{ib}$, using: 802 The optional atmospheric pressure can be used to force ocean and ice dynamics 803 (\np{ln\_apr\_dyn}\forcode{ = .true.}, \textit{\ngn{namsbc}} namelist). 804 The input atmospheric forcing defined via \np{sn\_apr} structure (\textit{namsbc\_apr} namelist) 805 can be interpolated in time to the model time step, and even in space when the interpolation on-the-fly is used. 806 When used to force the dynamics, the atmospheric pressure is further transformed into 807 an equivalent inverse barometer sea surface height, $\eta_{ib}$, using: 748 808 \begin{equation} \label{eq:SBC_ssh_ib} 749 809 \eta_{ib} = - \frac{1}{g\,\rho_o} \left( P_{atm} - P_o \right) 750 810 \end{equation} 751 811 where $P_{atm}$ is the atmospheric pressure and $P_o$ a reference atmospheric pressure. 752 A value of $101,000~N/m^2$ is used unless \np{ln\_ref\_apr} is set to true. In this case $P_o$ 753 is set to the value of $P_{atm}$ averaged over the ocean domain, $i.e.$ the mean value of 754 $\eta_{ib}$ is kept to zero at all time step. 755 756 The gradient of $\eta_{ib}$ is added to the RHS of the ocean momentum equation 757 (see \mdl{dynspg} for the ocean). For sea-ice, the sea surface height, $\eta_m$, 758 which is provided to the sea ice model is set to $\eta - \eta_{ib}$ (see \mdl{sbcssr} module). 759 $\eta_{ib}$ can be set in the output. This can simplify altimetry data and model comparison 760 as inverse barometer sea surface height is usually removed from these date prior to their distribution. 761 762 When using time-splitting and BDY package for open boundaries conditions, the equivalent 763 inverse barometer sea surface height $\eta_{ib}$ can be added to BDY ssh data: 812 A value of $101,000~N/m^2$ is used unless \np{ln\_ref\_apr} is set to true. 813 In this case $P_o$ is set to the value of $P_{atm}$ averaged over the ocean domain, 814 $i.e.$ the mean value of $\eta_{ib}$ is kept to zero at all time step. 815 816 The gradient of $\eta_{ib}$ is added to the RHS of the ocean momentum equation (see \mdl{dynspg} for the ocean). 817 For sea-ice, the sea surface height, $\eta_m$, which is provided to the sea ice model is set to $\eta - \eta_{ib}$ 818 (see \mdl{sbcssr} module). 819 $\eta_{ib}$ can be set in the output. 820 This can simplify altimetry data and model comparison as 821 inverse barometer sea surface height is usually removed from these date prior to their distribution. 822 823 When using time-splitting and BDY package for open boundaries conditions, 824 the equivalent inverse barometer sea surface height $\eta_{ib}$ can be added to BDY ssh data: 764 825 \np{ln\_apr\_obc} might be set to true. 765 826 … … 775 836 %----------------------------------------------------------------------------------------- 776 837 777 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 \np{.true.} in \ngn{nam\_tide}. This translates as an additional barotropic force in the momentum equations \ref{eq:PE_dyn} such that: 838 The tidal forcing, generated by the gravity forces of the Earth-Moon and Earth-Sun sytems, 839 is activated if \np{ln\_tide} and \np{ln\_tide\_pot} are both set to \np{.true.} in \ngn{nam\_tide}. 840 This translates as an additional barotropic force in the momentum equations \ref{eq:PE_dyn} such that: 778 841 \begin{equation} \label{eq:PE_dyn_tides} 779 842 \frac{\partial {\rm {\bf U}}_h }{\partial t}= ... … … 782 845 where $\Pi_{eq}$ stands for the equilibrium tidal forcing and $\Pi_{sal}$ a self-attraction and loading term (SAL). 783 846 784 The equilibrium tidal forcing is expressed as a sum over the chosen constituents $l$ in \ngn{nam\_tide}. The constituents are defined such that \np{clname(1) = 'M2', clname(2)='S2', etc...}. For the three types of tidal frequencies it reads : \\ 847 The equilibrium tidal forcing is expressed as a sum over the chosen constituents $l$ in \ngn{nam\_tide}. 848 The constituents are defined such that \np{clname(1) = 'M2', clname(2)='S2', etc...}. 849 For the three types of tidal frequencies it reads: \\ 785 850 Long period tides : 786 851 \begin{equation} … … 795 860 \Pi_{eq}(l)=A_{l}(1+k-h)(cos^{2}\phi)cos(\omega_{l}t+2\lambda+V_{l}) 796 861 \end{equation} 797 Here $A_{l}$ is the amplitude, $\omega_{l}$ is the frequency, $\phi$ the latitude, $\lambda$ the longitude, $V_{0l}$ a phase shift with respect to Greenwich meridian and $t$ the time. The Love number factor $(1+k-h)$ is here taken as a constant (0.7). 798 799 The SAL term should in principle be computed online as it depends on the model tidal prediction itself (see \citet{Arbic2004} for a discussion about the practical implementation of this term). Nevertheless, the complex calculations involved would make this computationally too expensive. Here, practical solutions are whether to read complex estimates $\Pi_{sal}(l)$ from an external model (\np{ln\_read\_load=.true.}) or use a ``scalar approximation'' (\np{ln\_scal\_load=.true.}). In the latter case, it reads:\\ 862 Here $A_{l}$ is the amplitude, $\omega_{l}$ is the frequency, $\phi$ the latitude, $\lambda$ the longitude, 863 $V_{0l}$ a phase shift with respect to Greenwich meridian and $t$ the time. 864 The Love number factor $(1+k-h)$ is here taken as a constant (0.7). 865 866 The SAL term should in principle be computed online as it depends on the model tidal prediction itself 867 (see \citet{Arbic2004} for a discussion about the practical implementation of this term). 868 Nevertheless, the complex calculations involved would make this computationally too expensive. 869 Here, practical solutions are whether to read complex estimates $\Pi_{sal}(l)$ from an external model 870 (\np{ln\_read\_load=.true.}) or use a ``scalar approximation'' (\np{ln\_scal\_load=.true.}). 871 In the latter case, it reads:\\ 800 872 \begin{equation} 801 873 \Pi_{sal} = \beta \eta 802 874 \end{equation} 803 where $\beta$ (\np{rn\_scal\_load}, $\approx0.09$) is a spatially constant scalar, often chosen to minimize tidal prediction errors. Setting both \np{ln\_read\_load} and \np{ln\_scal\_load} to false removes the SAL contribution. 875 where $\beta$ (\np{rn\_scal\_load}, $\approx0.09$) is a spatially constant scalar, 876 often chosen to minimize tidal prediction errors. 877 Setting both \np{ln\_read\_load} and \np{ln\_scal\_load} to false removes the SAL contribution. 804 878 805 879 % ================================================================ … … 834 908 River runoff generally enters the ocean at a nonzero depth rather than through the surface. 835 909 Many models, however, have traditionally inserted river runoff to the top model cell. 836 This was the case in \NEMO prior to the version 3.3, and was combined with an option 837 to increase vertical mixing near the river mouth. 838 839 However, with this method numerical and physical problems arise when the top grid cells are 840 of the order of one meter. This situation is common in coastal modelling and is becoming 841 more common in open ocean and climate modelling 842 \footnote{At least a top cells thickness of 1~meter and a 3 hours forcing frequency are 843 required to properly represent the diurnal cycle \citep{Bernie_al_JC05}. see also \autoref{fig:SBC_dcy}.}. 844 845 As such from V~3.3 onwards it is possible to add river runoff through a non-zero depth, and for the 846 temperature and salinity of the river to effect the surrounding ocean. 847 The user is able to specify, in a NetCDF input file, the temperature and salinity of the river, along with the 848 depth (in metres) which the river should be added to. 849 850 Namelist variables in \ngn{namsbc\_rnf}, \np{ln\_rnf\_depth}, \np{ln\_rnf\_sal} and \np{ln\_rnf\_temp} control whether 851 the river attributes (depth, salinity and temperature) are read in and used. If these are set 852 as false the river is added to the surface box only, assumed to be fresh (0~psu), and/or 853 taken as surface temperature respectively. 910 This was the case in \NEMO prior to the version 3.3, 911 and was combined with an option to increase vertical mixing near the river mouth. 912 913 However, with this method numerical and physical problems arise when the top grid cells are of the order of one meter. 914 This situation is common in coastal modelling and is becoming more common in open ocean and climate modelling 915 \footnote{ 916 At least a top cells thickness of 1~meter and a 3 hours forcing frequency are required to 917 properly represent the diurnal cycle \citep{Bernie_al_JC05}. 918 see also \autoref{fig:SBC_dcy}.}. 919 920 As such from V~3.3 onwards it is possible to add river runoff through a non-zero depth, 921 and for the temperature and salinity of the river to effect the surrounding ocean. 922 The user is able to specify, in a NetCDF input file, the temperature and salinity of the river, 923 along with the depth (in metres) which the river should be added to. 924 925 Namelist variables in \ngn{namsbc\_rnf}, \np{ln\_rnf\_depth}, \np{ln\_rnf\_sal} and 926 \np{ln\_rnf\_temp} control whether the river attributes (depth, salinity and temperature) are read in and used. 927 If these are set as false the river is added to the surface box only, assumed to be fresh (0~psu), 928 and/or taken as surface temperature respectively. 854 929 855 930 The runoff value and attributes are read in in sbcrnf. 856 For temperature -999 is taken as missing data and the river temperature is taken to be the857 surface temperatue at the river point.931 For temperature -999 is taken as missing data and the river temperature is taken to 932 be the surface temperatue at the river point. 858 933 For the depth parameter a value of -1 means the river is added to the surface box only, 859 934 and a value of -999 means the river is added through the entire water column. 860 After being read in the temperature and salinity variables are multiplied by the amount of runoff (converted into m/s) 861 to give the heat and salt content of the river runoff. 862 After the user specified depth is read ini, the number of grid boxes this corresponds to is 863 calculated and stored in the variable \np{nz\_rnf}. 864 The variable \textit{h\_dep} is then calculated to be the depth (in metres) of the bottom of the 865 lowest box the river water is being added to (i.e. the total depth that river water is being added to in the model). 866 867 The mass/volume addition due to the river runoff is, at each relevant depth level, added to the horizontal divergence 868 (\textit{hdivn}) in the subroutine \rou{sbc\_rnf\_div} (called from \mdl{divcur}). 935 After being read in the temperature and salinity variables are multiplied by the amount of runoff 936 (converted into m/s) to give the heat and salt content of the river runoff. 937 After the user specified depth is read ini, 938 the number of grid boxes this corresponds to is calculated and stored in the variable \np{nz\_rnf}. 939 The variable \textit{h\_dep} is then calculated to be the depth (in metres) of 940 the bottom of the lowest box the river water is being added to 941 (i.e. the total depth that river water is being added to in the model). 942 943 The mass/volume addition due to the river runoff is, at each relevant depth level, added to 944 the horizontal divergence (\textit{hdivn}) in the subroutine \rou{sbc\_rnf\_div} (called from \mdl{divcur}). 869 945 This increases the diffusion term in the vicinity of the river, thereby simulating a momentum flux. 870 The sea surface height is calculated using the sum of the horizontal divergence terms, and so the871 river runoff indirectly forces an increase in sea surface height.946 The sea surface height is calculated using the sum of the horizontal divergence terms, 947 and so the river runoff indirectly forces an increase in sea surface height. 872 948 873 949 The \textit{hdivn} terms are used in the tracer advection modules to force vertical velocities. 874 This causes a mass of water, equal to the amount of runoff, to be moved into the box above. 875 The heat and salt content of the river runoff is not included in this step, and so the tracer 876 concentrations are diluted as water of ocean temperature and salinity is moved upward out of the box 877 and replaced by the same volume of river water with no corresponding heat and salt addition. 878 879 For the linear free surface case, at the surface box the tracer advection causes a flux of water 880 (of equal volume to the runoff) through the sea surface out of the domain, which causes a salt and heat flux out of the model. 950 This causes a mass of water, equal to the amount of runoff, to be moved into the box above. 951 The heat and salt content of the river runoff is not included in this step, 952 and so the tracer concentrations are diluted as water of ocean temperature and salinity is moved upward out of 953 the box and replaced by the same volume of river water with no corresponding heat and salt addition. 954 955 For the linear free surface case, at the surface box the tracer advection causes a flux of water 956 (of equal volume to the runoff) through the sea surface out of the domain, 957 which causes a salt and heat flux out of the model. 881 958 As such the volume of water does not change, but the water is diluted. 882 959 883 960 For the non-linear free surface case (\key{vvl}), no flux is allowed through the surface. 884 Instead in the surface box (as well as water moving up from the boxes below) a volume of runoff water 885 is added withno corresponding heat and salt addition and so as happens in the lower boxes there is a dilution effect.886 (The runoff addition to the top box along with the water being moved up through boxes below means the surface box has a large887 increase in volume, whilst all other boxes remain the same size)961 Instead in the surface box (as well as water moving up from the boxes below) a volume of runoff water is added with 962 no corresponding heat and salt addition and so as happens in the lower boxes there is a dilution effect. 963 (The runoff addition to the top box along with the water being moved up through 964 boxes below means the surface box has a large increase in volume, whilst all other boxes remain the same size) 888 965 889 966 In trasbc the addition of heat and salt due to the river runoff is added. 890 967 This is done in the same way for both vvl and non-vvl. 891 The temperature and salinity are increased through the specified depth according to the heat and salt content of the river. 892 893 In the non-linear free surface case (vvl), near the end of the time step the change in sea surface height is redistrubuted 894 through the grid boxes, so that the original ratios of grid box heights are restored. 895 In doing this water is moved into boxes below, throughout the water column, so the large volume addition to the surface box is spread between all the grid boxes. 896 897 It is also possible for runnoff to be specified as a negative value for modelling flow through straits, i.e. modelling the Baltic flow in and out of the North Sea. 898 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. 968 The temperature and salinity are increased through the specified depth according to 969 the heat and salt content of the river. 970 971 In the non-linear free surface case (vvl), 972 near the end of the time step the change in sea surface height is redistrubuted through the grid boxes, 973 so that the original ratios of grid box heights are restored. 974 In doing this water is moved into boxes below, throughout the water column, 975 so the large volume addition to the surface box is spread between all the grid boxes. 976 977 It is also possible for runnoff to be specified as a negative value for modelling flow through straits, 978 i.e. modelling the Baltic flow in and out of the North Sea. 979 When the flow is out of the domain there is no change in temperature and salinity, 980 regardless of the namelist options used, 981 as the ocean water leaving the domain removes heat and salt (at the same concentration) with it. 899 982 900 983 … … 931 1014 \begin{description} 932 1015 \item[\np{nn\_isf}\forcode{ = 1}] 933 The ice shelf cavity is represented (\np{ln\_isfcav}\forcode{ = .true.} needed). The fwf and heat flux are computed. 934 Two different bulk formula are available: 1016 The ice shelf cavity is represented (\np{ln\_isfcav}\forcode{ = .true.} needed). 1017 The fwf and heat flux are computed. 1018 Two different bulk formula are available: 935 1019 \begin{description} 936 1020 \item[\np{nn\_isfblk}\forcode{ = 1}] 937 938 This formulation is based on a balance between the upward ocean heat flux and the latent heat flux at the ice shelf base.939 940 \item[\np{nn\_isfblk}\forcode{ = 2}] 941 942 This formulation is based on a 3 equations formulation (a heat flux budget, a salt flux budget943 1021 The bulk formula used to compute the melt is based the one described in \citet{Hunter2006}. 1022 This formulation is based on a balance between the upward ocean heat flux and 1023 the latent heat flux at the ice shelf base. 1024 \item[\np{nn\_isfblk}\forcode{ = 2}] 1025 The bulk formula used to compute the melt is based the one described in \citet{Jenkins1991}. 1026 This formulation is based on a 3 equations formulation 1027 (a heat flux budget, a salt flux budget and a linearised freezing point temperature equation). 944 1028 \end{description} 945 946 For this 2 bulk formulations, there are 3 different ways to compute the exchange coeficient: 1029 For this 2 bulk formulations, there are 3 different ways to compute the exchange coeficient: 947 1030 \begin{description} 948 \item[\np{nn\_gammablk}\forcode{ = 0}] 949 The salt and heat exchange coefficients are constant and defined by \np{rn\_gammas0} and \np{rn\_gammat0} 950 1031 \item[\np{nn\_gammablk}\forcode{ = 0}] 1032 The salt and heat exchange coefficients are constant and defined by \np{rn\_gammas0} and \np{rn\_gammat0} 951 1033 \item[\np{nn\_gammablk}\forcode{ = 1}] 952 The salt and heat exchange coefficients are velocity dependent and defined as \np{rn\_gammas0}$ \times u_{*}$ and \np{rn\_gammat0}$ \times u_{*}$ 953 where $u_{*}$ is the friction velocity in the top boundary layer (ie first \np{rn\_hisf\_tbl} meters).954 See \citet{Jenkins2010} for all the details on this formulation.955 1034 The salt and heat exchange coefficients are velocity dependent and defined as 1035 \np{rn\_gammas0}$ \times u_{*}$ and \np{rn\_gammat0}$ \times u_{*}$ where 1036 $u_{*}$ is the friction velocity in the top boundary layer (ie first \np{rn\_hisf\_tbl} meters). 1037 See \citet{Jenkins2010} for all the details on this formulation. 956 1038 \item[\np{nn\_gammablk}\forcode{ = 2}] 957 The salt and heat exchange coefficients are velocity and stability dependent and defined as 958 $\gamma_{T,S} = \frac{u_{*}}{\Gamma_{Turb} + \Gamma^{T,S}_{Mole}}$959 where $u_{*}$ is the friction velocity in the top boundary layer (ie first \np{rn\_hisf\_tbl} meters),960 $\Gamma_{Turb}$ the contribution of the ocean stability and961 962 963 964 965 \item[\np{nn\_isf}\forcode{ = 2}] 966 A parameterisation of isf is used. The ice shelf cavity is not represented. 967 The fwf is distributed along the ice shelf edge between the depth of the average grounding line (GL) 968 (\np{sn\_depmax\_isf}) and the base of the ice shelf along the calving front (\np{sn\_depmin\_isf}) as in (\np{nn\_isf}\forcode{ = 3}). 969 Furthermore the fwf and heat flux are computed using the \citet{Beckmann2003} parameterisation of isf melting. 970 The effective melting length (\np{sn\_Leff\_isf}) is read from a file.971 972 \item[\np{nn\_isf}\forcode{ = 3}] 973 A simple parameterisation of isf is used. The ice shelf cavity is not represented. 974 The fwf (\np{sn\_rnfisf}) is prescribed and distributed along the ice shelf edge between the depth of the average grounding line (GL) 975 (\np{sn\_depmax\_isf}) and the base of the ice shelf along the calving front (\np{sn\_depmin\_isf}). 976 The heat flux ($Q_h$) is computed as $Q_h = fwf \times L_f$.977 978 \item[\np{nn\_isf}\forcode{ = 4}] 979 The ice shelf cavity is opened (\np{ln\_isfcav}\forcode{ = .true.} needed). However, the fwf is not computed but specified from file \np{sn\_fwfisf}). 980 The heat flux ($Q_h$) is computed as $Q_h = fwf \times L_f$.\\1039 The salt and heat exchange coefficients are velocity and stability dependent and defined as 1040 $\gamma_{T,S} = \frac{u_{*}}{\Gamma_{Turb} + \Gamma^{T,S}_{Mole}}$ where 1041 $u_{*}$ is the friction velocity in the top boundary layer (ie first \np{rn\_hisf\_tbl} meters), 1042 $\Gamma_{Turb}$ the contribution of the ocean stability and 1043 $\Gamma^{T,S}_{Mole}$ the contribution of the molecular diffusion. 1044 See \citet{Holland1999} for all the details on this formulation. 1045 \end{description} 1046 \item[\np{nn\_isf}\forcode{ = 2}] 1047 A parameterisation of isf is used. The ice shelf cavity is not represented. 1048 The fwf is distributed along the ice shelf edge between the depth of the average grounding line (GL) 1049 (\np{sn\_depmax\_isf}) and the base of the ice shelf along the calving front 1050 (\np{sn\_depmin\_isf}) as in (\np{nn\_isf}\forcode{ = 3}). 1051 Furthermore the fwf and heat flux are computed using the \citet{Beckmann2003} parameterisation of isf melting. 1052 The effective melting length (\np{sn\_Leff\_isf}) is read from a file. 1053 \item[\np{nn\_isf}\forcode{ = 3}] 1054 A simple parameterisation of isf is used. The ice shelf cavity is not represented. 1055 The fwf (\np{sn\_rnfisf}) is prescribed and distributed along the ice shelf edge between 1056 the depth of the average grounding line (GL) (\np{sn\_depmax\_isf}) and 1057 the base of the ice shelf along the calving front (\np{sn\_depmin\_isf}). 1058 The heat flux ($Q_h$) is computed as $Q_h = fwf \times L_f$. 1059 \item[\np{nn\_isf}\forcode{ = 4}] 1060 The ice shelf cavity is opened (\np{ln\_isfcav}\forcode{ = .true.} needed). 1061 However, the fwf is not computed but specified from file \np{sn\_fwfisf}). 1062 The heat flux ($Q_h$) is computed as $Q_h = fwf \times L_f$.\\ 981 1063 \end{description} 982 1064 983 984 $\bullet$ \np{nn\_isf}\forcode{ = 1} and \np{nn\_isf}\forcode{ = 2} compute a melt rate based on the water mass properties, ocean velocities and depth. 985 This flux is thus highly dependent of the model resolution (horizontal and vertical), realism of the water masses onto the shelf ...\\ 986 987 988 $\bullet$ \np{nn\_isf}\forcode{ = 3} and \np{nn\_isf}\forcode{ = 4} read the melt rate from a file. You have total control of the fwf forcing. 989 This can be usefull if the water masses on the shelf are not realistic or the resolution (horizontal/vertical) are too 990 coarse to have realistic melting or for studies where you need to control your heat and fw input.\\ 991 992 A namelist parameters control over how many meters the heat and fw fluxes are spread. 993 \np{rn\_hisf\_tbl}] is the top boundary layer thickness as defined in \citet{Losch2008}. 994 This parameter is only used if \np{nn\_isf}\forcode{ = 1} or \np{nn\_isf}\forcode{ = 4} 1065 $\bullet$ \np{nn\_isf}\forcode{ = 1} and \np{nn\_isf}\forcode{ = 2} compute a melt rate based on 1066 the water mass properties, ocean velocities and depth. 1067 This flux is thus highly dependent of the model resolution (horizontal and vertical), 1068 realism of the water masses onto the shelf ...\\ 1069 1070 $\bullet$ \np{nn\_isf}\forcode{ = 3} and \np{nn\_isf}\forcode{ = 4} read the melt rate from a file. 1071 You have total control of the fwf forcing. 1072 This can be useful if the water masses on the shelf are not realistic or 1073 the resolution (horizontal/vertical) are too coarse to have realistic melting or 1074 for studies where you need to control your heat and fw input.\\ 1075 1076 A namelist parameters control over how many meters the heat and fw fluxes are spread. 1077 \np{rn\_hisf\_tbl}] is the top boundary layer thickness as defined in \citet{Losch2008}. 1078 This parameter is only used if \np{nn\_isf}\forcode{ = 1} or \np{nn\_isf}\forcode{ = 4}. 995 1079 996 1080 If \np{rn\_hisf\_tbl}\forcode{ = 0}., the fluxes are put in the top level whatever is its tickness. 997 1081 998 If \np{rn\_hisf\_tbl} $>$ 0., the fluxes are spread over the first \np{rn\_hisf\_tbl} m (ie over one or several cells).\\ 1082 If \np{rn\_hisf\_tbl} $>$ 0., the fluxes are spread over the first \np{rn\_hisf\_tbl} m 1083 (ie over one or several cells).\\ 999 1084 1000 1085 The ice shelf melt is implemented as a volume flux with in the same way as for the runoff. 1001 The fw addition due to the ice shelf melting is, at each relevant depth level, added to the horizontal divergence1002 (\textit{hdivn}) in the subroutine \rou{sbc\_isf\_div}, called from \mdl{divcur}. 1003 See the runoff section \autoref{sec:SBC_rnf} for all the details about the divergence correction. 1086 The fw addition due to the ice shelf melting is, at each relevant depth level, added to 1087 the horizontal divergence (\textit{hdivn}) in the subroutine \rou{sbc\_isf\_div}, called from \mdl{divcur}. 1088 See the runoff section \autoref{sec:SBC_rnf} for all the details about the divergence correction. 1004 1089 1005 1090 … … 1010 1095 \nlst{namsbc_iscpl} 1011 1096 %-------------------------------------------------------------------------------------------------------- 1012 Ice sheet/ocean coupling is done through file exchange at the restart step. NEMO, at each restart step,1013 read the bathymetry and ice shelf draft variable in a netcdf file. 1014 If \np{ln\_iscpl}\forcode{ = .true.}, the isf draft is assume to be different at each restart step 1015 withpotentially some new wet/dry cells due to the ice sheet dynamics/thermodynamics.1097 Ice sheet/ocean coupling is done through file exchange at the restart step. 1098 NEMO, at each restart step, read the bathymetry and ice shelf draft variable in a netcdf file. 1099 If \np{ln\_iscpl}\forcode{ = .true.}, the isf draft is assume to be different at each restart step with 1100 potentially some new wet/dry cells due to the ice sheet dynamics/thermodynamics. 1016 1101 The wetting and drying scheme applied on the restart is very simple and described below for the 6 different cases: 1017 1102 \begin{description} 1018 1103 \item[Thin a cell down:] 1019 T/S/ssh are unchanged and U/V in the top cell are corrected to keep the barotropic transport (bt) constant ($bt_b=bt_n$). 1104 T/S/ssh are unchanged and U/V in the top cell are corrected to keep the barotropic transport (bt) constant 1105 ($bt_b=bt_n$). 1020 1106 \item[Enlarge a cell:] 1021 1107 See case "Thin a cell down" 1022 1108 \item[Dry a cell:] 1023 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$). 1109 mask, T/S, U/V and ssh are set to 0. 1110 Furthermore, U/V into the water column are modified to satisfy ($bt_b=bt_n$). 1024 1111 \item[Wet a cell:] 1025 mask is set to 1, T/S is extrapolated from neighbours, $ssh_n = ssh_b$ and U/V set to 0. If no neighbours along i,j and k, T/S/U/V and mask are set to 0. 1112 mask is set to 1, T/S is extrapolated from neighbours, $ssh_n = ssh_b$ and U/V set to 0. 1113 If no neighbours along i,j and k, T/S/U/V and mask are set to 0. 1026 1114 \item[Dry a column:] 1027 1115 mask, T/S, U/V are set to 0 everywhere in the column and ssh set to 0. 1028 1116 \item[Wet a column:] 1029 set mask to 1, T/S is extrapolated from neighbours, ssh is extrapolated from neighbours and U/V set to 0. If no neighbour, T/S/U/V and mask set to 0. 1117 set mask to 1, T/S is extrapolated from neighbours, ssh is extrapolated from neighbours and U/V set to 0. 1118 If no neighbour, T/S/U/V and mask set to 0. 1030 1119 \end{description} 1031 The extrapolation is call \np{nn\_drown} times. It means that if the grounding line retreat by more than \np{nn\_drown} cells between 2 coupling steps, 1032 the code will be unable to fill all the new wet cells properly. The default number is set up for the MISOMIP idealised experiments.\\ 1033 This coupling procedure is able to take into account grounding line and calving front migration. However, it is a non-conservative processe. 1034 This could lead to a trend in heat/salt content and volume. In order to remove the trend and keep the conservation level as close to 0 as possible, 1035 a simple conservation scheme is available with \np{ln\_hsb}\forcode{ = .true.}. The heat/salt/vol. gain/loss is diagnose, as well as the location. 1036 Based on what is done on sbcrnf to prescribed a source of heat/salt/vol., the heat/salt/vol. gain/loss is removed/added, 1037 over a period of \np{rn\_fiscpl} time step, into the system. 1120 The extrapolation is call \np{nn\_drown} times. 1121 It means that if the grounding line retreat by more than \np{nn\_drown} cells between 2 coupling steps, 1122 the code will be unable to fill all the new wet cells properly. 1123 The default number is set up for the MISOMIP idealised experiments.\\ 1124 This coupling procedure is able to take into account grounding line and calving front migration. 1125 However, it is a non-conservative processe. 1126 This could lead to a trend in heat/salt content and volume. 1127 In order to remove the trend and keep the conservation level as close to 0 as possible, 1128 a simple conservation scheme is available with \np{ln\_hsb}\forcode{ = .true.}. 1129 The heat/salt/vol. gain/loss is diagnose, as well as the location. 1130 Based on what is done on sbcrnf to prescribed a source of heat/salt/vol., 1131 the heat/salt/vol. gain/loss is removed/added, over a period of \np{rn\_fiscpl} time step, into the system. 1038 1132 So after \np{rn\_fiscpl} time step, all the heat/salt/vol. gain/loss due to extrapolation process is canceled.\\ 1039 1133 1040 As the before and now fields are not compatible (modification of the geometry), the restart time step is prescribed to be an euler time step instead of a leap frog and $fields_b = fields_n$. 1134 As the before and now fields are not compatible (modification of the geometry), 1135 the restart time step is prescribed to be an euler time step instead of a leap frog and $fields_b = fields_n$. 1041 1136 % 1042 1137 % ================================================================ … … 1053 1148 Their physical behaviour is controlled by equations as described in \citet{Martin_Adcroft_OM10} ). 1054 1149 (Note that the authors kindly provided a copy of their code to act as a basis for implementation in NEMO). 1055 Icebergs are initially spawned into one of ten classes which have specific mass and thickness as described1056 in the \ngn{namberg} namelist: 1057 \np{rn\_initial\_mass} and \np{rn\_initial\_thickness}. 1058 Each class has an associated scaling (\np{rn\_mass\_scaling}), which is an integer representing how many icebergs 1059 of this class are being described as one lagrangian point(this reduces the numerical problem of tracking every single iceberg).1150 Icebergs are initially spawned into one of ten classes which have specific mass and thickness as 1151 described in the \ngn{namberg} namelist: \np{rn\_initial\_mass} and \np{rn\_initial\_thickness}. 1152 Each class has an associated scaling (\np{rn\_mass\_scaling}), 1153 which is an integer representing how many icebergs of this class are being described as one lagrangian point 1154 (this reduces the numerical problem of tracking every single iceberg). 1060 1155 They are enabled by setting \np{ln\_icebergs}\forcode{ = .true.}. 1061 1156 … … 1063 1158 \begin{description} 1064 1159 \item[\np{nn\_test\_icebergs}~$>$~0] 1065 In this scheme, the value of \np{nn\_test\_icebergs} represents the class of iceberg to generate 1066 (so between 1 and 10), and \np{nn\_test\_icebergs} provides a lon/lat box in the domain at each 1067 grid point of which an iceberg is generated at the beginning of the run. 1068 (Note that this happens each time the timestep equals \np{nn\_nit000}.)1069 \np{nn\_test\_icebergs} is defined by four numbers in \np{nn\_test\_box} representing the corners 1070 ofthe geographical box: lonmin,lonmax,latmin,latmax1160 In this scheme, the value of \np{nn\_test\_icebergs} represents the class of iceberg to generate 1161 (so between 1 and 10), and \np{nn\_test\_icebergs} provides a lon/lat box in the domain at each grid point of 1162 which an iceberg is generated at the beginning of the run. 1163 (Note that this happens each time the timestep equals \np{nn\_nit000}.) 1164 \np{nn\_test\_icebergs} is defined by four numbers in \np{nn\_test\_box} representing the corners of 1165 the geographical box: lonmin,lonmax,latmin,latmax 1071 1166 \item[\np{nn\_test\_icebergs}\forcode{ = -1}] 1072 In this scheme the model reads a calving file supplied in the \np{sn\_icb} parameter. 1073 This should be a file with a field on the configuration grid (typically ORCA) representing ice accumulation rate at each model point. 1074 These should be ocean points adjacent to land where icebergs are known to calve. 1075 Most points in this input grid are going to have value zero. 1076 When the model runs, ice is accumulated at each grid point which has a non-zero source term. 1077 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). 1078 Note that this is the initial mass multiplied by the number each particle represents ($i.e.$ the scaling). 1079 If there is enough ice, a new iceberg is spawned and the total available ice reduced accordingly. 1167 In this scheme the model reads a calving file supplied in the \np{sn\_icb} parameter. 1168 This should be a file with a field on the configuration grid (typically ORCA) 1169 representing ice accumulation rate at each model point. 1170 These should be ocean points adjacent to land where icebergs are known to calve. 1171 Most points in this input grid are going to have value zero. 1172 When the model runs, ice is accumulated at each grid point which has a non-zero source term. 1173 At each time step, a test is performed to see if there is enough ice mass to 1174 calve an iceberg of each class in order (1 to 10). 1175 Note that this is the initial mass multiplied by the number each particle represents ($i.e.$ the scaling). 1176 If there is enough ice, a new iceberg is spawned and the total available ice reduced accordingly. 1080 1177 \end{description} 1081 1178 1082 1179 Icebergs are influenced by wind, waves and currents, bottom melt and erosion. 1083 The latter act to disintegrate the iceberg. This is either all melted freshwater, or 1084 (if \np{rn\_bits\_erosion\_fraction}~$>$~0) into melt and additionally small ice bits 1180 The latter act to disintegrate the iceberg. 1181 This is either all melted freshwater, 1182 or (if \np{rn\_bits\_erosion\_fraction}~$>$~0) into melt and additionally small ice bits 1085 1183 which are assumed to propagate with their larger parent and thus delay fluxing into the ocean. 1086 1184 Melt water (and other variables on the configuration grid) are written into the main NEMO model output files. … … 1091 1189 The amount of information is controlled by two integer parameters: 1092 1190 \begin{description} 1093 \item[\np{nn\_verbose\_level}] takes a value between one and four and represents1094 an increasing number of points in the code at which variables are written, and an 1095 increasing level of obscurity.1191 \item[\np{nn\_verbose\_level}] takes a value between one and four and 1192 represents an increasing number of points in the code at which variables are written, 1193 and an increasing level of obscurity. 1096 1194 \item[\np{nn\_verbose\_write}] is the number of timesteps between writes 1097 1195 \end{description} … … 1102 1200 When \key{mpp\_mpi} is defined, each output file contains only those icebergs in the corresponding processor. 1103 1201 Trajectory points are written out in the order of their parent iceberg in the model's "linked list" of icebergs. 1104 So care is needed to recreate data for individual icebergs, since its trajectory data may be spread across1105 multiple files.1202 So care is needed to recreate data for individual icebergs, 1203 since its trajectory data may be spread across multiple files. 1106 1204 1107 1205 … … 1125 1223 \begin{figure}[!t] \begin{center} 1126 1224 \includegraphics[width=0.8\textwidth]{Fig_SBC_diurnal} 1127 \caption{ \protect\label{fig:SBC_diurnal} 1128 Example of recontruction of the diurnal cycle variation of short wave flux 1129 from daily mean values. The reconstructed diurnal cycle (black line) is chosen 1130 as the mean value of the analytical cycle (blue line) over a time step, not 1131 as the mid time step value of the analytically cycle (red square). From \citet{Bernie_al_CD07}.} 1225 \caption{ \protect\label{fig:SBC_diurnal} 1226 Example of recontruction of the diurnal cycle variation of short wave flux from daily mean values. 1227 The reconstructed diurnal cycle (black line) is chosen as 1228 the mean value of the analytical cycle (blue line) over a time step, 1229 not as the mid time step value of the analytically cycle (red square). 1230 From \citet{Bernie_al_CD07}.} 1132 1231 \end{center} \end{figure} 1133 1232 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1134 1233 1135 \cite{Bernie_al_JC05} have shown that to capture 90$\%$ of the diurnal variability of 1136 SST requires a vertical resolution in upper ocean of 1~m or better and a temporal resolution 1137 of the surface fluxes of 3~h or less. Unfortunately high frequency forcing fields are rare, 1138 not to say inexistent. Nevertheless, it is possible to obtain a reasonable diurnal cycle 1139 of the SST knowning only short wave flux (SWF) at high frequency \citep{Bernie_al_CD07}. 1140 Furthermore, only the knowledge of daily mean value of SWF is needed, 1141 as higher frequency variations can be reconstructed from them, assuming that1142 the diurnal cycle of SWF is a scaling of the top of the atmosphere diurnal cycle 1143 of incident SWF. The \cite{Bernie_al_CD07} reconstruction algorithm is available 1144 in \NEMO by setting \np{ln\_dm2dc}\forcode{ = .true.} (a \textit{\ngn{namsbc}} namelist variable) when using 1145 CORE bulk formulea (\np{ln\_blk\_core}\forcode{ = .true.}) or the flux formulation (\np{ln\_flx}\forcode{ = .true.}). 1146 The reconstruction is performed in the \mdl{sbcdcy} module. The detail of the algoritm used1147 can be found in the appendix~A of \cite{Bernie_al_CD07}. The algorithm preserve the daily 1148 mean incomming SWF as the reconstructed SWF at a given time step is the mean value 1149 of the analytical cycle over this time step (\autoref{fig:SBC_diurnal}). 1150 The use of diurnal cycle reconstruction requires the input SWF to be daily 1234 \cite{Bernie_al_JC05} have shown that to capture 90$\%$ of the diurnal variability of SST requires a vertical resolution in upper ocean of 1~m or better and a temporal resolution of the surface fluxes of 3~h or less. 1235 Unfortunately high frequency forcing fields are rare, not to say inexistent. 1236 Nevertheless, it is possible to obtain a reasonable diurnal cycle of the SST knowning only short wave flux (SWF) at 1237 high frequency \citep{Bernie_al_CD07}. 1238 Furthermore, only the knowledge of daily mean value of SWF is needed, 1239 as higher frequency variations can be reconstructed from them, 1240 assuming that the diurnal cycle of SWF is a scaling of the top of the atmosphere diurnal cycle of incident SWF. 1241 The \cite{Bernie_al_CD07} reconstruction algorithm is available in \NEMO by 1242 setting \np{ln\_dm2dc}\forcode{ = .true.} (a \textit{\ngn{namsbc}} namelist variable) when 1243 using CORE bulk formulea (\np{ln\_blk\_core}\forcode{ = .true.}) or 1244 the flux formulation (\np{ln\_flx}\forcode{ = .true.}). 1245 The reconstruction is performed in the \mdl{sbcdcy} module. 1246 The detail of the algoritm used can be found in the appendix~A of \cite{Bernie_al_CD07}. 1247 The algorithm preserve the daily mean incoming SWF as the reconstructed SWF at 1248 a given time step is the mean value of the analytical cycle over this time step (\autoref{fig:SBC_diurnal}). 1249 The use of diurnal cycle reconstruction requires the input SWF to be daily 1151 1250 ($i.e.$ a frequency of 24 and a time interpolation set to true in \np{sn\_qsr} namelist parameter). 1152 1251 Furthermore, it is recommended to have a least 8 surface module time step per day, 1153 that is $\rdt \ nn\_fsbc < 10,800~s = 3~h$. An example of recontructed SWF1154 is given in \autoref{fig:SBC_dcy} for a 12 reconstructed diurnal cycle, one every 2~hours 1155 (from 1am to 11pm).1252 that is $\rdt \ nn\_fsbc < 10,800~s = 3~h$. 1253 An example of recontructed SWF is given in \autoref{fig:SBC_dcy} for a 12 reconstructed diurnal cycle, 1254 one every 2~hours (from 1am to 11pm). 1156 1255 1157 1256 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1158 1257 \begin{figure}[!t] \begin{center} 1159 1258 \includegraphics[width=0.7\textwidth]{Fig_SBC_dcy} 1160 \caption{ \protect\label{fig:SBC_dcy} 1161 Example of recontruction of the diurnal cycle variation of short wave flux 1162 from daily mean values on an ORCA2 grid with a time sampling of 2~hours (from 1am to 11pm). 1163 The display is on (i,j) plane. }1259 \caption{ \protect\label{fig:SBC_dcy} 1260 Example of recontruction of the diurnal cycle variation of short wave flux from 1261 daily mean values on an ORCA2 grid with a time sampling of 2~hours (from 1am to 11pm). 1262 The display is on (i,j) plane. } 1164 1263 \end{center} \end{figure} 1165 1264 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1166 1265 1167 Note also that the setting a diurnal cycle in SWF is highly recommended when 1168 the top layer thickness approach 1~m or less, otherwise large error in SST can 1169 appear due to an inconsistency between the scale of the vertical resolution 1170 and the forcing acting on that scale. 1266 Note also that the setting a diurnal cycle in SWF is highly recommended when 1267 the top layer thickness approach 1~m or less, otherwise large error in SST can appear due to 1268 an inconsistency between the scale of the vertical resolution and the forcing acting on that scale. 1171 1269 1172 1270 % ------------------------------------------------------------------------------------------------------------- … … 1176 1274 \label{subsec:SBC_rotation} 1177 1275 1178 When using a flux (\np{ln\_flx}\forcode{ = .true.}) or bulk (\np{ln\_clio}\forcode{ = .true.} or \np{ln\_core}\forcode{ = .true.}) formulation, 1179 pairs of vector components can be rotated from east-north directions onto the local grid directions. 1180 This is particularly useful when interpolation on the fly is used since here any vectors are likely to be defined 1181 relative to a rectilinear grid. 1276 When using a flux (\np{ln\_flx}\forcode{ = .true.}) or 1277 bulk (\np{ln\_clio}\forcode{ = .true.} or \np{ln\_core}\forcode{ = .true.}) formulation, 1278 pairs of vector components can be rotated from east-north directions onto the local grid directions. 1279 This is particularly useful when interpolation on the fly is used since here any vectors are likely to 1280 be defined relative to a rectilinear grid. 1182 1281 To activate this option a non-empty string is supplied in the rotation pair column of the relevant namelist. 1183 1282 The eastward component must start with "U" and the northward component with "V". 1184 1283 The remaining characters in the strings are used to identify which pair of components go together. 1185 So for example, strings "U1" and "V1" next to "utau" and "vtau" would pair the wind stress components together 1186 and rotate them on to the model grid directions; "U2" and "V2" could be used against a second pair of components, 1187 and so on.1284 So for example, strings "U1" and "V1" next to "utau" and "vtau" would pair the wind stress components together and 1285 rotate them on to the model grid directions; 1286 "U2" and "V2" could be used against a second pair of components, and so on. 1188 1287 The extra characters used in the strings are arbitrary. 1189 1288 The rot\_rep routine from the \mdl{geo2ocean} module is used to perform the rotation. … … 1199 1298 %------------------------------------------------------------------------------------------------------------- 1200 1299 1201 IOptions are defined through the 1202 n forced mode using a flux formulation (\np{ln\_flx}\forcode{ = .true.}), a 1203 feedback term \emph{must} be added to the surface heat flux $Q_{ns}^o$:1300 IOptions are defined through the \ngn{namsbc\_ssr} namelist variables. 1301 On forced mode using a flux formulation (\np{ln\_flx}\forcode{ = .true.}), 1302 a feedback term \emph{must} be added to the surface heat flux $Q_{ns}^o$: 1204 1303 \begin{equation} \label{eq:sbc_dmp_q} 1205 1304 Q_{ns} = Q_{ns}^o + \frac{dQ}{dT} \left( \left. T \right|_{k=1} - SST_{Obs} \right) 1206 1305 \end{equation} 1207 where SST is a sea surface temperature field (observed or climatological), $T$ is 1208 the model surface layer temperature and $\frac{dQ}{dT}$ is a negative feedback 1209 coefficient usually taken equal to $-40~W/m^2/K$. For a $50~m$ 1210 mixed-layer depth, this value corresponds to a relaxation time scale of two months. 1211 This term ensures that if $T$ perfectly matches the supplied SST, then $Q$ is 1212 equal to $Q_o$. 1213 1214 In the fresh water budget, a feedback term can also be added. Converted into an 1215 equivalent freshwater flux, it takes the following expression : 1306 where SST is a sea surface temperature field (observed or climatological), 1307 $T$ is the model surface layer temperature and 1308 $\frac{dQ}{dT}$ is a negative feedback coefficient usually taken equal to $-40~W/m^2/K$. 1309 For a $50~m$ mixed-layer depth, this value corresponds to a relaxation time scale of two months. 1310 This term ensures that if $T$ perfectly matches the supplied SST, then $Q$ is equal to $Q_o$. 1311 1312 In the fresh water budget, a feedback term can also be added. 1313 Converted into an equivalent freshwater flux, it takes the following expression : 1216 1314 1217 1315 \begin{equation} \label{eq:sbc_dmp_emp} … … 1220 1318 \end{equation} 1221 1319 1222 where $\textit{emp}_{o }$ is a net surface fresh water flux (observed, climatological or an 1223 atmospheric model product), \textit{SSS}$_{Obs}$ is a sea surface salinity (usually a time 1224 interpolation of the monthly mean Polar Hydrographic Climatology \citep{Steele2001}), 1225 $\left.S\right|_{k=1}$ is the model surface layer salinity and $\gamma_s$ is a negative 1226 feedback coefficient which is provided as a namelist parameter. Unlike heat flux, there is no 1227 physical justification for the feedback term in \autoref{eq:sbc_dmp_emp} as the atmosphere 1228 does not care about ocean surface salinity \citep{Madec1997}. The SSS restoring 1229 term should be viewed as a flux correction on freshwater fluxes to reduce the 1230 uncertainties we have on the observed freshwater budget. 1320 where $\textit{emp}_{o }$ is a net surface fresh water flux 1321 (observed, climatological or an atmospheric model product), 1322 \textit{SSS}$_{Obs}$ is a sea surface salinity 1323 (usually a time interpolation of the monthly mean Polar Hydrographic Climatology \citep{Steele2001}), 1324 $\left.S\right|_{k=1}$ is the model surface layer salinity and 1325 $\gamma_s$ is a negative feedback coefficient which is provided as a namelist parameter. 1326 Unlike heat flux, there is no physical justification for the feedback term in \autoref{eq:sbc_dmp_emp} as 1327 the atmosphere does not care about ocean surface salinity \citep{Madec1997}. 1328 The SSS restoring term should be viewed as a flux correction on freshwater fluxes to 1329 reduce the uncertainties we have on the observed freshwater budget. 1231 1330 1232 1331 % ------------------------------------------------------------------------------------------------------------- … … 1236 1335 \label{subsec:SBC_ice-cover} 1237 1336 1238 The presence at the sea surface of an ice covered area modifies all the fluxes 1239 transmitted to the ocean. There are several way to handle sea-ice in the system 1240 depending on the value of the \np{nn\_ice} namelist parameter found in \ngn{namsbc} namelist. 1337 The presence at the sea surface of an ice covered area modifies all the fluxes transmitted to the ocean. 1338 There are several way to handle sea-ice in the system depending on 1339 the value of the \np{nn\_ice} namelist parameter found in \ngn{namsbc} namelist. 1241 1340 \begin{description} 1242 \item[nn{\_}ice = 0] there will never be sea-ice in the computational domain. 1243 This is a typical namelist value used for tropical ocean domain. The surface fluxes 1244 are simply specified for an ice-free ocean. No specific things is done for sea-ice. 1245 \item[nn{\_}ice = 1] sea-ice can exist in the computational domain, but no sea-ice model 1246 is used. An observed ice covered area is read in a file. Below this area, the SST is 1247 restored to the freezing point and the heat fluxes are set to $-4~W/m^2$ ($-2~W/m^2$) 1248 in the northern (southern) hemisphere. The associated modification of the freshwater 1249 fluxes are done in such a way that the change in buoyancy fluxes remains zero. 1250 This prevents deep convection to occur when trying to reach the freezing point 1251 (and so ice covered area condition) while the SSS is too large. This manner of 1252 managing sea-ice area, just by using si IF case, is usually referred as the \textit{ice-if} 1253 model. It can be found in the \mdl{sbcice{\_}if} module. 1254 \item[nn{\_}ice = 2 or more] A full sea ice model is used. This model computes the 1255 ice-ocean fluxes, that are combined with the air-sea fluxes using the ice fraction of 1256 each model cell to provide the surface ocean fluxes. Note that the activation of a 1257 sea-ice model is is done by defining a CPP key (\key{lim3} or \key{cice}). 1258 The activation automatically overwrites the read value of nn{\_}ice to its appropriate 1259 value ($i.e.$ $2$ for LIM-3 or $3$ for CICE). 1341 \item[nn{\_}ice = 0] 1342 there will never be sea-ice in the computational domain. 1343 This is a typical namelist value used for tropical ocean domain. 1344 The surface fluxes are simply specified for an ice-free ocean. 1345 No specific things is done for sea-ice. 1346 \item[nn{\_}ice = 1] 1347 sea-ice can exist in the computational domain, but no sea-ice model is used. 1348 An observed ice covered area is read in a file. 1349 Below this area, the SST is restored to the freezing point and 1350 the heat fluxes are set to $-4~W/m^2$ ($-2~W/m^2$) in the northern (southern) hemisphere. 1351 The associated modification of the freshwater fluxes are done in such a way that 1352 the change in buoyancy fluxes remains zero. 1353 This prevents deep convection to occur when trying to reach the freezing point 1354 (and so ice covered area condition) while the SSS is too large. 1355 This manner of managing sea-ice area, just by using si IF case, 1356 is usually referred as the \textit{ice-if} model. 1357 It can be found in the \mdl{sbcice{\_}if} module. 1358 \item[nn{\_}ice = 2 or more] 1359 A full sea ice model is used. 1360 This model computes the ice-ocean fluxes, 1361 that are combined with the air-sea fluxes using the ice fraction of each model cell to 1362 provide the surface ocean fluxes. 1363 Note that the activation of a sea-ice model is is done by defining a CPP key (\key{lim3} or \key{cice}). 1364 The activation automatically overwrites the read value of nn{\_}ice to its appropriate value 1365 ($i.e.$ $2$ for LIM-3 or $3$ for CICE). 1260 1366 \end{description} 1261 1367 … … 1265 1371 \label{subsec:SBC_cice} 1266 1372 1267 It is now possible to couple a regional or global NEMO configuration (without AGRIF) to the CICE sea-ice 1268 model by using \key{cice}. The CICE code can be obtained from 1269 \href{http://oceans11.lanl.gov/trac/CICE/}{LANL} and the additional 'hadgem3' drivers will be required, 1270 even with the latest code release. Input grid files consistent with those used in NEMO will also be needed, 1271 and CICE CPP keys \textbf{ORCA\_GRID}, \textbf{CICE\_IN\_NEMO} and \textbf{coupled} should be used (seek advice from UKMO 1272 if necessary). Currently the code is only designed to work when using the CORE forcing option for NEMO (with 1273 \textit{calc\_strair}\forcode{ = .true.} and \textit{calc\_Tsfc}\forcode{ = .true.} in the CICE name-list), or alternatively when NEMO 1274 is coupled to the HadGAM3 atmosphere model (with \textit{calc\_strair}\forcode{ = .false.} and \textit{calc\_Tsfc}\forcode{ = false}). 1275 The code is intended to be used with \np{nn\_fsbc} set to 1 (although coupling ocean and ice less frequently 1276 should work, it is possible the calculation of some of the ocean-ice fluxes needs to be modified slightly - the 1277 user should check that results are not significantly different to the standard case). 1278 1279 There are two options for the technical coupling between NEMO and CICE. The standard version allows 1280 complete flexibility for the domain decompositions in the individual models, but this is at the expense of global 1281 gather and scatter operations in the coupling which become very expensive on larger numbers of processors. The 1282 alternative option (using \key{nemocice\_decomp} for both NEMO and CICE) ensures that the domain decomposition is 1283 identical in both models (provided domain parameters are set appropriately, and 1284 \textit{processor\_shape~=~square-ice} and \textit{distribution\_wght~=~block} in the CICE name-list) and allows 1285 much more efficient direct coupling on individual processors. This solution scales much better although it is at 1286 the expense of having more idle CICE processors in areas where there is no sea ice. 1373 It is now possible to couple a regional or global NEMO configuration (without AGRIF) 1374 to the CICE sea-ice model by using \key{cice}. 1375 The CICE code can be obtained from \href{http://oceans11.lanl.gov/trac/CICE/}{LANL} and 1376 the additional 'hadgem3' drivers will be required, even with the latest code release. 1377 Input grid files consistent with those used in NEMO will also be needed, 1378 and CICE CPP keys \textbf{ORCA\_GRID}, \textbf{CICE\_IN\_NEMO} and \textbf{coupled} should be used 1379 (seek advice from UKMO if necessary). 1380 Currently the code is only designed to work when using the CORE forcing option for NEMO 1381 (with \textit{calc\_strair}\forcode{ = .true.} and \textit{calc\_Tsfc}\forcode{ = .true.} in the CICE name-list), 1382 or alternatively when NEMO is coupled to the HadGAM3 atmosphere model 1383 (with \textit{calc\_strair}\forcode{ = .false.} and \textit{calc\_Tsfc}\forcode{ = false}). 1384 The code is intended to be used with \np{nn\_fsbc} set to 1 1385 (although coupling ocean and ice less frequently should work, 1386 it is possible the calculation of some of the ocean-ice fluxes needs to be modified slightly - 1387 the user should check that results are not significantly different to the standard case). 1388 1389 There are two options for the technical coupling between NEMO and CICE. 1390 The standard version allows complete flexibility for the domain decompositions in the individual models, 1391 but this is at the expense of global gather and scatter operations in the coupling which 1392 become very expensive on larger numbers of processors. 1393 The alternative option (using \key{nemocice\_decomp} for both NEMO and CICE) ensures that 1394 the domain decomposition is identical in both models (provided domain parameters are set appropriately, 1395 and \textit{processor\_shape~=~square-ice} and \textit{distribution\_wght~=~block} in the CICE name-list) and 1396 allows much more efficient direct coupling on individual processors. 1397 This solution scales much better although it is at the expense of having more idle CICE processors in areas where 1398 there is no sea ice. 1287 1399 1288 1400 % ------------------------------------------------------------------------------------------------------------- … … 1292 1404 \label{subsec:SBC_fwb} 1293 1405 1294 For global ocean simulation it can be useful to introduce a control of the mean sea 1295 level in order to prevent unrealistic drift of the sea surface height due to inaccuracy 1296 in the freshwater fluxes.In \NEMO, two way of controlling the the freshwater budget.1406 For global ocean simulation it can be useful to introduce a control of the mean sea level in order to 1407 prevent unrealistic drift of the sea surface height due to inaccuracy in the freshwater fluxes. 1408 In \NEMO, two way of controlling the the freshwater budget. 1297 1409 \begin{description} 1298 \item[\np{nn\_fwb}\forcode{ = 0}] no control at all. The mean sea level is free to drift, and will 1299 certainly do so. 1300 \item[\np{nn\_fwb}\forcode{ = 1}] global mean \textit{emp} set to zero at each model time step. 1410 \item[\np{nn\_fwb}\forcode{ = 0}] 1411 no control at all. 1412 The mean sea level is free to drift, and will certainly do so. 1413 \item[\np{nn\_fwb}\forcode{ = 1}] 1414 global mean \textit{emp} set to zero at each model time step. 1301 1415 %Note that with a sea-ice model, this technique only control the mean sea level with linear free surface (\key{vvl} not defined) and no mass flux between ocean and ice (as it is implemented in the current ice-ocean coupling). 1302 \item[\np{nn\_fwb}\forcode{ = 2}] freshwater budget is adjusted from the previous year annual1303 mean budget which is read in the \textit{EMPave\_old.dat} file. As the model uses the 1304 Boussinesq approximation, the annual mean fresh water budget is simply evaluated 1305 from the change in the mean sea level at January the first and saved in the 1306 \textit{EMPav.dat} file.1416 \item[\np{nn\_fwb}\forcode{ = 2}] 1417 freshwater budget is adjusted from the previous year annual mean budget which 1418 is read in the \textit{EMPave\_old.dat} file. 1419 As the model uses the Boussinesq approximation, the annual mean fresh water budget is simply evaluated from 1420 the change in the mean sea level at January the first and saved in the \textit{EMPav.dat} file. 1307 1421 \end{description} 1308 1422 … … 1318 1432 %------------------------------------------------------------------------------------------------------------- 1319 1433 1320 In order to read a neutral drag coefficient, from an external data source ($i.e.$ a wave model), the1321 logical variable \np{ln\_cdgw} in \ngn{namsbc} namelist must be set to \forcode{.true.}. 1322 The \mdl{sbcwave} module containing the routine \np{sbc\_wave} reads the 1323 namelist \ngn{namsbc\_wave} (for external data names, locations, frequency, interpolation and all 1324 the miscellanous options allowed by Input Data generic Interface see \autoref{sec:SBC_input}) 1325 a nd a 2D field of neutral drag coefficient.1434 In order to read a neutral drag coefficient, from an external data source ($i.e.$ a wave model), 1435 the logical variable \np{ln\_cdgw} in \ngn{namsbc} namelist must be set to \forcode{.true.}. 1436 The \mdl{sbcwave} module containing the routine \np{sbc\_wave} reads the namelist \ngn{namsbc\_wave} 1437 (for external data names, locations, frequency, interpolation and all the miscellanous options allowed by 1438 Input Data generic Interface see \autoref{sec:SBC_input}) and 1439 a 2D field of neutral drag coefficient. 1326 1440 Then using the routine TURB\_CORE\_1Z or TURB\_CORE\_2Z, and starting from the neutral drag coefficent provided, 1327 the drag coefficient is computed according to stable/unstable conditions of the air-sea interface following \citet{Large_Yeager_Rep04}. 1441 the drag coefficient is computed according to stable/unstable conditions of the air-sea interface following 1442 \citet{Large_Yeager_Rep04}. 1328 1443 1329 1444
Note: See TracChangeset
for help on using the changeset viewer.