Difference between revisions of "Lateral Boundary Conditions"

From WikiROMS
Jump to navigationJump to search
Line 1: Line 1:
<div class="title">Lateral Boundary Conditions</div>
<div class="title">Lateral Boundary Conditions</div>


The lateral boundary conditions are specified by logical switches to facilitate applications with nested grids. It also allows to set different boundary conditions between the nonlinear model and the adjoint/tangent models. In addition we can have different boundary conditions between active and passive tracers. The LBC structure is allocated as:<div class="box">[[Variables#LBC|LBC]](1:4, [[Variables#nLBCvar|nLBCvar]], [[Ngrids]])</div>where '''1:4''' are the numbered boundary edges, [[Variables#nLBCvar|nLBCvar]] is the number of LBC state variables, and [[Ngrids]] is the number of nested grids. For example, for free-surface gradient boundary conditions we have:<div class="box">      [[Variables#LBC|LBC]]([[Variables#iwest|iwest]],  [[Variables#isFsur|isFsur]], ng) % gradient<br />      [[Variables#LBC|LBC]]([[Variables#ieast|ieast]],  [[Variables#isFsur|isFsur]], ng) % gradient<br />      [[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isFsur|isFsur]], ng) % gradient<br />      [[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % gradient<br /><br />      integer :: [[Variables#nLBCvar|nLBCvar]]<br /><br />      TYPE T_LBC<br />        logical :: acquire        ! process lateral boundary data<br /><br />        logical :: Chapman<br />        logical :: clamped<br />        logical :: closed<br />        logical :: Flather<br />        logical :: gradient<br />        logical :: nested<br />        logical :: nudging<br />        logical :: periodic<br />        logical :: radiation<br />       logical :: reduced<br />      END TYPE T_LBC<br /><br />      TYPE (T_LBC), allocatable :: [[Variables#LBC|LBC]](:,:,:)<br /><br />      TYPE (T_LBC), allocatable :: [[Variables#ad_LBC|ad_LBC]](:,:,:)<br />      TYPE (T_LBC), allocatable :: [[Variables#tl_LBC|tl_LBC]](:,:,:) </div>
The lateral boundary conditions are specified by logical switches to facilitate applications with nested grids. It also allows to set different boundary conditions between the nonlinear model and the adjoint/tangent models. In addition we can have different boundary conditions between active and passive tracers. The LBC structure is allocated as:<div class="box">[[Variables#LBC|LBC]](1:4, [[Variables#nLBCvar|nLBCvar]], [[Ngrids]])</div>where '''1:4''' are the numbered boundary edges, [[Variables#nLBCvar|nLBCvar]] is the number of LBC state variables, and [[Ngrids]] is the number of nested grids. For example, for free-surface gradient boundary conditions we have:<div class="box">      [[Variables#LBC|LBC]]([[Variables#iwest|iwest]],  [[Variables#isFsur|isFsur]], ng) % gradient<br />      [[Variables#LBC|LBC]]([[Variables#ieast|ieast]],  [[Variables#isFsur|isFsur]], ng) % gradient<br />      [[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isFsur|isFsur]], ng) % gradient<br />      [[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % gradient<br /><br />      integer :: [[Variables#nLBCvar|nLBCvar]]<br /><br />      TYPE T_LBC<br />        logical :: acquire        ! process lateral boundary data<br /><br />        logical :: Chapman<br />        logical :: clamped<br />        logical :: closed<br />        logical :: Flather<br />        logical :: gradient<br />        logical :: nested<br />        logical :: nudging<br />        logical :: periodic<br />        logical :: radiation<br />       logical :: reduced<br />      END TYPE T_LBC<br /><br />      TYPE (T_LBC), allocatable :: [[Variables#LBC|LBC]](:,:,:)<br /><br />      TYPE (T_LBC), allocatable :: [[Variables#ad_LBC|ad_LBC]](:,:,:)<br />      TYPE (T_LBC), allocatable :: [[Variables#tl_LBC|tl_LBC]](:,:,:) </div>




Line 8: Line 8:




==Changes==
==Conversion Tables==
 
The following tables describe the conversion from CPP options to logical structures for each state variable:


Conversion from CPP options to logical switches for free-surface:
{| id="var_tab" style="font-family: monospace" border="1" cellspacing="0" cellpadding="5" align="center"
{| id="var_tab" style="font-family: monospace" border="1" cellspacing="0" cellpadding="5" align="center"
! colspan="2" | Free-surface
|-
! align="center" | CPP
! align="center" | CPP
! align="center" | Logical Switch, <span class="red">IF</span> (...) <span class="red">THEN</span>
! align="center" | Logical Switch, <span class="red">IF</span> (...) <span class="red">THEN</span>
Line 26: Line 29:
|align="right" | [[Options#NORTH_FSCHAPMAN|NORTH_FSCHAPMAN]]
|align="right" | [[Options#NORTH_FSCHAPMAN|NORTH_FSCHAPMAN]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % Chapman
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % Chapman
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WEST_FSCLAMPED|WEST_FSCLAMPED]]
|align="right" | [[Options#WEST_FSCLAMPED|WEST_FSCLAMPED]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isFsur|isFsur]], ng) % clamped
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isFsur|isFsur]], ng) % clamped
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EAST_FSCLAMPED|EAST_FSCLAMPED]]
|align="right" | [[Options#EAST_FSCLAMPED|EAST_FSCLAMPED]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isFsur|isFsur]], ng) % clamped
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isFsur|isFsur]], ng) % clamped
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTH_FSCLAMPED|SOUTH_FSCLAMPED]]
|align="right" | [[Options#SOUTH_FSCLAMPED|SOUTH_FSCLAMPED]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isFsur|isFsur]], ng) % clamped
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isFsur|isFsur]], ng) % clamped
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTH_FSCLAMPED|NORTH_FSCLAMPED]]
|align="right" | [[Options#NORTH_FSCLAMPED|NORTH_FSCLAMPED]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % clamped
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % clamped
Line 50: Line 53:
|align="right" | [[Options#NORTHERN_WALL|NORTHERN_WALL]]
|align="right" | [[Options#NORTHERN_WALL|NORTHERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % closed
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WEST_FSGRADIENT|WEST_FSGRADIENT]]
|align="right" | [[Options#WEST_FSGRADIENT|WEST_FSGRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isFsur|isFsur]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isFsur|isFsur]], ng) % gradient
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EAST_FSGRADIENT|EAST_FSGRADIENT]]
|align="right" | [[Options#EAST_FSGRADIENT|EAST_FSGRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isFsur|isFsur]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isFsur|isFsur]], ng) % gradient
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTH_FSGRADIENT|SOUTH_FSGRADIENT]]
|align="right" | [[Options#SOUTH_FSGRADIENT|SOUTH_FSGRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isFsur|isFsur]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isFsur|isFsur]], ng) % gradient
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTH_FSGRADIENT|NORTH_FSGRADIENT]]
|align="right" | [[Options#NORTH_FSGRADIENT|NORTH_FSGRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % gradient
Line 74: Line 77:
|align="right" | [[Options#NORTH_FSNUDGING|NORTH_FSNUDGING]]
|align="right" | [[Options#NORTH_FSNUDGING|NORTH_FSNUDGING]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % nudging
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % nudging
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EW_PERIODIC|EW_PERIODIC]]
|align="right" | [[Options#EW_PERIODIC|EW_PERIODIC]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isFsur|isFsur]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isFsur|isFsur]], ng) % periodic
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isFsur|isFsur]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isFsur|isFsur]], ng) % periodic
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NS_PERIODIC|NS_PERIODIC]]
|align="right" | [[Options#NS_PERIODIC|NS_PERIODIC]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isFsur|isFsur]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % periodic
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isFsur|isFsur]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % periodic
Line 92: Line 95:
|align="right" | [[Options#NORTH_FSRADIATION|NORTH_FSRADIATION]]
|align="right" | [[Options#NORTH_FSRADIATION|NORTH_FSRADIATION]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % radiation
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WEST_FSOBC|WEST_FSOBC]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isFsur|isFsur]], ng) % acquire
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EAST_FSOBC|EAST_FSOBC]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isFsur|isFsur]], ng) % acquire
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTH_FSOBC|SOUTH_FSOBC]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isFsur|isFsur]], ng) % acquire
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTH_FSOBC|NORTH_FSOBC]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % acquire
|}
|}




