[MITgcm-support] spatially variable bottom drag

Michael A Spall mspall at whoi.edu
Tue Apr 12 12:58:32 EDT 2022


Thanks, working now.

==================================================================

Michael A. Spall
Senior Scientist
Clark 323A
Department of Physical Oceanography
Woods Hole Oceanographic Institution
360 Woods Hole Road MS #21
Woods Hole, MA 02543

508-289-3342
mspall at whoi.edu
https://www2.whoi.edu/staff/mspall

________________________________________
From: MITgcm-support <mitgcm-support-bounces at mitgcm.org> on behalf of Martin Losch <Martin.Losch at awi.de>
Sent: Tuesday, April 12, 2022 10:39 AM
To: MITgcm Support
Subject: Re: [MITgcm-support] spatially variable bottom drag

Hi Mike,

With your “SIZE.h” (nSx=nSy=1), the bi/bj can only be one, so that shouldn’t worry you. There’s a PR https://github.com/MITgcm/MITgcm/pull/574<https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMITgcm%2FMITgcm%2Fpull%2F574&data=04%7C01%7Cmspall%40whoi.edu%7C7bada2e22b8a4aaa231408da1c925484%7Cd44c5cc6d18c46cc8abd4fdf5b6e5944%7C0%7C0%7C637853712506267645%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=yddgI41PRGwx5z8Iqb61r7BCetCPE6Q9g3QrQ3S%2Bd1o%3D&reserved=0> where I added 2D quadratic drag coefficient fields, maybe you can use that as a template, but I think you are already on the right track.

Martin

On 12. Apr 2022, at 16:21, Michael A Spall <mspall at whoi.edu<mailto:mspall at whoi.edu>> wrote:

I am interested in making my linear bottom drag coefficient a function of space. I tried to do this
by defining a 2-D array between 0 and 1 and multiplying the rhs of uDragTerms in mom_u_bottomdrag.F
by this scaling array (same for vDragTerms in mom_v_bottomdrag.F). I added common blocks to those
subroutines with the array so it is seen there. However, it looks like bi and bj are both 1 for all tiles in those
subtroutines, so it always takes the values of my scaling array from the first tile.  Also in dynamics.F, which
calls them. I found some text online that says these are done in dynamics.F by a single loop, but I don't know
what that means.  Any advice on how to make bottom drag a function of location?

I am using MITgcm_c65l, the SIZE.h file is below.

Thanks,
Mike

C $Header: /u/gcmpack/MITgcm/model/inc/SIZE.h,v 1.28 2009/05/17 21:15:07 jmc Exp $
C $Name:  $
C
CBOP
C    !ROUTINE: SIZE.h
C    !INTERFACE:
C    include SIZE.h
C    !DESCRIPTION: \bv
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     \ev
CEOP
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 = 35,
    &           sNy = 35,
    &           OLx =   4,
    &           OLy =   4,
    &           nSx =   1,
    &           nSy =   1,
    &           nPx =  12,
    &           nPy =  12,
    &           Nx  = sNx*nSx*nPx,
    &           Ny  = sNy*nSy*nPy,
    &           Nr  =  60)

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 buffers.
     INTEGER MAX_OLX
     INTEGER MAX_OLY
     PARAMETER ( MAX_OLX = OLx,
    &            MAX_OLY = OLy )



==================================================================

Michael A. Spall
Senior Scientist
Clark 323A
Department of Physical Oceanography
Woods Hole Oceanographic Institution
360 Woods Hole Road MS #21
Woods Hole, MA 02543

508-289-3342
mspall at whoi.edu<mailto:mspall at whoi.edu>
https://www2.whoi.edu/staff/mspall
_______________________________________________
MITgcm-support mailing list
MITgcm-support at mitgcm.org
http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support



More information about the MITgcm-support mailing list