Home Contact Us Site Map  
 
       
    next up previous contents
Next: 3.13 P coordinate Global Up: 3.12 Global Ocean MITgcm Previous: 3.12.2 Discrete Numerical Configuration   Contents

Subsections


3.12.3 Experiment Configuration

The model configuration for this experiment resides under the directory tutorial_examples/global_ocean_circulation/. The experiment files

  • input/data
  • input/data.pkg
  • input/eedata,
  • input/windx.bin,
  • input/windy.bin,
  • input/salt.bin,
  • input/theta.bin,
  • input/SSS.bin,
  • input/SST.bin,
  • input/topog.bin,
  • code/CPP_EEOPTIONS.h
  • code/CPP_OPTIONS.h,
  • code/SIZE.h.
contain the code customizations and parameter settings for these experiments. Below we describe the customizations to these files associated with this experiment.

3.12.3.1 Driving Datasets

Figures (-- missing figures --) show the relaxation temperature ( $ \theta^{\ast}$ ) and salinity ($ S^{\ast}$ ) fields, the wind stress components ($ \tau_x$ and $ \tau_y$ ), the heat flux ($ Q$ ) and the net fresh water flux ( $ {\cal E} - {\cal P} - {\cal R}$ ) used in equations (3.31-3.34). The figures also indicate the lateral extent and coastline used in the experiment. Figure (-- missing figure -- ) shows the depth contours of the model domain.

3.12.3.2 File input/data