Conversion from CPP options to logical switches for 2D U-momentum:
{| id="var_tab" style="font-family: monospace" border="1" cellspacing="0" cellpadding="5" align="center"
{| id="var_tab" style="font-family: monospace" border="1" cellspacing="0" cellpadding="5" align="center"
! colspan="2" | 2D U-momentum
|-
! align="center" | CPP
! align="center" | CPP
! align="center" | Logical Switch, <span class="red">IF</span> (...) <span class="red">THEN</span>
! align="center" | Logical Switch, <span class="red">IF</span> (...) <span class="red">THEN</span>
Line 111: Line 127:
|align="right" | [[Options#NORTH_M2CLAMPED|NORTH_M2CLAMPED]]
|align="right" | [[Options#NORTH_M2CLAMPED|NORTH_M2CLAMPED]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUbar|isUbar]], ng) % clamped
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUbar|isUbar]], ng) % clamped
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WESTERN_WALL|WESTERN_WALL]]
|align="right" | [[Options#WESTERN_WALL|WESTERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isUbar|isUbar]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isUbar|isUbar]], ng) % closed
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EASTERN_WALL|EASTERN_WALL]]
|align="right" | [[Options#EASTERN_WALL|EASTERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isUbar|isUbar]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isUbar|isUbar]], ng) % closed
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTHERN_WALL|SOUTHERN_WALL]]
|align="right" | [[Options#SOUTHERN_WALL|SOUTHERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUbar|isUbar]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUbar|isUbar]], ng) % closed
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTHERN_WALL|NORTHERN_WALL]]
|align="right" | [[Options#NORTHERN_WALL|NORTHERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUbar|isUbar]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUbar|isUbar]], ng) % closed
Line 135: Line 151:
|align="right" | [[Options#NORTH_M2FLATHER|NORTH_M2FLATHER]]
|align="right" | [[Options#NORTH_M2FLATHER|NORTH_M2FLATHER]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUbar|isUbar]], ng) % Flather
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUbar|isUbar]], ng) % Flather
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WEST_M2GRADIENT|WEST_M2GRADIENT]]
|align="right" | [[Options#WEST_M2GRADIENT|WEST_M2GRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isUbar|isUbar]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isUbar|isUbar]], ng) % gradient
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EAST_M2GRADIENT|EAST_M2GRADIENT]]
|align="right" | [[Options#EAST_M2GRADIENT|EAST_M2GRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isUbar|isUbar]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isUbar|isUbar]], ng) % gradient
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTH_M2GRADIENT|SOUTH_M2GRADIENT]]
|align="right" | [[Options#SOUTH_M2GRADIENT|SOUTH_M2GRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUbar|isUbar]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUbar|isUbar]], ng) % gradient
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTH_M2GRADIENT|NORTH_M2GRADIENT]]
|align="right" | [[Options#NORTH_M2GRADIENT|NORTH_M2GRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUbar|isUbar]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUbar|isUbar]], ng) % gradient
Line 159: Line 175:
|align="right" | [[Options#NORTH_M2NUDGING|NORTH_M2NUDGING]]
|align="right" | [[Options#NORTH_M2NUDGING|NORTH_M2NUDGING]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUbar|isUbar]], ng) % nudging
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUbar|isUbar]], ng) % nudging
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EW_PERIODIC|EW_PERIODIC]]
|align="right" | [[Options#EW_PERIODIC|EW_PERIODIC]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isUbar|isUbar]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isUbar|isUbar]], ng) % periodic
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isUbar|isUbar]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isUbar|isUbar]], ng) % periodic
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NS_PERIODIC|NS_PERIODIC]]
|align="right" | [[Options#NS_PERIODIC|NS_PERIODIC]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUbar|isUbar]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUbar|isUbar]], ng) % periodic
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUbar|isUbar]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUbar|isUbar]], ng) % periodic
Line 177: Line 193:
|align="right" | [[Options#NORTH_M2RADIATION|NORTH_M2RADIATION]]
|align="right" | [[Options#NORTH_M2RADIATION|NORTH_M2RADIATION]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUbar|isUbar]], ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUbar|isUbar]], ng) % radiation
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WEST_M2REDUCED|WEST_M2REDUCED]]
|align="right" | [[Options#WEST_M2REDUCED|WEST_M2REDUCED]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isUbar|isUbar]], ng) % reduced
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isUbar|isUbar]], ng) % reduced
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EAST_M2REDUCED|EAST_M2REDUCED]]
|align="right" | [[Options#EAST_M2REDUCED|EAST_M2REDUCED]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isUbar|isUbar]], ng) % reduced
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isUbar|isUbar]], ng) % reduced
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTH_M2REDUCED|SOUTH_M2REDUCED]]
|align="right" | [[Options#SOUTH_M2REDUCED|SOUTH_M2REDUCED]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUbar|isUbar]], ng) % reduced
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUbar|isUbar]], ng) % reduced
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTH_M2REDUCED|NORTH_M2REDUCED]]
|align="right" | [[Options#NORTH_M2REDUCED|NORTH_M2REDUCED]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUbar|isUbar]], ng) % reduced
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUbar|isUbar]], ng) % reduced
|- bgcolor="white"
|align="right" | [[Options#WEST_M2OBC|WEST_M2OBC]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isUbar|isUbar]], ng) % acquire
|- bgcolor="white"
|align="right" | [[Options#EAST_M2OBC|EAST_M2OBC]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isUbar|isUbar]], ng) % acquire
|- bgcolor="white"
|align="right" | [[Options#SOUTH_M2OBC|SOUTH_M2OBC]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUbar|isUbar]], ng) % acquire
|- bgcolor="white"
|align="right" | [[Options#NORTH_M2OBC|NORTH_M2OBC]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUbar|isUbar]], ng) % acquire
|}
|}




Conversion from CPP options to logical switches for 2D V-momentum:
{| id="var_tab" style="font-family: monospace" border="1" cellspacing="0" cellpadding="5" align="center"
{| id="var_tab" style="font-family: monospace" border="1" cellspacing="0" cellpadding="5" align="center"
! colspan="2" | 2D V-momentum
|-
! align="center" | CPP
! align="center" | CPP
! align="center" | Logical Switch, <span class="red">IF</span> (...) <span class="red">THEN</span>
! align="center" | Logical Switch, <span class="red">IF</span> (...) <span class="red">THEN</span>
Line 208: Line 237:
|align="right" | [[Options#NORTH_M2CLAMPED|NORTH_M2CLAMPED]]
|align="right" | [[Options#NORTH_M2CLAMPED|NORTH_M2CLAMPED]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVbar|isVbar]], ng) % clamped
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVbar|isVbar]], ng) % clamped
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WESTERN_WALL|WESTERN_WALL]]
|align="right" | [[Options#WESTERN_WALL|WESTERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isVbar|isVbar]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isVbar|isVbar]], ng) % closed
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EASTERN_WALL|EASTERN_WALL]]
|align="right" | [[Options#EASTERN_WALL|EASTERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isVbar|isVbar]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isVbar|isVbar]], ng) % closed
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTHERN_WALL|SOUTHERN_WALL]]
|align="right" | [[Options#SOUTHERN_WALL|SOUTHERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVbar|isVbar]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVbar|isVbar]], ng) % closed
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTHERN_WALL|NORTHERN_WALL]]
|align="right" | [[Options#NORTHERN_WALL|NORTHERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVbar|isVbar]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVbar|isVbar]], ng) % closed
Line 232: Line 261:
|align="right" | [[Options#NORTH_M2FLATHER|NORTH_M2FLATHER]]
|align="right" | [[Options#NORTH_M2FLATHER|NORTH_M2FLATHER]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVbar|isVbar]], ng) % Flather
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVbar|isVbar]], ng) % Flather
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WEST_M2GRADIENT|WEST_M2GRADIENT]]
|align="right" | [[Options#WEST_M2GRADIENT|WEST_M2GRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isVbar|isVbar]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isVbar|isVbar]], ng) % gradient
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EAST_M2GRADIENT|EAST_M2GRADIENT]]
|align="right" | [[Options#EAST_M2GRADIENT|EAST_M2GRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isVbar|isVbar]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isVbar|isVbar]], ng) % gradient
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTH_M2GRADIENT|SOUTH_M2GRADIENT]]
|align="right" | [[Options#SOUTH_M2GRADIENT|SOUTH_M2GRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVbar|isVbar]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVbar|isVbar]], ng) % gradient
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTH_M2GRADIENT|NORTH_M2GRADIENT]]
|align="right" | [[Options#NORTH_M2GRADIENT|NORTH_M2GRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVbar|isVbar]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVbar|isVbar]], ng) % gradient
Line 256: Line 285:
|align="right" | [[Options#NORTH_M2NUDGING|NORTH_M2NUDGING]]
|align="right" | [[Options#NORTH_M2NUDGING|NORTH_M2NUDGING]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVbar|isVbar]], ng) % nudging
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVbar|isVbar]], ng) % nudging
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EW_PERIODIC|EW_PERIODIC]]
|align="right" | [[Options#EW_PERIODIC|EW_PERIODIC]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isVbar|isVbar]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isVbar|isVbar]], ng) % periodic
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isVbar|isVbar]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isVbar|isVbar]], ng) % periodic
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NS_PERIODIC|NS_PERIODIC]]
|align="right" | [[Options#NS_PERIODIC|NS_PERIODIC]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVbar|isVbar]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVbar|isVbar]], ng) % periodic
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVbar|isVbar]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVbar|isVbar]], ng) % periodic
Line 274: Line 303:
|align="right" | [[Options#NORTH_M2RADIATION|NORTH_M2RADIATION]]
|align="right" | [[Options#NORTH_M2RADIATION|NORTH_M2RADIATION]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVbar|isVbar]], ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVbar|isVbar]], ng) % radiation
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WEST_M2REDUCED|WEST_M2REDUCED]]
|align="right" | [[Options#WEST_M2REDUCED|WEST_M2REDUCED]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isVbar|isVbar]], ng) % reduced
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isVbar|isVbar]], ng) % reduced
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EAST_M2REDUCED|EAST_M2REDUCED]]
|align="right" | [[Options#EAST_M2REDUCED|EAST_M2REDUCED]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isVbar|isVbar]], ng) % reduced
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isVbar|isVbar]], ng) % reduced
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTH_M2REDUCED|SOUTH_M2REDUCED]]
|align="right" | [[Options#SOUTH_M2REDUCED|SOUTH_M2REDUCED]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVbar|isVbar]], ng) % reduced
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVbar|isVbar]], ng) % reduced
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTH_M2REDUCED|NORTH_M2REDUCED]]
|align="right" | [[Options#NORTH_M2REDUCED|NORTH_M2REDUCED]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVbar|isVbar]], ng) % reduced
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVbar|isVbar]], ng) % reduced
|- bgcolor="white"
|align="right" | [[Options#WEST_M2OBC|WEST_M2OBC]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isVbar|isVbar]], ng) % acquire
|- bgcolor="white"
|align="right" | [[Options#EAST_M2OBC|EAST_M2OBC]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isVbar|isVbar]], ng) % acquire
|- bgcolor="white"
|align="right" | [[Options#SOUTH_M2OBC|SOUTH_M2OBC]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVbar|isVbar]], ng) % acquire
|- bgcolor="white"
|align="right" | [[Options#NORTH_M2OBC|NORTH_M2OBC]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVbar|isVbar]], ng) % acquire
|}
|}




Conversion from CPP options to logical switches for 3D U-momentum:
{| id="var_tab" style="font-family: monospace" border="1" cellspacing="0" cellpadding="5" align="center"
{| id="var_tab" style="font-family: monospace" border="1" cellspacing="0" cellpadding="5" align="center"
! colspan="2" | 3D U-momentum
|-
! align="center" | CPP
! align="center" | CPP
! align="center" | Logical Switch, <span class="red">IF</span> (...) <span class="red">THEN</span>
! align="center" | Logical Switch, <span class="red">IF</span> (...) <span class="red">THEN</span>
Line 305: Line 347:
|align="right" | [[Options#NORTH_M3CLAMPED|NORTH_M3CLAMPED]]
|align="right" | [[Options#NORTH_M3CLAMPED|NORTH_M3CLAMPED]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUvel|isUvel]], ng) % clamped
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUvel|isUvel]], ng) % clamped
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WESTERN_WALL|WESTERN_WALL]]
|align="right" | [[Options#WESTERN_WALL|WESTERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isUvel|isUvel]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isUvel|isUvel]], ng) % closed
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EASTERN_WALL|EASTERN_WALL]]
|align="right" | [[Options#EASTERN_WALL|EASTERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isUvel|isUvel]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isUvel|isUvel]], ng) % closed
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTHERN_WALL|SOUTHERN_WALL]]
|align="right" | [[Options#SOUTHERN_WALL|SOUTHERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUvel|isUvel]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUvel|isUvel]], ng) % closed
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTHERN_WALL|NORTHERN_WALL]]
|align="right" | [[Options#NORTHERN_WALL|NORTHERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUvel|isUvel]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUvel|isUvel]], ng) % closed
Line 329: Line 371:
|align="right" | [[Options#NORTH_M3GRADIENT|NORTH_M3GRADIENT]]
|align="right" | [[Options#NORTH_M3GRADIENT|NORTH_M3GRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUvel|isUvel]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUvel|isUvel]], ng) % gradient
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WEST_M3NUDGING|WEST_M3NUDGING]]
|align="right" | [[Options#WEST_M3NUDGING|WEST_M3NUDGING]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isUvel|isUvel]], ng) % nudging
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isUvel|isUvel]], ng) % nudging
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EAST_M3NUDGING|EAST_M3NUDGING]]
|align="right" | [[Options#EAST_M3NUDGING|EAST_M3NUDGING]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isUvel|isUvel]], ng) % nudging
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isUvel|isUvel]], ng) % nudging
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTH_M3NUDGING|SOUTH_M3NUDGING]]
|align="right" | [[Options#SOUTH_M3NUDGING|SOUTH_M3NUDGING]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUvel|isUvel]], ng) % nudging
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUvel|isUvel]], ng) % nudging
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTH_M3NUDGING|NORTH_M3NUDGING]]
|align="right" | [[Options#NORTH_M3NUDGING|NORTH_M3NUDGING]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUvel|isUvel]], ng) % nudging
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUvel|isUvel]], ng) % nudging
Line 347: Line 389:
|align="right" | [[Options#NS_PERIODIC|NS_PERIODIC]]
|align="right" | [[Options#NS_PERIODIC|NS_PERIODIC]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUvel|isUvel]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUvel|isUvel]], ng) % periodic
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUvel|isUvel]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUvel|isUvel]], ng) % periodic
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WEST_M3RADIATION|WEST_M3RADIATION]]
|align="right" | [[Options#WEST_M3RADIATION|WEST_M3RADIATION]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isUvel|isUvel]], ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isUvel|isUvel]], ng) % radiation
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EAST_M3RADIATION|EAST_M3RADIATION]]
|align="right" | [[Options#EAST_M3RADIATION|EAST_M3RADIATION]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isUvel|isUvel]], ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isUvel|isUvel]], ng) % radiation
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTH_M3RADIATION|SOUTH_M3RADIATION]]
|align="right" | [[Options#SOUTH_M3RADIATION|SOUTH_M3RADIATION]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUvel|isUvel]], ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUvel|isUvel]], ng) % radiation
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTH_M3RADIATION|NORTH_M3RADIATION]]
|align="right" | [[Options#NORTH_M3RADIATION|NORTH_M3RADIATION]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUvel|isUvel]], ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUvel|isUvel]], ng) % radiation
|- bgcolor="white"
|align="right" | [[Options#WEST_M3OBC|WEST_M3OBC]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isUvel|isUvel]], ng) % acquire
|- bgcolor="white"
|align="right" | [[Options#EAST_M3OBC|EAST_M3OBC]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isUvel|isUvel]], ng) % acquire
|- bgcolor="white"
|align="right" | [[Options#SOUTH_M3OBC|SOUTH_M3OBC]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isUvel|isUvel]], ng) % acquire
|- bgcolor="white"
|align="right" | [[Options#NORTH_M3OBC|NORTH_M3OBC]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isUvel|isUvel]], ng) % acquire
|}
|}




Conversion from CPP options to logical switches for 3D V-momentum:
{| id="var_tab" style="font-family: monospace" border="1" cellspacing="0" cellpadding="5" align="center"
{| id="var_tab" style="font-family: monospace" border="1" cellspacing="0" cellpadding="5" align="center"
! colspan="2" | 3D V-momentum
|-
! align="center" | CPP
! align="center" | CPP
! align="center" | Logical Switch, <span class="red">IF</span> (...) <span class="red">THEN</span>
! align="center" | Logical Switch, <span class="red">IF</span> (...) <span class="red">THEN</span>
Line 378: Line 433:
|align="right" | [[Options#NORTH_M3CLAMPED|NORTH_M3CLAMPED]]
|align="right" | [[Options#NORTH_M3CLAMPED|NORTH_M3CLAMPED]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVvel|isVvel]], ng) % clamped
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVvel|isVvel]], ng) % clamped
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WESTERN_WALL|WESTERN_WALL]]
|align="right" | [[Options#WESTERN_WALL|WESTERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isVvel|isVvel]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isVvel|isVvel]], ng) % closed
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EASTERN_WALL|EASTERN_WALL]]
|align="right" | [[Options#EASTERN_WALL|EASTERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isVvel|isVvel]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isVvel|isVvel]], ng) % closed
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTHERN_WALL|SOUTHERN_WALL]]
|align="right" | [[Options#SOUTHERN_WALL|SOUTHERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVvel|isVvel]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVvel|isVvel]], ng) % closed
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTHERN_WALL|NORTHERN_WALL]]
|align="right" | [[Options#NORTHERN_WALL|NORTHERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVvel|isVvel]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVvel|isVvel]], ng) % closed
Line 402: Line 457:
|align="right" | [[Options#NORTH_M3GRADIENT|NORTH_M3GRADIENT]]
|align="right" | [[Options#NORTH_M3GRADIENT|NORTH_M3GRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVvel|isVvel]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVvel|isVvel]], ng) % gradient
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WEST_M3NUDGING|WEST_M3NUDGING]]
|align="right" | [[Options#WEST_M3NUDGING|WEST_M3NUDGING]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isVvel|isVvel]], ng) % nudging
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isVvel|isVvel]], ng) % nudging
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EAST_M3NUDGING|EAST_M3NUDGING]]
|align="right" | [[Options#EAST_M3NUDGING|EAST_M3NUDGING]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isVvel|isVvel]], ng) % nudging
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isVvel|isVvel]], ng) % nudging
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTH_M3NUDGING|SOUTH_M3NUDGING]]
|align="right" | [[Options#SOUTH_M3NUDGING|SOUTH_M3NUDGING]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVvel|isVvel]], ng) % nudging
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVvel|isVvel]], ng) % nudging
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTH_M3NUDGING|NORTH_M3NUDGING]]
|align="right" | [[Options#NORTH_M3NUDGING|NORTH_M3NUDGING]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVvel|isVvel]], ng) % nudging
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVvel|isVvel]], ng) % nudging
Line 420: Line 475:
|align="right" | [[Options#NS_PERIODIC|NS_PERIODIC]]
|align="right" | [[Options#NS_PERIODIC|NS_PERIODIC]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVvel|isVvel]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVvel|isVvel]], ng) % periodic
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVvel|isVvel]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVvel|isVvel]], ng) % periodic
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WEST_M3RADIATION|WEST_M3RADIATION]]
|align="right" | [[Options#WEST_M3RADIATION|WEST_M3RADIATION]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isVvel|isVvel]], ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isVvel|isVvel]], ng) % radiation
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EAST_M3RADIATION|EAST_M3RADIATION]]
|align="right" | [[Options#EAST_M3RADIATION|EAST_M3RADIATION]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isVvel|isVvel]], ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isVvel|isVvel]], ng) % radiation
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTH_M3RADIATION|SOUTH_M3RADIATION]]
|align="right" | [[Options#SOUTH_M3RADIATION|SOUTH_M3RADIATION]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVvel|isVvel]], ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVvel|isVvel]], ng) % radiation
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTH_M3RADIATION|NORTH_M3RADIATION]]
|align="right" | [[Options#NORTH_M3RADIATION|NORTH_M3RADIATION]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVvel|isVvel]], ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVvel|isVvel]], ng) % radiation
|- bgcolor="white"
|align="right" | [[Options#WEST_M3OBC|WEST_M3OBC]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isVvel|isVvel]], ng) % acquire
|- bgcolor="white"
|align="right" | [[Options#EAST_M3OBC|EAST_M3OBC]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isVvel|isVvel]], ng) % acquire
|- bgcolor="white"
|align="right" | [[Options#SOUTH_M3OBC|SOUTH_M3OBC]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isVvel|isVvel]], ng) % acquire
|- bgcolor="white"
|align="right" | [[Options#NORTH_M3OBC|NORTH_M3OBC]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isVvel|isVvel]], ng) % acquire
|}
|}






Conversion from CPP options to logical switches for TKE mixing:
{| id="var_tab" style="font-family: monospace" border="1" cellspacing="0" cellpadding="5" align="center"
{| id="var_tab" style="font-family: monospace" border="1" cellspacing="0" cellpadding="5" align="center"
! colspan="2" | TKE mixing
|-
! align="center" | CPP
! align="center" | CPP
! align="center" | Logical Switch, <span class="red">IF</span> (...) <span class="red">THEN</span>
! align="center" | Logical Switch, <span class="red">IF</span> (...) <span class="red">THEN</span>
Line 452: Line 520:
|align="right" | [[Options#NORTHERN_WALL|NORTHERN_WALL]]
|align="right" | [[Options#NORTHERN_WALL|NORTHERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isMtke|isMtke]], ng) % closed
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isMtke|isMtke]], ng) % closed
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WEST_KGRADIENT|WEST_KGRADIENT]]
|align="right" | [[Options#WEST_KGRADIENT|WEST_KGRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isMtke|isMtke]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isMtke|isMtke]], ng) % gradient
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EAST_KGRADIENT|EAST_KGRADIENT]]
|align="right" | [[Options#EAST_KGRADIENT|EAST_KGRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isMtke|isMtke]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isMtke|isMtke]], ng) % gradient
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTH_KGRADIENT|SOUTH_KGRADIENT]]
|align="right" | [[Options#SOUTH_KGRADIENT|SOUTH_KGRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isMtke|isMtke]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isMtke|isMtke]], ng) % gradient
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTH_KGRADIENT|NORTH_KGRADIENT]]
|align="right" | [[Options#NORTH_KGRADIENT|NORTH_KGRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isMtke|isMtke]], ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isMtke|isMtke]], ng) % gradient
Line 470: Line 538:
|align="right" | [[Options#NS_PERIODIC|NS_PERIODIC]]
|align="right" | [[Options#NS_PERIODIC|NS_PERIODIC]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isMtke|isMtke]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % periodic
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isMtke|isMtke]], ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isFsur|isFsur]], ng) % periodic
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WEST_KRADIATION|WEST_KRADIATION]]
|align="right" | [[Options#WEST_KRADIATION|WEST_KRADIATION]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isMtke|isMtke]], ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isMtke|isMtke]], ng) % radiation
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EAST_KRADIATION|EAST_KRADIATION]]
|align="right" | [[Options#EAST_KRADIATION|EAST_KRADIATION]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isMtke|isMtke]], ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isMtke|isMtke]], ng) % radiation
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTH_KRADIATION|SOUTH_KRADIATION]]
|align="right" | [[Options#SOUTH_KRADIATION|SOUTH_KRADIATION]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isMtke|isMtke]], ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isMtke|isMtke]], ng) % radiation
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTH_KRADIATION|NORTH_KRADIATION]]
|align="right" | [[Options#NORTH_KRADIATION|NORTH_KRADIATION]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isMtke|isMtke]], ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isMtke|isMtke]], ng) % radiation
Line 485: Line 553:




Conversion from CPP options to logical switches for tracers:
{| id="var_tab" style="font-family: monospace" border="1" cellspacing="0" cellpadding="5" align="center"
{| id="var_tab" style="font-family: monospace" border="1" cellspacing="0" cellpadding="5" align="center"
! colspan="2" | Tracers
|-
! align="center" | CPP
! align="center" | CPP
! align="center" | Logical Switch, <span class="red">IF</span> (...) <span class="red">THEN</span>
! align="center" | Logical Switch, <span class="red">IF</span> (...) <span class="red">THEN</span>
Line 501: Line 570:
|align="right" | [[Options#NORTH_TCLAMPED|NORTH_TCLAMPED]]
|align="right" | [[Options#NORTH_TCLAMPED|NORTH_TCLAMPED]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isTvar|isTvar]](:), ng) % clamped
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isTvar|isTvar]](:), ng) % clamped
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WESTERN_WALL|WESTERN_WALL]]
|align="right" | [[Options#WESTERN_WALL|WESTERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isTvar|isTvar]](:), ng) % closed
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isTvar|isTvar]](:), ng) % closed
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EASTERN_WALL|EASTERN_WALL]]
|align="right" | [[Options#EASTERN_WALL|EASTERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isTvar|isTvar]](:), ng) % closed
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isTvar|isTvar]](:), ng) % closed
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTHERN_WALL|SOUTHERN_WALL]]
|align="right" | [[Options#SOUTHERN_WALL|SOUTHERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isTvar|isTvar]](:), ng) % closed
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isTvar|isTvar]](:), ng) % closed
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTHERN_WALL|NORTHERN_WALL]]
|align="right" | [[Options#NORTHERN_WALL|NORTHERN_WALL]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isTvar|isTvar]](:), ng) % closed
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isTvar|isTvar]](:), ng) % closed
Line 525: Line 594:
|align="right" | [[Options#NORTH_TGRADIENT|NORTH_TGRADIENT]]
|align="right" | [[Options#NORTH_TGRADIENT|NORTH_TGRADIENT]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isTvar|isTvar]](:), ng) % gradient
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isTvar|isTvar]](:), ng) % gradient
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WEST_TNUDGING|WEST_TNUDGING]]
|align="right" | [[Options#WEST_TNUDGING|WEST_TNUDGING]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isTvar|isTvar]](:), ng) % nudging
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isTvar|isTvar]](:), ng) % nudging
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EAST_TNUDGING|EAST_TNUDGING]]
|align="right" | [[Options#EAST_TNUDGING|EAST_TNUDGING]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isTvar|isTvar]](:), ng) % nudging
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isTvar|isTvar]](:), ng) % nudging
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTH_TNUDGING|SOUTH_TNUDGING]]
|align="right" | [[Options#SOUTH_TNUDGING|SOUTH_TNUDGING]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isTvar|isTvar]](:), ng) % nudging
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isTvar|isTvar]](:), ng) % nudging
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTH_TNUDGING|NORTH_TNUDGING]]
|align="right" | [[Options#NORTH_TNUDGING|NORTH_TNUDGING]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isTvar|isTvar]](:), ng) % nudging
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isTvar|isTvar]](:), ng) % nudging
Line 543: Line 612:
|align="right" | [[Options#NS_PERIODIC|NS_PERIODIC]]
|align="right" | [[Options#NS_PERIODIC|NS_PERIODIC]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isTvar|isTvar]](:), ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isTvar|isTvar]](:), ng) % periodic
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isTvar|isTvar]](:), ng) % periodic<br />[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isTvar|isTvar]](:), ng) % periodic
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#WEST_TRADIATION|WEST_TRADIATION]]
|align="right" | [[Options#WEST_TRADIATION|WEST_TRADIATION]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isTvar|isTvar]](:), ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isTvar|isTvar]](:), ng) % radiation
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#EAST_TRADIATION|EAST_TRADIATION]]
|align="right" | [[Options#EAST_TRADIATION|EAST_TRADIATION]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isTvar|isTvar]](:), ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isTvar|isTvar]](:), ng) % radiation
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#SOUTH_TRADIATION|SOUTH_TRADIATION]]
|align="right" | [[Options#SOUTH_TRADIATION|SOUTH_TRADIATION]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isTvar|isTvar]](:), ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isTvar|isTvar]](:), ng) % radiation
|- bgcolor="#EEE"
|- bgcolor="#E0E0E0"
|align="right" | [[Options#NORTH_TRADIATION|NORTH_TRADIATION]]
|align="right" | [[Options#NORTH_TRADIATION|NORTH_TRADIATION]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isTvar|isTvar]](:), ng) % radiation
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isTvar|isTvar]](:), ng) % radiation
|- bgcolor="white"
|align="right" | [[Options#WEST_TOBC|WEST_TOBC]]
|[[Variables#LBC|LBC]]([[Variables#iwest|iwest]], &nbsp;[[Variables#isTvar|isTvar]](:), ng) % acquire
|- bgcolor="white"
|align="right" | [[Options#EAST_TOBC|EAST_TOBC]]
|[[Variables#LBC|LBC]]([[Variables#ieast|ieast]], &nbsp;[[Variables#isTvar|isTvar]](:), ng) % acquire
|- bgcolor="white"
|align="right" | [[Options#SOUTH_TOBC|SOUTH_TOBC]]
|[[Variables#LBC|LBC]]([[Variables#isouth|isouth]], [[Variables#isTvar|isTvar]](:), ng) % acquire
|- bgcolor="white"
|align="right" | [[Options#NORTH_TOBC|NORTH_TOBC]]
|[[Variables#LBC|LBC]]([[Variables#inorth|inorth]], [[Variables#isTvar|isTvar]](:), ng) % acquire
|}
|}

Revision as of 16:25, 12 September 2011

Lateral Boundary Conditions

The lateral boundary conditions are specified by logical switches to facilitate applications with nested grids. It also allows to set different boundary conditions between the nonlinear model and the adjoint/tangent models. In addition we can have different boundary conditions between active and passive tracers. The LBC structure is allocated as:

where 1:4 are the numbered boundary edges, nLBCvar is the number of LBC state variables, and Ngrids is the number of nested grids. For example, for free-surface gradient boundary conditions we have:

LBC(iwest, isFsur, ng) % gradient
LBC(ieast, isFsur, ng) % gradient
LBC(isouth, isFsur, ng) % gradient
LBC(inorth, isFsur, ng) % gradient

integer :: nLBCvar

TYPE T_LBC
logical :: acquire  ! process lateral boundary data

logical :: Chapman
logical :: clamped
logical :: closed
logical :: Flather
logical :: gradient
logical :: nested
logical :: nudging
logical :: periodic
logical :: radiation
logical :: reduced
END TYPE T_LBC

TYPE (T_LBC), allocatable :: LBC(:,:,:)

TYPE (T_LBC), allocatable :: ad_LBC(:,:,:)
TYPE (T_LBC), allocatable :: tl_LBC(:,:,:)



Conversion Tables

The following tables describe the conversion from CPP options to logical structures for each state variable:

Free-surface
CPP Logical Switch, IF (...) THEN
WEST_FSCHAPMAN LBC(iwest,  isFsur, ng) % Chapman
EAST_FSCHAPMAN LBC(ieast,  isFsur, ng) % Chapman
SOUTH_FSCHAPMAN LBC(isouth, isFsur, ng) % Chapman
NORTH_FSCHAPMAN LBC(inorth, isFsur, ng) % Chapman
WEST_FSCLAMPED LBC(iwest,  isFsur, ng) % clamped
EAST_FSCLAMPED LBC(ieast,  isFsur, ng) % clamped
SOUTH_FSCLAMPED LBC(isouth, isFsur, ng) % clamped
NORTH_FSCLAMPED LBC(inorth, isFsur, ng) % clamped
WESTERN_WALL LBC(iwest,  isFsur, ng) % closed
EASTERN_WALL LBC(ieast,  isFsur, ng) % closed
SOUTHERN_WALL LBC(isouth, isFsur, ng) % closed
NORTHERN_WALL LBC(inorth, isFsur, ng) % closed
WEST_FSGRADIENT LBC(iwest,  isFsur, ng) % gradient
EAST_FSGRADIENT LBC(ieast,  isFsur, ng) % gradient
SOUTH_FSGRADIENT LBC(isouth, isFsur, ng) % gradient
NORTH_FSGRADIENT LBC(inorth, isFsur, ng) % gradient
WEST_FSNUDGING LBC(iwest,  isFsur, ng) % nudging
EAST_FSNUDGING LBC(ieast,  isFsur, ng) % nudging
SOUTH_FSNUDGING LBC(isouth, isFsur, ng) % nudging
NORTH_FSNUDGING LBC(inorth, isFsur, ng) % nudging
EW_PERIODIC LBC(iwest,  isFsur, ng) % periodic
LBC(ieast,  isFsur, ng) % periodic
NS_PERIODIC LBC(isouth, isFsur, ng) % periodic
LBC(inorth, isFsur, ng) % periodic
WEST_FSRADIATION LBC(iwest,  isFsur, ng) % radiation
EAST_FSRADIATION LBC(ieast,  isFsur, ng) % radiation
SOUTH_FSRADIATION LBC(isouth, isFsur, ng) % radiation
NORTH_FSRADIATION LBC(inorth, isFsur, ng) % radiation
WEST_FSOBC LBC(iwest,  isFsur, ng) % acquire
EAST_FSOBC LBC(ieast,  isFsur, ng) % acquire
SOUTH_FSOBC LBC(isouth, isFsur, ng) % acquire
NORTH_FSOBC LBC(inorth, isFsur, ng) % acquire


2D U-momentum
CPP Logical Switch, IF (...) THEN
WEST_M2CLAMPED LBC(iwest,  isUbar, ng) % clamped
EAST_M2CLAMPED LBC(ieast,  isUbar, ng) % clamped
SOUTH_M2CLAMPED LBC(isouth, isUbar, ng) % clamped
NORTH_M2CLAMPED LBC(inorth, isUbar, ng) % clamped
WESTERN_WALL LBC(iwest,  isUbar, ng) % closed
EASTERN_WALL LBC(ieast,  isUbar, ng) % closed
SOUTHERN_WALL LBC(isouth, isUbar, ng) % closed
NORTHERN_WALL LBC(inorth, isUbar, ng) % closed
WEST_M2FLATHER LBC(iwest,  isUbar, ng) % Flather
EAST_M2FLATHER LBC(ieast,  isUbar, ng) % Flather
SOUTH_M2FLATHER LBC(isouth, isUbar, ng) % Flather
NORTH_M2FLATHER LBC(inorth, isUbar, ng) % Flather
WEST_M2GRADIENT LBC(iwest,  isUbar, ng) % gradient
EAST_M2GRADIENT LBC(ieast,  isUbar, ng) % gradient
SOUTH_M2GRADIENT LBC(isouth, isUbar, ng) % gradient
NORTH_M2GRADIENT LBC(inorth, isUbar, ng) % gradient
WEST_M2NUDGING LBC(iwest,  isUbar, ng) % nudging
EAST_M2NUDGING LBC(ieast,  isUbar, ng) % nudging
SOUTH_M2NUDGING LBC(isouth, isUbar, ng) % nudging
NORTH_M2NUDGING LBC(inorth, isUbar, ng) % nudging
EW_PERIODIC LBC(iwest,  isUbar, ng) % periodic
LBC(ieast,  isUbar, ng) % periodic
NS_PERIODIC LBC(isouth, isUbar, ng) % periodic
LBC(inorth, isUbar, ng) % periodic
WEST_M2RADIATION LBC(iwest,  isUbar, ng) % radiation
EAST_M2RADIATION LBC(ieast,  isUbar, ng) % radiation
SOUTH_M2RADIATION LBC(isouth, isUbar, ng) % radiation
NORTH_M2RADIATION LBC(inorth, isUbar, ng) % radiation
WEST_M2REDUCED LBC(iwest,  isUbar, ng) % reduced
EAST_M2REDUCED LBC(ieast,  isUbar, ng) % reduced
SOUTH_M2REDUCED LBC(isouth, isUbar, ng) % reduced
NORTH_M2REDUCED LBC(inorth, isUbar, ng) % reduced
WEST_M2OBC LBC(iwest,  isUbar, ng) % acquire
EAST_M2OBC LBC(ieast,  isUbar, ng) % acquire
SOUTH_M2OBC LBC(isouth, isUbar, ng) % acquire
NORTH_M2OBC LBC(inorth, isUbar, ng) % acquire


2D V-momentum
CPP Logical Switch, IF (...) THEN
WEST_M2CLAMPED LBC(iwest,  isVbar, ng) % clamped
EAST_M2CLAMPED LBC(ieast,  isVbar, ng) % clamped
SOUTH_M2CLAMPED LBC(isouth, isVbar, ng) % clamped
NORTH_M2CLAMPED LBC(inorth, isVbar, ng) % clamped
WESTERN_WALL LBC(iwest,  isVbar, ng) % closed
EASTERN_WALL LBC(ieast,  isVbar, ng) % closed
SOUTHERN_WALL LBC(isouth, isVbar, ng) % closed
NORTHERN_WALL LBC(inorth, isVbar, ng) % closed
WEST_M2FLATHER LBC(iwest,  isVbar, ng) % Flather
EAST_M2FLATHER LBC(ieast,  isVbar, ng) % Flather
SOUTH_M2FLATHER LBC(isouth, isVbar, ng) % Flather
NORTH_M2FLATHER LBC(inorth, isVbar, ng) % Flather
WEST_M2GRADIENT LBC(iwest,  isVbar, ng) % gradient
EAST_M2GRADIENT LBC(ieast,  isVbar, ng) % gradient
SOUTH_M2GRADIENT LBC(isouth, isVbar, ng) % gradient
NORTH_M2GRADIENT LBC(inorth, isVbar, ng) % gradient
WEST_M2NUDGING LBC(iwest,  isVbar, ng) % nudging
EAST_M2NUDGING LBC(ieast,  isVbar, ng) % nudging
SOUTH_M2NUDGING LBC(isouth, isVbar, ng) % nudging
NORTH_M2NUDGING LBC(inorth, isVbar, ng) % nudging
EW_PERIODIC LBC(iwest,  isVbar, ng) % periodic
LBC(ieast,  isVbar, ng) % periodic
NS_PERIODIC LBC(isouth, isVbar, ng) % periodic
LBC(inorth, isVbar, ng) % periodic
WEST_M2RADIATION LBC(iwest,  isVbar, ng) % radiation
EAST_M2RADIATION LBC(ieast,  isVbar, ng) % radiation
SOUTH_M2RADIATION LBC(isouth, isVbar, ng) % radiation
NORTH_M2RADIATION LBC(inorth, isVbar, ng) % radiation
WEST_M2REDUCED LBC(iwest,  isVbar, ng) % reduced
EAST_M2REDUCED LBC(ieast,  isVbar, ng) % reduced
SOUTH_M2REDUCED LBC(isouth, isVbar, ng) % reduced
NORTH_M2REDUCED LBC(inorth, isVbar, ng) % reduced
WEST_M2OBC LBC(iwest,  isVbar, ng) % acquire
EAST_M2OBC LBC(ieast,  isVbar, ng) % acquire
SOUTH_M2OBC LBC(isouth, isVbar, ng) % acquire
NORTH_M2OBC LBC(inorth, isVbar, ng) % acquire


3D U-momentum
CPP Logical Switch, IF (...) THEN
WEST_M3CLAMPED LBC(iwest,  isUvel, ng) % clamped
EAST_M3CLAMPED LBC(ieast,  isUvel, ng) % clamped
SOUTH_M3CLAMPED LBC(isouth, isUvel, ng) % clamped
NORTH_M3CLAMPED LBC(inorth, isUvel, ng) % clamped
WESTERN_WALL LBC(iwest,  isUvel, ng) % closed
EASTERN_WALL LBC(ieast,  isUvel, ng) % closed
SOUTHERN_WALL LBC(isouth, isUvel, ng) % closed
NORTHERN_WALL LBC(inorth, isUvel, ng) % closed
WEST_M3GRADIENT LBC(iwest,  isUvel, ng) % gradient
EAST_M3GRADIENT LBC(ieast,  isUvel, ng) % gradient
SOUTH_M3GRADIENT LBC(isouth, isUvel, ng) % gradient
NORTH_M3GRADIENT LBC(inorth, isUvel, ng) % gradient
WEST_M3NUDGING LBC(iwest,  isUvel, ng) % nudging
EAST_M3NUDGING LBC(ieast,  isUvel, ng) % nudging
SOUTH_M3NUDGING LBC(isouth, isUvel, ng) % nudging
NORTH_M3NUDGING LBC(inorth, isUvel, ng) % nudging
EW_PERIODIC LBC(iwest,  isUvel, ng) % periodic
LBC(ieast,  isUvel, ng) % periodic
NS_PERIODIC LBC(isouth, isUvel, ng) % periodic
LBC(inorth, isUvel, ng) % periodic
WEST_M3RADIATION LBC(iwest,  isUvel, ng) % radiation
EAST_M3RADIATION LBC(ieast,  isUvel, ng) % radiation
SOUTH_M3RADIATION LBC(isouth, isUvel, ng) % radiation
NORTH_M3RADIATION LBC(inorth, isUvel, ng) % radiation
WEST_M3OBC LBC(iwest,  isUvel, ng) % acquire
EAST_M3OBC LBC(ieast,  isUvel, ng) % acquire
SOUTH_M3OBC LBC(isouth, isUvel, ng) % acquire
NORTH_M3OBC LBC(inorth, isUvel, ng) % acquire


3D V-momentum
CPP Logical Switch, IF (...) THEN
WEST_M3CLAMPED LBC(iwest,  isVvel, ng) % clamped
EAST_M3CLAMPED LBC(ieast,  isVvel, ng) % clamped
SOUTH_M3CLAMPED LBC(isouth, isVvel, ng) % clamped
NORTH_M3CLAMPED LBC(inorth, isVvel, ng) % clamped
WESTERN_WALL LBC(iwest,  isVvel, ng) % closed
EASTERN_WALL LBC(ieast,  isVvel, ng) % closed
SOUTHERN_WALL LBC(isouth, isVvel, ng) % closed
NORTHERN_WALL LBC(inorth, isVvel, ng) % closed
WEST_M3GRADIENT LBC(iwest,  isVvel, ng) % gradient
EAST_M3GRADIENT LBC(ieast,  isVvel, ng) % gradient
SOUTH_M3GRADIENT LBC(isouth, isVvel, ng) % gradient
NORTH_M3GRADIENT LBC(inorth, isVvel, ng) % gradient
WEST_M3NUDGING LBC(iwest,  isVvel, ng) % nudging
EAST_M3NUDGING LBC(ieast,  isVvel, ng) % nudging
SOUTH_M3NUDGING LBC(isouth, isVvel, ng) % nudging
NORTH_M3NUDGING LBC(inorth, isVvel, ng) % nudging
EW_PERIODIC LBC(iwest,  isVvel, ng) % periodic
LBC(ieast,  isVvel, ng) % periodic
NS_PERIODIC LBC(isouth, isVvel, ng) % periodic
LBC(inorth, isVvel, ng) % periodic
WEST_M3RADIATION LBC(iwest,  isVvel, ng) % radiation
EAST_M3RADIATION LBC(ieast,  isVvel, ng) % radiation
SOUTH_M3RADIATION LBC(isouth, isVvel, ng) % radiation
NORTH_M3RADIATION LBC(inorth, isVvel, ng) % radiation
WEST_M3OBC LBC(iwest,  isVvel, ng) % acquire
EAST_M3OBC LBC(ieast,  isVvel, ng) % acquire
SOUTH_M3OBC LBC(isouth, isVvel, ng) % acquire
NORTH_M3OBC LBC(inorth, isVvel, ng) % acquire


TKE mixing
CPP Logical Switch, IF (...) THEN
WESTERN_WALL LBC(iwest,  isMtke, ng) % closed
EASTERN_WALL LBC(ieast,  isMtke, ng) % closed
SOUTHERN_WALL LBC(isouth, isMtke, ng) % closed
NORTHERN_WALL LBC(inorth, isMtke, ng) % closed
WEST_KGRADIENT LBC(iwest,  isMtke, ng) % gradient
EAST_KGRADIENT LBC(ieast,  isMtke, ng) % gradient
SOUTH_KGRADIENT LBC(isouth, isMtke, ng) % gradient
NORTH_KGRADIENT LBC(inorth, isMtke, ng) % gradient
EW_PERIODIC LBC(iwest,  isMtke, ng) % periodic
LBC(ieast,  isMtke, ng) % periodic
NS_PERIODIC LBC(isouth, isMtke, ng) % periodic
LBC(inorth, isFsur, ng) % periodic
WEST_KRADIATION LBC(iwest,  isMtke, ng) % radiation
EAST_KRADIATION LBC(ieast,  isMtke, ng) % radiation
SOUTH_KRADIATION LBC(isouth, isMtke, ng) % radiation
NORTH_KRADIATION LBC(inorth, isMtke, ng) % radiation


Tracers
CPP Logical Switch, IF (...) THEN
WEST_TCLAMPED LBC(iwest,  isTvar(:), ng) % clamped
EAST_TCLAMPED LBC(ieast,  isTvar(:), ng) % clamped
SOUTH_TCLAMPED LBC(isouth, isTvar(:), ng) % clamped
NORTH_TCLAMPED LBC(inorth, isTvar(:), ng) % clamped
WESTERN_WALL LBC(iwest,  isTvar(:), ng) % closed
EASTERN_WALL LBC(ieast,  isTvar(:), ng) % closed
SOUTHERN_WALL LBC(isouth, isTvar(:), ng) % closed
NORTHERN_WALL LBC(inorth, isTvar(:), ng) % closed
WEST_TGRADIENT LBC(iwest,  isTvar(:), ng) % gradient
EAST_TGRADIENT LBC(ieast,  isTvar(:), ng) % gradient
SOUTH_TGRADIENT LBC(isouth, isTvar(:), ng) % gradient
NORTH_TGRADIENT LBC(inorth, isTvar(:), ng) % gradient
WEST_TNUDGING LBC(iwest,  isTvar(:), ng) % nudging
EAST_TNUDGING LBC(ieast,  isTvar(:), ng) % nudging
SOUTH_TNUDGING LBC(isouth, isTvar(:), ng) % nudging
NORTH_TNUDGING LBC(inorth, isTvar(:), ng) % nudging
EW_PERIODIC LBC(iwest,  isTvar(:), ng) % periodic
LBC(ieast,  isTvar(:), ng) % periodic
NS_PERIODIC LBC(isouth, isTvar(:), ng) % periodic
LBC(inorth, isTvar(:), ng) % periodic
WEST_TRADIATION LBC(iwest,  isTvar(:), ng) % radiation
EAST_TRADIATION LBC(ieast,  isTvar(:), ng) % radiation
SOUTH_TRADIATION LBC(isouth, isTvar(:), ng) % radiation
NORTH_TRADIATION LBC(inorth, isTvar(:), ng) % radiation
WEST_TOBC LBC(iwest,  isTvar(:), ng) % acquire
EAST_TOBC LBC(ieast,  isTvar(:), ng) % acquire
SOUTH_TOBC LBC(isouth, isTvar(:), ng) % acquire
NORTH_TOBC LBC(inorth, isTvar(:), ng) % acquire