Ocean Modeling Discussion

ROMS/TOMS

Search for:
It is currently Fri Jul 19, 2019 2:02 am




Post new topic Reply to topic  [ 5 posts ] 

All times are UTC

Author Message
 Post subject: Open Boundary Conditions
PostPosted: Wed Mar 12, 2014 11:38 am 
Offline

Joined: Mon May 27, 2013 11:02 pm
Posts: 14
Dear users,

I am relatively new to the forum and to modeling with ROMS. I am currently in the step of realizing how boundary conditions work with ROMS. My area of interest is the Mediterranean Sea and my open boundary is located in the Atlantic.
In order to build these boundary conditions I used monthly salinity and temperature values from Medatlas, leaving the free surface height and the velocity fields as zeros.

My 1st experiment was with
! W S E N
! e o a o
! s u s r
! t t t t
! h h
!
! 1 2 3 4

LBC(isFsur) == Cha Clo Clo Clo ! free-surface
LBC(isUbar) == Fla Clo Clo Clo ! 2D U-momentum
LBC(isVbar) == Fla Clo Clo Clo ! 2D V-momentum
LBC(isUvel) == Cla Clo Clo Clo ! 3D U-momentum
LBC(isVvel) == Cla Clo Clo Clo ! 3D V-momentum
LBC(isMtke) == Cla Clo Clo Clo ! mixing TKE

LBC(isTvar) == Cla Clo Clo Clo \ ! temperature
Cla Clo Clo Clo ! salinity



Resulting to:
1. Reading the boundary file and by checking the evolution of the vertical boundary layer (a slice in the Atlantic):
a. One could see the read of Salt and Temp and their evolution until the next read (beginning of the next month).
b. The surface height was evolving and it was not becoming zero, even when the next record in the boundary file was read.
c. The velocities (u_eastward, v_northward), were ALWAYS zero at the boundary. At the exact next gridpoint (to the east), the evolution of the velocity fields is apparent.




My 2nd experiment was with:
! W S E N
! e o a o
! s u s r
! t t t t
! h h
!
! 1 2 3 4

LBC(isFsur) == Gra Clo Clo Clo ! free-surface
LBC(isUbar) == Rad Clo Clo Clo ! 2D U-momentum
LBC(isVbar) == Rad Clo Clo Clo ! 2D V-momentum
LBC(isUvel) == Rad Clo Clo Clo ! 3D U-momentum
LBC(isVvel) == Rad Clo Clo Clo ! 3D V-momentum
LBC(isMtke) == Rad Clo Clo Clo ! mixing TKE

LBC(isTvar) == Rad Clo Clo Clo \ ! temperature
Rad Clo Clo Clo ! salinity



Resulting to not reading the boundary file and providing in the boundary points the following:
a. An evolution of Salt and Temp based on the initial field used for the run.
b. An evolution of sea surface height.
c. Zero velocities (u-eastward, v_northward), in the boundary during the entire run. The velocities were evolving after the second (to the west) gridpoint (wall).

To sum up, at the boundary, I have salt and temp values that evolve and are been read (Cla), or not (Rad), by the model.
I get surface that evolves in both cases, but doesn’t become zero when the next record of the boundary is being read.
And in both cases (Cla, Rad), I get zero velocities at the boundary that fail to evolve.

Is there another selection of boundary conditions that allow the creation of velocities in the boundary and at the same time read the boundary fields? Is there perhaps an adjustment to the headers file that has the same effect?

My question may be trivial for most users, but not to me, so I appreciate any feedback and thank you for your answers in advance.

Thanos


Top
 Profile  
Reply with quote  
PostPosted: Wed Mar 12, 2014 6:51 pm 
Offline
User avatar

Joined: Wed Jul 02, 2003 5:29 pm
Posts: 3633
Location: IMS/UAF, USA
ThanosG wrote:
Dear users,

I am relatively new to the forum and to modeling with ROMS. I am currently in the step of realizing how boundary conditions work with ROMS. My area of interest is the Mediterranean Sea and my open boundary is located in the Atlantic.
In order to build these boundary conditions I used monthly salinity and temperature values from Medatlas, leaving the free surface height and the velocity fields as zeros.

Code:
My 1st experiment was with
!                   W       S       E       N
!                   e       o       a       o
!                   s       u       s       r
!                   t       t       t       t
!                           h               h
!
!                   1       2       3       4

   LBC(isFsur) ==   Cha     Clo     Clo     Clo         ! free-surface
   LBC(isUbar) ==   Fla     Clo     Clo     Clo         ! 2D U-momentum
   LBC(isVbar) ==   Fla     Clo     Clo     Clo         ! 2D V-momentum
   LBC(isUvel) ==   Cla     Clo     Clo     Clo         ! 3D U-momentum
   LBC(isVvel) ==   Cla     Clo     Clo     Clo         ! 3D V-momentum
   LBC(isMtke) ==   Cla     Clo     Clo     Clo         ! mixing TKE

   LBC(isTvar) ==   Cla     Clo     Clo     Clo \       ! temperature
                    Cla     Clo     Clo     Clo         ! salinity


