[MITgcm-support] Tides in channel model

Stanislav Martyanov martyanov.sd at gmail.com
Tue Dec 7 03:25:07 EST 2021


Hello,  Qiyu,

The EXF package expects the 2D fields of tidal geopotential as tidal
forcing. Say, your configuration is 100x200 horizontally. Then you need to
provide to the MITgcm a file containing the arrays each of 100x200
elements, for each time step of external forcing (e.g., your forcing time
step is1 hour => you need 25 arrays of 100x200 elements for a full one day
forcing, taking into account the interpolation in time). You may also
provide a coarser forcing (e.g., 10x20 in horizontal) and use a built-in
interpolation implemented in the MITgcm.

Also, once you work with a channel model, I again suggest having a look at
the OBCS package. It works not with tidal external forcing in the form of
geopotential (as EXF package), but with tidal forcing at the open boundary
(amplitude, phase, period). For me, it is a more natural way to implement a
tidal forcing for a channel. But it all depends on the size of your
channel, of course.

Please note that not all information is presented in the user's manual. A
lot of useful information can be found in the code, especially in the
header files.

Regards,
Stanislav

пн, 6 дек. 2021 г. в 19:43, Qiyu Xiao <qx344 at nyu.edu>:

> Thank you Stanislav, Ryan, Yu-Kun, Jody and Jean-Michel for the help! I
> think these are all very helpful suggestions. As some of you mentioned EXF,
> I want to ask a follow up question about this package: what kind of input
> file it's expecting for tidal forcing? I couldn't find an answer to this
> from the MITGCM's user manual.
>
> Thanks,
> Qiyu
>
> On Sat, Dec 4, 2021 at 12:00 PM <mitgcm-support-request at mitgcm.org> wrote:
>
>> Send MITgcm-support mailing list submissions to
>>         mitgcm-support at mitgcm.org
>>
>> To subscribe or unsubscribe via the World Wide Web, visit
>>
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__mailman.mitgcm.org_mailman_listinfo_mitgcm-2Dsupport&d=DwICAg&c=slrrB7dE8n7gBJbeO0g-IQ&r=5BDRdcOUIuLA0nIj7UBsNw&m=y1zd1j4BNqJV66mCcYi5svvmGr5gN1TgbfQ3HsncVPj6iFSQzQVtU6RZ1_TgDGnk&s=1dA1yYQQgG8k61OS2EZM79DOLvhNmYYbHS3E-FoYqfs&e=
>> or, via email, send a message with subject or body 'help' to
>>         mitgcm-support-request at mitgcm.org
>>
>> You can reach the person managing the list at
>>         mitgcm-support-owner at mitgcm.org
>>
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of MITgcm-support digest..."
>>
>>
>> Today's Topics:
>>
>>    1. Re: Tides in channel model (Jody Klymak)
>>    2. Re: Tides in channel model (Jean-Michel Campin)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Fri, 3 Dec 2021 18:13:26 +0100
>> From: Jody Klymak <jklymak at uvic.ca>
>> To: mitgcm-support at mitgcm.org
>> Subject: Re: [MITgcm-support] Tides in channel model
>> Message-ID: <2743C27F-C1CB-4AF0-82E2-D0E698F5FB5A at uvic.ca>
>> Content-Type: text/plain; charset="utf-8"
>>
>> I hesitate to share this because it is undocumented, but it works fine:
>>
>>
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_jklymak_MITgcm-5Fbtforcing&d=DwICAg&c=slrrB7dE8n7gBJbeO0g-IQ&r=5BDRdcOUIuLA0nIj7UBsNw&m=y1zd1j4BNqJV66mCcYi5svvmGr5gN1TgbfQ3HsncVPj6iFSQzQVtU6RZ1_TgDGnk&s=LJ77rs2ArlyEBb2sDDFurZt3ZkLqzPnP0k7HBucDYD4&e=
>> <
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_jklymak_MITgcm-5Fbtforcing&d=DwICAg&c=slrrB7dE8n7gBJbeO0g-IQ&r=5BDRdcOUIuLA0nIj7UBsNw&m=y1zd1j4BNqJV66mCcYi5svvmGr5gN1TgbfQ3HsncVPj6iFSQzQVtU6RZ1_TgDGnk&s=LJ77rs2ArlyEBb2sDDFurZt3ZkLqzPnP0k7HBucDYD4&e=
>> >
>>
>> You should definitely adapt to your needs, - this one forces in y by fU
>> for a mean, and x by a tidal body force?
>>
>>
>> Cheers,  Jody
>>
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL: <
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__mailman.mitgcm.org_pipermail_mitgcm-2Dsupport_attachments_20211203_4c4372ae_attachment-2D0001.html&d=DwICAg&c=slrrB7dE8n7gBJbeO0g-IQ&r=5BDRdcOUIuLA0nIj7UBsNw&m=y1zd1j4BNqJV66mCcYi5svvmGr5gN1TgbfQ3HsncVPj6iFSQzQVtU6RZ1_TgDGnk&s=pwRweddP-SliGI-TQblrzu1JdjC4zqGlx7v3PcsFNlo&e=
>> >
>>
>> ------------------------------
>>
>> Message: 2
>> Date: Fri, 3 Dec 2021 12:28:28 -0500
>> From: Jean-Michel Campin <jmc at mit.edu>
>> To: mitgcm-support at mitgcm.org
>> Subject: Re: [MITgcm-support] Tides in channel model
>> Message-ID: <20211203172828.GB46701 at ocean.mit.edu>
>> Content-Type: text/plain; charset=us-ascii
>>
>> Hi Ryan,
>>
>> Since the tidal forcing is just variation of gravity, and gravity can be
>> expressed
>> as gradient of a potential, the tidal forcing can be provided as a tidal
>> potential.
>> This is how it's done in MITgcm, except that it's only a 2-D forcing
>> field (neglecting vertical
>> gradient of tidal geopotential is generally OK and fits better with
>> hydrostatic approximation
>> and, to a lesser extent with thin-shell approximation).
>>
>> It has been implemented in pkg/exf (back in October 2017):
>> #define EXF_ALLOW_TIDES , variable "tidePot", parameters "tidePot*" (e.g.,
>> tidePotFile, tidePotStartdate1 ...).
>>
>> And I am copying below the content of a message that got sent to some
>> MITgcm email list
>> back at that time, regarding the advantage of separating tidal
>> geopotential from
>> atmospheric pressure loading.
>>
>> Cheers,
>> Jean-Michel
>>
>> -------------------------
>> > Tue Oct 3 14:47:22 EDT 2017
>> >
>> > Hi Dimitris and other,
>> >
>> > Until now, when you run some global ocean with tides, the tidal forcing
>> > was specified as an equivalent atmospheric pressure, presumably through
>> pkg/exf.
>> >
>> > There are few limitations with this approach:
>> > 1) the exf atmospheric pressure field cannot be used for something else,
>> >  such as a more precise estimation of air density (#define
>> EXF_CALC_ATMRHO).
>> > 2) the tide geopotential is added to the ocean pressure field
>> (totPhiHyd)
>> >  which prevent to use it inside the EOS (selectP_inEOS_Zc=2, default
>> >  with EOS: JMD95P, UNESCO, MDJWF and TEOS10).
>> > 3) if one want to specify both an atmospheric loading and a tidal
>> forcing,
>> >  the forcing input field become a mix, not practical nor very natural.
>> >  And this is also the case when coupled to atmospheric GCM.
>> >
>> > Therefore, I propose to add an other 2-D forcing field to account for
>> > tidal forcing. The most natural way would be a tidal geopotential (or
>> > any time-dependent geopotential anomaly), units: m^2/s^2.
>> >
>> > An other advantage is that it would be available in the same form for
>> > Ocean in p-coords set-up as well as for atmospheric set-up.
>> >
>> > The gradient of it would be added to horizontal momentum tendency as
>> > part of the forcing (in S/R EXTERNAL_FORCING_U & EXTERNAL_FORCING_V)
>> > which is different form current atmospheric loading, for instance
>> regarding
>> > the Adams-Bashforth (pressure gradient in or out AB depending on
>> staggerTimeStep,
>> > whereas forcing has it's own parameter: momForcingOutAB).
>> >
>> > Any suggestion or comments ?
>> >
>> > Cheers,
>> > Jean-Michel
>> -------------------------
>>
>> On Fri, Dec 03, 2021 at 11:46:58PM +0800, ?????? wrote:
>> > Hi Ryan,
>> >
>> >
>> > I have recently tried to add a body forcing to mimic the M2 tide
>> > in a channel model (in 2D x-z plane).  It is quite easy to
>> implement
>> > this by adding some code snippets in 'apply_forcing.F' (see attached).
>> > I found these codes somewhere on the web (but do not remember now).
>> > Its effect can be seen in this animation:
>> >
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_miniufo_InternalWaveBreaking&d=DwICAg&c=slrrB7dE8n7gBJbeO0g-IQ&r=5BDRdcOUIuLA0nIj7UBsNw&m=y1zd1j4BNqJV66mCcYi5svvmGr5gN1TgbfQ3HsncVPj6iFSQzQVtU6RZ1_TgDGnk&s=2DjJqdD4A8I_dMn9gxusC4B_Vi9JphQk2P8imYs7KBY&e=
>> >
>> >
>> > Notice that it is applied to the first 5 tiles (bi.LT.5).  Hope
>> this helps.
>> >
>> >
>> >
>> >  Best regards
>> >
>> > Yu-Kun Qian (??????)
>> > Center for Monsoon and Environment Research
>> >  Department of Atmospheric Sciences
>> > School of Environmental Science and Engineering
>> >  Sun Yat-sen University
>> > No. 135 Xingang West Road, Haizhu District
>> > Guangzhou, 510275, P.R. China
>> > Tel; 020-84115227
>> > Email: qianyk at mail3.sysu.edu.cn      
>> >
>> >
>> >  
>> >  
>> >  
>> > ------------------ ???????? ------------------
>> > ??????: "Ryan Abernathey"<ryan.abernathey at gmail.com>;
>> > ????????: 2021??12??3??(??????) ????10:21
>> > ??????: "MITgcm-support"<mitgcm-support at mitgcm.org>;
>> >
>> > ????: Re: [MITgcm-support] Tides in channel model
>> >
>> >  
>> >
>> > Thanks for the reply Stanislav! 
>> >
>> > In this case, Qiyu is working with a zonally reentrant channel (similar
>> to 
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__mitgcm.readthedocs.io_en_latest_examples_reentrant-5Fchannel_reentrant-5Fchannel.html&d=DwICAg&c=slrrB7dE8n7gBJbeO0g-IQ&r=5BDRdcOUIuLA0nIj7UBsNw&m=y1zd1j4BNqJV66mCcYi5svvmGr5gN1TgbfQ3HsncVPj6iFSQzQVtU6RZ1_TgDGnk&s=MXz3_QUcZCQkgP_w05JV9FpDCPDmvpD7RCBnLOaitnU&e=
>> ), so there is no open boundary at which to apply tidal forcing. So
>> although it is a small domain, it is more similar to a global model in this
>> respect.
>> >
>> >
>> > My understanding was that the most common way to force tides in global
>> models was via a specified surface pressure field in the EXF package. (E.g.
>> that's how the LLC4320 simulations were forced.) But I also know there has
>> been a lot of recent work in this area, so maybe there is a simpler option.
>> >
>> >
>> > Has anyone tried specifying a body force in analytic form using a
>> custom code file? Where would be the right place in the code to insert such
>> a forcing?
>> >
>> >
>> > Best,
>> > Ryan
>> >
>> >
>> > On Fri, Dec 3, 2021 at 4:18 AM Stanislav Martyanov <
>> martyanov.sd at gmail.com> wrote:
>> >
>> > Hello Qiyu,
>> > the easiest way is to generate a simple grid with constant dx (and/or
>> dy) with one or several open boundaries specified in OBCS_OPTIONS.h
>> (#define ALLOW_OBCS_NORTH, etc). Then, you will need to configure the open
>> boundary conditions (if you specify induced tide) and external forcing (if
>> you want to set geopotantial): i.e. #define OBCS_ALLOW_TIDES in
>> OBCS_OPTIONS.h, and #define EXT_ALLOW_TIDES in EXT_OPTIONS.h
>> >
>> >
>> > And, of course, you need to set the corresponding filenames with the
>> tidal forcing in data.obcs (and in data.exf, if you want geopotential).
>> Note that only the normal component of tidal current at the open boundaries
>> is currently implemented in the model.
>> >
>> >
>> > You also should get familiar with the OBCS package where tides can
>> be specified (as open boundary conditions), and with the EXF
>> package where tides can be added through geopotental.
>> >
>> >
>> > Best,
>> > Stanislav
>> >
>> > ????, 1 ??????. 2021 ??. ?? 21:50, Qiyu Xiao <qx344 at nyu.edu>:
>> >
>> > Dear MITgcm users/developers,
>> >
>> >
>> > If I want to run a channel model with tides, what is the best way to do
>> that? What functions/variables should I change or is there any package for
>> this purpose?
>> >
>> >
>> >
>> > Thanks,
>> > Qiyu
>> >
>> >
>> >  _______________________________________________
>> >  MITgcm-support mailing list
>> >  MITgcm-support at mitgcm.org
>> >
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__mailman.mitgcm.org_mailman_listinfo_mitgcm-2Dsupport&d=DwICAg&c=slrrB7dE8n7gBJbeO0g-IQ&r=5BDRdcOUIuLA0nIj7UBsNw&m=y1zd1j4BNqJV66mCcYi5svvmGr5gN1TgbfQ3HsncVPj6iFSQzQVtU6RZ1_TgDGnk&s=1dA1yYQQgG8k61OS2EZM79DOLvhNmYYbHS3E-FoYqfs&e=
>> >
>> >
>> >
>> >  _______________________________________________
>> >  MITgcm-support mailing list
>> >  MITgcm-support at mitgcm.org
>> >
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__mailman.mitgcm.org_mailman_listinfo_mitgcm-2Dsupport&d=DwICAg&c=slrrB7dE8n7gBJbeO0g-IQ&r=5BDRdcOUIuLA0nIj7UBsNw&m=y1zd1j4BNqJV66mCcYi5svvmGr5gN1TgbfQ3HsncVPj6iFSQzQVtU6RZ1_TgDGnk&s=1dA1yYQQgG8k61OS2EZM79DOLvhNmYYbHS3E-FoYqfs&e=
>>
>>
>> > _______________________________________________
>> > MITgcm-support mailing list
>> > MITgcm-support at mitgcm.org
>> >
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__mailman.mitgcm.org_mailman_listinfo_mitgcm-2Dsupport&d=DwICAg&c=slrrB7dE8n7gBJbeO0g-IQ&r=5BDRdcOUIuLA0nIj7UBsNw&m=y1zd1j4BNqJV66mCcYi5svvmGr5gN1TgbfQ3HsncVPj6iFSQzQVtU6RZ1_TgDGnk&s=1dA1yYQQgG8k61OS2EZM79DOLvhNmYYbHS3E-FoYqfs&e=
>>
>>
>>
>> ------------------------------
>>
>> Subject: Digest Footer
>>
>> _______________________________________________
>> MITgcm-support mailing list
>> MITgcm-support at mitgcm.org
>>
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__mailman.mitgcm.org_mailman_listinfo_mitgcm-2Dsupport&d=DwICAg&c=slrrB7dE8n7gBJbeO0g-IQ&r=5BDRdcOUIuLA0nIj7UBsNw&m=y1zd1j4BNqJV66mCcYi5svvmGr5gN1TgbfQ3HsncVPj6iFSQzQVtU6RZ1_TgDGnk&s=1dA1yYQQgG8k61OS2EZM79DOLvhNmYYbHS3E-FoYqfs&e=
>>
>>
>> ------------------------------
>>
>> End of MITgcm-support Digest, Vol 222, Issue 3
>> **********************************************
>>
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.mitgcm.org/pipermail/mitgcm-support/attachments/20211207/8e5d12f6/attachment-0001.html>


More information about the MITgcm-support mailing list