This file, reproduced completely below, specifies the main parameters for the experiment. The parameters that are significant for this configuration are

  • Lines 7-10 and 11-14
     tRef= 16.0 , 15.2 , 14.5 , 13.9 , 13.3 ,
    
    $ \cdots$
    set reference values for potential temperature and salinity at each model level in units of $ ^{\circ }\mathrm {C}$ and $ {\rm ppt}$ . The entries are ordered from surface to depth. Density is calculated from anomalies at each level evaluated with respect to the reference values set here.
    \fbox{
\begin{minipage}{5.0in}
{\it S/R INI\_THETA}({\it ini\_theta.F})
\end{minipage}}

  • Line 15,
     viscAz=1.E-3,
    
    this line sets the vertical Laplacian dissipation coefficient to $ 1 \times 10^{-3} {\rm m^{2}s^{-1}}$ . Boundary conditions for this operator are specified later. This variable is copied into model general vertical coordinate variable viscAr.

    \fbox{
\begin{minipage}{5.0in}
{\it S/R CALC\_DIFFUSIVITY}({\it calc\_diffusivity.F})
\end{minipage}}

  • Line 16,
    viscAh=5.E5,
    
    this line sets the horizontal Laplacian frictional dissipation coefficient to $ 5 \times 10^{5} {\rm m^{2}s^{-1}}$ . Boundary conditions for this operator are specified later.

  • Lines 17,
    no_slip_sides=.FALSE.
    
    this line selects a free-slip lateral boundary condition for the horizontal Laplacian friction operator e.g. $ \frac{\partial
u}{\partial y}$ =0 along boundaries in $ y$ and $ \frac{\partial
v}{\partial x}$ =0 along boundaries in $ x$ .

  • Lines 9,
    no_slip_bottom=.TRUE.
    
    this line selects a no-slip boundary condition for bottom boundary condition in the vertical Laplacian friction operator e.g. $ u=v=0$ at $ z=-H$ , where $ H$ is the local depth of the domain.

  • Line 19,
    diffKhT=1.E3,
    
    this line sets the horizontal diffusion coefficient for temperature to $ 1000\,{\rm m^{2}s^{-1}}$ . The boundary condition on this operator is $ \frac{\partial}{\partial x}=\frac{\partial}{\partial y}=0$ on all boundaries.

  • Line 20,
    diffKzT=3.E-5,
    
    this line sets the vertical diffusion coefficient for temperature to $ 3 \times 10^{-5}\,{\rm m^{2}s^{-1}}$ . The boundary condition on this operator is $ \frac{\partial}{\partial z}=0$ at both the upper and lower boundaries.

  • Line 21,
    diffKhS=1.E3,
    
    this line sets the horizontal diffusion coefficient for salinity to $ 1000\,{\rm m^{2}s^{-1}}$ . The boundary condition on this operator is $ \frac{\partial}{\partial x}=\frac{\partial}{\partial y}=0$ on all boundaries.

  • Line 22,
    diffKzS=3.E-5,
    
    this line sets the vertical diffusion coefficient for salinity to $ 3 \times 10^{-5}\,{\rm m^{2}s^{-1}}$ . The boundary condition on this operator is $ \frac{\partial}{\partial z}=0$ at both the upper and lower boundaries.

  • Lines 23-26
    beta=1.E-11,
    

    $ \cdots$
    These settings do not apply for this experiment.

  • Line 27,
    gravity=9.81,
    
    Sets the gravitational acceleration coefficient to $ 9.81{\rm m}{\rm s}^{-1}$ .
    \fbox{
\begin{minipage}{5.0in}
{\it S/R CALC\_PHI\_HYD}~({\it calc\_phi\_hyd.F})...
...\
{\it S/R SOLVE\_FOR\_PRESSURE}~({\it solve\_for\_pressure.F})
\end{minipage}}

  • Line 28-29,
    rigidLid=.FALSE., 
    implicitFreeSurface=.TRUE.,
    
    Selects the barotropic pressure equation to be the implicit free surface formulation.

  • Line 30,
    eosType='POLY3',
    
    Selects the third order polynomial form of the equation of state.
    \fbox{
\begin{minipage}{5.0in}
{\it S/R FIND\_RHO}~({\it find\_rho.F})\\
{\it S/R FIND\_ALPHA}~({\it find\_alpha.F})
\end{minipage}}

  • Line 31,
    readBinaryPrec=32,
    
    Sets format for reading binary input datasets holding model fields to use 32-bit representation for floating-point numbers.
    \fbox{
\begin{minipage}{5.0in}
{\it S/R READ\_WRITE\_FLD}~({\it read\_write\_fld.F})\\
{\it S/R READ\_WRITE\_REC}~({\it read\_write\_rec.F})
\end{minipage}}

  • Line 36,
    cg2dMaxIters=1000,
    
    Sets maximum number of iterations the two-dimensional, conjugate gradient solver will use, irrespective of convergence criteria being met.
    \fbox{
\begin{minipage}{5.0in}
{\it S/R CG2D}~({\it cg2d.F})
\end{minipage}}

  • Line 37,
    cg2dTargetResidual=1.E-13,
    
    Sets the tolerance which the two-dimensional, conjugate gradient solver will use to test for convergence in equation 2.20 to $ 1 \times 10^{-13}$ . Solver will iterate until tolerance falls below this value or until the maximum number of solver iterations is reached.
    \fbox{
\begin{minipage}{5.0in}
{\it S/R CG2D}~({\it cg2d.F})
\end{minipage}}

  • Line 42,
    startTime=0,
    
    Sets the starting time for the model internal time counter. When set to non-zero this option implicitly requests a checkpoint file be read for initial state. By default the checkpoint file is named according to the integer number of time steps in the startTime value. The internal time counter works in seconds.

  • Line 43,
    endTime=2808000.,
    
    Sets the time (in seconds) at which this simulation will terminate. At the end of a simulation a checkpoint file is automatically written so that a numerical experiment can consist of multiple stages.

  • Line 44,
    #endTime=62208000000,
    
    A commented out setting for endTime for a 2000 year simulation.

  • Line 45,
    deltaTmom=2400.0,
    
    Sets the timestep $ \delta t_{v}$ used in the momentum equations to $ 20~{\rm mins}$ . See section 2.2.

    \fbox{
\begin{minipage}{5.0in}
{\it S/R TIMESTEP}({\it timestep.F})
\end{minipage}}

  • Line 46,
    tauCD=321428.,
    
    Sets the D-grid to C-grid coupling time scale $ \tau_{CD}$ used in the momentum equations.

    \fbox{
\begin{minipage}{5.0in}
{\it S/R INI\_PARMS}({\it ini\_parms.F})\\
{\it S/R MOM\_FLUXFORM}({\it mom\_fluxform.F})
\end{minipage}}

  • Line 47,
    deltaTtracer=108000.,
    
    Sets the default timestep, $ \delta t_{\theta}$ , for tracer equations to $ 30~{\rm hours}$ . See section 2.2.

    \fbox{
\begin{minipage}{5.0in}
{\it S/R TIMESTEP\_TRACER}({\it timestep\_tracer.F})
\end{minipage}}

  • Line 47,
    bathyFile='topog.box'
    
    This line specifies the name of the file from which the domain bathymetry is read. This file is a two-dimensional ($ x,y$ ) map of depths. This file is assumed to contain 64-bit binary numbers giving the depth of the model at each grid cell, ordered with the x coordinate varying fastest. The points are ordered from low coordinate to high coordinate for both axes. The units and orientation of the depths in this file are the same as used in the MITgcm code. In this experiment, a depth of $ 0m$ indicates a solid wall and a depth of $ -2000m$ indicates open ocean. The matlab program input/gendata.m shows an example of how to generate a bathymetry file.

  • Line 50,
    zonalWindFile='windx.sin_y'
    
    This line specifies the name of the file from which the x-direction surface wind stress is read. This file is also a two-dimensional ($ x,y$ ) map and is enumerated and formatted in the same manner as the bathymetry file. The matlab program input/gendata.m includes example code to generate a valid zonalWindFile file.