Resulting to:
1. Reading the boundary file and by checking the evolution of the vertical boundary layer (a slice in the Atlantic):
a. One could see the read of Salt and Temp and their evolution until the next read (beginning of the next month).
b. The surface height was evolving and it was not becoming zero, even when the next record in the boundary file was read.
c. The velocities (u_eastward, v_northward), were ALWAYS zero at the boundary. At the exact next gridpoint (to the east), the evolution of the velocity fields is apparent.
The Chapman/Flather combo is not clamping but is a sort of nudged radiation condition. Zeta should not be just zero. This all makes sense.



Quote:
My 2nd experiment was with:
Code:
!                   W       S       E       N
!                   e       o       a       o
!                   s       u       s       r
!                   t       t       t       t
!                           h               h
!
!                   1       2       3       4

   LBC(isFsur) ==   Gra     Clo     Clo     Clo         ! free-surface
   LBC(isUbar) ==   Rad     Clo     Clo     Clo         ! 2D U-momentum
   LBC(isVbar) ==   Rad     Clo     Clo     Clo         ! 2D V-momentum
   LBC(isUvel) ==   Rad     Clo     Clo     Clo         ! 3D U-momentum
   LBC(isVvel) ==   Rad     Clo     Clo     Clo         ! 3D V-momentum
   LBC(isMtke) ==   Rad     Clo     Clo     Clo         ! mixing TKE

   LBC(isTvar) ==   Rad     Clo     Clo     Clo \       ! temperature
                    Rad     Clo     Clo     Clo         ! salinity




Resulting to not reading the boundary file and providing in the boundary points the following:
a. An evolution of Salt and Temp based on the initial field used for the run.
b. An evolution of sea surface height.
c. Zero velocities (u-eastward, v_northward), in the boundary during the entire run. The velocities were evolving after the second (to the west) gridpoint (wall).

To sum up, at the boundary, I have salt and temp values that evolve and are been read (Cla), or not (Rad), by the model.
I get surface that evolves in both cases, but doesn’t become zero when the next record of the boundary is being read.
And in both cases (Cla, Rad), I get zero velocities at the boundary that fail to evolve.

Is there another selection of boundary conditions that allow the creation of velocities in the boundary and at the same time read the boundary fields? Is there perhaps an adjustment to the headers file that has the same effect?

My question may be trivial for most users, but not to me, so I appreciate any feedback and thank you for your answers in advance.

Thanos
I don't know why your velocities should be zero with using the radiation condition. I would add some print statements to see that it actually is executing the radiation condition.

As was recently discussed elsewhere in this forum, I have been using RadNud on all 3-D open boundary contitions for best results. You do need external values to read in with this option, though.


Top
 Profile  
Reply with quote  
PostPosted: Thu Mar 13, 2014 12:58 pm 
Offline

Joined: Mon May 27, 2013 11:02 pm
Posts: 14
kate wrote:
ThanosG wrote:
Dear users,

I am relatively new to the forum and to modeling with ROMS. I am currently in the step of realizing how boundary conditions work with ROMS. My area of interest is the Mediterranean Sea and my open boundary is located in the Atlantic.
In order to build these boundary conditions I used monthly salinity and temperature values from Medatlas, leaving the free surface height and the velocity fields as zeros.

Code:
My 1st experiment was with
!                   W       S       E       N
!                   e       o       a       o
!                   s       u       s       r
!                   t       t       t       t
!                           h               h
!
!                   1       2       3       4

   LBC(isFsur) ==   Cha     Clo     Clo     Clo         ! free-surface
   LBC(isUbar) ==   Fla     Clo     Clo     Clo         ! 2D U-momentum
   LBC(isVbar) ==   Fla     Clo     Clo     Clo         ! 2D V-momentum
   LBC(isUvel) ==   Cla     Clo     Clo     Clo         ! 3D U-momentum
   LBC(isVvel) ==   Cla     Clo     Clo     Clo         ! 3D V-momentum
   LBC(isMtke) ==   Cla     Clo     Clo     Clo         ! mixing TKE

   LBC(isTvar) ==   Cla     Clo     Clo     Clo \       ! temperature
                    Cla     Clo     Clo     Clo         ! salinity


