[MITgcm-support] Re.: hFac's and obcs

Thomas Haine Thomas.Haine at jhu.edu
Tue Sep 13 16:04:11 EDT 2005


Hi Martin, 

Thanks for your comments. Modifying hFacS in the way you suggest causes
the vertical velocity field to diverge over most of the southern
boundary at step 0 (i.e. it's visible in the MONITOR output at step 0
and in the 1st dump). 

I tried this variation on your theme:

hFacS(I,1,K,bi,bj)=hFacC(I,1,K,bi,bj)

but got the same results. Not much goes on between initialising and
calculating the MONITOR but I've not yet found where W gets set wrong or
understood why.

Any other ideas?

Thanks, Tom.


> -------- Forwarded Message --------
> > From: Martin Losch <mlosch at awi-bremerhaven.de>
> > Reply-To: mitgcm-support at mitgcm.org
> > To: mitgcm-support at mitgcm.org
> > Subject: Re: [MITgcm-support] hFac's and obcs
> > Date: Mon, 12 Sep 2005 10:45:55 +0200
> > 
> > Hi Tom,
> > 
> > I tried to find places in the OBCS-related code, where hFacS (or maskS) 
> > could be a problem. Having had only a quick look I couldn't find 
> > anything. In fact, the open southern boundary values for v-velocity are 
> > prescribed at OB_Js+1, that is at J=2 in your case, so that the value 
> > of hFacS/maskS at J=1 shouldn't matter:
> > In obcs_apply_uv.F, the velocities fields are set:
> > >        IF (OB_Js(I,bi,bj).NE.0) THEN
> > >         vFld(I,OB_Js(I,bi,bj)+1,K,bi,bj)=OBSv(I,K,bi,bj)
> > >      &                              *_maskS(I,OB_Js(I,bi,bj)+1,K,bi,bj)
> > >         uFld(I,OB_Js(I,bi,bj),K,bi,bj)=OBSu(I,K,bi,bj)
> > >      &                              *_maskW(I,OB_Js(I,bi,bj),K,bi,bj)
> > >         vFld(I,OB_Js(I,bi,bj),K,bi,bj)=OBSv(I,K,bi,bj)
> > >      &                              *_maskS(I,OB_Js(I,bi,bj)+1,K,bi,bj)
> > >        ENDIF
> > In your case, OB_Js = 1 for all i, correct? 

Yes, that's right.

> > That means, that 
> > vFld(:,1,:)=vFld(:,2,:)=OBSv(:,:).*maskS(:,2,:), so that maskS(:,1,:), 
> > which should really be 0 for most i, is never used.]
> > In solve_for_pressure.F, cg2d_b and cg2d_x are set to zero on the 
> > boundaries and hFacS/W are not used.
> > 
> > However, both in mom_fluxform and mom_vecinv, hfacs/hfacw are 
> > excessively used, so that I would agree, there is a problem with using 
> > OBCS. Have you tried to modify the hFac's in ini_masks_etc? After the 
> > line
> > CALL EXCH_UV_XYZ_RS(hFacC,hFacS,.FALSE.,myThid)
> > you could hack your hfacs according to your domain. Something like:
> > >       DO bj=myByLo(myThid), myByHi(myThid)
> > >        DO bi=myBxLo(myThid), myBxHi(myThid)
> > >         DO K=1, Nr
> > >          DO J=1-Oly,1
> > >           DO I=1-Olx,sNx+Olx
> > >            hFacS(I,J,K,bi,bj)=hFacS(I,2,K,bi,bj)
> > >           ENDDO
> > >          ENDDO
> > >          DO J=1-Oly,sNy+Oly
> > >           DO I=1-Olx,1
> > >            hFacW(I,J,K,bi,bj)=hFacW(2,J,K,bi,bj)
> > >           ENDDO
> > >          ENDDO
> > >         ENDDO
> > >        ENDDO
> > >       ENDDO
> > If the code survives such a such a fundamental modification, that is, 
> > if this fixes the problem, we should consider including it in the 
> > OBCS-package.
> > 
> > Martin
- 
--------------------------------------------
 Thomas W. N. Haine
                                                                                                                                                              
 Associate Professor of Physical Oceanography,
 Department of Earth & Planetary Sciences,
 329 Olin Hall, The Johns Hopkins University,
 Baltimore, MD 21218, USA.
 Tel : 410 516 7048,   Fax : 410 516 7933
 Thomas.Haine at jhu.edu
 http://www.jhu.edu/~eps/faculty/haine
--------------------------------------------




More information about the MITgcm-support mailing list