how to improve vertical profile velocity

General scientific issues regarding ROMS

Moderators: arango, robertson

Post Reply
Message
Author
User avatar
corvianawatie
Posts: 25
Joined: Thu May 14, 2015 4:50 pm
Location: Indonesia
Contact:

how to improve vertical profile velocity

#1 Unread post by corvianawatie »

Dear all,
I have a problem on my vertical profile of velocity in almost all area in my model domain. The vertical profile of meridional velocity has a counter current below the thermocline layer. I can sure the initial condition of T and S is quietly good. In the initial simulation, the velocity profile is good enough. But longer the simulation, the counter current is developed. It is really different to the annual mean of observation data at the same area. I attached the example of figure below in my attachment.

I need some suggestion, anything might induce this counter current flow. Thank you so much.
Attachments
v-mks.PNG

thiago.pdpaula
Posts: 14
Joined: Thu Oct 03, 2013 6:44 pm
Location: Personal

Re: how to improve vertical profile velocity

#2 Unread post by thiago.pdpaula »

I faced a similar issue in my application. The problem occurred only in the slope region where the bathymetry was steeper.

My suspicious at the time was that a strong Ekman layer was being formed, inducing a change in velocity direction. So I gradually reduced the bottom drag (if using UV_QDRAG, reduce RDRG2 parameter in ocean.in), in order to overcome this issue.

Another possibility is that your initial thermohaline gradients are being smoothed along the simulation due to excess of numerical diffusion. Maybe switching to a less diffusive tracer advection scheme, such as Akima 4th order (TS_A4HADVECTION, TS_A4VADVECTION) or the 3rd-order upstream split advection (TS_U3ADV_SPLIT along with UV_U3ADV_SPLIT) with a corresponding adjustment of explicit diffusion coefficients and time step, could help.

Check this presentation https://www.myroms.org/Workshops/ROMS20 ... Arango.ppt.

One last approach is to nudge your TS fields to a climatology. You can set a variable nudging time scale along the vertical to impose stronger coefficients below a certain depth. This can be easily achieved by creating the variables temp_NudgeCoef(s_rho, eta_rho, xi_rho) and salt_NudgeCoef(s_rho, eta_rho, xi_rho) on yout netCDF grid file.

Check this track ticket https://www.myroms.org/projects/src/ticket/627 for details.

User avatar
corvianawatie
Posts: 25
Joined: Thu May 14, 2015 4:50 pm
Location: Indonesia
Contact:

Re: how to improve vertical profile velocity

#3 Unread post by corvianawatie »

Thank you so much for your suggestion. I'll try reduce bottom drag and change the tracer/momentum advection scheme before nudging to climatology. Thanks a lot.

thiago.pdpaula wrote:I faced a similar issue in my application. The problem occurred only in the slope region where the bathymetry was steeper.

My suspicious at the time was that a strong Ekman layer was being formed, inducing a change in velocity direction. So I gradually reduced the bottom drag (if using UV_QDRAG, reduce RDRG2 parameter in ocean.in), in order to overcome this issue.

Another possibility is that your initial thermohaline gradients are being smoothed along the simulation due to excess of numerical diffusion. Maybe switching to a less diffusive tracer advection scheme, such as Akima 4th order (TS_A4HADVECTION, TS_A4VADVECTION) or the 3rd-order upstream split advection (TS_U3ADV_SPLIT along with UV_U3ADV_SPLIT) with a corresponding adjustment of explicit diffusion coefficients and time step, could help.

Check this presentation https://www.myroms.org/Workshops/ROMS20 ... Arango.ppt.

One last approach is to nudge your TS fields to a climatology. You can set a variable nudging time scale along the vertical to impose stronger coefficients below a certain depth. This can be easily achieved by creating the variables temp_NudgeCoef(s_rho, eta_rho, xi_rho) and salt_NudgeCoef(s_rho, eta_rho, xi_rho) on yout netCDF grid file.

Check this track ticket https://www.myroms.org/projects/src/ticket/627 for details.

stvyng
Posts: 10
Joined: Tue Jan 31, 2012 10:35 pm
Location: NOAA