Resulting to:
1. Reading the boundary file and by checking the evolution of the vertical boundary layer (a slice in the Atlantic):
a. One could see the read of Salt and Temp and their evolution until the next read (beginning of the next month).
b. The surface height was evolving and it was not becoming zero, even when the next record in the boundary file was read.
c. The velocities (u_eastward, v_northward), were ALWAYS zero at the boundary. At the exact next gridpoint (to the east), the evolution of the velocity fields is apparent.
The Chapman/Flather combo is not clamping but is a sort of nudged radiation condition. Zeta should not be just zero. This all makes sense.



Quote:
My 2nd experiment was with:
Code:
!                   W       S       E       N
!                   e       o       a       o
!                   s       u       s       r
!                   t       t       t       t
!                           h               h
!
!                   1       2       3       4

   LBC(isFsur) ==   Gra     Clo     Clo     Clo         ! free-surface
   LBC(isUbar) ==   Rad     Clo     Clo     Clo         ! 2D U-momentum
   LBC(isVbar) ==   Rad     Clo     Clo     Clo         ! 2D V-momentum
   LBC(isUvel) ==   Rad     Clo     Clo     Clo         ! 3D U-momentum
   LBC(isVvel) ==   Rad     Clo     Clo     Clo         ! 3D V-momentum
   LBC(isMtke) ==   Rad     Clo     Clo     Clo         ! mixing TKE

   LBC(isTvar) ==   Rad     Clo     Clo     Clo \       ! temperature
                    Rad     Clo     Clo     Clo         ! salinity




Resulting to not reading the boundary file and providing in the boundary points the following:
a. An evolution of Salt and Temp based on the initial field used for the run.
b. An evolution of sea surface height.
c. Zero velocities (u-eastward, v_northward), in the boundary during the entire run. The velocities were evolving after the second (to the west) gridpoint (wall).

To sum up, at the boundary, I have salt and temp values that evolve and are been read (Cla), or not (Rad), by the model.
I get surface that evolves in both cases, but doesn’t become zero when the next record of the boundary is being read.
And in both cases (Cla, Rad), I get zero velocities at the boundary that fail to evolve.

Is there another selection of boundary conditions that allow the creation of velocities in the boundary and at the same time read the boundary fields? Is there perhaps an adjustment to the headers file that has the same effect?

My question may be trivial for most users, but not to me, so I appreciate any feedback and thank you for your answers in advance.

Thanos
I don't know why your velocities should be zero with using the radiation condition. I would add some print statements to see that it actually is executing the radiation condition.

As was recently discussed elsewhere in this forum, I have been using RadNud on all 3-D open boundary contitions for best results. You do need external values to read in with this option, though.



Dear Kate,

At first I ought to thank you for your prompt reply! I have tried RadNud for a short run in order to check the following:
1. The reading of the boundary file.
2. Creating velocities at the boundary.
None of the above happened. I killed it since it wasn’t doing the above and I didn’t wait to see the difference in the Physics of the model.
Could it possibly be due to the lack of a parameter in the .h file? Towards that, I added TS_U3HADVECTION and TS_C4VADVECTION but the issue wasn’t resolved.
Could it be because I am checking the u_eastward and v_northward outputs?
These are probably just some wild guesses.
What print statements do you suggest I add (and if I may, where exactly)?

Thank you in advance,
Best, Thanos


Top
 Profile  
Reply with quote  
PostPosted: Thu Mar 13, 2014 11:51 pm 
Offline
User avatar

Joined: Wed Jul 02, 2003 5:29 pm
Posts: 3633
Location: IMS/UAF, USA
I'm at home today and I'm not going to tell you what print statements to add. I would actually use a debugger instead to view values as the model runs.

You might check to see how U_eastward and V_northward are set to see if the boundary values are ever not zero. Search for them in the code and make a note of the do-loop bounds.


Top
 Profile  
Reply with quote  
PostPosted: Tue Mar 18, 2014 9:27 am 
Offline

Joined: Mon May 27, 2013 11:02 pm
Posts: 14
kate wrote:
I'm at home today and I'm not going to tell you what print statements to add. I would actually use a debugger instead to view values as the model runs.

You might check to see how U_eastward and V_northward are set to see if the boundary values are ever not zero. Search for them in the code and make a note of the do-loop bounds.



Dear Kate,

Thanks for the help. I checked the outputs at the boundary again and again and although I get non zero u and v velocity values, U-eastward and V_northward are zero in every time step. I am guessing that this may be due to the interpolation between the no slip boundary and the first grid point where u and v are calculated (in order to get the value at the rho point).
Besides that, I am currently trying to use the RadNud boundary condition, which requires a boundary file, but the model blows up very fast (getting velocity fields to Gibraltar around 23m/sec). So I added the Sponge layer in the headers file hoping to solve the issue.

Thanos


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

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