Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:36:05 UTC

view on githubraw file Latest commit ad38444b on 2018-01-31 20:35:48 UTC
688d11fba8 Alis*0001 <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
                0002 <html>
                0003 <head>
                0004    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                0005    <meta name="GENERATOR" content="Mozilla/4.5 [en] (X11; U; Linux 2.0.34 i586) [Netscape]">
                0006 </head>
                0007 <body>
                0008 
                0009 <h1>
                0010 Open Boundaries Implementation in MITgcmUV</h1>
                0011 These are some quick explanatory notes regards implementation of open boundaries
                0012 (OB) and the example configuration found in .../verification/exp4/
                0013 <br>&nbsp;
                0014 <h2>
                0015 Input and control of OBs</h2>
                0016 
                0017 <ul>
                0018 <li>
                0019 The open boundaries code is used only if the LOGICAL parameter openBondaries
                0020 is .TRUE.</li>
                0021 
                0022 <li>
                0023 Four 1-dimensional INTEGER arrays indicate the position of an OB: OB_Jnorth,
                0024 OB_Jsouth, OB_Ieast and OB_Iwest.</li>
                0025 </ul>
                0026 The values of OB_* indicate the absolute computational coordinate of an
                0027 open boundary. eg. OB_Jsouth(3)=4
                0028 <br>means that in the column I=3 there is a "southern" OB at tracer point
                0029 J=4. Similarly OB_Iwest(2)=1 means that
                0030 <br>the tracer point (2,1) is an OB&nbsp;point. This structure for specifying
                0031 OBs assumes that there will be only one northern and southern OB per column
                0032 and similar in the other direction. An entry of 0 (zero) means there is
                0033 now OB in that column/row.
                0034 <p>The reference to "tracer points" above introduces an important distinction
                0035 between particular boundaries due to the C-grid staggering of variables.
                0036 At a northern OB tracer point (i,j) the OB v-velocity point is at (i,j)&nbsp;
                0037 while at a southern OB tracer point (i,j) the OB v-velocity point is at
                0038 (i,j+1). This is all taken care of in the code but when specifying OB values
                0039 it is important to remember the physical coordinates of T,S,U and V are
                0040 not the same for a given computational index.
                0041 <br>&nbsp;
                0042 <h3>
                0043 Changing the type of open boundary</h3>
                0044 The supplied code simply specifies model variables at the appropriate points.
                0045 The value to be specified can (and should) be determine using a radiative
                0046 condition. A skeleton code is supplied set_obcs.F to illustrate how
                0047 <br>this might be done. This is the only routine that needs to be edited.
                0048 Edit others at your own peril!
                0049 <br>&nbsp;
                0050 <h3>
                0051 The examples</h3>
                0052 There are three examples in .../verification/exp4/
                0053 <ol>
                0054 <li>
                0055 A zonal channel (solid side walls) with open boundaries at either end:
                0056 data.channel</li>
                0057 
                0058 <li>
                0059 A zonal channel with a Gaussian bump and open boundaries at either end:
                0060 data.bumpchannel</li>
                0061 
                0062 <li>
                0063 An open domain (OBs on four sides) with a Gaussian bump: data.bump</li>
                0064 </ol>
                0065 Each data file has a corresponding topog.* file which is specified through
                0066 the variable bathyFile in data.*
                0067 <br>The physical problem has a flow of U=25 cm/s specified at all open
                0068 boundaries. The details of the experiment can be found in Adcroft's thesis
                0069 (Imperial College) and in Adcroft, Hill and Marshall, MWR 1997.
                0070 <p>The differences between the supplied data.* files also show how to turn
                0071 particular OBs on and off.
                0072 <h3>
                0073 Compiling and running the examples</h3>
                0074 The examples supplied are the barotropic zonal flow over a Gaussian bump
                0075 in a channel.
                0076 <ul>
                0077 <li>
                0078 Header files: Copy or link SIZE.h, CPP_OPTIONS.h and CP_EEOPTIONS.h from
290fc955d2 Alis*0079 .../verification/exp4/code/ to .../model/inc/, .../model/inc/ and .../eesupp.inc/
688d11fba8 Alis*0080 respectively</li>
                0081 
                0082 <li>
                0083 Modified source: Copy set_obcs.F to .../model/src/</li>
                0084 </ul>
                0085 Now compile the code as usual:
                0086 <ul>
                0087 <li>
                0088 cd bin</li>
                0089 
                0090 <li>
                0091 ../tools/genmake -makefile</li>
                0092 
                0093 <li>
                0094 make depend</li>
                0095 
                0096 <li>
                0097 make</li>
                0098 </ul>
                0099 To run the code you must first choose a data file to use:
                0100 <ul>
                0101 <li>
290fc955d2 Alis*0102 cd ../verification/exp4/input/</li>
688d11fba8 Alis*0103 
                0104 <li>
                0105 cp data.bump data</li>
                0106 
                0107 <li>
                0108 ../../exe/mitgcmuv</li>
                0109 </ul>
                0110 Happy Open Boundarying!
                0111 </body>
                0112 </html>