Re: how to improve vertical profile velocity

#4 Unread post by stvyng »

One last approach is to nudge your TS fields to a climatology. You can set a variable nudging time scale along the vertical to impose stronger coefficients below a certain depth. This can be easily achieved by creating the variables temp_NudgeCoef(s_rho, eta_rho, xi_rho) and salt_NudgeCoef(s_rho, eta_rho, xi_rho) on yout netCDF grid file.

Check this track ticket https://www.myroms.org/projects/src/ticket/627 for details.


[Question] Are the above nudging coefficients simultaneously being applied to both the "ordinary" time-dependent OBC forcing and the climatology forcing, or only to the climatology forcing? Is there a way to differentiate the two? Thanks!

User avatar
kate
Posts: 4088
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

Re: how to improve vertical profile velocity

#5 Unread post by kate »

If you turn on climatology nudging, it will change the OBC time scales. If you don't want that, change the open boundary code to do what you want it to do - that's what I did in my branch.

stvyng
Posts: 10
Joined: Tue Jan 31, 2012 10:35 pm
Location: NOAA

Re: how to improve vertical profile velocity

#6 Unread post by stvyng »

Very helpful! Thank you very much, Kate!
kate wrote:If you turn on climatology nudging, it will change the OBC time scales. If you don't want that, change the open boundary code to do what you want it to do - that's what I did in my branch.

User avatar
corvianawatie
Posts: 25
Joined: Thu May 14, 2015 4:50 pm
Location: Indonesia
Contact:

Re: how to improve vertical profile velocity

#7 Unread post by corvianawatie »

thiago.pdpaula wrote:I faced a similar issue in my application. The problem occurred only in the slope region where the bathymetry was steeper.

My suspicious at the time was that a strong Ekman layer was being formed, inducing a change in velocity direction. So I gradually reduced the bottom drag (if using UV_QDRAG, reduce RDRG2 parameter in ocean.in), in order to overcome this issue.

Another possibility is that your initial thermohaline gradients are being smoothed along the simulation due to excess of numerical diffusion. Maybe switching to a less diffusive tracer advection scheme, such as Akima 4th order (TS_A4HADVECTION, TS_A4VADVECTION) or the 3rd-order upstream split advection (TS_U3ADV_SPLIT along with UV_U3ADV_SPLIT) with a corresponding adjustment of explicit diffusion coefficients and time step, could help.

Check this presentation https://www.myroms.org/Workshops/ROMS20 ... Arango.ppt.

One last approach is to nudge your TS fields to a climatology. You can set a variable nudging time scale along the vertical to impose stronger coefficients below a certain depth. This can be easily achieved by creating the variables temp_NudgeCoef(s_rho, eta_rho, xi_rho) and salt_NudgeCoef(s_rho, eta_rho, xi_rho) on yout netCDF grid file.

Check this track ticket https://www.myroms.org/projects/src/ticket/627 for details.

I used this CPP and somehow there is some improvement on the vertical structure of velocity. However, it still needs more improvement. I will try to reduce the bottom drag coefficient in future simulation.

I did try to use TS_A4HADVECTION, TS_A4VADVECTION with UV_ADV and UV_C4ADVECTION but it leads on blowing up within several months of simulations due to a discontinuity on Temperature and Salinity. Is it need a smaller timestep to use Akima horizontal and vertical advection? Or any other things should be considered?

Code: Select all

/* CPP FOR MOMENTUM EQUATIONS */
#define UV_ADV
#define UV_C4ADVECTION
#define UV_COR
#define UV_VIS2
#define UV_QDRAG
#define SPLINES_VVISC

/* CPP FOR BOTTOM STRESS */
#define LIMIT_BSTRESS

/* CPP FOR TRACER EQUATIONS */
#define TS_U3HADVECTION
#define TS_C4VADVECTION
#define TS_DIF2
#define NONLIN_EOS
#define SALINITY
#define SPLINES_VDIFF

/* CPP FOR PRESSURE GRADIENT */
#define DJ_GRADPS