other lines in the file input/data are standard values that are described in the MITgcm Getting Started and MITgcm Parameters notes.

# ====================
# | Model parameters |
# ====================
#
# Continuous equation parameters
 &PARM01
 tRef= 16.0 , 15.2 , 14.5 , 13.9 , 13.3 ,
       12.4 , 11.3 ,  9.9 ,  8.4 ,  6.7 ,
        5.2 ,  3.8 ,  2.9 ,  2.3 ,  1.8 ,
        1.5 ,  1.1 ,  0.8 ,  0.66,  0.63,
 sRef= 34.65, 34.75, 34.82, 34.87, 34.90,
       34.90, 34.86, 34.78, 34.69, 34.60,
       34.58, 34.62, 34.68, 34.72, 34.73,
       34.74, 34.73, 34.73, 34.72, 34.72,
 viscAz=1.E-3,
 viscAh=5.E5,
 no_slip_sides=.FALSE.,
 no_slip_bottom=.TRUE.,
 diffKhT=1.E3,
 diffKzT=3.E-5,
 diffKhS=1.E3,
 diffKzS=3.E-5,
 beta=1.E-11,
 f0=1.e-4,
 tAlpha=2.E-4,
 sBeta =7.4E-4,
 gravity=9.81,
 rigidLid=.FALSE.,
 implicitFreeSurface=.TRUE.,
 eosType='LINEAR',
 readBinaryPrec=32,
 &

# Elliptic solver parameters
 &PARM02
 cg2dMaxIters=1000,
 cg2dTargetResidual=1.E-13,
 &

# Time stepping parameters
 &PARM03
 startTime=311040000,
 endTime=622080000,
#endTime=2808000.,
 deltaTmom=2400.0,
 tauCD=321428.,
 deltaTtracer=108000.0,
 deltaTClock =108000.0,
 cAdjFreq=-1.,
 abEps=0.1,
 pChkptFreq=0.0,
 chkptFreq=0.0,
 dumpFreq=2592000.0,
 dumpFreq=31104000.,
 tauThetaClimRelax=2592000.0,
 tauSaltClimRelax=2592000.0,
 &

# Gridding parameters
 &PARM04
 usingCartesianGrid=.FALSE.,
 usingSphericalPolarGrid=.TRUE.,
 delZ= 5.000000e+01, 5.000000e+01, 5.500000e+01, 6.000000e+01,
       6.500000e+01, 7.000000e+01, 8.000000e+01, 9.500000e+01,
       1.200000e+02, 1.550000e+02, 2.000000e+02, 2.600000e+02,
       3.200000e+02, 4.000000e+02, 4.800000e+02, 5.700000e+02,
       6.550000e+02, 7.250000e+02, 7.750000e+02, 8.150000e+02,
 phiMin=-80.,
 delY=40*4,
 delX=90*4,
 &

# Input datasets
 &PARM05
 hydrogThetaFile='theta.bin',
 hydrogSaltFile='salt.bin',
 bathyFile='topog.bin',
 zonalWindFile='windx.bin',
 meridWindFile='windy.bin',
 thetaClimFile='SST.bin'
 saltClimFile='SSS.bin'
 &

3.12.3.3 File input/data.pkg

This file uses standard default values and does not contain customisations for this experiment.

3.12.3.4 File input/eedata

This file uses standard default values and does not contain customisations for this experiment.

3.12.3.5 File input/windx.sin_y

