Home Contact Us Site Map  
 
       
    next up previous contents
Next: 6.3.3 PTRACERS Package Up: 6.3 General purpose numerical Previous: 6.3.1 OBCS: Open boundary   Contents

Subsections


6.3.2 RBCS Package

6.3.2.1 Introduction

A package which provides the flexibility to relax fields (temperature, salinity, ptracers) in any 3-D location: so could be used as a sponge layer, or as a "source" anywhere in the domain.

For a tracer ($ T$ ) at every grid point the tendency is modified so that:

$\displaystyle \frac{dT}{dt}=\frac{dT}{dt} - \frac{M_{rbc}}{\tau_T} (T-T_{rbc})
$

where $ M_{rbc}$ is a 3-D mask (no time dependence) with values between 0 and 1. Where $ M_{rbc}$ is 1, relaxing timescale is $ 1/\tau_T$ . Where it is 0 there is no relaxing. The value relaxed to is a 3-D (potentially varying in time) field given by $ T_{rbc}$ .

A seperate mask can be used for T,S and ptracers and each of these can be relaxed or not and can have its own timescale $ \tau_T$ . These are set in data.rbcs (see below).

6.3.2.2 Key subroutines and parameters

The only compile-time parameter you are likely to have to change is in RBCS.h, the number of masks, PARAMETER(maskLEN = 3 ), see below.

The runtime parameters are set in data.rbcs:



Set in RBCS_PARM01:
$ \bullet$ rbcsForcingPeriod: time interval between forcing fields (in seconds), zero means constant-in-time forcing.
$ \bullet$ rbcsForcingCycle: repeat cycle of forcing fields (in seconds), zero means non-cyclic forcing.
$ \bullet$ rbcsForcingOffset: time offset of forcing fields (in seconds, default 0); this is relative to time averages starting at $ t=0$ , i.e., the first forcing record/file is placed at $ {\rm rbcsForcingOffset+rbcsForcingPeriod}/2$ ; see below for examples.
$ \bullet$ rbcsSingleTimeFiles: true or false (default false), if true, forcing fields are given 1 file per rbcsForcingPeriod.
$ \bullet$ deltaTrbcs: time step used to compute the iteration numbers for rbcsSingleTimeFiles=T.
$ \bullet$ rbcsIter0: shift in iteration numbers used to label files if rbcsSingleTimeFiles=T (default 0, see below for examples).
$ \bullet$ useRBCtemp: true or false (default false)
$ \bullet$ useRBCsalt: true or false (default false)
$ \bullet$ useRBCptracers: true or false (default false), must be using ptracers to set true
$ \bullet$ tauRelaxT: timescale in seconds of relaxing in temperature ($ \tau_T$ in equation above). Where mask is 1, relax rate will be 1/tauRelaxT. Default is 1.
$ \bullet$ tauRelaxS: same for salinity.
$ \bullet$ relaxMaskFile(irbc): filename of 3-D file with mask ($ M_{rbc}$ in equation above. Need a file for each irbc. 1=temperature, 2=salinity, 3=ptracer01, 4=ptracer02 etc. If the mask numbers end (see maskLEN) are less than the number tracers, then relaxMaskFile(maskLEN) is used for all remaining ptracers.
$ \bullet$ relaxTFile: name of file where temperatures that need to be relaxed to ($ T_{rbc}$ in equation above) are stored. The file must contain 3-D records to match the model domain. If rbcsSingleTimeFiles=F, it must have one record for each forcing period. If T, there must be a separate file for each period and a 10-digit iteration number is appended to the file name (see Table 6.5 and examples below).
$ \bullet$ relaxSFile: same for salinity.



Set in RBCS_PARM02 for each of the ptracers (iTrc):
$ \bullet$ useRBCptrnum(iTrc): true or false (default is false).
$ \bullet$ tauRelaxPTR(iTrc): relax timescale.
$ \bullet$ relaxPtracerFile(iTrc): file with relax fields.

6.3.2.3 Timing of relaxation forcing fields

For constant-in-time relaxation, set rbcsForcingPeriod=0. For time-varying relaxation, Table 6.5 illustrates the relation between model time and forcing fields (either records in one big file or, for rbcsSingleTimeFiles=T, individual files labeled with an iteration number). With rbcsSingleTimeFiles=T, this is the same as in the offline package, except that the forcing offset is in seconds.

Table 6.5: Timing of relaxation forcing fields.
  rbcsSingleTimeFiles = T F
  $ c=0$ $ c\ne0$ $ c\ne0$
model time file number file number record
$ t_0 - p/2$ $ i_0$ $ i_0 + c/\Delta t_{\text{rbcs}}$ $ c/p$
$ t_0 + p/2$ $ i_0 + p/\Delta t_{\text{rbcs}}$ $ i_0 + p/\Delta t_{\text{rbcs}}$ $ 1$
$ t_0 + p + p/2$ $ i_0 + 2 p/\Delta t_{\text{rbcs}}$ $ i_0 + 2 p/\Delta t_{\text{rbcs}}$ $ 2$
... ... ... ...
$ t_0 + c - p/2$ ... $ i_0 + c/\Delta t_{\text{rbcs}}$ $ c/p$
... ... ... ...
        
   
where  
$ p$ $=$rbcsForcingPeriod
$ c$ $=$rbcsForcingCycle
$ t_0$ $=$rbcsForcingOffset
$ i_0$ $=$rbcsIter0
$ \Delta t_{\text{rbcs}}$ $=$deltaTrbcs





6.3.2.4 Example 1: forcing with time averages starting at $ t=0$

6.3.2.4.1 Cyclic data in a single file.

Set rbcsSingleTimeFiles=F and rbcsForcingOffset=0, and the model will start by interpolating the last and first records of rbcs data, placed at $ -p/2$ and $ p/2$ , resp., as appropriate for fields averaged over the time intervals $ [-p, 0]$ and $ [0, p]$ .

6.3.2.4.2 Non-cyclic data, multiple files.

Set rbcsForcingCycle=0 and rbcsSingleTimeFiles=T. With rbcsForcingOffset=0, rbcsIter0=0 and deltaTrbcs=rbcsForcingPeriod, the model would then start by interpolating data from files relax*File.0000000000.data and relax*File.0000000001.data, ..., again placed at $ -p/2$ and $ p/2$ .

6.3.2.5 Example 2: forcing with snapshots starting at $ t=0$

6.3.2.5.1 Cyclic data in a single file.

Set rbcsSingleTimeFiles=F and rbcsForcingOffset=$ -p/2$ , and the model will start forcing with the first record at $ t=0$ .

6.3.2.5.2 Non-cyclic data, multiple files.

Set rbcsForcingCycle=0 and rbcsSingleTimeFiles=T. In this case, it is more natural to set rbcsForcingOffset=$ +p/2$ . With rbcsIter0=0 and deltaTrbcs=rbcsForcingPeriod, the model would then start with data from files relax*File.0000000000.data at $ t=0$ . It would then proceed to interpolate between this file and files relax*File.0000000001.data at $ t={}$ rbcsForcingPeriod.

6.3.2.6 Do's and Don'ts

6.3.2.7 Reference Material


6.3.2.8 Experiments and tutorials that use rbcs

In the directory verifcation, the following experiments use rbcs:


next up previous contents
Next: 6.3.3 PTRACERS Package Up: 6.3 General purpose numerical Previous: 6.3.1 OBCS: Open boundary   Contents
mitgcm-support@mitgcm.org
Copyright © 2006 Massachusetts Institute of Technology Last update 2018-01-23