[MITgcm-support] MITgcm-support Digest, Vol 161, Issue 21

Martin Losch martin.losch at awi.de
Wed Nov 23 12:03:38 EST 2016


You don’t need the non-linear free surface. You can turn your sea-level data into a stream function, ie. barotropic normal velocities.
If you want to use the non-linear free surface, you should inspect the code (obcs_calc_stevens.F) and see if you are happy with the treatment of the free surface in that case (search for NONLIN_FRSURF).
If you turn the nonlinear free surface on, the model will complain (produce an error message), but it will not stop. I am using this all the time with some success (I don’t do tides, but I don’t see why they should not work in this way).

Martin


> On 22 Nov 2016, at 19:02, Alexey <isaev at rshu.ru> wrote:
> 
> Dear Martin,
> 
> 
> Thank very much for your prompt answer.
> 
> I have checked the Stevens (1990) boundary condition, but that provides no solution for the problem as it states in the documentation "THE IMPLEMENTATION OF THESE BOUNDARY CONDITIONS IS NOT COMPLETE. PASSIVE TRACERS, SEA ICE AND NON-LINEAR FREE SURFACE ARE NOT SUPPORTED PROPERLY."
> Therefore the questions remains: I am confused about how the velocities at the boundary are calculated given the sea level only and non-linear free surface.
> 
> Sincerely,
> 
> Alexey
> 
> 
> 
> 18.11.2016 20:00, mitgcm-support-request at mitgcm.org пишет:
>> Send MITgcm-support mailing list submissions to
>> 	mitgcm-support at mitgcm.org
>> 
>> To subscribe or unsubscribe via the World Wide Web, visit
>> 	http://mitgcm.org/mailman/listinfo/mitgcm-support
>> 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. obcs with non linear free surface (Alexey)
>>    2. Re: obcs with non linear free surface (Martin Losch)
>> 
>> 
>> ----------------------------------------------------------------------
>> 
>> Message: 1
>> Date: Fri, 18 Nov 2016 18:01:52 +0300
>> From: Alexey <isaev at rshu.ru>
>> To: mitgcm-support at mitgcm.org
>> Subject: [MITgcm-support] obcs with non linear free surface
>> Message-ID: <497014ee-ab25-cd2d-a6e8-5b1620d27007 at rshu.ru>
>> Content-Type: text/plain; charset="utf-8"; Format="flowed"
>> 
>> Dear sirs,
>> 
>> I am trying to set MITgcm for the Baltic sea.
>> 
>> For boundary conditions there are temperature, salinity and sea level
>> available only.
>> 
>> I guess that with that data for the open boundary (the northern
>> boundary) only NONLIN_FRSURF built is possible.
>> 
>> In this case the sea level is overestimated for multi-year runs. From
>> the code I figured that the velocities at the boundaries are set to zero,
>> 
>> which, probably, leads to the significant underestimation of the mass
>> transport off the basin.
>> 
>> Is that so?
>> 
>> Besides, the simulation presents an steep step-like structure near the
>> boundary between the boundary and the inner simulation domain.
>> 
>> Could you please advice me on the code alteration to obtain the
>> velocities from the level values?
>> 
>> Which subroutines are to be modified?
>> 
>> data - namelist
>> 
>> rhonil=1027.5,
>>   rhoConstFresh=999.8,
>>   eosType='JMD95Z',
>>   hFacMinDr=50.,
>>   hFacMin=0.3,
>>   hFacInf=0.1,
>>   hFacSup=5.,
>>   implicitDiffusion=.TRUE.,
>>   implicitViscosity=.TRUE.,
>>   viscC4Leith=1.5,
>>   viscC4Leithd=1.5,
>>   viscA4GridMax=0.5,
>>   useAreaViscLength=.TRUE.,
>>   sideDragFactor=0.,
>>   highOrderVorticity  = .TRUE.,
>>   bottomDragQuadratic = 0.0021,
>>   tempAdvScheme=7,
>>   saltAdvScheme=7,
>>   StaggerTimeStep=.TRUE.,
>>   multiDimAdvection=.TRUE.,
>>   vectorInvariantMomentum=.TRUE.,
>>   rigidLid=.FALSE.,
>>   implicitFreeSurface=.TRUE.,
>>   exactConserv=.TRUE.,
>>   debuglevel=-1,
>>   convertFW2Salt=-1
>>   useSingleCpuIO=.TRUE.,
>>   globalFiles=.FALSE.,
>>   useRealFreshWaterFlux=.TRUE.,
>>   implicSurfPress = 1.0,
>>   implicDiv2Dflow = 1.0,
>>   select_rStar =2,
>>   nonlinFreeSurf=4,
>> 
>> 
>> data.obcs - namelist
>> 
>>   &OBCS_PARM01
>>   OB_Jnorth(15)=-250,
>>   OB_Jnorth(16)=-250,
>>   OB_Jnorth(17)=-250,
>>   OB_Jnorth(18)=-250,
>>   OB_Jnorth(19)=-250,
>>   OB_Jnorth(20)=-250,
>>   OB_Jnorth(21)=-250,
>>   OB_Jnorth(22)=-250,
>>   OB_Jnorth(23)=-250,
>>   OB_Jnorth(24)=-250,
>>   OB_Jnorth(25)=-250,
>>   OB_Jnorth(26)=-250,
>>   OB_Jnorth(27)=-250,
>>   OB_Jnorth(28)=-250,
>>   OB_Jnorth(29)=-250,
>>   OB_Jnorth(30)=-250,
>>   OB_Jnorth(31)=-250,
>> #
>>   useOBCSprescribe=.TRUE.,
>>   useOBCSbalance=.TRUE.,
>>   OBCS_balanceFacN = 2.,
>>   OBCSfixTopo = .TRUE.,
>> #
>>   useOBCSsponge   = .TRUE.,
>>   useSeaiceSponge = .TRUE.,
>> 
>> 
>>   &OBCS_PARM03
>>   spongeThickness = 5,
>>   Urelaxobcsinner=108000.0,
>>   Urelaxobcsbound=10800.0,
>>   Vrelaxobcsinner=108000.0,
>>   Vrelaxobcsbound=10800.0,
>>   &
>> 
>> Sincerely,
>> 
>> Alexey
>> 
>> Russian State Hydrometeorological University
>> 
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL: <http://mitgcm.org/pipermail/mitgcm-support/attachments/20161118/dcf48839/attachment.html>
>> 
>> ------------------------------
>> 
>> Message: 2
>> Date: Fri, 18 Nov 2016 17:28:48 +0100
>> From: Martin Losch <martin.losch at awi.de>
>> To: MITgcm Support <mitgcm-support at mitgcm.org>
>> Subject: Re: [MITgcm-support] obcs with non linear free surface
>> Message-ID: <A6E6C9CA-B7E4-4BAC-9607-5FF1B8DE8056 at awi.de>
>> Content-Type: text/plain; charset="utf-8"
>> 
>> Hi Alexey,
>> 
>> see comments below, hope that helps,
>> 
>> Martin
>> 
>>> On 18 Nov 2016, at 16:01, Alexey <isaev at rshu.ru> wrote:
>>> 
>>> 
>>> 
>>> Dear sirs,
>>> 
>>> I am trying to set MITgcm for the Baltic sea.
>>> For boundary conditions there are temperature, salinity and sea level available only.
>> You can interpret sea level as a stream function and prescribe a barotropic flow together with the Steven (1990) boundary condition (see documentation of OBCS).
>>> I guess that with that data for the open boundary (the northern boundary) only NONLIN_FRSURF built is possible.
>> Not necessarily, a linear free surface should also be possible, see above (but nonlinear free surface is possible, too).
>>> In this case the sea level is overestimated for multi-year runs. From the code I figured that the velocities at the boundaries are set to zero,
>>> which, probably, leads to the significant underestimation of the mass transport off the basin.
>>> Is that so?
>> I guess your sea level produces too much inflow. You should ?massage? your input fields (input velocities derived from your sea level) to have net-zero flux (over your intergration period); that?s a bit tricky because you need to take the exact geometry into account. Alternatively you can use the balancing options to enforce no net flow at each time step; not very physical, but very effective (and you have it turned on already, see also the documentation.
>>> Besides, the simulation presents an steep step-like structure near the boundary between the boundary and the inner simulation domain.
>> That?s because you use " useSeaiceSponge = .TRUE.,?, turn it off, then there will be a jump at the boundary itself. With the Stevens bc this discontinuity is much smaller in my experience.
>>> Could you please advice me on the code alteration to obtain the velocities from the level values?
>>> Which subroutines are to be modified?
>>> data - namelist
>>> rhonil=1027.5,
>>>  rhoConstFresh=999.8,
>>>  eosType='JMD95Z',
>>>  hFacMinDr=50.,
>>>  hFacMin=0.3,
>>>  hFacInf=0.1,
>>>  hFacSup=5.,
>>>  implicitDiffusion=.TRUE.,
>>>  implicitViscosity=.TRUE.,
>>>  viscC4Leith=1.5,
>>>  viscC4Leithd=1.5,
>>>  viscA4GridMax=0.5,
>>>  useAreaViscLength=.TRUE.,
>>>  sideDragFactor=0.,
>>>  highOrderVorticity  = .TRUE.,
>>>  bottomDragQuadratic = 0.0021,
>>>  tempAdvScheme=7,
>>>  saltAdvScheme=7,
>>>  StaggerTimeStep=.TRUE.,
>>>  multiDimAdvection=.TRUE.,
>>>  vectorInvariantMomentum=.TRUE.,
>>>  rigidLid=.FALSE.,
>>>  implicitFreeSurface=.TRUE.,
>>>  exactConserv=.TRUE.,
>>>  debuglevel=-1,
>>>  convertFW2Salt=-1
>>>  useSingleCpuIO=.TRUE.,
>>>  globalFiles=.FALSE.,
>>>  useRealFreshWaterFlux=.TRUE.,
>>>  implicSurfPress = 1.0,
>>>  implicDiv2Dflow = 1.0,
>>>  select_rStar =2,
>>>  nonlinFreeSurf=4,
>>> 
>>> data.obcs - namelist
>>>  &OBCS_PARM01
>> This could be shorter:
>>  OB_Jnorth(15:31) = 16*-250,
>>>  OB_Jnorth(15)=-250,
>>>  OB_Jnorth(16)=-250,
>>>  OB_Jnorth(17)=-250,
>>>  OB_Jnorth(18)=-250,
>>>  OB_Jnorth(19)=-250,
>>>  OB_Jnorth(20)=-250,
>>>  OB_Jnorth(21)=-250,
>>>  OB_Jnorth(22)=-250,
>>>  OB_Jnorth(23)=-250,
>>>  OB_Jnorth(24)=-250,
>>>  OB_Jnorth(25)=-250,
>>>  OB_Jnorth(26)=-250,
>>>  OB_Jnorth(27)=-250,
>>>  OB_Jnorth(28)=-250,
>>>  OB_Jnorth(29)=-250,
>>>  OB_Jnorth(30)=-250,
>>>  OB_Jnorth(31)=-250,
>>> #
>>>  useOBCSprescribe=.TRUE.,
>>>  useOBCSbalance=.TRUE.,
>>>  OBCS_balanceFacN = 2.,
>>>  OBCSfixTopo = .TRUE.,
>>> #
>>>  useOBCSsponge   = .TRUE.,
>>>  useSeaiceSponge = .TRUE.,
>>> 
>>>  &OBCS_PARM03
>>>  spongeThickness = 5,
>>>  Urelaxobcsinner=108000.0,
>>>  Urelaxobcsbound=10800.0,
>>>  Vrelaxobcsinner=108000.0,
>>>  Vrelaxobcsbound=10800.0,
>>>  &
>>> 
>>> 
>>> 
>>> Sincerely,
>>> Alexey
>>> Russian State Hydrometeorological University
>>> 
>>> _______________________________________________
>>> MITgcm-support mailing list
>>> MITgcm-support at mitgcm.org
>>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>> 
>> 
>> 
>> ------------------------------
>> 
>> _______________________________________________
>> MITgcm-support mailing list
>> MITgcm-support at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>> 
>> 
>> End of MITgcm-support Digest, Vol 161, Issue 21
>> ***********************************************
> 
> 
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support




More information about the MITgcm-support mailing list