The input/windx.sin_y file specifies a two-dimensional ($ x,y$ ) map of wind stress ,$ \tau_{x}$ , values. The units used are $ Nm^{-2}$ . Although $ \tau_{x}$ is only a function of $ y$ n in this experiment this file must still define a complete two-dimensional map in order to be compatible with the standard code for loading forcing fields in MITgcm. The included matlab program input/gendata.m gives a complete code for creating the input/windx.sin_y file.

3.12.3.6 File input/topog.box

The input/topog.box file specifies a two-dimensional ($ x,y$ ) map of depth values. For this experiment values are either $ 0m$ or $ -2000\,{\rm m}$ , corresponding respectively to a wall or to deep ocean. The file contains a raw binary stream of data that is enumerated in the same way as standard MITgcm two-dimensional, horizontal arrays. The included matlab program input/gendata.m gives a complete code for creating the input/topog.box file.

3.12.3.7 File code/SIZE.h

Two lines are customized in this file for the current experiment

  • Line 39,
     sNx=60,
    
    this line sets the lateral domain extent in grid points for the axis aligned with the x-coordinate.

  • Line 40,
     sNy=60,
    
    this line sets the lateral domain extent in grid points for the axis aligned with the y-coordinate.

  • Line 49,
     Nr=4,
    
    this line sets the vertical domain extent in grid points.

C $Header: /u/gcmpack/manual/s_examples/global_oce_latlon/code/SIZE.h,v 1.2 2001/09/27 00:58:17 cnh Exp $
C $Name:  $
C
C     /==========================================================\
C     | SIZE.h Declare size of underlying computational grid.    |
C     |==========================================================|
C     | The design here support a three-dimensional model grid   |
C     | with indices I,J and K. The three-dimensional domain     |
C     | is comprised of nPx*nSx blocks of size sNx along one axis|
C     | nPy*nSy blocks of size sNy along another axis and one    |
C     | block of size Nz along the final axis.                   |
C     | Blocks have overlap regions of size OLx and OLy along the|
C     | dimensions that are subdivided.                          |
C     \==========================================================/
C     Voodoo numbers controlling data layout.
C     sNx - No. X points in sub-grid.
C     sNy - No. Y points in sub-grid.
C     OLx - Overlap extent in X.
C     OLy - Overlat extent in Y.
C     nSx - No. sub-grids in X.
C     nSy - No. sub-grids in Y.
C     nPx - No. of processes to use in X.
C     nPy - No. of processes to use in Y.
C     Nx  - No. points in X for the total domain.
C     Ny  - No. points in Y for the total domain.
C     Nr  - No. points in Z for full process domain.
      INTEGER sNx
      INTEGER sNy
      INTEGER OLx
      INTEGER OLy
      INTEGER nSx
      INTEGER nSy
      INTEGER nPx
      INTEGER nPy
      INTEGER Nx
      INTEGER Ny
      INTEGER Nr
      PARAMETER (
     &           sNx =  90,
     &           sNy =  40,
     &           OLx =   3,
     &           OLy =   3,
     &           nSx =   1,
     &           nSy =   1,
     &           nPx =   1,
     &           nPy =   1,
     &           Nx  = sNx*nSx*nPx,
     &           Ny  = sNy*nSy*nPy,
     &           Nr  =  20)

C     MAX_OLX  - Set to the maximum overlap region size of any array
C     MAX_OLY    that will be exchanged. Controls the sizing of exch
C                routine buufers.
      INTEGER MAX_OLX
      INTEGER MAX_OLY
      PARAMETER ( MAX_OLX = OLx,
     &            MAX_OLY = OLy )

3.12.3.8 File code/CPP_OPTIONS.h

This file uses standard default values and does not contain customisations for this experiment.

3.12.3.9 File code/CPP_EEOPTIONS.h

This file uses standard default values and does not contain customisations for this experiment.

3.12.3.10 Other Files

Other files relevant to this experiment are

  • model/src/ini_cori.F. This file initializes the model coriolis variables fCorU.
  • model/src/ini_spherical_polar_grid.F
  • model/src/ini_parms.F,
  • input/windx.sin_y,
contain the code customisations and parameter settings for this experiments. Below we describe the customisations to these files associated with this experiment.


next up previous contents
Next: 3.13 P coordinate Global Up: 3.12 Global Ocean MITgcm Previous: 3.12.2 Discrete Numerical Configuration   Contents
mitgcm-support@mitgcm.org
Copyright © 2006 Massachusetts Institute of Technology Last update 2011-01-09