Ocean Modeling Discussion

ROMS/TOMS

Search for:
It is currently Wed Dec 12, 2018 9:50 am




Post new topic Reply to topic  [ 1 post ] 

All times are UTC

Author Message
PostPosted: Wed Mar 28, 2018 8:02 am 
Offline

Joined: Fri Sep 11, 2009 1:48 pm
Posts: 57
Location: nmefc
Hello all,
I have derived the implicit upstream radiation condition from Marchesiello et al.(2001). I found it should have an implicit assumption dx=dy (or om=on in ROMS). If not, the variables r_x (Cx in ROMS) and r_y (Cy in ROMS) should be
Code:
              dy*dy*dudt*dudx*alpha                           dx*dx*dudt*dudy*beta
r_x= -  ---------------------------------       r_y= -   ---------------------------------
         dy*dy*dudx*dudx+dx*dx*dudy*dudy                   dy*dy*dudx*dudx+dx*dx*dudy*dudy

        x(b-1,j)-x(b-2,j)             y(b-1,j)-y(b-1,j-1)
alpha= -------------------     beta=---------------------
        x(b,j)-x(b-1,j)                 y(b,j)-y(b,j-1)

Then, I think the file u3_dbc_im.F should be changed for the western boundary condition as followed,
Code:
          dxzxm=GRID(ng)%om_r(Istr+1,j))
             aphazxm=dxzxm/GRID(ng)%om_r(Istr,j)

                IF ((dUdt*dUdx).lt.0.0_r8) dUdt=0.0_r8
                IF ((dUdt*(grad(Istr+1,j  )+                            &
     &                     grad(Istr+1,j+1))).gt.0.0_r8) THEN
                  dUde=grad(Istr+1,j  )
             dyzxm=GRID(ng)%on_p(Istr+1,j))
                  betazxm=dyzxm/GRID(ng)%on_p(Istr,j)
                ELSE
                  dUde=grad(Istr+1,j+1)
             dyzxm=GRID(ng)%on_p(Istr+1,j+1))
        betazxm=dyzxm/GRID(ng)%on_p(Istr,j+1)
                END IF
!!                cff=MAX(dUdx*dUdx+dUde*dUde,eps)
!!                Cx=dUdt*dUdx
                cff=MAX(dyzxm*dyzxm*dUdx*dUdx+dxzxm*dxzxm*dUde*dUde,eps)
                Cx=dUdt*dUdx*dyzxm*dyzxm*aphazxm
# ifdef RADIATION_2D
                Ce=MIN(cff,MAX(dUdt*dUde,-cff))*dxzxm*dxzxm*betazxm
# else
                Ce=0.0_r8
# endif

Do you think it is a bug for ROMS? Do I have changed it correct? Which subindex (i,i-1,i+1, j,j+1 et al.) or variables (om_r, om_u, om_p) should I use? How about for other ones, such as eastern, southern and northern conditions?

By the way, this is also the reason I have posted on the title "question about the caculating of om_p, om_u, on_p, on_u" in https://www.myroms.org/forum/viewtopic.php?t=4805


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group