/* CPP FOR SURFACE FLUXES USING ATMOSPHERIC BOUNDARY LAYER */
#define BULK_FLUXES
#define EMINUSP

/* CPP FOR MODEL CONFIGURATIONS */
#define SOLVE3D
#define CURVGRID
#define MASKING
#define BODYFORCE
#define AVERAGES

/* CPP FOR ANALYTICAL EXPRESSION */
#define ANA_BSFLUX
#define ANA_BTFLUX

/* CPP FOR MIXING OF MOMENTUM AND TRACERS */
#define VISC_GRID
#define MIX_GEO_UV
#define DIFF_GRID
#define MIX_GEO_TS

/* CPP FOR VERTICAL TURBULENT MIXING */
#undef  BVF_MIXING
#undef  GLS_MIXING
#undef  MY25_MIXING
#define LMD_MIXING

#ifdef  LMD_MIXING
#undef  LMD_BKPP
#define LMD_CONVEC
#undef  LMD_DDMIX
#define LMD_NONLOCAL
#define LMD_RIMIX
#undef  LMD_SAPHIRO
#define LMD_SKPP
#define RI_SPLINES
#endif

#define LIMIT_VDIFF
#define LIMIT_VVISC
Attachments
new.PNG
new.PNG (28.83 KiB) Viewed 4453 times

thiago.pdpaula
Posts: 14
Joined: Thu Oct 03, 2013 6:44 pm
Location: Personal

Re: how to improve vertical profile velocity

#8 Unread post by thiago.pdpaula »

I did try to use TS_A4HADVECTION, TS_A4VADVECTION with UV_ADV and UV_C4ADVECTION but it leads on blowing up within several months of simulations due to a discontinuity on Temperature and Salinity. Is it need a smaller timestep to use Akima horizontal and vertical advection? Or any other things should be considered?
I would try first to adjust horizontal diffusion. In my case, no time step reduction was necessary; an increase in nl_tnu2 did the job.

User avatar
corvianawatie
Posts: 25
Joined: Thu May 14, 2015 4:50 pm
Location: Indonesia
Contact:

Re: how to improve vertical profile velocity

#9 Unread post by corvianawatie »

thiago.pdpaula wrote:
I did try to use TS_A4HADVECTION, TS_A4VADVECTION with UV_ADV and UV_C4ADVECTION but it leads on blowing up within several months of simulations due to a discontinuity on Temperature and Salinity. Is it need a smaller timestep to use Akima horizontal and vertical advection? Or any other things should be considered?
I would try first to adjust horizontal diffusion. In my case, no time step reduction was necessary; an increase in nl_tnu2 did the job.
Thank you. I will try to adjust the horizontal diffusion.
Last edited by corvianawatie on Wed Oct 09, 2019 3:13 am, edited 1 time in total.

User avatar
corvianawatie
Posts: 25
Joined: Thu May 14, 2015 4:50 pm
Location: Indonesia
Contact:

Re: how to improve vertical profile velocity

#10 Unread post by corvianawatie »

kate wrote:If you turn on climatology nudging, it will change the OBC time scales. If you don't want that, change the open boundary code to do what you want it to do - that's what I did in my branch.
Dear Kate, I read this from https://www.myroms.org/projects/src/ticket/627. I want to ask:
1. How to set the depth dependency for nudging to climatology (as it said in the website)? Or we should create the nudg_coef by ourselves using Matlab?
2. If I want to relaxing the surface temperature and salinity to climatology data, how can I do it? I confused because the nudg_coef is based on the s-coordinate. And it's mean that the surface layer has a different depth for every single grid cell.
nudg.PNG
nudg.PNG (24.82 KiB) Viewed 4266 times

User avatar
kate
Posts: 4088
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

Re: how to improve vertical profile velocity

#11 Unread post by kate »

1. Probably easiest in Matlab or something with similar capabilities, something that knows the vertical coordinate system.
2. If you only want to nudge to surface T/S, there is separate code for that as part of the surface boundary condition. Check out for instance SCORRECTION and SRELAXATION, using Tnudg(isalt,ng) which does not vary in space.

Post Reply